https://github.com/torvalds/linux
Revision 9e0daff30fd7ecf698e5d20b0fa7f851e427cca5 authored by David S. Miller on 13 April 2012, 18:56:22 UTC, committed by David S. Miller on 13 April 2012, 18:56:22 UTC
The DS driver registers as a subsys_initcall() but this can be too
early, in particular this risks registering before we've had a chance
to allocate and setup module_kset in kernel/params.c which is
performed also as a subsyts_initcall().

Register DS using device_initcall() insteal.

Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: stable@vger.kernel.org
1 parent 4166fb6
Raw File
Tip revision: 9e0daff30fd7ecf698e5d20b0fa7f851e427cca5 authored by David S. Miller on 13 April 2012, 18:56:22 UTC
sparc64: Fix bootup crash on sun4v.
Tip revision: 9e0daff
todo.txt
There is a potential for deadlock when allocating a struct sk_buff for
data that needs to be written out to aoe storage.  If the data is
being written from a dirty page in order to free that page, and if
there are no other pages available, then deadlock may occur when a
free page is needed for the sk_buff allocation.  This situation has
not been observed, but it would be nice to eliminate any potential for
deadlock under memory pressure.

Because ATA over Ethernet is not fragmented by the kernel's IP code,
the destructor member of the struct sk_buff is available to the aoe
driver.  By using a mempool for allocating all but the first few
sk_buffs, and by registering a destructor, we should be able to
efficiently allocate sk_buffs without introducing any potential for
deadlock.
back to top