1. 09 Dec, 2011 1 commit
  2. 28 Nov, 2011 2 commits
  3. 26 Nov, 2011 37 commits
    • Greg Kroah-Hartman's avatar
      Linux 3.1.3 · e6c2efaf
      Greg Kroah-Hartman authored
      e6c2efaf
    • Mikulas Patocka's avatar
      vmscan: fix shrinker callback bug in fs/super.c · 26e15787
      Mikulas Patocka authored
      commit 09f363c7 upstream.
      
      The callback must not return -1 when nr_to_scan is zero. Fix the bug in
      fs/super.c and add this requirement to the callback specification.
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Cc: Dave Chinner <david@fromorbit.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      26e15787
    • Antonio Quartulli's avatar
      batman-adv: unify hash_entry field position in tt_local/global_entry · 1bccf765
      Antonio Quartulli authored
      commit 93840ac4 upstream.
      
      Function tt_response_fill_table() actually uses a tt_local_entry pointer to
      iterate either over the local or the global table entries (it depends on the
      what hash table is passed as argument). To iterate over such entries the
      hlist_for_each_entry_rcu() macro has to access their "hash_entry" field which
      MUST be at the same position in both the tt_global/local_entry structures.
      Reported-by: default avatarSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Signed-off-by: default avatarAntonio Quartulli <ordex@autistici.org>
      Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      1bccf765
    • Simon Wunderlich's avatar
      batman-adv: add sanity check when removing global tts · 9bab392e
      Simon Wunderlich authored
      commit 6e801494 upstream.
      
      After removing the batman-adv module, the hash may be already gone
      when tt_global_del_orig() tries to clean the hash. This patch adds
      a sanity check to avoid this.
      Signed-off-by: default avatarSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Tested-by: default avatarAlexey Fisher <bug-track@fisher-privat.net>
      Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      9bab392e
    • Simon Wunderlich's avatar
      batman-adv: remove references for global tt entries · 7766f4ed
      Simon Wunderlich authored
      commit 531027fc upstream.
      
      struct tt_global_entry holds a reference to an orig_node which must be
      decremented before deallocating the structure.
      Signed-off-by: default avatarSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Tested-by: default avatarAlexey Fisher <bug-track@fisher-privat.net>
      Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      7766f4ed
    • Antonio Quartulli's avatar
      batman-adv: correctly set the data field in the TT_REPONSE packet · 02460fcf
      Antonio Quartulli authored
      commit 9d852393 upstream.
      
      In the TT_RESPONSE packet, the number of carried entries is not correctly set.
      This leads to a wrong interpretation of the packet payload on the receiver side
      causing random entries to be added to the global translation table. Therefore
      the latter gets always corrupted, triggering a table recovery all the time.
      Signed-off-by: default avatarAntonio Quartulli <ordex@autistici.org>
      Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      02460fcf
    • Antonio Quartulli's avatar
      batman-adv: fix tt_local_reset_flags() function · bde860c4
      Antonio Quartulli authored
      commit 31901264 upstream.
      
      Currently the counter of tt_local_entry structures (tt_local_num) is incremented
      each time the tt_local_reset_flags() is invoked causing the node to send wrong
      TT_REPONSE packets containing a copy of non-initialised memory thus corrupting
      other nodes global translation table and making higher level communication
      impossible.
      Reported-by: default avatarJunkeun Song <jun361@gmail.com>
      Signed-off-by: default avatarAntonio Quartulli <ordex@autistici.org>
      Acked-by: default avatarJunkeun Song <jun361@gmail.com>
      Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      bde860c4
    • Jesse Barnes's avatar
      drm/i915: always set FDI composite sync bit · 89c59226
      Jesse Barnes authored
      commit c4f9c4c2 upstream.
      
      It's needed for 3 pipe support as well as just regular functionality
      (e.g. DisplayPort).
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      Tested-by: default avatarAdam Jackson <ajax@redhat.com>
      Tested-by: default avatarEugeni Dodonov <eugeni.dodonov@intel.com>
      Signed-off-by: default avatarKeith Packard <keithp@keithp.com>
      Signed-off-by: default avatarRobert Hooker <robert.hooker@canonical.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      89c59226
    • Jesse Barnes's avatar
      drm/i915: fix IVB cursor support · 8ec180a7
      Jesse Barnes authored
      commit 65a21cd6 upstream.
      
      The cursor regs have moved around, add the offsets and new macros for
      getting at them.
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      Tested-By: default avatarEugeni Dodonov <eugeni.dodonov@intel.com>
      Reviewed-By: default avatarEugeni Dodonov <eugeni.dodonov@intel.com>
      Signed-off-by: default avatarKeith Packard <keithp@keithp.com>
      Signed-off-by: default avatarRobert Hooker <robert.hooker@canonical.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      8ec180a7
    • sordna's avatar
      USB: quirks: adding more quirky webcams to avoid squeaky audio · f4fb118c
      sordna authored
      commit 0d145d7d upstream.
      
      The following patch contains additional affected webcam models, on top of the
      patches commited to linux-next 2394d67e
      and 5b253d88Signed-off-by: default avatarsordna <sordna@gmail.com>
      Cc: Oliver Neukum <oliver@neukum.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      f4fb118c
    • Josh Boyer's avatar
      USB: add quirk for Logitech C600 web cam · 99acf712
      Josh Boyer authored
      commit 60c71ca9 upstream.
      
      We've had another report of the "chipmunk" sound on a Logitech C600 webcam.
      This patch resolves the issue.
      Signed-off-by: default avatarJosh Boyer <jwboyer@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      99acf712
    • Thomas Poussevin's avatar
      USB: EHCI: fix HUB TT scheduling issue with iso transfer · f0cc710a
      Thomas Poussevin authored
      commit 811c926c upstream.
      
      The current TT scheduling doesn't allow to play and then record on a
      full-speed device connected to a high speed hub.
      
      The IN iso stream can only start on the first uframe (0-2 for a 165 us)
      because of CSPLIT transactions.
      For the OUT iso stream there no such restriction. uframe 0-5 are possible.
      
      The idea of this patch is that the first uframe are precious (for IN TT iso
      stream) and we should allocate the last uframes first if possible.
      
      For that we reverse the order of uframe allocation (last uframe first).
      
      Here an example :
      
      hid interrupt stream
      ----------------------------------------------------------------------
      uframe                |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |
      ----------------------------------------------------------------------
      max_tt_usecs          | 125 | 125 | 125 | 125 | 125 | 125 | 30  |  0  |
      ----------------------------------------------------------------------
      used usecs on a frame | 13  |  0  |  0  |  0  |  0  |  0  |  0  |  0  |
      ----------------------------------------------------------------------
      
      iso OUT stream
      ----------------------------------------------------------------------
      uframe                |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |
      ----------------------------------------------------------------------
      max_tt_usecs          | 125 | 125 | 125 | 125 | 125 | 125 | 30  |  0  |
      ----------------------------------------------------------------------
      used usecs on a frame | 13  | 125 |  39 |  0  |  0  |  0  |  0  |  0  |
      ----------------------------------------------------------------------
      
      There no place for iso IN stream  (uframe 0-2 are used) and we got "cannot
      submit datapipe for urb 0, error -28: not enough bandwidth" error.
      
      With the patch this become.
      
      iso OUT stream
      ----------------------------------------------------------------------
      uframe                |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |
      ----------------------------------------------------------------------
      max_tt_usecs          | 125 | 125 | 125 | 125 | 125 | 125 | 30  |  0  |
      ----------------------------------------------------------------------
      used usecs on a frame |  13 |  0  |  0  |  0  | 125 |  39 |  0  |  0  |
      ----------------------------------------------------------------------
      
      iso IN stream
      ----------------------------------------------------------------------
      uframe                |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |
      ----------------------------------------------------------------------
      max_tt_usecs          | 125 | 125 | 125 | 125 | 125 | 125 | 30  |  0  |
      ----------------------------------------------------------------------
      used usecs on a frame |  13 |  0  | 125 | 40  | 125 |  39 |  0  |  0  |
      ----------------------------------------------------------------------
      Signed-off-by: default avatarMatthieu Castet <matthieu.castet@parrot.com>
      Signed-off-by: default avatarThomas Poussevin <thomas.poussevin@parrot.com>
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      f0cc710a
    • Alan Stern's avatar
      usb-storage: Accept 8020i-protocol commands longer than 12 bytes · ce0e4cbd
      Alan Stern authored
      commit 2f640bf4 upstream.
      
      The 8020i protocol (also 8070i and QIC-157) uses 12-byte commands;
      shorter commands must be padded.  Simon Detheridge reports that his
      3-TB USB disk drive claims to use the 8020i protocol (which is
      normally meant for ATAPI devices like CD drives), and because of its
      large size, the disk drive requires the use of 16-byte commands.
      However the usb_stor_pad12_command() routine in usb-storage always
      sets the command length to 12, making the drive impossible to use.
      
      Since the SFF-8020i specification allows for 16-byte commands in
      future extensions, we may as well accept them.  This patch (as1490)
      changes usb_stor_pad12_command() to leave commands larger than 12
      bytes alone rather than truncating them.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Tested-by: default avatarSimon Detheridge <simon@widgit.com>
      CC: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      ce0e4cbd
    • Andrew Worsley's avatar
      USB: Fix Corruption issue in USB ftdi driver ftdi_sio.c · 4c72dfff
      Andrew Worsley authored
      commit b1ffb4c8 upstream.
      
      Fix for ftdi_set_termios() glitching output
      
      ftdi_set_termios() is constantly setting the baud rate, data bits and parity
      unnecessarily on every call, . When called while characters are being
      transmitted can cause the FTDI chip to corrupt the serial port bit stream
      output by stalling the output half a bit during the output of a character.
      Simple fix by skipping this setting if the baud rate/data bits/parity are
      unchanged.
      Signed-off-by: default avatarAndrew Worsley <amworsley@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      4c72dfff
    • Bart Hartgers's avatar
      USB: ark3116 initialisation fix · 22e88b06
      Bart Hartgers authored
      commit 583182ba upstream.
      
      This patch for the usb serial ark3116 driver fixes an initialisation
      ordering bug that gets triggered on hotplug when using at least recent
      debian/ubuntu userspace. Without it, ark3116 serial cables don't work.
      Signed-off-by: default avatarBart Hartgers <bart.hartgers@gmail.com>
      Tested-by: law_ence.dev@ntlworld.com
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      22e88b06
    • Alan Stern's avatar
      USB: workaround for bug in old version of GCC · 43e3b323
      Alan Stern authored
      commit 97ff22ee upstream.
      
      This patch (as1491) works around a bug in GCC-3.4.6, which is still
      supposed to be supported.  The number of microseconds in the udelay()
      call in quirk_usb_disable_ehci() is fixed at 100, but the compiler
      doesn't understand this and generates a link-time error.  So we
      replace the otherwise unused variable "delta" with a simple constant
      100.  This same pattern is already used in other delay loops in that
      source file.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Reported-by: default avatarKonrad Rzepecki <krzepecki@dentonet.pl>
      Tested-by: default avatarKonrad Rzepecki <krzepecki@dentonet.pl>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      43e3b323
    • Havard Skinnemoen's avatar
      USB: cdc-acm: Fix disconnect() vs close() race · 195f0cd9
      Havard Skinnemoen authored
      commit 5dc2470c upstream.
      
      There's a race between the USB disconnect handler and the TTY close
      handler which may cause the acm object to be freed while it's still
      being used. This may lead to things like
      
      http://article.gmane.org/gmane.linux.usb.general/54250
      
      and
      
      https://lkml.org/lkml/2011/5/29/64
      
      This is the simplest fix I could come up with. Holding on to open_mutex
      while closing the TTY device prevents acm_disconnect() from freeing the
      acm object between acm->port.count drops to 0 and the TTY side of the
      cleanups are finalized.
      Signed-off-by: default avatarHavard Skinnemoen <hskinnemoen@google.com>
      Cc: Oliver Neukum <oliver@neukum.name>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      195f0cd9
    • Tomoya MORINAGA's avatar
      USB: pch_udc: Support new device LAPIS Semiconductor ML7831 IOH · c5d412bf
      Tomoya MORINAGA authored
      commit 731ad81e upstream.
      
      ML7831 is companion chip for Intel Atom E6xx series.
      Signed-off-by: default avatarTomoya MORINAGA <tomoya-linux@dsn.lapis-semi.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      c5d412bf
    • wangyanqing's avatar
      USB: serial: pl2303: rm duplicate id · a0d5bdc5
      wangyanqing authored
      commit 0c165955 upstream.
      
      I get report from customer that his usb-serial
      converter doesn't work well,it sometimes work,
      but sometimes it doesn't.
      
      The usb-serial converter's id:
      vendor_id product_id
      0x4348    0x5523
      
      Then I search the usb-serial codes, and there are
      two drivers announce support this device, pl2303
      and ch341, commit 026dfaf1 cause it. Through many
      times to test, ch341 works well with this device,
      and pl2303 doesn't work quite often(it just work quite little).
      
      ch341 works well with this device, so we doesn't
      need pl2303 to support.I try to revert 026dfaf1 first,
      but it failed. So I prepare this patch by hand to revert it.
      Signed-off-by: default avatarWang YanQing <Udknight@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      a0d5bdc5
    • Ferenc Wagner's avatar
      USB: option: add PID of Huawei E173s 3G modem · 6954d95f
      Ferenc Wagner authored
      commit 4aa3648c upstream.
      Signed-off-by: default avatarFerenc Wagner <wferi@niif.hu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      6954d95f
    • zheng.zhijian@zte.com.cn's avatar
      USB: option: release new PID for ZTE 3G modem · 8cf4a733
      zheng.zhijian@zte.com.cn authored
      commit 46b5a277 upstream.
      
      This patch adds new PIDs for ZTE 3G modem, after we confirm it and tested.
      Thanks for Dan's work at kernel option devier.
      Signed-off-by: default avatarAlvin.Zheng <zheng.zhijian@zte.com.cn>
      Signed-off-by: default avatarwsalvin <wsalvin@yahoo.com.cn>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      8cf4a733
    • Alan Stern's avatar
      USB: XHCI: resume root hubs when the controller resumes · 78c5cd61
      Alan Stern authored
      commit f69e3120 upstream.
      
      This patch (as1494) fixes a problem in xhci-hcd's resume routine.
      When the controller is runtime-resumed, this can only mean that one of
      the two root hubs has made a wakeup request and therefore needs to be
      resumed as well.  Rather than try to determine which root hub requires
      attention (which might be difficult in the case where a new
      non-SuperSpeed device has been plugged in), the patch simply resumes
      both root hubs.
      
      Without this change, there is a race: The controller might be put back
      to sleep before it can activate its IRQ line, and the wakeup condition
      might never get handled.
      
      The patch also simplifies the logic in xhci_resume a little, combining
      some repeated flag settings into a single pair of statements.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      CC: Sarah Sharp <sarah.a.sharp@linux.intel.com>
      Tested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      78c5cd61
    • Don Zickus's avatar
      usb, xhci: fix lockdep warning on endpoint timeout · 6b17329b
      Don Zickus authored
      commit f43d6231 upstream.
      
      While debugging a usb3 problem, I stumbled upon this lockdep warning.
      
      Oct 18 21:41:17 dhcp47-74 kernel: =================================
      Oct 18 21:41:17 dhcp47-74 kernel: [ INFO: inconsistent lock state ]
      Oct 18 21:41:17 dhcp47-74 kernel: 3.1.0-rc4nmi+ #456
      Oct 18 21:41:17 dhcp47-74 kernel: ---------------------------------
      Oct 18 21:41:17 dhcp47-74 kernel: inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
      Oct 18 21:41:17 dhcp47-74 kernel: swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
      Oct 18 21:41:17 dhcp47-74 kernel: (&(&xhci->lock)->rlock){?.-...}, at: [<ffffffffa0228990>] xhci_stop_endpoint_command_watchdog+0x30/0x340 [xhci_hcd]
      Oct 18 21:41:17 dhcp47-74 kernel: {IN-HARDIRQ-W} state was registered at:
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff8109a941>] __lock_acquire+0x781/0x1660
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff8109bed7>] lock_acquire+0x97/0x170
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff81501b46>] _raw_spin_lock+0x46/0x80
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffffa02299fa>] xhci_irq+0x3a/0x1960 [xhci_hcd]
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffffa022b351>] xhci_msi_irq+0x31/0x40 [xhci_hcd]
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff810d2305>] handle_irq_event_percpu+0x85/0x320
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff810d25e8>] handle_irq_event+0x48/0x70
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff810d537d>] handle_edge_irq+0x6d/0x130
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff810048c9>] handle_irq+0x49/0xa0
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff8150d56d>] do_IRQ+0x5d/0xe0
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff815029b0>] ret_from_intr+0x0/0x13
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff81388aca>] usb_set_device_state+0x8a/0x180
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff8138f038>] usb_add_hcd+0x2b8/0x730
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffffa022ed7e>] xhci_pci_probe+0x9e/0xd4 [xhci_hcd]
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff8127915f>] local_pci_probe+0x5f/0xd0
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff8127a569>] pci_device_probe+0x119/0x120
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff81334473>] driver_probe_device+0xa3/0x2c0
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff8133473b>] __driver_attach+0xab/0xb0
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff8133373c>] bus_for_each_dev+0x6c/0xa0
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff813341fe>] driver_attach+0x1e/0x20
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff81333b88>] bus_add_driver+0x1f8/0x2b0
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff81334df6>] driver_register+0x76/0x140
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff8127a7c6>] __pci_register_driver+0x66/0xe0
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffffa013c04a>] snd_timer_find+0x4a/0x70 [snd_timer]
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffffa013c00e>] snd_timer_find+0xe/0x70 [snd_timer]
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff810001d3>] do_one_initcall+0x43/0x180
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff810a9ed2>] sys_init_module+0x92/0x1f0
      Oct 18 21:41:17 dhcp47-74 kernel:  [<ffffffff8150ab6b>] system_call_fastpath+0x16/0x1b
      Oct 18 21:41:17 dhcp47-74 kernel: irq event stamp: 631984
      Oct 18 21:41:17 dhcp47-74 kernel: hardirqs last  enabled at (631984): [<ffffffff81502720>] _raw_spin_unlock_irq+0x30/0x50
      Oct 18 21:41:17 dhcp47-74 kernel: hardirqs last disabled at (631983): [<ffffffff81501c49>] _raw_spin_lock_irq+0x19/0x90
      Oct 18 21:41:17 dhcp47-74 kernel: softirqs last  enabled at (631980): [<ffffffff8105ff63>] _local_bh_enable+0x13/0x20
      Oct 18 21:41:17 dhcp47-74 kernel: softirqs last disabled at (631981): [<ffffffff8150ce6c>] call_softirq+0x1c/0x30
      Oct 18 21:41:17 dhcp47-74 kernel:
      Oct 18 21:41:17 dhcp47-74 kernel: other info that might help us debug this:
      Oct 18 21:41:17 dhcp47-74 kernel: Possible unsafe locking scenario:
      Oct 18 21:41:17 dhcp47-74 kernel:
      Oct 18 21:41:17 dhcp47-74 kernel:       CPU0
      Oct 18 21:41:17 dhcp47-74 kernel:       ----
      Oct 18 21:41:17 dhcp47-74 kernel:  lock(&(&xhci->lock)->rlock);
      Oct 18 21:41:17 dhcp47-74 kernel:  <Interrupt>
      Oct 18 21:41:17 dhcp47-74 kernel:    lock(&(&xhci->lock)->rlock);
      Oct 18 21:41:17 dhcp47-74 kernel:
      Oct 18 21:41:17 dhcp47-74 kernel: *** DEADLOCK ***
      Oct 18 21:41:17 dhcp47-74 kernel:
      Oct 18 21:41:17 dhcp47-74 kernel: 1 lock held by swapper/0:
      Oct 18 21:41:17 dhcp47-74 kernel: #0:  (&ep->stop_cmd_timer){+.-...}, at: [<ffffffff8106abf2>] run_timer_softirq+0x162/0x570
      Oct 18 21:41:17 dhcp47-74 kernel:
      Oct 18 21:41:17 dhcp47-74 kernel: stack backtrace:
      Oct 18 21:41:17 dhcp47-74 kernel: Pid: 0, comm: swapper Tainted: G        W   3.1.0-rc4nmi+ #456
      Oct 18 21:41:17 dhcp47-74 kernel: Call Trace:
      Oct 18 21:41:17 dhcp47-74 kernel: <IRQ>  [<ffffffff81098ed7>] print_usage_bug+0x227/0x270
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff810999c6>] mark_lock+0x346/0x410
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8109a7de>] __lock_acquire+0x61e/0x1660
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81099893>] ? mark_lock+0x213/0x410
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8109bed7>] lock_acquire+0x97/0x170
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffffa0228990>] ? xhci_stop_endpoint_command_watchdog+0x30/0x340 [xhci_hcd]
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81501b46>] _raw_spin_lock+0x46/0x80
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffffa0228990>] ? xhci_stop_endpoint_command_watchdog+0x30/0x340 [xhci_hcd]
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffffa0228990>] xhci_stop_endpoint_command_watchdog+0x30/0x340 [xhci_hcd]
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8106abf2>] ? run_timer_softirq+0x162/0x570
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8106ac9d>] run_timer_softirq+0x20d/0x570
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8106abf2>] ? run_timer_softirq+0x162/0x570
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffffa0228960>] ? xhci_queue_isoc_tx_prepare+0x8e0/0x8e0 [xhci_hcd]
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff810604d2>] __do_softirq+0xf2/0x3f0
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81020edd>] ? lapic_next_event+0x1d/0x30
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81090d4e>] ? clockevents_program_event+0x5e/0x90
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8150ce6c>] call_softirq+0x1c/0x30
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8100484d>] do_softirq+0x8d/0xc0
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8105ff35>] irq_exit+0xe5/0x100
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8150d65e>] smp_apic_timer_interrupt+0x6e/0x99
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff8150b6f0>] apic_timer_interrupt+0x70/0x80
      Oct 18 21:41:17 dhcp47-74 kernel: <EOI>  [<ffffffff81095d8d>] ? trace_hardirqs_off+0xd/0x10
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff812ddb76>] ? acpi_idle_enter_bm+0x227/0x25b
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff812ddb71>] ? acpi_idle_enter_bm+0x222/0x25b
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff813eda63>] cpuidle_idle_call+0x103/0x290
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81002155>] cpu_idle+0xe5/0x160
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff814e7f50>] rest_init+0xe0/0xf0
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff814e7e70>] ? csum_partial_copy_generic+0x170/0x170
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81df8e23>] start_kernel+0x3fc/0x407
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81df8321>] x86_64_start_reservations+0x131/0x135
      Oct 18 21:41:17 dhcp47-74 kernel: [<ffffffff81df8412>] x86_64_start_kernel+0xed/0xf4
      Oct 18 21:41:17 dhcp47-74 kernel: xhci_hcd 0000:00:14.0: xHCI host not responding to stop endpoint command.
      Oct 18 21:41:17 dhcp47-74 kernel: xhci_hcd 0000:00:14.0: Assuming host is dying, halting host.
      Oct 18 21:41:17 dhcp47-74 kernel: xhci_hcd 0000:00:14.0: HC died; cleaning up
      Oct 18 21:41:17 dhcp47-74 kernel: usb 3-4: device descriptor read/8, error -110
      Oct 18 21:41:17 dhcp47-74 kernel: usb 3-4: device descriptor read/8, error -22
      Oct 18 21:41:17 dhcp47-74 kernel: hub 3-0:1.0: cannot disable port 4 (err = -19)
      
      Basically what is happening is in xhci_stop_endpoint_command_watchdog()
      the xhci->lock is grabbed with just spin_lock.  What lockdep deduces is
      that if an interrupt occurred while in this function it would deadlock
      with xhci_irq because that function also grabs the xhci->lock.
      
      Fixing it is trivial by using spin_lock_irqsave instead.
      
      This should be queued to stable kernels as far back as 2.6.33.
      Signed-off-by: default avatarDon Zickus <dzickus@redhat.com>
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      6b17329b
    • Don Zickus's avatar
      usb, xhci: Clear warm reset change event during init · 88079a41
      Don Zickus authored
      commit 79c3dd81 upstream.
      
      I noticed on my Panther Point system that I wasn't getting hotplug events
      for my usb3.0 disk on a usb3 port.  I tracked it down to the fact that the
      system had the warm reset change bit still set.  This seemed to block future
      events from being received, including a hotplug event.
      
      Clearing this bit during initialization allowed the hotplug event to be
      received and the disk to be recognized correctly.
      
      This patch should be backported to kernels as old as 2.6.39.
      Signed-off-by: default avatarDon Zickus <dzickus@redhat.com>
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      88079a41
    • Sarah Sharp's avatar
      xhci: Set slot and ep0 flags for address command. · 4e2b6929
      Sarah Sharp authored
      commit d31c285b upstream.
      
      Matt's AsMedia xHCI host controller was responding with a Context Error
      to an address device command after a configured device reset.  Some
      sequence of events leads both the slot and endpoint zero add flags
      cleared to zero, which the AsMedia host doesn't like:
      
      [  223.701839] xhci_hcd 0000:03:00.0: Slot ID 1 Input Context:
      [  223.701841] xhci_hcd 0000:03:00.0: @ffff880137b25000 (virt) @ffffc000 (dma) 0x000000 - drop flags
      [  223.701843] xhci_hcd 0000:03:00.0: @ffff880137b25004 (virt) @ffffc004 (dma) 0x000000 - add flags
      [  223.701846] xhci_hcd 0000:03:00.0: @ffff880137b25008 (virt) @ffffc008 (dma) 0x000000 - rsvd2[0]
      [  223.701848] xhci_hcd 0000:03:00.0: @ffff880137b2500c (virt) @ffffc00c (dma) 0x000000 - rsvd2[1]
      [  223.701850] xhci_hcd 0000:03:00.0: @ffff880137b25010 (virt) @ffffc010 (dma) 0x000000 - rsvd2[2]
      [  223.701852] xhci_hcd 0000:03:00.0: @ffff880137b25014 (virt) @ffffc014 (dma) 0x000000 - rsvd2[3]
      [  223.701854] xhci_hcd 0000:03:00.0: @ffff880137b25018 (virt) @ffffc018 (dma) 0x000000 - rsvd2[4]
      [  223.701857] xhci_hcd 0000:03:00.0: @ffff880137b2501c (virt) @ffffc01c (dma) 0x000000 - rsvd2[5]
      [  223.701858] xhci_hcd 0000:03:00.0: Slot Context:
      [  223.701860] xhci_hcd 0000:03:00.0: @ffff880137b25020 (virt) @ffffc020 (dma) 0x8400000 - dev_info
      [  223.701862] xhci_hcd 0000:03:00.0: @ffff880137b25024 (virt) @ffffc024 (dma) 0x010000 - dev_info2
      [  223.701864] xhci_hcd 0000:03:00.0: @ffff880137b25028 (virt) @ffffc028 (dma) 0x000000 - tt_info
      [  223.701866] xhci_hcd 0000:03:00.0: @ffff880137b2502c (virt) @ffffc02c (dma) 0x000000 - dev_state
      [  223.701869] xhci_hcd 0000:03:00.0: @ffff880137b25030 (virt) @ffffc030 (dma) 0x000000 - rsvd[0]
      [  223.701871] xhci_hcd 0000:03:00.0: @ffff880137b25034 (virt) @ffffc034 (dma) 0x000000 - rsvd[1]
      [  223.701873] xhci_hcd 0000:03:00.0: @ffff880137b25038 (virt) @ffffc038 (dma) 0x000000 - rsvd[2]
      [  223.701875] xhci_hcd 0000:03:00.0: @ffff880137b2503c (virt) @ffffc03c (dma) 0x000000 - rsvd[3]
      [  223.701877] xhci_hcd 0000:03:00.0: Endpoint 00 Context:
      [  223.701879] xhci_hcd 0000:03:00.0: @ffff880137b25040 (virt) @ffffc040 (dma) 0x000000 - ep_info
      [  223.701881] xhci_hcd 0000:03:00.0: @ffff880137b25044 (virt) @ffffc044 (dma) 0x2000026 - ep_info2
      [  223.701883] xhci_hcd 0000:03:00.0: @ffff880137b25048 (virt) @ffffc048 (dma) 0xffffe8e0 - deq
      [  223.701885] xhci_hcd 0000:03:00.0: @ffff880137b25050 (virt) @ffffc050 (dma) 0x000000 - tx_info
      [  223.701887] xhci_hcd 0000:03:00.0: @ffff880137b25054 (virt) @ffffc054 (dma) 0x000000 - rsvd[0]
      [  223.701889] xhci_hcd 0000:03:00.0: @ffff880137b25058 (virt) @ffffc058 (dma) 0x000000 - rsvd[1]
      [  223.701892] xhci_hcd 0000:03:00.0: @ffff880137b2505c (virt) @ffffc05c (dma) 0x000000 - rsvd[2]
      ...
      [  223.701927] xhci_hcd 0000:03:00.0: // Ding dong!
      [  223.701992] xhci_hcd 0000:03:00.0: Setup ERROR: address device command for slot 1.
      
      The xHCI spec says that both flags must be set to one for the Address
      Device command.  When the device is first enumerated,
      xhci_setup_addressable_virt_dev() does set those flags.  However, when
      the device is addressed after it has been reset in the configured state,
      xhci_setup_addressable_virt_dev() is not called, and
      xhci_copy_ep0_dequeue_into_input_ctx() is called instead.  That function
      relies on the flags being set up by previous commands, which apparently
      isn't a good assumption.
      
      Move the setting of the flags into the common parent function.
      
      This should be queued for stable kernels as old as 2.6.35, since that
      was the first introduction of xhci_copy_ep0_dequeue_into_input_ctx.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Tested-by: default avatarMatt <mdm@iinet.net.au>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      4e2b6929
    • Claudio Scordino's avatar
      drivers/base/node.c: fix compilation error with older versions of gcc · 5bccc0d0
      Claudio Scordino authored
      commit 91a13c28 upstream.
      
      Patch to fix the error message "directives may not be used inside a macro
      argument" which appears when the kernel is compiled for the cris architecture.
      Signed-off-by: default avatarClaudio Scordino <claudio@evidence.eu.com>
      Acked-by: default avatarDavid Rientjes <rientjes@google.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      5bccc0d0
    • Axel Lin's avatar
      pcie-gadget-spear: Add "platform:" prefix for platform modalias · c528b724
      Axel Lin authored
      commit 161f1419 upstream.
      
      Since 43cc71ee (platform: prefix MODALIAS
      with "platform:"), the platform modalias is prefixed with "platform:".
      Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
      Acked-by: default avatarPratyush Anand <pratyush.anand@st.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      c528b724
    • Wu Fengguang's avatar
      ALSA: hda - fix ELD memory leak · 46e18b7f
      Wu Fengguang authored
      Backported from commit b95d68b8.
      
      memset(eld) clears eld->proc_entry which will leak the struct
      snd_info_entry when unloading module.
      
      Fix it by
      - memset only the fields before eld->eld_buffer
      - set eld->eld_valid to true _after_ all eld fields have been filled
      
      Cc: Pierre-louis Bossart <pierre-louis.bossart@intel.com>
      Acked-by: default avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      46e18b7f
    • Jeff Layton's avatar
      nfs: when attempting to open a directory, fall back on normal lookup (try #5) · 0d2c754e
      Jeff Layton authored
      commit 1788ea6e upstream.
      
      commit d953126a changed how nfs_atomic_lookup handles an -EISDIR return
      from an OPEN call. Prior to that patch, that caused the client to fall
      back to doing a normal lookup. When that patch went in, the code began
      returning that error to userspace. The d_revalidate codepath however
      never had the corresponding change, so it was still possible to end up
      with a NULL ctx->state pointer after that.
      
      That patch caused a regression. When we attempt to open a directory that
      does not have a cached dentry, that open now errors out with EISDIR. If
      you attempt the same open with a cached dentry, it will succeed.
      
      Fix this by reverting the change in nfs_atomic_lookup and allowing
      attempts to open directories to fall back to a normal lookup
      
      Also, add a NFSv4-specific f_ops->open routine that just returns
      -ENOTDIR. This should never be called if things are working properly,
      but if it ever is, then the dprintk may help in debugging.
      
      To facilitate this, a new file_operations field is also added to the
      nfs_rpc_ops struct.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      0d2c754e
    • Jiri Slaby's avatar
      TTY: ldisc, wait for ldisc infinitely in hangup · e901cc45
      Jiri Slaby authored
      commit 0c73c08e upstream.
      
      For /dev/console case, we do not kill all ldisc users. It's due to
      redirected_tty_write test in __tty_hangup. In that case there still
      might be a process waiting e.g. in n_tty_read for input.
      
      We wait for such processes to disappear. The problem is that we use a
      timeout. After this timeout, we continue closing the ldisc and start
      freeing tty resources. It obviously leads to crashes when the other
      process is woken.
      
      So to fix this, we wait infinitely before reiniting the ldisc. (The
      tiocsetd remains untouched -- times out after 5s.)
      
      This is nicely reproducible with this run from shell:
        exec 0<>/dev/console 1<>/dev/console 2<>/dev/console
      and stopping a getty like:
        systemctl stop serial-getty@ttyS0.service
      
      The crash proper may be produced only under load or with constified
      timing the same as for 92f6fa09.
      Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
      Cc: Dave Young <hidave.darkstar@gmail.com>
      Cc: Dave Jones <davej@redhat.com>
      Cc: Ben Hutchings <ben@decadent.org.uk>
      Cc: Dmitriy Matrosov <sgf.dma@gmail.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      e901cc45
    • Jiri Slaby's avatar
      TTY: ldisc, move wait idle to caller · bb4006e0
      Jiri Slaby authored
      commit 30042072 upstream.
      
      It is the only place where reinit is called from. And we really need
      to wait for the old ldisc to go once. Actually this is the place where
      the waiting originally was (before removed and re-added later).
      
      This will make the fix in the following patch easier to implement.
      Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
      Cc: Dave Young <hidave.darkstar@gmail.com>
      Cc: Dave Jones <davej@redhat.com>
      Cc: Ben Hutchings <ben@decadent.org.uk>
      Cc: Dmitriy Matrosov <sgf.dma@gmail.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      bb4006e0
    • Jiri Slaby's avatar
      TTY: ldisc, allow waiting for ldisc arbitrarily long · d21ada2c
      Jiri Slaby authored
      commit df92d056 upstream.
      
      To fix a nasty bug in ldisc hup vs. reinit we need to wait infinitely
      long for ldisc to be gone. So here we add a parameter to
      tty_ldisc_wait_idle to allow that.
      
      This is only a preparation for the real fix which is done in the
      following patches.
      Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
      Cc: Dave Young <hidave.darkstar@gmail.com>
      Cc: Dave Jones <davej@redhat.com>
      Cc: Ben Hutchings <ben@decadent.org.uk>
      Cc: Dmitriy Matrosov <sgf.dma@gmail.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      d21ada2c
    • Stephen Boyd's avatar
      tty: hvc_dcc: Fix duplicate character inputs · 5a25cbde
      Stephen Boyd authored
      commit c2a3e84f upstream.
      
      Reading from the DCC grabs a character from the buffer and
      clears the status bit. Since this is a context-changing
      operation, instructions following the character read that rely on
      the status bit being accurate need to be synchronized with an
      ISB.
      
      In this case, the status bit check needs to execute after the
      character read otherwise we run the risk of reading the character
      and checking the status bit before the read can clear the status
      bit in the first place. When this happens, the user will see the
      same character they typed twice, instead of once.
      
      Add an ISB after the read and the write, so that the status check
      is synchronized with the read/write operations.
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      5a25cbde
    • Tomoya MORINAGA's avatar
      pch_uart: Support new device LAPIS Semiconductor ML7831 IOH · 39e005fc
      Tomoya MORINAGA authored
      commit 8249f743 upstream.
      
      ML7831 is companion chip for Intel Atom E6xx series.
      Signed-off-by: default avatarTomoya MORINAGA <tomoya-linux@dsn.lapis-semi.com>
      Acked-by: default avatarAlan Cox <alan@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      39e005fc
    • Tomoya MORINAGA's avatar
      pch_uart: Fix DMA resource leak issue · 091fb7d0
      Tomoya MORINAGA authored
      commit 90f04c29 upstream.
      
      Changing UART mode PIO->DMA->PIO->DMA like below, pch_uart driver can't get
      DMA channel resource.
      
      setserial /dev/ttyPCH0 ^low_latency
      setserial /dev/ttyPCH0 low_latency
      
      CAUSE:
      Changing mode using setserial command, ".startup" function which gets DMA
      channel is called before ".verify_port" function which sets
      dma-flag(use_dma/use_dma_flag) as 1.
      
      PIO->DMA
        .startup: Since dma-flag is 0, DMA channel is not requested.
        .verify_port: dma-flag is set as 1.
        .shutdown: N/A
      
      DMA->PIO
        .startup: Since dma-flag is 1, DMA channel is requested.
        .verify_port: dma-flag is set as 0.
        .shutdown: Since dma-flag is 0, DMA channel is not released.
      
      This means DMA channel resource leak occurs.
      Next time, this driver can't get DMA channel resource forever.
      
      MODIFICATION:
        Currently, when release DMA channel resource, this driver checks dma-flag.
        However, this specification occurs the above issue.
        This driver must check whether dma_request_channel is executed or not.
        The values are saved in private data variable "chan_tx/chan_tx".
        These variables mean if the value is NULL, DMA channel is not requested,
        if not NULL, DMA channel is requested.
      
      This patch fixes the issue.
      Signed-off-by: default avatarTomoya MORINAGA <tomoya.rohm@gmail.com>
      Acked-by: default avatarAlan Cox <alan@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      091fb7d0
    • Tomoya MORINAGA's avatar
      pch_uart: Fix hw-flow control issue · 81aaad2c
      Tomoya MORINAGA authored
      commit a1d7cfe2 upstream.
      
      Using hardware flow control,
      currently, register of the control-bit(AFE) is not set.
      This patch fixes the issue.
      Signed-off-by: default avatarTomoya MORINAGA <tomoya-linux@dsn.lapis-semi.com>
      Acked-by: default avatarAlan Cox <alan@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      81aaad2c
    • Tomoya MORINAGA's avatar
      pch_phub: Fix MAC address writing issue for LAPIS ML7831 · 9b0c37ef
      Tomoya MORINAGA authored
      commit 2a988791 upstream.
      
      ISSUE:
      Using ML7831, MAC address writing doesn't work well.
      
      CAUSE:
      ML7831 and EG20T have the same register map for MAC address access.
      However, this driver processes the writing the same as ML7223.
      This is not true.
      This driver must process the writing the same as EG20T.
      This patch fixes the issue.
      Signed-off-by: default avatarTomoya MORINAGA <tomoya.rohm@gmail.com>
      Cc: Masayuki Ohtak <masa-korg@dsn.okisemi.com>
      Cc: Alexander Stein <alexander.stein@systec-electronic.com>
      Cc: Denis Turischev <denis@compulab.co.il>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      9b0c37ef