1. 10 4月, 2015 3 次提交
    • L
      Merge tag 'pm+acpi-4.0-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · e5e02de0
      Linus Torvalds 提交于
      Pull power management and ACPI fixes from Rafael Wysocki:
       "These are stable-candidate fixes of some recently reported issues in
        the cpufreq core, cpuidle core, the ACPI cpuidle driver and the
        hibernate core.
      
        Specifics:
      
         - Revert a 3.17 hibernate commit that was supposed to fix an issue
           related to e820 reserved regions, but broke resume from hibernation
           on Lenovo x230 (Rafael J Wysocki).
      
         - Prevent the ACPI cpuidle driver from overwriting the name and
           description of the C0 state set by the core when the list of
           C-states changes (Thomas Schlichter).
      
         - Remove the no longer needed state_count field from struct
           cpuidle_device which prevents the list of C-states shown by the
           sysfs interface from becoming incorrect when the current number of
           them is different from the number of C-states on boot (Bartlomiej
           Zolnierkiewicz).
      
         - The cpufreq core updates the policy object of the only online CPU
           during system resume to make it reflect the current hardware state,
           but it always assumes that CPU to be CPU0 which need not be the
           case, so fix the code to avoid that assumption (Viresh Kumar)"
      
      * tag 'pm+acpi-4.0-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        Revert "PM / hibernate: avoid unsafe pages in e820 reserved regions"
        cpuidle: ACPI: do not overwrite name and description of C0
        cpuidle: remove state_count field from struct cpuidle_device
        cpufreq: Schedule work for the first-online CPU on resume
      e5e02de0
    • R
      Merge branches 'pm-sleep', 'pm-cpufreq' and 'pm-cpuidle' · b2d5fb97
      Rafael J. Wysocki 提交于
      * pm-sleep:
        Revert "PM / hibernate: avoid unsafe pages in e820 reserved regions"
      
      * pm-cpufreq:
        cpufreq: Schedule work for the first-online CPU on resume
      
      * pm-cpuidle:
        cpuidle: ACPI: do not overwrite name and description of C0
        cpuidle: remove state_count field from struct cpuidle_device
      b2d5fb97
    • L
      Merge tag 'pci-v4.0-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 3cfb2f79
      Linus Torvalds 提交于
      Pull PCI fixes from Bjorn Helgaas:
       "Here are some fixes for v4.0.  I apologize for how late they are.  We
        were hoping for some better fixes, but couldn't get them polished in
        time.  These fix:
      
         - a Xen domU oops with PCI passthrough devices
         - a sparc T5 boot failure
         - a STM SPEAr13xx crash (use after initdata freed)
         - a cpcihp hotplug driver thinko
         - an AER thinko that printed stack junk
      
        Details:
      
        Enumeration
          - Don't look for ACPI hotplug parameters if ACPI is disabled (Bjorn Helgaas)
      
        Resource management
          - Revert "sparc/PCI: Clip bridge windows to fit in upstream windows" (Bjorn Helgaas)
      
        AER
          - Avoid info leak in __print_tlp_header() (Rasmus Villemoes)
      
        PCI device hotplug
          - Add missing curly braces in cpci_configure_slot() (Dan Carpenter)
      
        ST Microelectronics SPEAr13xx host bridge driver
          - Drop __initdata from spear13xx_pcie_driver (Matwey V. Kornilov)
      
      * tag 'pci-v4.0-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        Revert "sparc/PCI: Clip bridge windows to fit in upstream windows"
        PCI: Don't look for ACPI hotplug parameters if ACPI is disabled
        PCI: cpcihp: Add missing curly braces in cpci_configure_slot()
        PCI/AER: Avoid info leak in __print_tlp_header()
        PCI: spear: Drop __initdata from spear13xx_pcie_driver
      3cfb2f79
  2. 09 4月, 2015 6 次提交
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 20624d17
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "Final drm fixes: one core locking imbalance regression, and a bunch of
        i915 baytrail s/r fixes"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm: fix drm_mode_getconnector() locking imbalance regression
        drm/i915/vlv: remove wait for previous GFX clk disable request
        drm/i915/chv: Remove Wait for a previous gfx force-off
        drm/i915/vlv: save/restore the power context base reg
      20624d17
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 9a08da1c
      Linus Torvalds 提交于
      Pull ceph revert from Sage Weil:
       "This corrects a recent misadventure with __GFP_MEMALLOC and
        PF_MEMALLOC; it turns out it's not a good fit for RBD and we're better
        off relying on dirty page throttling"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
        Revert "libceph: use memalloc flags for net IO"
      9a08da1c
    • L
      Merge branch 'akpm' (patches from Andrew) · b97fdef8
      Linus Torvalds 提交于
      Merge misc fixes from Andrew Morton:
       "Three fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        mm: numa: disable change protection for vma(VM_HUGETLB)
        include/linux/dmapool.h: declare struct device
        mm: move zone lock to a different cache line than order-0 free page lists
      b97fdef8
    • L
      Copy the kernel module data from user space in chunks · 3afe9f84
      Linus Torvalds 提交于
      Unlike most (all?) other copies from user space, kernel module loading
      is almost unlimited in size.  So we do a potentially huge
      "copy_from_user()" when we copy the module data from user space to the
      kernel buffer, which can be a latency concern when preemption is
      disabled (or voluntary).
      
      Also, because 'copy_from_user()' clears the tail of the kernel buffer on
      failures, even a *failed* copy can end up wasting a lot of time.
      
      Normally neither of these are concerns in real life, but they do trigger
      when doing stress-testing with trinity.  Running in a VM seems to add
      its own overheadm causing trinity module load testing to even trigger
      the watchdog.
      
      The simple fix is to just chunk up the module loading, so that it never
      tries to copy insanely big areas in one go.  That bounds the latency,
      and also the amount of (unnecessarily, in this case) cleared memory for
      the failure case.
      Reported-by: NSasha Levin <sasha.levin@oracle.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3afe9f84
    • L
      x86: clean up/fix 'copy_in_user()' tail zeroing · cae2a173
      Linus Torvalds 提交于
      The rule for 'copy_from_user()' is that it zeroes the remaining kernel
      buffer even when the copy fails halfway, just to make sure that we don't
      leave uninitialized kernel memory around.  Because even if we check for
      errors, some kernel buffers stay around after thge copy (think page
      cache).
      
      However, the x86-64 logic for user copies uses a copy_user_generic()
      function for all the cases, that set the "zerorest" flag for any fault
      on the source buffer.  Which meant that it didn't just try to clear the
      kernel buffer after a failure in copy_from_user(), it also tried to
      clear the destination user buffer for the "copy_in_user()" case.
      
      Not only is that pointless, it also means that the clearing code has to
      worry about the tail clearing taking page faults for the user buffer
      case.  Which is just stupid, since that case shouldn't happen in the
      first place.
      
      Get rid of the whole "zerorest" thing entirely, and instead just check
      if the destination is in kernel space or not.  And then just use
      memset() to clear the tail of the kernel buffer if necessary.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cae2a173
    • D
      Merge tag 'drm-intel-fixes-2015-04-08' of git://anongit.freedesktop.org/drm-intel into drm-fixes · f4274e23
      Dave Airlie 提交于
      three commits, all cc: stable, to address Baytrail
      suspend/resume issues.
      
      * tag 'drm-intel-fixes-2015-04-08' of git://anongit.freedesktop.org/drm-intel:
        drm/i915/vlv: remove wait for previous GFX clk disable request
        drm/i915/chv: Remove Wait for a previous gfx force-off
        drm/i915/vlv: save/restore the power context base reg
      f4274e23
  3. 08 4月, 2015 8 次提交
    • B
      Revert "sparc/PCI: Clip bridge windows to fit in upstream windows" · d10b730f
      Bjorn Helgaas 提交于
      This reverts commit d63e2e1f.
      
      David Ahern reported that d63e2e1f breaks booting on an 8-socket T5
      sparc system.  He also verified that the system boots with d63e2e1f
      reverted.  Yinghai has some fixes, but they need a little more polishing
      than we can do before v4.0.
      
      Link: http://lkml.kernel.org/r/5514391F.2030300@oracle.com	# report
      Link: http://lkml.kernel.org/r/1427857069-6789-1-git-send-email-yinghai@kernel.org # patches
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      CC: stable@vger.kernel.org	# v3.19+
      d10b730f
    • B
      PCI: Don't look for ACPI hotplug parameters if ACPI is disabled · 8647ca9a
      Bjorn Helgaas 提交于
      Booting a v3.18 or newer Xen domU kernel with PCI devices passed through
      results in an oops (this is a 32-bit 3.13.11 dom0 with a 64-bit 4.4.0
      hypervisor and 32-bit domU):
      
        BUG: unable to handle kernel paging request at 0030303e
        IP: [<c06ed0e6>] acpi_ns_validate_handle+0x12/0x1a
        Call Trace:
         [<c06eda4d>] ? acpi_evaluate_object+0x31/0x1fc
         [<c06b78e1>] ? pci_get_hp_params+0x111/0x4e0
         [<c0407bc7>] ? xen_force_evtchn_callback+0x17/0x30
         [<c04085fb>] ? xen_restore_fl_direct_reloc+0x4/0x4
         [<c0699d34>] ? pci_device_add+0x24/0x450
      
      Don't look for ACPI configuration information if ACPI has been disabled.
      
      I don't think this is the best fix, because we can boot plain Linux (no
      Xen) with "acpi=off", and we don't need this check in pci_get_hp_params().
      There should be a better fix that would make Xen domU work the same way.
      The domU kernel has ACPI support but it has no AML.  There should be a way
      to initialize the ACPI data structures so things fail gracefully rather
      than oopsing.  This is an interim fix to address the regression.
      
      Fixes: 6cd33649 ("PCI: Add pci_configure_device() during enumeration")
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=96301Reported-by: NMichael D Labriola <mlabriol@gdeb.com>
      Tested-by: NMichael D Labriola <mlabriol@gdeb.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      CC: stable@vger.kernel.org	# v3.18+
      8647ca9a
    • T
      drm: fix drm_mode_getconnector() locking imbalance regression · 04bdf441
      Tommi Rantala 提交于
      Regression in commit 2caa80e7
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Sun Feb 22 11:38:36 2015 +0100
      
          drm: Fix deadlock due to getconnector locking changes
      
      If the drm_connector_find() call returns NULL, we should no longer
      call drm_modeset_unlock() to avoid locking imbalance.
      Signed-off-by: NTommi Rantala <tt.rantala@gmail.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      04bdf441
    • L
      Merge tag 'media/v3.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 7b43b473
      Linus Torvalds 提交于
      Pull media updates from Mauro Carvalho Chehab:
       "A series of fixup patches for version 4.0:
      
         - one VB2 core fixup, when stopping the stream;
         - one VB2 core fixup for dma-contig memory type;
         - driver fixes at rtl28xx, s5p (tv, jpeg, mfc, soc-camera, sh_veu,
           cx23885, gspca"
      
      * tag 'media/v3.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        [media] rtl28xxu: return success for unimplemented FE callback
        [media] rtl2832: disable regmap register cache
        [media] vb2: Fix dma_dir setting for dma-contig mem type
        [media] media: s5p-mfc: fix broken pointer cast on 64bit arch
        [media] media: s5p-mfc: fix mmap support for 64bit arch
        [media] cx23885: fix querycap
        [media] sh_veu: v4l2_dev wasn't set
        [media] s5p-mfc: Fix NULL pointer dereference caused by not set q->lock
        [media] s5p-jpeg: exynos3250: fix erroneous reset procedure
        [media] s5p-tv: hdmi needs I2C support
        [media] s5p-jpeg: Initialize cb and cr to zero
        [media] media: fix gspca drivers build dependencies
        [media] soc-camera: Fix devm_kfree() in soc_of_bind()
        [media] media: atmel-isi: increase the burst length to improve the performance
        [media] vb2: fix 'UNBALANCED' warnings when calling vb2_thread_stop()
      7b43b473
    • N
      mm: numa: disable change protection for vma(VM_HUGETLB) · 6b79c57b
      Naoya Horiguchi 提交于
      Currently when a process accesses a hugetlb range protected with
      PROTNONE, unexpected COWs are triggered, which finally puts the hugetlb
      subsystem into a broken/uncontrollable state, where for example
      h->resv_huge_pages is subtracted too much and wraps around to a very
      large number, and the free hugepage pool is no longer maintainable.
      
      This patch simply stops changing protection for vma(VM_HUGETLB) to fix
      the problem.  And this also allows us to avoid useless overhead of minor
      faults.
      Signed-off-by: NNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Suggested-by: NMel Gorman <mgorman@suse.de>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6b79c57b
    • M
      include/linux/dmapool.h: declare struct device · ce66b032
      Mark Brown 提交于
      dmapool uses struct device in function arguments but relies on an
      implicit inclusion to declare struct device causing warnings in some
      configurations:
      
        include/linux/dmapool.h:31:7: warning: 'struct device' declared inside parameter list
      
      Fix this by adding a struct device declaration to the file.
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ce66b032
    • M
      mm: move zone lock to a different cache line than order-0 free page lists · a368ab67
      Mel Gorman 提交于
      Huang Ying reported the following problem due to commit 3484b2de ("mm:
      rearrange zone fields into read-only, page alloc, statistics and page
      reclaim lines") from the Intel performance tests
      
          24b7e581  3484b2de
          ----------------  --------------------------
                   %stddev     %change         %stddev
                       \          |                \
              152288 \261  0%     -46.2%      81911 \261  0%  aim7.jobs-per-min
                 237 \261  0%     +85.6%        440 \261  0%  aim7.time.elapsed_time
                 237 \261  0%     +85.6%        440 \261  0%  aim7.time.elapsed_time.max
               25026 \261  0%     +70.7%      42712 \261  0%  aim7.time.system_time
             2186645 \261  5%     +32.0%    2885949 \261  4%  aim7.time.voluntary_context_switches
             4576561 \261  1%     +24.9%    5715773 \261  0%  aim7.time.involuntary_context_switches
      
      The problem is specific to very large machines under stress.  It was not
      reproducible with the machines I had used to justify the original patch
      because large numbers of CPUs are required.  When pressure is high enough,
      the cache line is bouncing between CPUs trying to acquire the lock and the
      holder of the lock adjusting free lists.  The intention was that the
      acquirer of the lock would automatically have the cache line holding the
      free lists but according to Huang, this is not a universal win.
      
      One possibility is to move the zone lock to its own cache line but it
      increases the size of the zone.  This patch moves the lock to the other
      end of the free lists where they do not contend under high pressure.  It
      does mean the page allocator paths now require more cache lines but Huang
      reports that it restores performance to previous levels on large machines
      
                   %stddev     %change         %stddev
                       \          |                \
               84568 \261  1%     +94.3%     164280 \261  1%  aim7.jobs-per-min
             2881944 \261  2%     -35.1%    1870386 \261  8%  aim7.time.voluntary_context_switches
                 681 \261  1%      -3.4%        658 \261  0%  aim7.time.user_time
             5538139 \261  0%     -12.1%    4867884 \261  0%  aim7.time.involuntary_context_switches
               44174 \261  1%     -46.0%      23848 \261  1%  aim7.time.system_time
                 426 \261  1%     -48.4%        219 \261  1%  aim7.time.elapsed_time
                 426 \261  1%     -48.4%        219 \261  1%  aim7.time.elapsed_time.max
                 468 \261  1%     -43.1%        266 \261  2%  uptime.boot
      Signed-off-by: NMel Gorman <mgorman@suse.de>
      Reported-by: NHuang Ying <ying.huang@intel.com>
      Tested-by: NHuang Ying <ying.huang@intel.com>
      Acked-by: NDavid Rientjes <rientjes@google.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a368ab67
    • I
      Revert "libceph: use memalloc flags for net IO" · 6d7fdb0a
      Ilya Dryomov 提交于
      This reverts commit 89baaa57.
      
      Dirty page throttling should be sufficient for us in the general case
      so there is no need to use __GFP_MEMALLOC - it would be needed only in
      the swap-over-rbd case, which we currently don't support.  (It would
      probably take approximately the commit that is being reverted to add
      that support, but we would also need the "swap" option to distinguish
      from the general case and make sure swap ceph_client-s aren't shared
      with anything else.)  See ceph-devel threads [1] and [2] for the
      details of why enabling pfmemalloc reserves for all cases is a bad
      thing.
      
      On top of potential system lockups related to drained emergency
      reserves, this turned out to cause ceph lockups in case peers are on
      the same host and communicating via loopback due to sk_filter()
      dropping pfmemalloc skbs on the receiving side because the receiving
      loopback socket is not tagged with SOCK_MEMALLOC.
      
      [1] "SOCK_MEMALLOC vs loopback"
          http://www.spinics.net/lists/ceph-devel/msg22998.html
      [2] "[PATCH] libceph: don't set memalloc flags in loopback case"
          http://www.spinics.net/lists/ceph-devel/msg23392.html
      
      Conflicts:
      	net/ceph/messenger.c [ context: tcp_nodelay option ]
      
      Cc: Mike Christie <michaelc@cs.wisc.edu>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Sage Weil <sage@redhat.com>
      Cc: stable@vger.kernel.org # 3.18+, needs backporting
      Signed-off-by: NIlya Dryomov <idryomov@gmail.com>
      Acked-by: NMike Christie <michaelc@cs.wisc.edu>
      Acked-by: NMel Gorman <mgorman@suse.de>
      6d7fdb0a
  4. 07 4月, 2015 12 次提交
  5. 06 4月, 2015 3 次提交
  6. 05 4月, 2015 3 次提交
    • L
      Merge tag 'usb-4.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · f8b3d8a5
      Linus Torvalds 提交于
      Pull USB fixes from Greg KH:
       "Here are some small USB fixes and new device ids for 4.0-rc6.  Nothing
        major, some xhci fixes for reported problems, and some usb-serial
        device ids.
      
        All have been in linux-next for a while"
      
      * tag 'usb-4.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        USB: ftdi_sio: Use jtag quirk for SNAP Connect E10
        usb: isp1760: fix spin unlock in the error path of isp1760_udc_start
        usb: xhci: apply XHCI_AVOID_BEI quirk to all Intel xHCI controllers
        usb: xhci: handle Config Error Change (CEC) in xhci driver
        USB: keyspan_pda: add new device id
        USB: ftdi_sio: Added custom PID for Synapse Wireless product
      f8b3d8a5
    • L
      Merge tag 'staging-4.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 8eb6dcf9
      Linus Torvalds 提交于
      Pull staging driver fixes from Greg KH:
       "Here are some staging driver fixes, well, really all just IIO driver
        fixes, for 4.0-rc6.  They fix issues that have been reported with
        these drivers.
      
        All of these patches have been in linux-next for a while"
      
      * tag 'staging-4.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        iio: imu: Use iio_trigger_get for indio_dev->trig assignment
        iio: adc: vf610: use ADC clock within specification
        iio/adc/cc10001_adc.c: Fix !HAS_IOMEM build
        iio: core: Fix double free.
        iio:inv-mpu6050: Fix inconsistency for the scale channel
        staging: iio: dummy: Fix undefined symbol build error
        iio: inv_mpu6050: Clear timestamps fifo while resetting hardware fifo
        staging: iio: hmc5843: Set iio name property in sysfs
        iio: bmc150: change sampling frequency
        iio: fix drivers that check buffer->scan_mask
      8eb6dcf9
    • L
      Merge tag 'tty-4.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · eca8258b
      Linus Torvalds 提交于
      Pull tty/serial fixes from Greg KH:
       "Here are 3 serial driver fixes for 4.0-rc6.  They fix some reported
        issues with the samsung and fsl_lpuart drivers.
      
        All have been in linux-next for a while"
      
      * tag 'tty-4.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: serial: fsl_lpuart: clear receive flag on FIFO flush
        tty: serial: fsl_lpuart: specify transmit FIFO size
        serial: samsung: Clear operation mode on UART shutdown
      eca8258b
  7. 04 4月, 2015 5 次提交