mtd: rawnand: jz4780: use struct_size() in devm_kzalloc()
Subsystems (2)
PATCH 1/1 mtd: rawnand: jz4780: use struct_size() in devm_kzalloc()
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct foo {
int stuff;
void *entry[];
};instance = devm_kzalloc(dev, sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);
Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper:
instance = devm_kzalloc(dev, struct_size(instance, entry, count), GFP_KERNEL);
--- drivers/mtd/nand/raw/jz4780_nand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/mtd/nand/raw/jz4780_nand.c +1 -1
@@ -352,7 +352,7 @@ static int jz4780_nand_probe(struct platform_device *pdev)return -ENODEV ; } - nfc =devm_kzalloc (dev,sizeof (*nfc) + (sizeof (nfc->cs[0 ]) * num_banks),GFP_KERNEL ); + nfc =devm_kzalloc (dev,struct_size (nfc, cs, num_banks),GFP_KERNEL );if (!nfc)return -ENOMEM ;
Signature · 1 line
2.7.4
Quoted 9 lines · On Thu, 23 Aug 2018 14:33:32 -0500 "Gustavo A. R. Silva"…
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct foo { int stuff; void *entry[]; };
Quoted 6 lines
instance =
devm_kzalloc(dev, sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);Instead of leaving these open-coded and prone to type mistakes, we can now use the new
struct_size()helper:instance =
devm_kzalloc(dev, struct_size(instance, entry, count), GFP_KERNEL);
Oh, I didn't know about that one. That's nice!
Quoted 2 lines
Signed-off-by Gustavo A. R. Silva <[email protected]>
Quoted 17 lines
--- drivers/mtd/nand/raw/jz4780_nand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/mtd/nand/raw/jz4780_nand.c +1
-1@@ -352,7 +352,7 @@ static int jz4780_nand_probe(struct platform_device *pdev)return -ENODEV ; } - nfc =devm_kzalloc (dev,sizeof (*nfc) + (sizeof (nfc->cs[0 ]) * num_banks),GFP_KERNEL ); + nfc =devm_kzalloc (dev,struct_size (nfc, cs, num_banks),GFP_KERNEL );if (!nfc)return -ENOMEM ;
Quoted 9 lines · Gustavo A. R. Silva
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct foo { int stuff; void *entry[]; };
Quoted 8 lines
instance =
devm_kzalloc(dev, sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);Instead of leaving these open-coded and prone to type mistakes, we can now use the new
struct_size()helper:instance =
devm_kzalloc(dev, struct_size(instance, entry, count), GFP_KERNEL);Signed-off-by Gustavo A. R. Silva <[email protected]>
-Kees
Quoted 20 lines
--- drivers/mtd/nand/raw/jz4780_nand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/mtd/nand/raw/jz4780_nand.c +1
-2@@ -352,7 +352,7 @@ static int jz4780_nand_probe(struct platform_device *pdev)return -ENODEV ; } - nfc =devm_kzalloc (dev,sizeof (*nfc) + (sizeof (nfc->cs[0 ]) * num_banks),GFP_KERNEL ); + nfc =devm_kzalloc (dev,struct_size (nfc, cs, num_banks),GFP_KERNEL );if (!nfc)return -ENOMEM ; --2.7.4
Signature · 2 lines
Kees Cook Pixel Security
Hi Gustavo,
"Gustavo A. R. Silva" <[email protected]> wrote on Thu, 23 Aug 2018 14:33:32 -0500:
Quoted 26 lines
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct foo { int stuff; void *entry[]; };instance =
devm_kzalloc(dev, sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);Instead of leaving these open-coded and prone to type mistakes, we can now use the new
struct_size()helper:instance =
devm_kzalloc(dev, struct_size(instance, entry, count), GFP_KERNEL);Signed-off-by Gustavo A. R. Silva <[email protected]>--- drivers/mtd/nand/raw/jz4780_nand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/mtd/nand/raw/jz4780_nand.c +0
-0
drivers/mtd/nand/raw/jz4780_nand.c static int jz4780_nand_probe(struct platform_device *pdev) · line 358
Quoted 8 lines
drivers/mtd/nand/raw/jz4780_nand.c +1
-1@@ -352,7 +352,7 @@ static int jz4780_nand_probe(struct platform_device *pdev)return -ENODEV ; } - nfc =devm_kzalloc (dev,sizeof (*nfc) + (sizeof (nfc->cs[0 ]) * num_banks),GFP_KERNEL ); + nfc =devm_kzalloc (dev,struct_size (nfc, cs, num_banks),GFP_KERNEL );if (!nfc)return -ENOMEM ;
Applied to nand/next.
Thanks,
Miquèl