[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20091221220.243954235@firstfloor.org>
Date: Mon, 21 Dec 2009 02:20:21 +0100 (CET)
From: Andi Kleen <andi@...stfloor.org>
To: linux-kernel@...r.kernel.org, paulmck@...ux.vnet.ibm.com,
ebiederm@...ssion.com
Subject: [PATCH] [0/11] SYSCTL: Use RCU to avoid races with string sysctls
With BKL-less sysctls most of the writable string sysctls are racy. There
is no locking on the reader side, so a reader could see an inconsistent
string or worse miss the terminating null and walk of beyond it.
This patch kit adds a new "rcu string" variant to avoid these
problems and convers the racy users. One the writer side the strings are
always copied to new memory and the readers use rcu_read_lock()
to get a stable view. For readers who access the string over
sleeps the reader copies the string.
This is all hidden in a new generic "rcu_string" ADT which can be also
used for other purposes.
This finally implements all the letters in RCU, most other users
leave out the 'C'.
I also fixed the zone order list sysctl to use a mutex to avoid
racing with itself.
I left some obscure users in architectures (sparc, mips) alone and audited
all of the others. The sparc reboot_cmd one has references to asm files
which I didn't want to touch and the mips variant seemd just too obscure.
All the others are not racy.
-Andi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists