Project

General

Profile

Actions

Feature #3220

open

077: NOIO allocation under usb_lock

Added by Vadim Mutilin over 11 years ago. Updated over 9 years ago.

Status:
Open
Priority:
Normal
Assignee:
Start date:
07/17/2012
Due date:
% Done:

0%

Estimated time:
Published in build:

Description

Not disabling IO during memory allocation while holding a USB device lock

SUMMARY
You should use `GFP_NOIO` instead of `GFP_KERNEL` for memory allocations between `usb_lock_device()` and `usb_unlock_device()` invocations.

DESCRIPTION
Memory allocations with `GFP_KERNEL` flag can cause input/output operations to a storage
device. These operations can fail thus requiring to reset the device.

Therefore `GFP_KERNEL` cannot be safely used between `usb_lock_device()`
and `usb_unlock_device()` incovations. It should be replaced by `GFP_NOIO`.

LINKS
[Sample bugfix](http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=acbe2febe71abb2360b008e9ab3ee5c44169f78c)

EXAMPLE
The following drivers contain this error (in version 2.6.32):

  • `drivers/usb/core/devices.c`
  • `drivers/usb/core/message.c`

Related issues 1 (0 open1 closed)

Related to C Instrumentation Framework - Feature #3802: Add ability to refer to function argument by its name specified in aspect fileClosedEvgeny Novikov12/14/2012

Actions
Actions

Also available in: Atom PDF