summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/crypto/tegra-se.c3
-rw-r--r--drivers/crypto/tegra-se.h1
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