It is safe to use GFP_KERNEL in a workqueue handler, and check the
return value. If the malloc fails, skip and try again.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
/* This C2H event is read, clear it */
c2h_evt_clear23a(adapter);
} else if ((c2h_evt = (struct c2h_evt_hdr *)
- kmalloc(16, GFP_ATOMIC))) {
+ kmalloc(16, GFP_KERNEL))) {
+ if (!c2h_evt)
+ continue;
/* This C2H event is not read, read & clear now */
if (c2h_evt_read23a(adapter, (u8*)c2h_evt) != _SUCCESS)
continue;