]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
lib/genalloc.c: make the avail variable an atomic_long_t
authorStephen Bates <sbates@raithlin.com>
Fri, 17 Nov 2017 23:28:16 +0000 (15:28 -0800)
committerSasha Levin <alexander.levin@microsoft.com>
Wed, 17 Jan 2018 17:55:28 +0000 (12:55 -0500)
commit3888f4ba09bdb5177b011ff7fbd431e8545395f8
tree46819c351f0811b6b04fb4602b00e005796b81da
parent3e3780098e9ffac153347f6bf6dabf0f3d20b135
lib/genalloc.c: make the avail variable an atomic_long_t

[ Upstream commit 36a3d1dd4e16bcd0d2ddfb4a2ec7092f0ae0d931 ]

If the amount of resources allocated to a gen_pool exceeds 2^32 then the
avail atomic overflows and this causes problems when clients try and
borrow resources from the pool.  This is only expected to be an issue on
64 bit systems.

Add the <linux/atomic.h> header to pull in atomic_long* operations.  So
that 32 bit systems continue to use atomic32_t but 64 bit systems can
use atomic64_t.

Link: http://lkml.kernel.org/r/1509033843-25667-1-git-send-email-sbates@raithlin.com
Signed-off-by: Stephen Bates <sbates@raithlin.com>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reviewed-by: Daniel Mentz <danielmentz@google.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
include/linux/genalloc.h
lib/genalloc.c