mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
Merge branch 'akpm' (more incoming from Andrew)
Merge second patch-bomb from Andrew Morton: - A little DM fix - the MM queue * emailed patches from Andrew Morton <[email protected]>: (154 commits) ksm: allocate roots when needed mm: cleanup "swapcache" in do_swap_page mm,ksm: swapoff might need to copy mm,ksm: FOLL_MIGRATION do migration_entry_wait ksm: shrink 32-bit rmap_item back to 32 bytes ksm: treat unstable nid like in stable tree ksm: add some comments tmpfs: fix mempolicy object leaks tmpfs: fix use-after-free of mempolicy object mm/fadvise.c: drain all pagevecs if POSIX_FADV_DONTNEED fails to discard all pages mm: export mmu notifier invalidates mm: accelerate mm_populate() treatment of THP pages mm: use long type for page counts in mm_populate() and get_user_pages() mm: accurately document nr_free_*_pages functions with code comments HWPOISON: change order of error_states[]'s elements HWPOISON: fix misjudgement of page_action() for errors on mlocked pages memcg: stop warning on memcg_propagate_kmem net: change type of virtio_chan->p9_max_pages vmscan: change type of vm_total_pages to unsigned long fs/nfsd: change type of max_delegations, nfsd_drc_max_mem and nfsd_drc_mem_used ...
This commit is contained in:
commit
5ce1a70e2f
113 changed files with 4408 additions and 1632 deletions
|
|
@ -5177,6 +5177,7 @@ int usb_reset_device(struct usb_device *udev)
|
|||
{
|
||||
int ret;
|
||||
int i;
|
||||
unsigned int noio_flag;
|
||||
struct usb_host_config *config = udev->actconfig;
|
||||
|
||||
if (udev->state == USB_STATE_NOTATTACHED ||
|
||||
|
|
@ -5186,6 +5187,17 @@ int usb_reset_device(struct usb_device *udev)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Don't allocate memory with GFP_KERNEL in current
|
||||
* context to avoid possible deadlock if usb mass
|
||||
* storage interface or usbnet interface(iSCSI case)
|
||||
* is included in current configuration. The easist
|
||||
* approach is to do it for every device reset,
|
||||
* because the device 'memalloc_noio' flag may have
|
||||
* not been set before reseting the usb device.
|
||||
*/
|
||||
noio_flag = memalloc_noio_save();
|
||||
|
||||
/* Prevent autosuspend during the reset */
|
||||
usb_autoresume_device(udev);
|
||||
|
||||
|
|
@ -5230,6 +5242,7 @@ int usb_reset_device(struct usb_device *udev)
|
|||
}
|
||||
|
||||
usb_autosuspend_device(udev);
|
||||
memalloc_noio_restore(noio_flag);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(usb_reset_device);
|
||||
|
|
|
|||
Loading…
Reference in a new issue