mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
tcp: suppress a division by zero warning
Andrew Morton reported following warning on one ARM build
with gcc-4.4 :
net/ipv4/inet_hashtables.c: In function 'inet_ehash_locks_alloc':
net/ipv4/inet_hashtables.c:617: warning: division by zero
Even guarded with a test on sizeof(spinlock_t), compiler does not
like current construct on a !CONFIG_SMP build.
Remove the warning by using a temporary variable.
Fixes: 095dc8e0c3
("tcp: fix/cleanup inet_ehash_locks_alloc()")
Reported-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0bccece592
commit
89e478a2aa
@ -624,22 +624,21 @@ EXPORT_SYMBOL_GPL(inet_hashinfo_init);
|
||||
|
||||
int inet_ehash_locks_alloc(struct inet_hashinfo *hashinfo)
|
||||
{
|
||||
unsigned int locksz = sizeof(spinlock_t);
|
||||
unsigned int i, nblocks = 1;
|
||||
|
||||
if (sizeof(spinlock_t) != 0) {
|
||||
if (locksz != 0) {
|
||||
/* allocate 2 cache lines or at least one spinlock per cpu */
|
||||
nblocks = max_t(unsigned int,
|
||||
2 * L1_CACHE_BYTES / sizeof(spinlock_t),
|
||||
1);
|
||||
nblocks = max(2U * L1_CACHE_BYTES / locksz, 1U);
|
||||
nblocks = roundup_pow_of_two(nblocks * num_possible_cpus());
|
||||
|
||||
/* no more locks than number of hash buckets */
|
||||
nblocks = min(nblocks, hashinfo->ehash_mask + 1);
|
||||
|
||||
hashinfo->ehash_locks = kmalloc_array(nblocks, sizeof(spinlock_t),
|
||||
hashinfo->ehash_locks = kmalloc_array(nblocks, locksz,
|
||||
GFP_KERNEL | __GFP_NOWARN);
|
||||
if (!hashinfo->ehash_locks)
|
||||
hashinfo->ehash_locks = vmalloc(nblocks * sizeof(spinlock_t));
|
||||
hashinfo->ehash_locks = vmalloc(nblocks * locksz);
|
||||
|
||||
if (!hashinfo->ehash_locks)
|
||||
return -ENOMEM;
|
||||
|
Loading…
Reference in New Issue
Block a user