diff options
-rw-r--r-- | drivers/crypto/tegra-se.c | 3 | ||||
-rw-r--r-- | drivers/crypto/tegra-se.h | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/crypto/tegra-se.c b/drivers/crypto/tegra-se.c index 45da366d886a..f06e5eefa3de 100644 --- a/drivers/crypto/tegra-se.c +++ b/drivers/crypto/tegra-se.c @@ -597,6 +597,9 @@ static int tegra_se_start_operation(struct tegra_se_dev *se_dev, u32 nbytes, int ret = 0; u32 val = 0; + if (nblocks > SE_MAX_LAST_BLOCK_SIZE) + return -EINVAL; + /* clear any pending interrupts */ val = se_readl(se_dev, SE_INT_STATUS_REG_OFFSET); se_writel(se_dev, val, SE_INT_STATUS_REG_OFFSET); diff --git a/drivers/crypto/tegra-se.h b/drivers/crypto/tegra-se.h index cd3e9ab2c590..98cb82544454 100644 --- a/drivers/crypto/tegra-se.h +++ b/drivers/crypto/tegra-se.h @@ -33,6 +33,7 @@ #define SE_MAX_DST_SG_COUNT 50 #define TEGRA_SE_KEYSLOT_COUNT 16 +#define SE_MAX_LAST_BLOCK_SIZE 0xFFFFF /* SE register definitions */ #define SE_CONFIG_REG_OFFSET 0x014 |