1. 07 Jun, 2013 6 commits
    • Linus Torvalds's avatar
      Merge tag 'sound-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 308f8813
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       - A pile of small regression fix patches for HD-audio VIA codecs
       - Quirks for HD-aduio and USB-audio devices
       - A trivial SIS7019 error path fix
      
      * tag 'sound-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: usb-audio - Fix invalid volume resolution on Logitech HD webcam c270
        ALSA: usb-audio - Apply Logitech QuickCam Pro 9000 quirk only to audio iface
        ALSA: hda/via - Clean up duplicated codes
        ALSA: hda/via - Fix wrongly cleared pins after suspend on VT1802
        ALSA: hda - Add keep_eapd_on flag to generic parser
        ALSA: hda - Allow setting automute/automic hooks after parsing
        ALSA: hda/via - Disable broken dynamic power control
        ALSA: usb-audio: fix Roland/Cakewalk UM-3G support
        ALSA: hda - Add headset quirk for two Dell machines
        ALSA: hda - add dock support for Thinkpad T431s
        ALSA: sis7019: fix error return code in sis_chip_create()
      308f8813
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 3132aef2
      Linus Torvalds authored
      Pull power management and ACPI fixes from Rafael J Wysocki:
      
       - Fix for an ACPI PM regression causing Toshiba P870-303 to crash
         during boot from Rafael J Wysocki.
      
       - ACPI fix for an issue causing some drivers to attempt to bind to
         devices they shouldn't touch from Aaron Lu.
      
       - Fix for a recent cpufreq regression related to a possible race with
         CPU offline from Michael Wang.
      
       - ACPI cpufreq regression fix for an issue causing turbo frequencies to
         be underutilized in some cases from Ross Lagerwall.
      
       - cpufreq-cpu0 driver fix related to incorrect clock ACPI usage from
         Guennadi Liakhovetski.
      
       - HP WMI driver fix for an issue causing GPS initialization and
         poweroff failures on HP Elitebook 6930p from Lan Tianyu.
      
       - APEI (ACPI Platform Error Interface) fix for an issue in the error
         code path in ghes_probe() from Wei Yongjun.
      
       - New ACPI video driver blacklist entries for HP m4 and HP Pavilion g6
         from Alex Hung and Ash Willis.
      
      * tag 'pm+acpi-3.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / PM: Do not execute _PS0 for devices without _PSC during initialization
        cpufreq: cpufreq-cpu0: use the exact frequency for clk_set_rate()
        cpufreq: protect 'policy->cpus' from offlining during __gov_queue_work()
        ACPI / scan: do not match drivers against objects having scan handlers
        ACPI / APEI: fix error return code in ghes_probe()
        acpi-cpufreq: set current frequency based on target P-State
        ACPI / video: ignore BIOS initial backlight value for HP Pavilion g6
        ACPI / video: ignore BIOS initial backlight value for HP m4
        x86 / platform / hp_wmi: Fix bluetooth_rfkill misuse in hp_wmi_rfkill_setup()
      3132aef2
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-fixes' · c6617b39
      Rafael J. Wysocki authored
      * pm-fixes:
        cpufreq: cpufreq-cpu0: use the exact frequency for clk_set_rate()
        cpufreq: protect 'policy->cpus' from offlining during __gov_queue_work()
        acpi-cpufreq: set current frequency based on target P-State
      c6617b39
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-fixes' · 2314b692
      Rafael J. Wysocki authored
      * acpi-fixes:
        ACPI / PM: Do not execute _PS0 for devices without _PSC during initialization
        ACPI / scan: do not match drivers against objects having scan handlers
        ACPI / APEI: fix error return code in ghes_probe()
        ACPI / video: ignore BIOS initial backlight value for HP Pavilion g6
        ACPI / video: ignore BIOS initial backlight value for HP m4
        x86 / platform / hp_wmi: Fix bluetooth_rfkill misuse in hp_wmi_rfkill_setup()
      2314b692
    • Rafael J. Wysocki's avatar
      ACPI / PM: Do not execute _PS0 for devices without _PSC during initialization · 7cd8407d
      Rafael J. Wysocki authored
      Commit b3785492 (ACPI / PM: Do not power manage devices in unknown
      initial states) added code to force devices without _PSC, but having
      _PS0 defined in the ACPI namespace, into ACPI power state D0 by
      executing _PS0 for them.  That turned out to break Toshiba P870-303,
      however, so revert that code.
      
      References: https://bugzilla.kernel.org/show_bug.cgi?id=58201Reported-and-tested-by: default avatarJerome Cantenot <jerome.cantenot@gmail.com>
      Tracked-down-by: default avatarLan Tianyu <tianyu.lan@intel.com>
      Cc: 3.9+ <stable@vger.kernel.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      7cd8407d
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 1612e111
      Linus Torvalds authored
      Pull networking fix from David Miller:
       "This is a quick one commit pull request to cure the regression
        introduced by the MSG_CMSG_COMPAT change."
      
      (Background: commit 1be374a0 completely broke 32-bit COMPAT handling
      by not only disallowing MSG_CMSG_COMPAT from user APIs, but clearing it
      in our own internal use too!)
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        net: Unbreak compat_sys_{send,recv}msg
      1612e111
  2. 06 Jun, 2013 17 commits
    • Linus Torvalds's avatar
      Merge tag 'staging-3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · e2b02e25
      Linus Torvalds authored
      Pull staging driver fixes from Greg Kroah-Hartman:
       "Here are some staging and IIO driver fixes for the 3.10-rc5 release.
      
        All of them are tiny, and fix a number of reported issues (build and
        runtime)"
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      
      * tag 'staging-3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        iio:inkern: Fix typo/bug in convert raw to processed.
        iio: frequency: ad4350: Fix bug / typo in mask
        inkern: iio_device_put after incorrect return/goto
        staging: alarm-dev: information leak in alarm_compat_ioctl()
        iio:callback buffer: free the scan_mask
        staging: alarm-dev: information leak in alarm_ioctl()
        drivers: staging: zcache: fix compile error
        staging: dwc2: fix value of dma_mask
      e2b02e25
    • Linus Torvalds's avatar
      Merge tag 'tty-3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 3b285cb2
      Linus Torvalds authored
      Pull tty/serial driver fixes from Greg Kroah-Hartman:
       "Here are some small bugfixes, and one revert, of serial driver issues
        that have been reported"
      
      * tag 'tty-3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        Revert "serial: 8250: Make SERIAL_8250_RUNTIME_UARTS work correctly"
        serial: samsung: enable clock before clearing pending interrupts during init
        serial/imx: disable hardware flow control at startup
      3b285cb2
    • Linus Torvalds's avatar
      Merge tag 'usb-3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · c6d6b9d1
      Linus Torvalds authored
      Pull USB fixes from Greg Kroah-Hartman:
       "Here are a number of USB bugfixes and new device ids for the 3.10-rc5
        tree.
      
        Nothing major here, a number of new device ids (and movement from the
        option to the zte_ev driver of a number of ids that we had previously
        gotten wrong, some xhci bugfixes, some usb-serial driver fixes that
        were recently found, some host controller fixes / reverts, and a
        variety of smaller other things"
      
      * tag 'usb-3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (29 commits)
        USB: option,zte_ev: move most ZTE CDMA devices to zte_ev
        USB: option: blacklist network interface on Huawei E1820
        USB: whiteheat: fix broken port configuration
        USB: serial: fix TIOCMIWAIT return value
        USB: mos7720: fix hardware flow control
        USB: keyspan: remove unused endpoint-array access
        USB: keyspan: fix bogus array index
        USB: zte_ev: fix broken open
        USB: serial: Add Option GTM681W to qcserial device table.
        USB: Serial: cypress_M8: Enable FRWD Dongle hidcom device
        USB: EHCI: fix regression related to qh_refresh()
        usbfs: Increase arbitrary limit for USB 3 isopkt length
        USB: zte_ev: fix control-message timeouts
        USB: mos7720: fix message timeouts
        USB: iuu_phoenix: fix bulk-message timeout
        USB: ark3116: fix control-message timeout
        USB: mos7840: fix DMA to stack
        USB: mos7720: fix DMA to stack
        USB: visor: fix initialisation of Treo/Kyocera devices
        USB: serial: fix Treo/Kyocera interrrupt-in urb context
        ...
      c6d6b9d1
    • Linus Torvalds's avatar
      Merge tag 'pci-v3.10-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · c51aa6db
      Linus Torvalds authored
      Pull PCI fixes from Bjorn Helgaas:
       "This fixes a crash when booting a 32-bit kernel via the EFI boot stub.
      
        PCI ROM from EFI
            x86/PCI: Map PCI setup data with ioremap() so it can be in highmem"
      
      * tag 'pci-v3.10-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        x86/PCI: Map PCI setup data with ioremap() so it can be in highmem
      c51aa6db
    • Linus Torvalds's avatar
      Merge tag 'for-linus-v3.10-rc5' of git://oss.sgi.com/xfs/xfs · e6395b68
      Linus Torvalds authored
      Pull more xfs updates from Ben Myers:
       "Here are several fixes for filesystems with CRC support turned on:
        fixes for quota, remote attributes, and recovery.  There is also some
        feature work related to CRCs: the implementation of CRCs for the inode
        unlinked lists, disabling noattr2/attr2 options when appropriate, and
        bumping the maximum number of ACLs.
      
        I would have preferred to defer this last category of items to 3.11.
        This would require setting a feature bit for the on-disk changes, so
        there is some pressure to get these in 3.10.  I believe this
        represents the end of the CRC related queue.
      
         - Rework of dquot CRCs
         - Fix for remote attribute invalidation of a leaf
         - Fix ordering of transaction replay in recovery
         - Implement CRCs for inode unlinked list
         - Disable noattr2/attr2 mount options when CRCs are enabled
         - Bump the limitation of ACL entries for v5 superblocks"
      
      * tag 'for-linus-v3.10-rc5' of git://oss.sgi.com/xfs/xfs:
        xfs: increase number of ACL entries for V5 superblocks
        xfs: disable noattr2/attr2 mount options for CRC enabled filesystems
        xfs: inode unlinked list needs to recalculate the inode CRC
        xfs: fix log recovery transaction item reordering
        xfs: fix remote attribute invalidation for a leaf
        xfs: rework dquot CRCs
      e6395b68
    • Andy Lutomirski's avatar
      net: Unbreak compat_sys_{send,recv}msg · a7526eb5
      Andy Lutomirski authored
      I broke them in this commit:
      
          commit 1be374a0
          Author: Andy Lutomirski <luto@amacapital.net>
          Date:   Wed May 22 14:07:44 2013 -0700
      
              net: Block MSG_CMSG_COMPAT in send(m)msg and recv(m)msg
      
      This patch adds __sys_sendmsg and __sys_sendmsg as common helpers that accept
      MSG_CMSG_COMPAT and blocks MSG_CMSG_COMPAT at the syscall entrypoints.  It
      also reverts some unnecessary checks in sys_socketcall.
      
      Apparently I was suffering from underscore blindness the first time around.
      Signed-off-by: default avatarAndy Lutomirski <luto@amacapital.net>
      Tested-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a7526eb5
    • Dan Williams's avatar
      USB: option,zte_ev: move most ZTE CDMA devices to zte_ev · 73228a05
      Dan Williams authored
      Per some ZTE Linux drivers I found for the AC2716, the following patch
      moves most ZTE CDMA devices from option to zte_ev.  The blacklist stuff
      that option does is not required with zte_ev, because it doesn't
      implement any of the send_setup hooks which the blacklist suppressed.
      
      I did not move the 2718 over because I could not find any ZTE Linux
      drivers for that device, nor even any Windows drivers.
      Signed-off-by: default avatarDan Williams <dcbw@redhat.com>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      73228a05
    • Bjørn Mork's avatar
      USB: option: blacklist network interface on Huawei E1820 · b8a24e62
      Bjørn Mork authored
      The mode used by Windows for the Huawei E1820 will use the
      same ff/ff/ff class codes for both serial and network
      functions.
      Reported-by: default avatarGraham Inggs <graham.inggs@uct.ac.za>
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b8a24e62
    • Johan Hovold's avatar
      USB: whiteheat: fix broken port configuration · 9eecf22d
      Johan Hovold authored
      When configuring the port (e.g. set_termios) the port minor number
      rather than the port number was used in the request (and they only
      coincide for minor number 0).
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohan Hovold <jhovold@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9eecf22d
    • Dave Chinner's avatar
      xfs: increase number of ACL entries for V5 superblocks · 0a8aa193
      Dave Chinner authored
      The limit of 25 ACL entries is arbitrary, but baked into the on-disk
      format.  For version 5 superblocks, increase it to the maximum nuber
      of ACLs that can fit into a single xattr.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
      Reviewed-by: default avatarMark Tinguely <tinuguely@sgi.com>
      Signed-off-by: default avatarBen Myers <bpm@sgi.com>
      
      (cherry picked from commit 5c87d4bc)
      0a8aa193
    • Dave Chinner's avatar
      xfs: disable noattr2/attr2 mount options for CRC enabled filesystems · f763fd44
      Dave Chinner authored
      attr2 format is always enabled for v5 superblock filesystems, so the
      mount options to enable or disable it need to be cause mount errors.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
      Signed-off-by: default avatarBen Myers <bpm@sgi.com>
      
      (cherry picked from commit d3eaace8)
      f763fd44
    • Dave Chinner's avatar
      xfs: inode unlinked list needs to recalculate the inode CRC · ad868afd
      Dave Chinner authored
      The inode unlinked list manipulations operate directly on the inode
      buffer, and so bypass the inode CRC calculation mechanisms. Hence an
      inode on the unlinked list has an invalid CRC. Fix this by
      recalculating the CRC whenever we modify an unlinked list pointer in
      an inode, ncluding during log recovery. This is trivial to do and
      results in  unlinked list operations always leaving a consistent
      inode in the buffer.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarMark Tinguely <tinguely@sgi.com>
      Signed-off-by: default avatarBen Myers <bpm@sgi.com>
      
      (cherry picked from commit 0a32c26e)
      ad868afd
    • Dave Chinner's avatar
      xfs: fix log recovery transaction item reordering · 75406170
      Dave Chinner authored
      There are several constraints that inode allocation and unlink
      logging impose on log recovery. These all stem from the fact that
      inode alloc/unlink are logged in buffers, but all other inode
      changes are logged in inode items. Hence there are ordering
      constraints that recovery must follow to ensure the correct result
      occurs.
      
      As it turns out, this ordering has been working mostly by chance
      than good management. The existing code moves all buffers except
      cancelled buffers to the head of the list, and everything else to
      the tail of the list. The problem with this is that is interleaves
      inode items with the buffer cancellation items, and hence whether
      the inode item in an cancelled buffer gets replayed is essentially
      left to chance.
      
      Further, this ordering causes problems for log recovery when inode
      CRCs are enabled. It typically replays the inode unlink buffer long before
      it replays the inode core changes, and so the CRC recorded in an
      unlink buffer is going to be invalid and hence any attempt to
      validate the inode in the buffer is going to fail. Hence we really
      need to enforce the ordering that the inode alloc/unlink code has
      expected log recovery to have since inode chunk de-allocation was
      introduced back in 2003...
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarMark Tinguely <tinguely@sgi.com>
      Signed-off-by: default avatarBen Myers <bpm@sgi.com>
      
      (cherry picked from commit a775ad77)
      75406170
    • Dave Chinner's avatar
      xfs: fix remote attribute invalidation for a leaf · ea929536
      Dave Chinner authored
      When invalidating an attribute leaf block block, there might be
      remote attributes that it points to. With the recent rework of the
      remote attribute format, we have to make sure we calculate the
      length of the attribute correctly. We aren't doing that in
      xfs_attr3_leaf_inactive(), so fix it.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
      Reviewed-by: default avatarMark Tinguely <tinuguely@sgi.com>
      Signed-off-by: default avatarBen Myers <bpm@sgi.com>
      
      (cherry picked from commit 59913f14)
      ea929536
    • Dave Chinner's avatar
      xfs: rework dquot CRCs · bb9b8e86
      Dave Chinner authored
      Calculating dquot CRCs when the backing buffer is written back just
      doesn't work reliably. There are several places which manipulate
      dquots directly in the buffers, and they don't calculate CRCs
      appropriately, nor do they always set the buffer up to calculate
      CRCs appropriately.
      
      Firstly, if we log a dquot buffer (e.g. during allocation) it gets
      logged without valid CRC, and so on recovery we end up with a dquot
      that is not valid.
      
      Secondly, if we recover/repair a dquot, we don't have a verifier
      attached to the buffer and hence CRCs are not calculated on the way
      down to disk.
      
      Thirdly, calculating the CRC after we've changed the contents means
      that if we re-read the dquot from the buffer, we cannot verify the
      contents of the dquot are valid, as the CRC is invalid.
      
      So, to avoid all the dquot CRC errors that are being detected by the
      read verifier, change to using the same model as for inodes. That
      is, dquot CRCs are calculated and written to the backing buffer at
      the time the dquot is flushed to the backing buffer. If we modify
      the dquot directly in the backing buffer, calculate the CRC
      immediately after the modification is complete. Hence the dquot in
      the on-disk buffer should always have a valid CRC.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
      Reviewed-by: default avatarBen Myers <bpm@sgi.com>
      Signed-off-by: default avatarBen Myers <bpm@sgi.com>
      
      (cherry picked from commit 6fcdc59d)
      bb9b8e86
    • Peter Zijlstra's avatar
      arch, mm: Remove tlb_fast_mode() · 29eb7782
      Peter Zijlstra authored
      Since the introduction of preemptible mmu_gather TLB fast mode has been
      broken. TLB fast mode relies on there being absolutely no concurrency;
      it frees pages first and invalidates TLBs later.
      
      However now we can get concurrency and stuff goes *bang*.
      
      This patch removes all tlb_fast_mode() code; it was found the better
      option vs trying to patch the hole by entangling tlb invalidation with
      the scheduler.
      
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Tony Luck <tony.luck@intel.com>
      Reported-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      29eb7782
    • Linus Torvalds's avatar
      Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 2c95523c
      Linus Torvalds authored
      Pull kbuild fixes from Michal Marek:
       "There is one fix for a kbuild regression, plus three kconfig fixes for
        bugs that have alway been there, but are simple enough to be fixed in
        an -rc"
      
      * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        kconfig/menu.c: fix multiple references to expressions in menu_add_prop()
        mconf: handle keys in empty dialogs
        kbuild: Don't assume dts files live in arch/*/boot/dts
        scripts/config: fix assignment of parameters for short version of --*-after options
      2c95523c
  3. 05 Jun, 2013 17 commits
    • Matt Fleming's avatar
      x86/PCI: Map PCI setup data with ioremap() so it can be in highmem · 65694c5a
      Matt Fleming authored
      f9a37be0 ("x86: Use PCI setup data") added support for using PCI ROM
      images from setup_data.  This used phys_to_virt(), which is not valid for
      highmem addresses, and can cause a crash when booting a 32-bit kernel via
      the EFI boot stub.
      
      pcibios_add_device() assumes that the physical addresses stored in
      setup_data are accessible via the direct kernel mapping, and that calling
      phys_to_virt() is valid.  This isn't guaranteed to be true on x86 where the
      direct mapping range is much smaller than on x86-64.
      
      Calling phys_to_virt() on a highmem address results in the following:
      
       BUG: unable to handle kernel paging request at 39a3c198
       IP: [<c262be0f>] pcibios_add_device+0x2f/0x90
       ...
       Call Trace:
        [<c2370c73>] pci_device_add+0xe3/0x130
        [<c274640b>] pci_scan_single_device+0x8b/0xb0
        [<c2370d08>] pci_scan_slot+0x48/0x100
        [<c2371904>] pci_scan_child_bus+0x24/0xc0
        [<c262a7b0>] pci_acpi_scan_root+0x2c0/0x490
        [<c23b7203>] acpi_pci_root_add+0x312/0x42f
        ...
      
      The solution is to use ioremap() instead of phys_to_virt() to map the
      setup data into the kernel address space.
      
      [bhelgaas: changelog]
      Tested-by: default avatarJani Nikula <jani.nikula@intel.com>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: Seth Forshee <seth.forshee@canonical.com>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: stable@vger.kernel.org	# v3.8+
      65694c5a
    • Johan Hovold's avatar
      USB: serial: fix TIOCMIWAIT return value · f4488035
      Johan Hovold authored
      Fix regression introduced by commit 143d9d96 ("USB: serial: add
      tiocmiwait subdriver operation") which made the ioctl operation return
      ENODEV rather than ENOIOCTLCMD when a subdriver TIOCMIWAIT
      implementation is missing.
      Signed-off-by: default avatarJohan Hovold <jhovold@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f4488035
    • Guennadi Liakhovetski's avatar
      cpufreq: cpufreq-cpu0: use the exact frequency for clk_set_rate() · 0ca68436
      Guennadi Liakhovetski authored
      clk_set_rate() isn't supposed to accept approximate frequencies, instead
      a supported frequency should be obtained from clk_round_rate() and then
      used to set the clock.
      Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Acked-by: default avatarShawn Guo <shawn.guo@linaro.org>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0ca68436
    • Michael Wang's avatar
      cpufreq: protect 'policy->cpus' from offlining during __gov_queue_work() · 2f7021a8
      Michael Wang authored
      Jiri Kosina <jkosina@suse.cz> and Borislav Petkov <bp@alien8.de>
      reported the warning:
      
      [   51.616759] ------------[ cut here ]------------
      [   51.621460] WARNING: at arch/x86/kernel/smp.c:123 native_smp_send_reschedule+0x58/0x60()
      [   51.629638] Modules linked in: ext2 vfat fat loop snd_hda_codec_hdmi usbhid snd_hda_codec_realtek coretemp kvm_intel kvm snd_hda_intel snd_hda_codec crc32_pclmul crc32c_intel ghash_clmulni_intel snd_hwdep snd_pcm aesni_intel sb_edac aes_x86_64 ehci_pci snd_page_alloc glue_helper snd_timer xhci_hcd snd iTCO_wdt iTCO_vendor_support ehci_hcd edac_core lpc_ich acpi_cpufreq lrw gf128mul ablk_helper cryptd mperf usbcore usb_common soundcore mfd_core dcdbas evdev pcspkr processor i2c_i801 button microcode
      [   51.675581] CPU: 0 PID: 244 Comm: kworker/1:1 Tainted: G        W    3.10.0-rc1+ #10
      [   51.683407] Hardware name: Dell Inc. Precision T3600/0PTTT9, BIOS A08 01/24/2013
      [   51.690901] Workqueue: events od_dbs_timer
      [   51.695069]  0000000000000009 ffff88043a2f5b68 ffffffff8161441c ffff88043a2f5ba8
      [   51.702602]  ffffffff8103e540 0000000000000033 0000000000000001 ffff88043d5f8000
      [   51.710136]  00000000ffff0ce1 0000000000000001 ffff88044fc4fc08 ffff88043a2f5bb8
      [   51.717691] Call Trace:
      [   51.720191]  [<ffffffff8161441c>] dump_stack+0x19/0x1b
      [   51.725396]  [<ffffffff8103e540>] warn_slowpath_common+0x70/0xa0
      [   51.731473]  [<ffffffff8103e58a>] warn_slowpath_null+0x1a/0x20
      [   51.737378]  [<ffffffff81025628>] native_smp_send_reschedule+0x58/0x60
      [   51.744013]  [<ffffffff81072cfd>] wake_up_nohz_cpu+0x2d/0xa0
      [   51.749745]  [<ffffffff8104f6bf>] add_timer_on+0x8f/0x110
      [   51.755214]  [<ffffffff8105f6fe>] __queue_delayed_work+0x16e/0x1a0
      [   51.761470]  [<ffffffff8105f251>] ? try_to_grab_pending+0xd1/0x1a0
      [   51.767724]  [<ffffffff8105f78a>] mod_delayed_work_on+0x5a/0xa0
      [   51.773719]  [<ffffffff814f6b5d>] gov_queue_work+0x4d/0xc0
      [   51.779271]  [<ffffffff814f60cb>] od_dbs_timer+0xcb/0x170
      [   51.784734]  [<ffffffff8105e75d>] process_one_work+0x1fd/0x540
      [   51.790634]  [<ffffffff8105e6f2>] ? process_one_work+0x192/0x540
      [   51.796711]  [<ffffffff8105ef22>] worker_thread+0x122/0x380
      [   51.802350]  [<ffffffff8105ee00>] ? rescuer_thread+0x320/0x320
      [   51.808264]  [<ffffffff8106634a>] kthread+0xea/0xf0
      [   51.813200]  [<ffffffff81066260>] ? flush_kthread_worker+0x150/0x150
      [   51.819644]  [<ffffffff81623d5c>] ret_from_fork+0x7c/0xb0
      [   51.918165] nouveau E[     DRM] GPU lockup - switching to software fbcon
      [   51.930505]  [<ffffffff81066260>] ? flush_kthread_worker+0x150/0x150
      [   51.936994] ---[ end trace f419538ada83b5c5 ]---
      
      It was caused by the policy->cpus changed during the process of
      __gov_queue_work(), in other word, cpu offline happened.
      
      Use get/put_online_cpus() to prevent the offline from happening while
      __gov_queue_work() is running.
      
      [rjw: The problem has been present since recent commit 031299b3
      (cpufreq: governors: Avoid unnecessary per cpu timer interrupts)]
      
      References: https://lkml.org/lkml/2013/6/5/88Reported-by: default avatarBorislav Petkov <bp@alien8.de>
      Reported-and-tested-by: default avatarJiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarMichael Wang <wangyun@linux.vnet.ibm.com>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      2f7021a8
    • Aaron Lu's avatar
      ACPI / scan: do not match drivers against objects having scan handlers · 9f29ab11
      Aaron Lu authored
      With the introduction of ACPI scan handlers, an ACPI device object
      with an ACPI scan handler attached to it must not be bound to an ACPI
      driver any more.  Therefore it doesn't make sense to match those
      ACPI device objects against a newly registered ACPI driver in
      acpi_bus_match(), so make that function return 0 if the device
      object passed to it has an ACPI scan handler attached.
      
      This also addresses a regression related to a broken ACPI table in
      the BIOS, where it has defined a _ROM method under the PCI root
      bridge object.  This causes the video module to treat that object
      as a display controller device (since only display devices are
      supposed to have a _ROM method defined according to the ACPI spec).
      As a result, the ACPI video driver binds to the PCI root bridge
      object and overwrites the previously assigned driver_data field of
      it, causing subsequent calls to acpi_get_pci_dev() to fail.
      
      [rjw: Subject and changelog]
      References: https://bugzilla.kernel.org/show_bug.cgi?id=58091Reported-by: default avatarJason Cassell <bluesloth600@gmail.com>
      Reported-and-bisected-by: default avatarDmitry S. Demin <dmitryy.demin@gmail.com>
      Cc: 3.9+ <stable@kernel.org>
      Signed-off-by: default avatarAaron Lu <aaron.lu@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      9f29ab11
    • Wei Yongjun's avatar
      ACPI / APEI: fix error return code in ghes_probe() · a98d4f64
      Wei Yongjun authored
      Fix to return a negative error code in the acpi_gsi_to_irq() and
      request_irq() error handling case instead of 0, as done elsewhere
      in this function.
      Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Reviewed-by: default avatarHuang Ying <ying.huang@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      a98d4f64
    • Ross Lagerwall's avatar
      acpi-cpufreq: set current frequency based on target P-State · 8673b83b
      Ross Lagerwall authored
      Commit 4b31e774 (Always set P-state on initialization) fixed bug
      #4634 and caused the driver to always set the target P-State at
      least once since the initial P-State may not be the desired one.
      Commit 5a1c0228 (cpufreq: Avoid calling cpufreq driver's target()
      routine if target_freq == policy->cur) caused a regression in
      this behavior.
      
      This fixes the regression by setting policy->cur based on the CPU's
      target frequency rather than the CPU's current reported frequency
      (which may be different).  This means that the P-State will be set
      initially if the CPU's target frequency is different from the
      governor's target frequency.
      
      This fixes an issue where setting the default governor to
      performance wouldn't correctly enable turbo mode on all cores.
      Signed-off-by: default avatarRoss Lagerwall <rosslagerwall@gmail.com>
      Reviewed-by: default avatarLen Brown <len.brown@intel.com>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Cc: 3.8+ <stable@vger.kernel.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      8673b83b
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 4d3797d7
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix timeouts with direct mode authentication in mac80211, from
          Stanislaw Gruszka.
      
       2) Aggregation sessions can deadlock in ath9k, from Felix Fietkau.
      
       3) Netfilter's xt_addrtype doesn't work with ipv6 due to route lookups
          creating undesirable cache entries, from Florian Westphal.
      
       4) Fix netfilter's ipt_ULOG from generating non-NULL terminated
          strings.
      
       5) Fix netdev transmit queue crashes in mac80211, from Johannes Berg.
      
       6) Fix copy and paste error in 802.11 stack that broke reporting of
          64-bit station tx statistics, from Felix Fietkau.
      
       7) When qlge_probe fails, it leaks the netdev.  Fix from Wei Yongjun.
      
       8) SKB control block (where we store the IP options information,
          amongst other things) must be cleared properly otherwise ICMP
          sending can crash for IP tunnels.  Fix from Eric Dumazet.
      
       9) Verification of Energy Efficient Ether support was coded wrongly,
          the test was inversed.  Fix from Giuseppe CAVALLARO.
      
      10) TCP handles redirects improperly because the wrong flow key is used
          for the route lookup.  From Michal Kubecek.
      
      11) Don't interpret MSG_CMSG_COMPAT from userspace, fix from Andy
          Lutomirski.
      
      12) The new AF_VSOCK was missing from the lockdep string table, fix from
          Federico Vaga.
      
      13) be2net doesn't handle checksumming of IP fragments properly, from
          Somnath Kotur.
      
      14) Fix several bugs in the device address list code that lead to
          crashes and other misbehaviors.  From Jay Vosburgh.
      
      15) Fix ipv6 segmentation handling of fragmented GRE tunnel traffic,
          from Pravin B Shalr.
      
      16) Fix usage of stale policies in IPSEC layer, from Paul Moore.
      
      17) Fix team driver dump of ports when there are a large number of them,
          from Jiri Pirko.
      
      18) Fix softlockups in UDP ipv4 socket lookup causes by and error in the
          hlist_nulls_for_each_entry_rcu() macro.  From Eric Dumazet.
      
      19) Fix several regressions added by the high rate accuracy changes to
          the htb packet scheduler.  From Eric Dumazet.
      
      20) Fix DMA'ing onto the stack in esd_usb2 and peak_usb CAN drivers,
          from Olivier Sobrie and Marc Kleine-Budde.
      
      21) Fix unremovable network devices due to missing route pointer
          installation in the per-device ipv6 address list entries.  From Gao
          feng.
      
      22) Apply the tg3 5719 DMA workaround on 5720 chips as well, otherwise
          we get stalls.  From Nithin Sujir.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (68 commits)
        net_sched: htb: do not mix 1ns and 64ns time units
        net: fix sk_buff head without data area
        tg3: Add read dma workaround for 5720
        net: ethernet: xilinx_emaclite: set protocol selector bits when writing ANAR
        bnx2x: Fix bridged GSO for 57710/57711 chips
        net: fec: add fallback to random MAC address
        bnx2x: fix TCP offload for tunneling ipv4 over ipv6
        ipv6: assign rt6_info to inet6_ifaddr in init_loopback
        net/mlx4_core: Keep VF assigned MAC in the PF admin table
        net/mlx4_en: Handle unassigned VF MAC address correctly
        net/mlx4_core: Return -EPROBE_DEFER when a VF is probed before PF is sufficiently initialized
        net/mlx4_en: Fix adaptive moderation cq update
        net: can: peak_usb: Do not do dma on the stack
        net: can: esd_usb2: Do not do dma on the stack
        net: can: kvaser_usb: fix reception on "USBcan Pro" and "USBcan R" type hardware.
        net_sched: restore "overhead xxx" handling
        net: force a reload of first item in hlist_nulls_for_each_entry_rcu
        hyperv: Fix vlan_proto setting in netvsc_recv_callback()
        team: fix port list dump for big number of ports
        list: introduce list_first_entry_or_null
        ...
      4d3797d7
    • Takashi Iwai's avatar
      ALSA: usb-audio - Fix invalid volume resolution on Logitech HD webcam c270 · 11e7064f
      Takashi Iwai authored
      USB audio driver spews an error message when probing Logitech HD
      webcam c270:
        ALSA mixer.c:1300 usb_audio: Warning! Unlikely big volume range (=6144), cval->res is probably wrong.
        ALSA mixer.c:1304 usb_audio: [5] FU [Mic Capture Volume] ch = 1, val = 1536/7680/1
      
      Obviously the device needs a fixed volume resolution (cval->res = 384)
      like other Logitech devices.
      
      Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=821735Reported-and-tested-by: default avatarCristian Rodríguez <crrodriguez@opensuse.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      11e7064f
    • Eric Dumazet's avatar
      net_sched: htb: do not mix 1ns and 64ns time units · 5343a7f8
      Eric Dumazet authored
      commit 56b765b7 ("htb: improved accuracy at high rates") added another
      regression for low rates, because it mixes 1ns and 64ns time units.
      
      So the maximum delay (mbuffer) was not 60 second, but 937 ms.
      
      Lets convert all time fields to 1ns as 64bit arches are becoming the
      norm.
      Reported-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Tested-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5343a7f8
    • Pablo Neira's avatar
      net: fix sk_buff head without data area · 5e71d9d7
      Pablo Neira authored
      Eric Dumazet spotted that we have to check skb->head instead
      of skb->data as skb->head points to the beginning of the
      data area of the skbuff. Similarly, we have to initialize the
      skb->head pointer, not skb->data in __alloc_skb_head.
      
      After this fix, netlink crashes in the release path of the
      sk_buff, so let's fix that as well.
      
      This bug was introduced in (0ebd0ac5 net: add function to
      allocate sk_buff head without data area).
      Reported-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5e71d9d7
    • Nithin Sujir's avatar
      tg3: Add read dma workaround for 5720 · 9bc297ea
      Nithin Sujir authored
      Commit 091f0ea3 "tg3: Add New 5719 Read
      DMA workaround" added a workaround for TX DMA stall on the 5719. This
      workaround needs to be applied to the 5720 as well.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarRoland Dreier <roland@purestorage.com>
      Tested-by: default avatarRoland Dreier <roland@purestorage.com>
      Signed-off-by: default avatarNithin Nayak Sujir <nsujir@broadcom.com>
      Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9bc297ea
    • Jens Renner \(EFE\)'s avatar
      net: ethernet: xilinx_emaclite: set protocol selector bits when writing ANAR · 3a5395b3
      Jens Renner \(EFE\) authored
      This patch sets the protocol selector bits (4:0) of the PHY's MII_ADVERTISE
      register (ANAR) when writing ADVERTISE_ALL. The protocol selector bits are
      indicating IEEE 803.3u support and are fixed / read-only on some PHYs. Not
      setting them correctly on others (like TI DP83630) makes the PHY fall back
      to 10M HDX mode which should be avoided.
      
      Tested for TI DP83630 PHY on Microblaze platform.
      Signed-off-by: default avatarJens Renner <renner@efe-gmbh.de>
      Tested-by: default avatarMichal Simek <monstr@monstr.eu>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3a5395b3
    • Yuval Mintz's avatar
      bnx2x: Fix bridged GSO for 57710/57711 chips · 44dbc78e
      Yuval Mintz authored
      It was recently found out that GSO on 57710/57711 was broken, due to packets
      being sent without a valid IP checksum.
      
      Commit 057cf65e "bnx2x: Fix GSO for 57710/57711 chips" partially fixed this
      issue, but failed to set the correct IP checksum when receiving GSO packets
      via bridges, as such packets enter bnx2x_tx_split() and the FW flags needed
      to calculate IP checksum were erroneously set in the incorrect
      buffer descriptor.
      
      This patch re-enables GSO in said scenario for 57710/57711 chips.
      Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: default avatarAriel Elior <ariele@broadcom.com>
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      44dbc78e
    • Linus Torvalds's avatar
      Merge tag 'mmc-fixes-for-3.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc · 844ce9f2
      Linus Torvalds authored
      Pull MMC fixes from Chris Ball:
       - sdhci-acpi: Fix initial runtime PM status, add more ACPI IDs
       - atmel-mci, omap_hsmmc: DT handling fixes
       - esdhc-imx: Fix SDIO IRQs, fix multiblock reads (both h/w errata)
      
      * tag 'mmc-fixes-for-3.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:
        mmc: omap_hsmmc: Skip platform_get_resource_byname() for dt case
        mmc: omap_hsmmc: convert to dma_request_slave_channel_compat
        mmc: omap_hsmmc: Fix the DT pbias workaround for MMC controllers 2 to 5
        mmc: sdhci-pci: add more device ids
        mmc: sdhci-acpi: add more device ids
        mmc: sdhci-acpi: fix initial runtime pm status
        mmc: atmel-mci: convert to dma_request_slave_channel_compat()
        mmc: sdhci-esdhc-imx: fix multiblock reads on i.MX53
        mmc: sdhci-esdhc-imx: Fix SDIO interrupts
      844ce9f2
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · bb762929
      Linus Torvalds authored
      Pull input fixes from Dmitry Torokhov:
       "Just a 2 small driver fixups here"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: wacom - fix a typo for Cintiq 22HDT
        Input: synaptics - fix sync lost after resume on some laptops
      bb762929
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 8b35c359
      Linus Torvalds authored
      Pull kvm bugfixes from Gleb Natapov:
       "The bulk of the fixes is in MIPS KVM kernel<->userspace ABI.  MIPS KVM
        is new for 3.10 and some problems were found with current ABI.  It is
        better to fix them now and do not have a kernel with broken one"
      
      * 'fixes' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: Fix race in apic->pending_events processing
        KVM: fix sil/dil/bpl/spl in the mod/rm fields
        KVM: Emulate multibyte NOP
        ARM: KVM: be more thorough when invalidating TLBs
        ARM: KVM: prevent NULL pointer dereferences with KVM VCPU ioctl
        mips/kvm: Use ENOIOCTLCMD to indicate unimplemented ioctls.
        mips/kvm: Fix ABI by moving manipulation of CP0 registers to KVM_{G,S}ET_ONE_REG
        mips/kvm: Use ARRAY_SIZE() instead of hardcoded constants in kvm_arch_vcpu_ioctl_{s,g}et_regs
        mips/kvm: Fix name of gpr field in struct kvm_regs.
        mips/kvm: Fix ABI for use of 64-bit registers.
        mips/kvm: Fix ABI for use of FPU.
      8b35c359