From: Bjorn Helgaas It's easier to verify loop bounds if the array name is mentioned the for() statement that steps through the array. Signed-off-by: Bjorn Helgaas Acked-by: Jeff Garzik Acked-by: Mike Miller Signed-off-by: Andrew Morton --- drivers/block/cciss.c | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-) diff -puN drivers/block/cciss.c~cciss-use-array_size-without-intermediates drivers/block/cciss.c --- 25/drivers/block/cciss.c~cciss-use-array_size-without-intermediates Mon Jun 19 16:46:06 2006 +++ 25-akpm/drivers/block/cciss.c Mon Jun 19 16:46:06 2006 @@ -104,8 +104,6 @@ static const struct pci_device_id cciss_ }; MODULE_DEVICE_TABLE(pci, cciss_pci_device_id); -#define NR_PRODUCTS ARRAY_SIZE(products) - /* board_id = Subsystem Device ID & Vendor ID * product = Marketing Name for the board * access = Address of the struct of function pointers @@ -2831,14 +2829,14 @@ static int cciss_pci_init(ctlr_info_t *c print_cfg_table(c->cfgtable); #endif /* CCISS_DEBUG */ - for(i=0; iproduct_name = products[i].product_name; c->access = *(products[i].access); break; } } - if (i == NR_PRODUCTS) { + if (i == ARRAY_SIZE(products)) { printk(KERN_WARNING "cciss: Sorry, I don't know how" " to access the Smart Array controller %08lx\n", (unsigned long)board_id); _