Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965440AbWLPMET (ORCPT ); Sat, 16 Dec 2006 07:04:19 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S965438AbWLPMET (ORCPT ); Sat, 16 Dec 2006 07:04:19 -0500 Received: from nic.NetDirect.CA ([216.16.235.2]:60318 "EHLO rubicon.netdirect.ca" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965440AbWLPMES (ORCPT ); Sat, 16 Dec 2006 07:04:18 -0500 X-Originating-Ip: 24.148.236.183 Date: Sat, 16 Dec 2006 06:59:07 -0500 (EST) From: "Robert P. J. Day" X-X-Sender: rpjday@localhost.localdomain To: Tim Schmielau cc: Jan Engelhardt , Stefan Richter , Zach Brown , Linux kernel mailing list Subject: Re: lots of code could be simplified by using ARRAY_SIZE() In-Reply-To: Message-ID: References: <2F8F687E-C5E5-4F7D-9585-97DA97AE1376@oracle.com> <4581DAB0.2060505@s5r6.in-berlin.de> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Net-Direct-Inc-MailScanner-Information: Please contact the ISP for more information X-Net-Direct-Inc-MailScanner: Found to be clean X-Net-Direct-Inc-MailScanner-SpamCheck: not spam, SpamAssassin (not cached, score=-14.754, required 5, ALL_TRUSTED -1.80, BAYES_00 -15.00, RCVD_IN_SORBS_DUL 2.05) X-Net-Direct-Inc-MailScanner-From: rpjday@mindspring.com Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1515 Lines: 39 On Fri, 15 Dec 2006, Tim Schmielau wrote: > On Fri, 15 Dec 2006, Robert P. J. Day wrote: > > On Fri, 15 Dec 2006, Jan Engelhardt wrote: > > > Even sizeof a / sizeof *a > > > > > > may happen. > > > > yes, sadly, there are a number of those as well. back to the drawing > > board. > > It might be interesting to grep for anything that divides two > sizeofs and eyeball the result for possible mistakes. This would > provide some real benefit beyond the cosmetical changes. i did that a while ago and it's amazing the variation that you find beyond the obvious: $ grep -Er "sizeof.*/.*sizeof" . | less ... ./net/key/af_key.c: sa->sadb_sa_len = sizeof(struct sadb_sa)/sizeof(uint64_t); ./net/xfrm/xfrm_policy.c: int len = sizeof(struct xfrm_selector) / sizeof(u32); ./net/core/flow.c: const int n_elem = sizeof(struct flowi) / sizeof(flow_compare_t); ./net/ipv4/netfilter/arp_tables.c: for (i = 0; i < sizeof(*arp)/sizeof(__u32); i++) ./net/ipv4/af_inet.c:#define INETSW_ARRAY_LEN (sizeof(inetsw_array) / sizeof(struct inet_protosw)) ./drivers/net/wireless/ray_cs.c: .num_standard = sizeof(ray_handler)/sizeof(iw_handler), and on and on. there's no way a cute little perl script is going to clean up all of *that*. so what to do? rday - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/