[PATCH] R3964: fix GFP_KERNEL allocations in timer function
In the error case, add_msg() gets called from timer functions, so should be using GFP_ATOMIC instead of GFP_KERNEL. Ref: http://bugzilla.kernel.org/show_bug.cgi?id=6659. Thanks to Christian Werner <chw@ch-werner.de> for reporting, and for the initial fix. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
c836043e70
Коммит
78dbe706e2
|
@ -951,7 +951,8 @@ static void add_msg(struct r3964_client_info *pClient, int msg_id, int arg,
|
||||||
{
|
{
|
||||||
queue_the_message:
|
queue_the_message:
|
||||||
|
|
||||||
pMsg = kmalloc(sizeof(struct r3964_message), GFP_KERNEL);
|
pMsg = kmalloc(sizeof(struct r3964_message),
|
||||||
|
error_code?GFP_ATOMIC:GFP_KERNEL);
|
||||||
TRACE_M("add_msg - kmalloc %p",pMsg);
|
TRACE_M("add_msg - kmalloc %p",pMsg);
|
||||||
if(pMsg==NULL) {
|
if(pMsg==NULL) {
|
||||||
return;
|
return;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче