1. 12 2月, 2015 16 次提交
    • J
      mm: memcontrol: track move_lock state internally · 6de22619
      Johannes Weiner 提交于
      The complexity of memcg page stat synchronization is currently leaking
      into the callsites, forcing them to keep track of the move_lock state and
      the IRQ flags.  Simplify the API by tracking it in the memcg.
      Signed-off-by: NJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: NMichal Hocko <mhocko@suse.cz>
      Reviewed-by: NVladimir Davydov <vdavydov@parallels.com>
      Cc: Wu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6de22619
    • V
      swap: remove unused mem_cgroup_uncharge_swapcache declaration · 93aa7d95
      Vladimir Davydov 提交于
      The body of this function was removed by commit 0a31bc97 ("mm:
      memcontrol: rewrite uncharge API").
      Signed-off-by: NVladimir Davydov <vdavydov@parallels.com>
      Acked-by: NMichal Hocko <mhocko@suse.cz>
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      93aa7d95
    • M
      oom: make sure that TIF_MEMDIE is set under task_lock · 83363b91
      Michal Hocko 提交于
      OOM killer tries to exclude tasks which do not have mm_struct associated
      because killing such a task wouldn't help much.  The OOM victim gets
      TIF_MEMDIE set to disable OOM killer while the current victim releases the
      memory and then enables the OOM killer again by dropping the flag.
      
      oom_kill_process is currently prone to a race condition when the OOM
      victim is already exiting and TIF_MEMDIE is set after the task releases
      its address space.  This might theoretically lead to OOM livelock if the
      OOM victim blocks on an allocation later during exiting because it
      wouldn't kill any other process and the exiting one won't be able to exit.
       The situation is highly unlikely because the OOM victim is expected to
      release some memory which should help to sort out OOM situation.
      
      Fix this by checking task->mm and setting TIF_MEMDIE flag under task_lock
      which will serialize the OOM killer with exit_mm which sets task->mm to
      NULL.  Setting the flag for current is not necessary because check and set
      is not racy.
      Reported-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Signed-off-by: NMichal Hocko <mhocko@suse.cz>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      83363b91
    • T
      oom: don't count on mm-less current process · d7a94e7e
      Tetsuo Handa 提交于
      out_of_memory() doesn't trigger the OOM killer if the current task is
      already exiting or it has fatal signals pending, and gives the task
      access to memory reserves instead.  However, doing so is wrong if
      out_of_memory() is called by an allocation (e.g. from exit_task_work())
      after the current task has already released its memory and cleared
      TIF_MEMDIE at exit_mm().  If we again set TIF_MEMDIE to post-exit_mm()
      current task, the OOM killer will be blocked by the task sitting in the
      final schedule() waiting for its parent to reap it.  It will trigger an
      OOM livelock if its parent is unable to reap it due to doing an
      allocation and waiting for the OOM killer to kill it.
      Signed-off-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Acked-by: NMichal Hocko <mhocko@suse.cz>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d7a94e7e
    • W
      mm:add KPF_ZERO_PAGE flag for /proc/kpageflags · 56873f43
      Wang, Yalin 提交于
      Add KPF_ZERO_PAGE flag for zero_page, so that userspace processes can
      detect zero_page in /proc/kpageflags, and then do memory analysis more
      accurately.
      Signed-off-by: NYalin Wang <yalin.wang@sonymobile.com>
      Acked-by: NKirill A. Shutemov <kirill@shutemov.name>
      Cc: Konstantin Khlebnikov <koct9i@gmail.com>
      Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      56873f43
    • W
      mm: add VM_BUG_ON_PAGE() to page_mapcount() · 1d148e21
      Wang, Yalin 提交于
      Add VM_BUG_ON_PAGE() for slab pages.  _mapcount is an union with slab
      struct in struct page, so we must avoid accessing _mapcount if this page
      is a slab page.  Also remove the unneeded bracket.
      Signed-off-by: NYalin Wang <yalin.wang@sonymobile.com>
      Acked-by: NKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1d148e21
    • K
      mm: add fields for compound destructor and order into struct page · e4b294c2
      Kirill A. Shutemov 提交于
      Currently, we use lru.next/lru.prev plus cast to access or set
      destructor and order of compound page.
      
      Let's replace it with explicit fields in struct page.
      Signed-off-by: NKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Acked-by: NJerome Marchand <jmarchan@redhat.com>
      Acked-by: NChristoph Lameter <cl@linux.com>
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e4b294c2
    • L
      Merge tag 'mmc-v3.20-1' of git://git.linaro.org/people/ulf.hansson/mmc · aa7ed01f
      Linus Torvalds 提交于
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Support for MMC power sequences.
         - SDIO function devicetree subnode parsing.
         - Refactor the hardware reset routines and enable it for SD cards.
         - Various code quality improvements, especially for slot-gpio.
      
        MMC host:
         - dw_mmc: Various fixes and cleanups.
         - dw_mmc: Convert to mmc_send_tuning().
         - moxart: Fix probe logic.
         - sdhci: Various fixes and cleanups
         - sdhci: Asynchronous request handling support.
         - sdhci-pxav3: Various fixes and cleanups.
         - sdhci-tegra: Fixes for T114, T124 and T132.
         - rtsx: Various fixes and cleanups.
         - rtsx: Support for SDIO.
         - sdhi/tmio: Refactor and cleanup of header files.
         - omap_hsmmc: Use slot-gpio and common MMC DT parser.
         - Make all hosts to deal with errors from mmc_of_parse().
         - sunxi: Various fixes and cleanups.
         - sdhci: Support for Fujitsu SDHCI controller f_sdh30"
      
      * tag 'mmc-v3.20-1' of git://git.linaro.org/people/ulf.hansson/mmc: (117 commits)
        mmc: sdhci-s3c: solve problem with sleeping in atomic context
        mmc: pwrseq: add driver for emmc hardware reset
        mmc: moxart: fix probe logic
        mmc: core: Invoke mmc_pwrseq_post_power_on() prior MMC_POWER_ON state
        mmc: pwrseq_simple: Add optional reference clock support
        mmc: pwrseq: Document optional clock for the simple power sequence
        mmc: pwrseq_simple: Extend to support more pins
        mmc: pwrseq: Document that simple sequence support more than one GPIO
        mmc: Add hardware dependencies for sdhci-pxav3 and sdhci-pxav2
        mmc: sdhci-pxav3: Modify clock settings for the SDR50 and DDR50 modes
        mmc: sdhci-pxav3: Extend binding with SDIO3 conf reg for the Armada 38x
        mmc: sdhci-pxav3: Fix Armada 38x controller's caps according to erratum ERR-7878951
        mmc: sdhci-pxav3: Fix SDR50 and DDR50 capabilities for the Armada 38x flavor
        mmc: sdhci: switch voltage before sdhci_set_ios in runtime resume
        mmc: tegra: Write xfer_mode, CMD regs in together
        mmc: Resolve BKOPS compatability issue
        mmc: sdhci-pxav3: fix setting of pdata->clk_delay_cycles
        mmc: dw_mmc: rockchip: remove incorrect __exit_p()
        mmc: dw_mmc: exynos: remove incorrect __exit_p()
        mmc: Fix menuconfig alignment of MMC_SDHCI_* options
        ...
      aa7ed01f
    • L
      xilinx usb2 gadget: get rid of incredibly annoying compile warning · 7796c11c
      Linus Torvalds 提交于
      This one was driving me mad, with several lines of warnings during the
      allmodconfig build for a single bogus pointer cast.  The warning was so
      verbose due to the indirect macro expansion explanation, and the whole
      thing was just for a debug printout.
      
      The bogus pointer-to-integer cast was pointless anyway, so just remove
      it, and use '%p' to show the pointer.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7796c11c
    • L
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 540a7c50
      Linus Torvalds 提交于
      Pull first round of SCSI updates from James Bottomley:
       "This is the usual grab bag of driver updates (hpsa, storvsc, mp2sas,
        megaraid_sas, ses) plus an assortment of minor updates.
      
        There's also an update to ufs which adds new phy drivers and finally a
        new logging infrastructure for SCSI"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (114 commits)
        scsi_logging: return void for dev_printk() functions
        scsi: print single-character strings with seq_putc
        scsi: merge consecutive seq_puts calls
        scsi: replace seq_printf with seq_puts
        aha152x: replace seq_printf with seq_puts
        advansys: replace seq_printf with seq_puts
        scsi: remove SPRINTF macro
        sg: remove an unused variable
        hpsa: Use local workqueues instead of system workqueues
        hpsa: add in P840ar controller model name
        hpsa: add in gen9 controller model names
        hpsa: detect and report failures changing controller transport modes
        hpsa: shorten the wait for the CISS doorbell mode change ack
        hpsa: refactor duplicated scan completion code into a new routine
        hpsa: move SG descriptor set-up out of hpsa_scatter_gather()
        hpsa: do not use function pointers in fast path command submission
        hpsa: print CDBs instead of kernel virtual addresses for uncommon errors
        hpsa: do not use a void pointer for scsi_cmd field of struct CommandList
        hpsa: return failed from device reset/abort handlers
        hpsa: check for ctlr lockup after command allocation in main io path
        ...
      540a7c50
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 718749d5
      Linus Torvalds 提交于
      Pull input updates from Dmitry Torokhov:
       "The first round of updates for the input subsystem.
      
        A few new drivers (power button handler for AXP20x PMIC, tps65218
        power button driver, sun4i keys driver, regulator haptic driver, NI
        Ettus Research USRP E3x0 button, Alwinner A10/A20 PS/2 controller).
      
        Updates to Synaptics and ALPS touchpad drivers (with more to come
        later), brand new Focaltech PS/2 support, update to Cypress driver to
        handle Gen5 (in addition to Gen3) devices, and number of other fixups
        to various drivers as well as input core"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (54 commits)
        Input: elan_i2c - fix wrong %p extension
        Input: evdev - do not queue SYN_DROPPED if queue is empty
        Input: gscps2 - fix MODULE_DEVICE_TABLE invocation
        Input: synaptics - use dmax in input_mt_assign_slots
        Input: pxa27x_keypad - remove unnecessary ARM includes
        Input: ti_am335x_tsc - replace delta filtering with median filtering
        ARM: dts: AM335x: Make charge delay a DT parameter for TSC
        Input: ti_am335x_tsc - read charge delay from DT
        Input: ti_am335x_tsc - remove udelay in interrupt handler
        Input: ti_am335x_tsc - interchange touchscreen and ADC steps
        Input: MT - add support for balanced slot assignment
        Input: drv2667 - remove wrong and unneeded drv2667-haptics modalias
        Input: drv260x - remove wrong and unneeded drv260x-haptics modalias
        Input: cap11xx - remove wrong and unneeded cap11xx modalias
        Input: sun4i-ts - add support for touchpanel controller on A31
        Input: serio - add support for Alwinner A10/A20 PS/2 controller
        Input: gtco - use sign_extend32() for sign extension
        Input: elan_i2c - verify firmware signature applying it
        Input: elantech - remove stale comment from Kconfig
        Input: cyapa - off by one in cyapa_update_fw_store()
        ...
      718749d5
    • L
      Merge tag 'fbdev-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux · e0c84537
      Linus Torvalds 提交于
      Pull fbdev changes from Tomi Valkeinen:
      
       - omapdss: add DRA7xxx SoC support
      
       - fbdev: support DMT (Display Monitor Timing) calculation
      
      * tag 'fbdev-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (40 commits)
        omapfb: Return error code when applying overlay settings fails
        OMAPDSS: DPI: DRA7xx support
        OMAPDSS: HDMI: Add DRA7xx support
        OMAPDSS: DISPC: program dispc polarities to control module
        OMAPDSS: DISPC: Add DRA7xx support
        OMAPDSS: Add Video PLLs for DRA7xx
        OMAPDSS: Add functions for external control of PLL
        OMAPDSS: DSS: Add DRA7xx base support
        Doc/DT: Add DT binding doc for DRA7xx DSS
        OMAPDSS: add define for DRA7xx HW version
        OMAPDSS: encoder-tpd12s015: Fix race issue with LS_OE
        OMAPDSS: OMAP5: fix digit output's allowed mgrs
        OMAPDSS: constify port arrays
        OMAPDSS: PLL: add dss_pll_wait_reset_done()
        OMAPDSS: Add enum dss_pll_id
        video: fbdev: fix sys_copyarea
        video/mmpfb: allow modular build
        fb: via: turn gpiolib and i2c selects into dependencies
        fbdev: ssd1307fb: return proper error code if write command fails
        fbdev: fix CVT vertical front and back porch values
        ...
      e0c84537
    • L
      Merge tag 'sound-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · a323ae93
      Linus Torvalds 提交于
      Pull sound updates from Takashi Iwai:
       "In this batch, you can find lots of cleanups through the whole
        subsystem, as our good New Year's resolution.  Lots of LOCs and
        commits are about LINE6 driver that was promoted finally from staging
        tree, and as usual, there've been widely spread ASoC changes.
      
        Here some highlights:
      
        ALSA core changes
         - Embedding struct device into ALSA core structures
         - sequencer core cleanups / fixes
         - PCM msbits constraints cleanups / fixes
         - New SNDRV_PCM_TRIGGER_DRAIN command
         - PCM kerneldoc fixes, header cleanups
         - PCM code cleanups using more standard codes
         - Control notification ID fixes
      
        Driver cleanups
         - Cleanups of PCI PM callbacks
         - Timer helper usages cleanups
         - Simplification (e.g. argument reduction) of many driver codes
      
        HD-audio
         - Hotkey and LED support on HP laptops with Realtek codecs
         - Dock station support on HP laptops
         - Toshiba Satellite S50D fixup
         - Enhanced wallclock timestamp handling for HD-audio
         - Componentization to simplify the linkage between i915 and hd-audio
           drivers for Intel HDMI/DP
      
        USB-audio
         - Akai MPC Element support
         - Enhanced timestamp handling
      
        ASoC
         - Lots of refactoringin ASoC core, moving drivers to more data driven
           initialization and rationalizing a lot of DAPM usage
         - Much improved handling of CDCLK clocks on Samsung I2S controllers
         - Lots of driver specific cleanups and feature improvements
         - CODEC support for TI PCM514x and TLV320AIC3104 devices
         - Board support for Tegra systems with Realtek RT5677
         - New driver for Maxim max98357a
         - More enhancements / fixes for Intel SST driver
      
        Others
         - Promotion of LINE6 driver from staging along with lots of rewrites
           and cleanups
         - DT support for old non-ASoC atmel driver
         - oxygen cleanups, XIO2001 init, Studio Evolution SE6x support
         - Emu8000 DRAM size detection fix on ISA(!!) AWE64 boards
         - A few more ak411x fixes for ice1724 boards"
      
      * tag 'sound-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (542 commits)
        ALSA: line6: toneport: Use explicit type for firmware version
        ALSA: line6: Use explicit type for serial number
        ALSA: line6: Return EIO if read/write not successful
        ALSA: line6: Return error if device not responding
        ALSA: line6: Add delay before reading status
        ASoC: Intel: Clean data after SST fw fetch
        ALSA: hda - Add docking station support for another HP machine
        ALSA: control: fix failure to return new numerical ID in 'replace' event data
        ALSA: usb: update trigger timestamp on first non-zero URB submitted
        ALSA: hda: read trigger_timestamp immediately after starting DMA
        ALSA: pcm: allow for trigger_tstamp snapshot in .trigger
        ALSA: pcm: don't override timestamp unconditionally
        ALSA: off by one bug in snd_riptide_joystick_probe()
        ASoC: rt5670: Set use_single_rw flag for regmap
        ASoC: rt286: Add rt288 codec support
        ASoC: max98357a: Fix build in !CONFIG_OF case
        ASoC: Intel: fix platform_no_drv_owner.cocci warnings
        ARM: dts: Switch Odroid X2/U2 to simple-audio-card
        ARM: dts: Exynos4 and Odroid X2/U3 sound device nodes update
        ALSA: control: fix failure to return numerical ID in 'add' event
        ...
      a323ae93
    • L
      Merge tag 'media/v3.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 3e63430a
      Linus Torvalds 提交于
      Pull media updates from Mauro Carvalho Chehab:
      
       - Some documentation updates and a few new pixel formats
      
       - Stop btcx-risc abuse by cx88 and move it to bt8xx driver
      
       - New platform driver: am437x
      
       - New webcam driver: toptek
      
       - New remote controller hardware protocols added to img-ir driver
      
       - Removal of a few very old drivers that relies on old kABIs and are
         for very hard to find hardware: parallel port webcam drivers
         (bw-qcam, c-cam, pms and w9966), tlg2300, Video In/Out for SGI (vino)
      
       - Removal of the USB Telegent driver (tlg2300).  The company that
         developed this driver has long gone and the hardware is hard to find.
         As it relies on a legacy set of kABI symbols and nobody seems to care
         about it, remove it.
      
       - several improvements at rtl2832 driver
      
       - conversion on cx28521 and au0828 to use videobuf2 (VB2)
      
       - several improvements, fixups and board additions
      
      * tag 'media/v3.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (321 commits)
        [media] dvb_net: Convert local hex dump to print_hex_dump_debug
        [media] dvb_net: Use standard debugging facilities
        [media] dvb_net: Use vsprintf %pM extension to print Ethernet addresses
        [media] staging: lirc_serial: adjust boolean assignments
        [media] stb0899: use sign_extend32() for sign extension
        [media] si2168: add support for 1.7MHz bandwidth
        [media] si2168: return error if set_frontend is called with invalid parameters
        [media] lirc_dev: avoid potential null-dereference
        [media] mn88472: simplify bandwidth registers setting code
        [media] dvb: tc90522: re-add symbol-rate report
        [media] lmedm04: add read snr, signal strength and ber call backs
        [media] lmedm04: Create frontend call back for read status
        [media] lmedm04: create frontend callbacks for signal/snr/ber/ucblocks
        [media] lmedm04: Fix usb_submit_urb BOGUS urb xfer, pipe 1 != type 3 in interrupt urb
        [media] lmedm04: Increase Interupt due time to 200 msec
        [media] cx88-dvb: whitespace cleanup
        [media] rtl28xxu: properly initialize pdata
        [media] rtl2832: declare functions as static
        [media] rtl2830: declare functions as static
        [media] rtl2832_sdr: add kernel-doc comments for platform_data
        ...
      3e63430a
    • L
      Merge tag 'hsi-for-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi · 6fc26fc5
      Linus Torvalds 提交于
      Pull HSI fix from Sebastian Reichel:
       "Fix uninitialized device pointer in nokia-modem"
      
      * tag 'hsi-for-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
        hsi: nokia-modem: fix uninitialized device pointer
      6fc26fc5
    • L
      Merge tag 'for-v3.20' of git://git.infradead.org/battery-2.6 · 13c07190
      Linus Torvalds 提交于
      Pull power supply and reset changes from Sebastian Reichel:
       "New drivers:
         - charger driver for Maxim 77693
         - battery gauge driver for LTC 2941/2943
         - battery gauge driver for RT5033
         - reset driver for R-Mobile platforms
      
        Convert drivers to restart handler framework:
         - arm-versatile
         - at91
         - st-poweroff
      
        Misc:
         - remove deprecated sun6i reboot driver
         - use alarmtimer instead of rtc in charger-manager
         - misc fixes"
      
      * tag 'for-v3.20' of git://git.infradead.org/battery-2.6: (48 commits)
        power_supply: 88pm860x: Fix leaked power supply on probe fail
        power/reset: restart-poweroff: Remove arm dependencies
        power/reset: st-poweroff: Fix misleading Kconfig description
        power/reset: st-poweroff: Register with kernel restart handler
        power/reset: Remove sun6i reboot driver
        power/reset: at91: Register with kernel restart handler
        power/reset: arm-versatile: Register with kernel restart handler
        power: test_power: Use enum as index for array of supplies
        Add devicetree binding documentation for the LTC2941/LTC2943 driver
        Add LTC2941/LTC2943 Battery Gauge Driver
        power/reset: brcmstb: Add support for old 65nm chips
        power/reset: brcmstb: Use the DT "compatible" string to indicate bit positions
        power/reset: brcmstb: Make the driver buildable on MIPS
        power: charger-manager: Use alarmtimer for battery monitoring in suspend.
        power/reset: at91-poweroff: Fix error handling and other compiler warnings
        bq27x00_battery: Call power_supply_changed only when capacity changed
        bq27x00_battery: fix register offset for bq27425
        power: max14577: Remove SYSFS dependency from Kconfig
        power: bq24190_charger: suppress build warning
        power: reset: Add reset driver for R-Mobile platforms
        ...
      13c07190
  2. 11 2月, 2015 24 次提交
    • C
      ALSA: line6: toneport: Use explicit type for firmware version · 0e806151
      Chris Rorvick 提交于
      The firmware version is a single byte so have the variable type agree.
      Since the address to this member is passed to the read function, using
      an int is not even portable.
      Signed-off-by: NChris Rorvick <chris@rorvick.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      0e806151
    • C
      ALSA: line6: Use explicit type for serial number · 12b00157
      Chris Rorvick 提交于
      The serial number (aka ESN) is a 32-bit value.
      Signed-off-by: NChris Rorvick <chris@rorvick.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      12b00157
    • C
      e474e7fd
    • C
      ALSA: line6: Return error if device not responding · f3dfd1be
      Chris Rorvick 提交于
      Put an upper bound on how long we will wait for the device to respond to
      a read/write request (i.e., 100 milliseconds) and return an error if
      this is reached.
      Signed-off-by: NChris Rorvick <chris@rorvick.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      f3dfd1be
    • C
      ALSA: line6: Add delay before reading status · e64e94df
      Chris Rorvick 提交于
      The device indicates the result of a read/write operation by making the
      status available on a subsequent request from the driver.  This is not
      ready immediately, though, so the driver is currently slamming the
      device with hundreds of pointless requests before getting the expected
      response.  Add a two millisecond delay before each attempt.  This is
      approximately the behavior observed with version 4.2.7.1 of the Windows
      driver.
      Signed-off-by: NChris Rorvick <chris@rorvick.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      e64e94df
    • L
      ASoC: Intel: Clean data after SST fw fetch · 1b006996
      Libin Yang 提交于
      The BDW audio firmware DSP manages the DMA and the DMA cannot be
      stopped exactly at the end of the playback stream. This means
      stale samples may be played at PCM stop unless the driver copies
      silence to the subsequent periods.
      Signed-off-by: NLibin Yang <libin.yang@intel.com>
      Reviewed-by: NLiam Girdwood <liam.r.girdwood@linux.intel.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1b006996
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · c5ce28df
      Linus Torvalds 提交于
      Pull networking updates from David Miller:
      
       1) More iov_iter conversion work from Al Viro.
      
          [ The "crypto: switch af_alg_make_sg() to iov_iter" commit was
            wrong, and this pull actually adds an extra commit on top of the
            branch I'm pulling to fix that up, so that the pre-merge state is
            ok.   - Linus ]
      
       2) Various optimizations to the ipv4 forwarding information base trie
          lookup implementation.  From Alexander Duyck.
      
       3) Remove sock_iocb altogether, from CHristoph Hellwig.
      
       4) Allow congestion control algorithm selection via routing metrics.
          From Daniel Borkmann.
      
       5) Make ipv4 uncached route list per-cpu, from Eric Dumazet.
      
       6) Handle rfs hash collisions more gracefully, also from Eric Dumazet.
      
       7) Add xmit_more support to r8169, e1000, and e1000e drivers.  From
          Florian Westphal.
      
       8) Transparent Ethernet Bridging support for GRO, from Jesse Gross.
      
       9) Add BPF packet actions to packet scheduler, from Jiri Pirko.
      
      10) Add support for uniqu flow IDs to openvswitch, from Joe Stringer.
      
      11) New NetCP ethernet driver, from Muralidharan Karicheri and Wingman
          Kwok.
      
      12) More sanely handle out-of-window dupacks, which can result in
          serious ACK storms.  From Neal Cardwell.
      
      13) Various rhashtable bug fixes and enhancements, from Herbert Xu,
          Patrick McHardy, and Thomas Graf.
      
      14) Support xmit_more in be2net, from Sathya Perla.
      
      15) Group Policy extensions for vxlan, from Thomas Graf.
      
      16) Remove Checksum Offload support for vxlan, from Tom Herbert.
      
      17) Like ipv4, support lockless transmit over ipv6 UDP sockets.  From
          Vlad Yasevich.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1494+1 commits)
        crypto: fix af_alg_make_sg() conversion to iov_iter
        ipv4: Namespecify TCP PMTU mechanism
        i40e: Fix for stats init function call in Rx setup
        tcp: don't include Fast Open option in SYN-ACK on pure SYN-data
        openvswitch: Only set TUNNEL_VXLAN_OPT if VXLAN-GBP metadata is set
        ipv6: Make __ipv6_select_ident static
        ipv6: Fix fragment id assignment on LE arches.
        bridge: Fix inability to add non-vlan fdb entry
        net: Mellanox: Delete unnecessary checks before the function call "vunmap"
        cxgb4: Add support in cxgb4 to get expansion rom version via ethtool
        ethtool: rename reserved1 memeber in ethtool_drvinfo for expansion ROM version
        net: dsa: Remove redundant phy_attach()
        IB/mlx4: Reset flow support for IB kernel ULPs
        IB/mlx4: Always use the correct port for mirrored multicast attachments
        net/bonding: Fix potential bad memory access during bonding events
        tipc: remove tipc_snprintf
        tipc: nl compat add noop and remove legacy nl framework
        tipc: convert legacy nl stats show to nl compat
        tipc: convert legacy nl net id get to nl compat
        tipc: convert legacy nl net id set to nl compat
        ...
      c5ce28df
    • L
      crypto: fix af_alg_make_sg() conversion to iov_iter · 9399f0c5
      Linus Torvalds 提交于
      Commit 1d10eb2f ("crypto: switch af_alg_make_sg() to iov_iter")
      broke af_alg_make_sg() and skcipher_recvmsg() in the process of moving
      them to the iov_iter interfaces.  The 'npages' calculation in the formar
      calculated the number of *bytes* in the pages, and in the latter case
      the conversion didn't re-read the value of 'ctx->used' after waiting for
      it to become non-zero.
      
      This reverts to the original code for both these cases.
      
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9399f0c5
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · 29afc4e9
      Linus Torvalds 提交于
      Pull trivial tree changes from Jiri Kosina:
       "Patches from trivial.git that keep the world turning around.
      
        Mostly documentation and comment fixes, and a two corner-case code
        fixes from Alan Cox"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
        kexec, Kconfig: spell "architecture" properly
        mm: fix cleancache debugfs directory path
        blackfin: mach-common: ints-priority: remove unused function
        doubletalk: probe failure causes OOPS
        ARM: cache-l2x0.c: Make it clear that cache-l2x0 handles L310 cache controller
        msdos_fs.h: fix 'fields' in comment
        scsi: aic7xxx: fix comment
        ARM: l2c: fix comment
        ibmraid: fix writeable attribute with no store method
        dynamic_debug: fix comment
        doc: usbmon: fix spelling s/unpriviledged/unprivileged/
        x86: init_mem_mapping(): use capital BIOS in comment
      29afc4e9
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching · 1d9c5d79
      Linus Torvalds 提交于
      Pull live patching infrastructure from Jiri Kosina:
       "Let me provide a bit of history first, before describing what is in
        this pile.
      
        Originally, there was kSplice as a standalone project that implemented
        stop_machine()-based patching for the linux kernel.  This project got
        later acquired, and the current owner is providing live patching as a
        proprietary service, without any intentions to have their
        implementation merged.
      
        Then, due to rising user/customer demand, both Red Hat and SUSE
        started working on their own implementation (not knowing about each
        other), and announced first versions roughly at the same time [1] [2].
      
        The principle difference between the two solutions is how they are
        making sure that the patching is performed in a consistent way when it
        comes to different execution threads with respect to the semantic
        nature of the change that is being introduced.
      
        In a nutshell, kPatch is issuing stop_machine(), then looking at
        stacks of all existing processess, and if it decides that the system
        is in a state that can be patched safely, it proceeds insterting code
        redirection machinery to the patched functions.
      
        On the other hand, kGraft provides a per-thread consistency during one
        single pass of a process through the kernel and performs a lazy
        contignuous migration of threads from "unpatched" universe to the
        "patched" one at safe checkpoints.
      
        If interested in a more detailed discussion about the consistency
        models and its possible combinations, please see the thread that
        evolved around [3].
      
        It pretty quickly became obvious to the interested parties that it's
        absolutely impractical in this case to have several isolated solutions
        for one task to co-exist in the kernel.  During a dedicated Live
        Kernel Patching track at LPC in Dusseldorf, all the interested parties
        sat together and came up with a joint aproach that would work for both
        distro vendors.  Steven Rostedt took notes [4] from this meeting.
      
        And the foundation for that aproach is what's present in this pull
        request.
      
        It provides a basic infrastructure for function "live patching" (i.e.
        code redirection), including API for kernel modules containing the
        actual patches, and API/ABI for userspace to be able to operate on the
        patches (look up what patches are applied, enable/disable them, etc).
      
        It's relatively simple and minimalistic, as it's making use of
        existing kernel infrastructure (namely ftrace) as much as possible.
        It's also self-contained, in a sense that it doesn't hook itself in
        any other kernel subsystem (it doesn't even touch any other code).
        It's now implemented for x86 only as a reference architecture, but
        support for powerpc, s390 and arm is already in the works (adding
        arch-specific support basically boils down to teaching ftrace about
        regs-saving).
      
        Once this common infrastructure gets merged, both Red Hat and SUSE
        have agreed to immediately start porting their current solutions on
        top of this, abandoning their out-of-tree code.  The plan basically is
        that each patch will be marked by flag(s) that would indicate which
        consistency model it is willing to use (again, the details have been
        sketched out already in the thread at [3]).
      
        Before this happens, the current codebase can be used to patch a large
        group of secruity/stability problems the patches for which are not too
        complex (in a sense that they don't introduce non-trivial change of
        function's return value semantics, they don't change layout of data
        structures, etc) -- this corresponds to LEAVE_FUNCTION &&
        SWITCH_FUNCTION semantics described at [3].
      
        This tree has been in linux-next since December.
      
          [1] https://lkml.org/lkml/2014/4/30/477
          [2] https://lkml.org/lkml/2014/7/14/857
          [3] https://lkml.org/lkml/2014/11/7/354
          [4] http://linuxplumbersconf.org/2014/wp-content/uploads/2014/10/LPC2014_LivePatching.txt
      
        [ The core code is introduced by the three commits authored by Seth
          Jennings, which got a lot of changes incorporated during numerous
          respins and reviews of the initial implementation.  All the followup
          commits have materialized only after public tree has been created,
          so they were not folded into initial three commits so that the
          public tree doesn't get rebased ]"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching:
        livepatch: add missing newline to error message
        livepatch: rename config to CONFIG_LIVEPATCH
        livepatch: fix uninitialized return value
        livepatch: support for repatching a function
        livepatch: enforce patch stacking semantics
        livepatch: change ARCH_HAVE_LIVE_PATCHING to HAVE_LIVE_PATCHING
        livepatch: fix deferred module patching order
        livepatch: handle ancient compilers with more grace
        livepatch: kconfig: use bool instead of boolean
        livepatch: samples: fix usage example comments
        livepatch: MAINTAINERS: add git tree location
        livepatch: use FTRACE_OPS_FL_IPMODIFY
        livepatch: move x86 specific ftrace handler code to arch/x86
        livepatch: samples: add sample live patching module
        livepatch: kernel: add support for live patching
        livepatch: kernel: add TAINT_LIVEPATCH
      1d9c5d79
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 870fd0f5
      Linus Torvalds 提交于
      Pull HID updates from Jiri Kosina:
       "Updates for HID code
      
         - improveements of Logitech HID++ procotol implementation, from
           Benjamin Tissoires
      
         - support for composite RMI devices, from Andrew Duggan
      
         - new driver for BETOP controller, from Huang Bo
      
         - fixup for conflicting mapping in HID core between PC-101/103/104
           and PC-102/105 keyboards from David Herrmann
      
         - new hardware support and fixes in Wacom driver, from Ping Cheng
      
         - assorted small fixes and device ID additions all over the place"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (33 commits)
        HID: wacom: add support for Cintiq 27QHD and 27QHD touch
        HID: wacom: consolidate input capability settings for pen and touch
        HID: wacom: make sure touch arbitration is applied consistently
        HID: pidff: Fix initialisation forMicrosoft Sidewinder FF Pro 2
        HID: hyperv: match wait_for_completion_timeout return type
        HID: wacom: Report ABS_MISC event for Cintiq Companion Hybrid
        HID: Use Kbuild idiom in Makefiles
        HID: do not bind to Microchip Pick16F1454
        HID: hid-lg4ff: use DEVICE_ATTR_RW macro
        HID: hid-lg4ff: fix sysfs attribute permission
        HID: wacom: peport In Range event according to the spec
        HID: wacom: process invalid Cintiq and Intuos data in wacom_intuos_inout()
        HID: rmi: Add support for the touchpad in the Razer Blade 14 laptop
        HID: rmi: Support touchpads with external buttons
        HID: rmi: Use hid_report_len to compute the size of reports
        HID: logitech-hidpp: store the name of the device in struct hidpp
        HID: microsoft: add support for Japanese Surface Type Cover 3
        HID: fixup the conflicting keyboard mappings quirk
        HID: apple: fix battery support for the 2009 ANSI wireless keyboard
        HID: fix Kconfig text
        ...
      870fd0f5
    • L
      sata_dwc_460ex: disable COMPILE_TEST again · 06cc01a0
      Linus Torvalds 提交于
      Commit 84683a7e ("sata_dwc_460ex: enable COMPILE_TEST for the
      driver") enabled this driver for non-ppc460-ex platforms, but it was
      then disabled for ARM and ARM64 by commit 2de5a9c0 ("sata_dwc_460ex:
      disable compilation on ARM and ARM64") because it's too noisy and
      broken.
      
      This disabled is entirely, because it's too noisy on x86-64 too, and
      there's no point in disabling architectures one by one.  At a minimum,
      the code isn't 64-bit clean, and even on 32-bit it is questionable
      whether it makes sense.
      
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Tejun Heo <tj@kernel.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      06cc01a0
    • L
      Merge branch 'akpm' (patches from Andrew) · 992de5a8
      Linus Torvalds 提交于
      Merge misc updates from Andrew Morton:
       "Bite-sized chunks this time, to avoid the MTA ratelimiting woes.
      
         - fs/notify updates
      
         - ocfs2
      
         - some of MM"
      
      That laconic "some MM" is mainly the removal of remap_file_pages(),
      which is a big simplification of the VM, and which gets rid of a *lot*
      of random cruft and special cases because we no longer support the
      non-linear mappings that it used.
      
      From a user interface perspective, nothing has changed, because the
      remap_file_pages() syscall still exists, it's just done by emulating the
      old behavior by creating a lot of individual small mappings instead of
      one non-linear one.
      
      The emulation is slower than the old "native" non-linear mappings, but
      nobody really uses or cares about remap_file_pages(), and simplifying
      the VM is a big advantage.
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (78 commits)
        memcg: zap memcg_slab_caches and memcg_slab_mutex
        memcg: zap memcg_name argument of memcg_create_kmem_cache
        memcg: zap __memcg_{charge,uncharge}_slab
        mm/page_alloc.c: place zone_id check before VM_BUG_ON_PAGE check
        mm: hugetlb: fix type of hugetlb_treat_as_movable variable
        mm, hugetlb: remove unnecessary lower bound on sysctl handlers"?
        mm: memory: merge shared-writable dirtying branches in do_wp_page()
        mm: memory: remove ->vm_file check on shared writable vmas
        xtensa: drop _PAGE_FILE and pte_file()-related helpers
        x86: drop _PAGE_FILE and pte_file()-related helpers
        unicore32: drop pte_file()-related helpers
        um: drop _PAGE_FILE and pte_file()-related helpers
        tile: drop pte_file()-related helpers
        sparc: drop pte_file()-related helpers
        sh: drop _PAGE_FILE and pte_file()-related helpers
        score: drop _PAGE_FILE and pte_file()-related helpers
        s390: drop pte_file()-related helpers
        parisc: drop _PAGE_FILE and pte_file()-related helpers
        openrisc: drop _PAGE_FILE and pte_file()-related helpers
        nios2: drop _PAGE_FILE and pte_file()-related helpers
        ...
      992de5a8
    • L
      Merge tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw · b2718bff
      Linus Torvalds 提交于
      Pull gfs2 updates from Steven Whitehouse:
       "This time we have mostly clean ups.  There is a bug fix for a NULL
        dereference relating to ACLs, and another which improves (but does not
        fix entirely) an allocation fall-back code path.  The other three
        patches are small clean ups"
      
      * tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw:
        GFS2: Fix crash during ACL deletion in acl max entry check in gfs2_set_acl()
        GFS2: use __vmalloc GFP_NOFS for fs-related allocations.
        GFS2: Eliminate a nonsense goto
        GFS2: fix sprintf format specifier
        GFS2: Eliminate __gfs2_glock_remove_from_lru
      b2718bff
    • L
      Merge tag 'xfs-for-linus-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs · ae90fb14
      Linus Torvalds 提交于
      Pull xfs update from Dave Chinner:
       "This update contains:
      
         - RENAME_EXCHANGE support
      
         - Rework of the superblock logging infrastructure
      
         - Rework of the XFS_IOCTL_SETXATTR implementation
             * enables use inside user namespaces
             * fixes inconsistencies setting extent size hints
      
         - fixes for missing buffer type annotations used in log recovery
      
         - more consolidation of libxfs headers
      
         - preparation patches for block based PNFS support
      
         - miscellaneous bug fixes and cleanups"
      
      * tag 'xfs-for-linus-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (37 commits)
        xfs: only trace buffer items if they exist
        xfs: report proper f_files in statfs if we overshoot imaxpct
        xfs: fix panic_mask documentation
        xfs: xfs_ioctl_setattr_check_projid can be static
        xfs: growfs should use synchronous transactions
        xfs: fix behaviour of XFS_IOC_FSSETXATTR on directories
        xfs: factor projid hint checking out of xfs_ioctl_setattr
        xfs: factor extsize hint checking out of xfs_ioctl_setattr
        xfs: XFS_IOCTL_SETXATTR can run in user namespaces
        xfs: kill xfs_ioctl_setattr behaviour mask
        xfs: disaggregate xfs_ioctl_setattr
        xfs: factor out xfs_ioctl_setattr transaciton preamble
        xfs: separate xflags from xfs_ioctl_setattr
        xfs: FSX_NONBLOCK is not used
        xfs: don't allocate an ioend for direct I/O completions
        xfs: change kmem_free to use generic kvfree()
        xfs: factor out a xfs_update_prealloc_flags() helper
        xfs: remove incorrect error negation in attr_multi ioctl
        xfs: set superblock buffer type correctly
        xfs: set buf types when converting extent formats
        ...
      ae90fb14
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · c5452a58
      Linus Torvalds 提交于
      Pull quota interface unification and misc cleanups from Jan Kara:
       "The first part of the series unifying XFS and VFS quota interfaces.
      
        This part unifies turning quotas on and off so quota-tools and
        xfs_quota can be used to manage any filesystem.  This is useful so
        that userspace doesn't have to distinguish which filesystem it is
        working with.  As a result we can then easily reuse tests for project
        quotas in XFS for ext4.
      
        This also contains minor cleanups and fixes for udf, isofs, and ext3"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: (23 commits)
        udf: remove bool assignment to 0/1
        udf: use bool for done
        quota: Store maximum space limit in bytes
        quota: Remove quota_on_meta callback
        ocfs2: Use generic helpers for quotaon and quotaoff
        ext4: Use generic helpers for quotaon and quotaoff
        quota: Add ->quota_{enable,disable} callbacks for VFS quotas
        quota: Wire up ->quota_{enable,disable} callbacks into Q_QUOTA{ON,OFF}
        quota: Split ->set_xstate callback into two
        xfs: Remove some pointless quota checks
        xfs: Remove some useless flags tests
        xfs: Remove useless test
        quota: Verify flags passed to Q_SETINFO
        quota: Cleanup flags definitions
        ocfs2: Move OLQF_CLEAN flag out of generic quota flags
        quota: Don't store flags for v2 quota format
        jbd: drop jbd_ENOSYS debug
        udf: destroy sbi mutex in put_super
        udf: Check length of extended attributes and allocation descriptors
        udf: Remove repeated loads blocksize
        ...
      c5452a58
    • L
      Merge tag 'locks-v3.20-1' of git://git.samba.org/jlayton/linux · 4b4f8580
      Linus Torvalds 提交于
      Pull file locking related changes #1 from Jeff Layton:
       "This patchset contains a fairly major overhaul of how file locks are
        tracked within the inode.  Rather than a single list, we now create a
        per-inode "lock context" that contains individual lists for the file
        locks, and a new dedicated spinlock for them.
      
        There are changes in other trees that are based on top of this set so
        it may be easiest to pull this in early"
      
      * tag 'locks-v3.20-1' of git://git.samba.org/jlayton/linux:
        locks: update comments that refer to inode->i_flock
        locks: consolidate NULL i_flctx checks in locks_remove_file
        locks: keep a count of locks on the flctx lists
        locks: clean up the lm_change prototype
        locks: add a dedicated spinlock to protect i_flctx lists
        locks: remove i_flock field from struct inode
        locks: convert lease handling to file_lock_context
        locks: convert posix locks to file_lock_context
        locks: move flock locks to file_lock_context
        ceph: move spinlocking into ceph_encode_locks_to_buffer and ceph_count_locks
        locks: add a new struct file_locking_context pointer to struct inode
        locks: have locks_release_file use flock_lock_file to release generic flock locks
        locks: add new struct list_head to struct file_lock
      4b4f8580
    • L
      Merge tag 'pm+acpi-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 87291235
      Linus Torvalds 提交于
      Pull ACPI and power management updates from Rafael Wysocki:
       "We have a few new features this time, including a new SFI-based
        cpufreq driver, a new devfreq driver for Tegra Activity Monitor, a new
        devfreq class for providing its governors with raw utilization data
        and a new ACPI driver for AMD SoCs.
      
        Still, the majority of changes here are reworks of existing code to
        make it more straightforward or to prepare it for implementing new
        features on top of it.  The primary example is the rework of ACPI
        resources handling from Jiang Liu, Thomas Gleixner and Lv Zheng with
        support for IOAPIC hotplug implemented on top of it, but there is
        quite a number of changes of this kind in the cpufreq core, ACPICA,
        ACPI EC driver, ACPI processor driver and the generic power domains
        core code too.
      
        The most active developer is Viresh Kumar with his cpufreq changes.
      
        Specifics:
      
         - Rework of the core ACPI resources parsing code to fix issues in it
           and make using resource offsets more convenient and consolidation
           of some resource-handing code in a couple of places that have grown
           analagous data structures and code to cover the the same gap in the
           core (Jiang Liu, Thomas Gleixner, Lv Zheng).
      
         - ACPI-based IOAPIC hotplug support on top of the resources handling
           rework (Jiang Liu, Yinghai Lu).
      
         - ACPICA update to upstream release 20150204 including an interrupt
           handling rework that allows drivers to install raw handlers for
           ACPI GPEs which then become entirely responsible for the given GPE
           and the ACPICA core code won't touch it (Lv Zheng, David E Box,
           Octavian Purdila).
      
         - ACPI EC driver rework to fix several concurrency issues and other
           problems related to events handling on top of the ACPICA's new
           support for raw GPE handlers (Lv Zheng).
      
         - New ACPI driver for AMD SoCs analogous to the LPSS (Low-Power
           Subsystem) driver for Intel chips (Ken Xue).
      
         - Two minor fixes of the ACPI LPSS driver (Heikki Krogerus, Jarkko
           Nikula).
      
         - Two new blacklist entries for machines (Samsung 730U3E/740U3E and
           510R) where the native backlight interface doesn't work correctly
           while the ACPI one does (Hans de Goede).
      
         - Rework of the ACPI processor driver's handling of idle states to
           make the code more straightforward and less bloated overall (Rafael
           J Wysocki).
      
         - Assorted minor fixes related to ACPI and SFI (Andreas Ruprecht,
           Andy Shevchenko, Hanjun Guo, Jan Beulich, Rafael J Wysocki, Yaowei
           Bai).
      
         - PCI core power management modification to avoid resuming (some)
           runtime-suspended devices during system suspend if they are in the
           right states already (Rafael J Wysocki).
      
         - New SFI-based cpufreq driver for Intel platforms using SFI
           (Srinidhi Kasagar).
      
         - cpufreq core fixes, cleanups and simplifications (Viresh Kumar,
           Doug Anderson, Wolfram Sang).
      
         - SkyLake CPU support and other updates for the intel_pstate driver
           (Kristen Carlson Accardi, Srinivas Pandruvada).
      
         - cpufreq-dt driver cleanup (Markus Elfring).
      
         - Init fix for the ARM big.LITTLE cpuidle driver (Sudeep Holla).
      
         - Generic power domains core code fixes and cleanups (Ulf Hansson).
      
         - Operating Performance Points (OPP) core code cleanups and kernel
           documentation update (Nishanth Menon).
      
         - New dabugfs interface to make the list of PM QoS constraints
           available to user space (Nishanth Menon).
      
         - New devfreq driver for Tegra Activity Monitor (Tomeu Vizoso).
      
         - New devfreq class (devfreq_event) to provide raw utilization data
           to devfreq governors (Chanwoo Choi).
      
         - Assorted minor fixes and cleanups related to power management
           (Andreas Ruprecht, Krzysztof Kozlowski, Rickard Strandqvist, Pavel
           Machek, Todd E Brandt, Wonhong Kwon).
      
         - turbostat updates (Len Brown) and cpupower Makefile improvement
           (Sriram Raghunathan)"
      
      * tag 'pm+acpi-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (151 commits)
        tools/power turbostat: relax dependency on APERF_MSR
        tools/power turbostat: relax dependency on invariant TSC
        Merge branch 'pci/host-generic' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci into acpi-resources
        tools/power turbostat: decode MSR_*_PERF_LIMIT_REASONS
        tools/power turbostat: relax dependency on root permission
        ACPI / video: Add disable_native_backlight quirk for Samsung 510R
        ACPI / PM: Remove unneeded nested #ifdef
        USB / PM: Remove unneeded #ifdef and associated dead code
        intel_pstate: provide option to only use intel_pstate with HWP
        ACPI / EC: Add GPE reference counting debugging messages
        ACPI / EC: Add query flushing support
        ACPI / EC: Refine command storm prevention support
        ACPI / EC: Add command flushing support.
        ACPI / EC: Introduce STARTED/STOPPED flags to replace BLOCKED flag
        ACPI: add AMD ACPI2Platform device support for x86 system
        ACPI / table: remove duplicate NULL check for the handler of acpi_table_parse()
        ACPI / EC: Update revision due to raw handler mode.
        ACPI / EC: Reduce ec_poll() by referencing the last register access timestamp.
        ACPI / EC: Fix several GPE handling issues by deploying ACPI_GPE_DISPATCH_RAW_HANDLER mode.
        ACPICA: Events: Enable APIs to allow interrupt/polling adaptive request based GPE handling model
        ...
      87291235
    • L
      Merge tag 'pci-v3.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · c08f8467
      Linus Torvalds 提交于
      Pull PCI changes from Bjorn Helgaas:
       "Enumeration
          - Move domain assignment from arm64 to generic code (Lorenzo Pieralisi)
          - ARM: Remove artificial dependency on pci_sys_data domain (Lorenzo Pieralisi)
          - ARM: Move to generic PCI domains (Lorenzo Pieralisi)
          - Generate uppercase hex for modalias var in uevent (Ricardo Ribalda Delgado)
          - Add and use generic config accessors on ARM, PowerPC (Rob Herring)
      
        Resource management
          - Free resources on failure in of_pci_get_host_bridge_resources() (Lorenzo Pieralisi)
          - Fix infinite loop with ROM image of size 0 (Michel Dänzer)
      
        PCI device hotplug
          - Handle surprise add even if surprise removal isn't supported (Bjorn Helgaas)
      
        Virtualization
          - Mark AMD/ATI VGA devices that don't reset on D3hot->D0 transition (Alex Williamson)
          - Add DMA alias quirk for Adaptec 3405 (Alex Williamson)
          - Add Wellsburg (X99) to Intel PCH root port ACS quirk (Alex Williamson)
          - Add ACS quirk for Emulex NICs (Vasundhara Volam)
      
        MSI
          - Fail MSI-X mappings if there's no space assigned to MSI-X BAR (Yijing Wang)
      
        Freescale Layerscape host bridge driver
          - Fix platform_no_drv_owner.cocci warnings (Julia Lawall)
      
        NVIDIA Tegra host bridge driver
          - Remove unnecessary tegra_pcie_fixup_bridge() (Lucas Stach)
      
        Renesas R-Car host bridge driver
          - Fix error handling of irq_of_parse_and_map() (Dmitry Torokhov)
      
        TI Keystone host bridge driver
          - Fix error handling of irq_of_parse_and_map() (Dmitry Torokhov)
          - Fix misspelling of current function in debug output (Julia Lawall)
      
        Xilinx AXI host bridge driver
          - Fix harmless format string warning (Arnd Bergmann)
      
        Miscellaneous
          - Use standard parsing functions for ASPM sysfs setters (Chris J Arges)
          - Add pci_device_to_OF_node() stub for !CONFIG_OF (Kevin Hao)
          - Delete unnecessary NULL pointer checks (Markus Elfring)
          - Add and use defines for PCIe Max_Read_Request_Size (Rafał Miłecki)
          - Include clk.h instead of clk-private.h (Stephen Boyd)"
      
      * tag 'pci-v3.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (48 commits)
        PCI: Add pci_device_to_OF_node() stub for !CONFIG_OF
        PCI: xilinx: Convert to use generic config accessors
        PCI: xgene: Convert to use generic config accessors
        PCI: tegra: Convert to use generic config accessors
        PCI: rcar: Convert to use generic config accessors
        PCI: generic: Convert to use generic config accessors
        powerpc/powermac: Convert PCI to use generic config accessors
        powerpc/fsl_pci: Convert PCI to use generic config accessors
        ARM: ks8695: Convert PCI to use generic config accessors
        ARM: sa1100: Convert PCI to use generic config accessors
        ARM: integrator: Convert PCI to use generic config accessors
        PCI: versatile: Add DT-based ARM Versatile PB PCIe host driver
        ARM: dts: versatile: add PCI controller binding
        of/pci: Free resources on failure in of_pci_get_host_bridge_resources()
        PCI: versatile: Add DT docs for ARM Versatile PB PCIe driver
        PCI: Fail MSI-X mappings if there's no space assigned to MSI-X BAR
        r8169: use PCI define for Max_Read_Request_Size
        [SCSI] esas2r: use PCI define for Max_Read_Request_Size
        tile: use PCI define for Max_Read_Request_Size
        rapidio/tsi721: use PCI define for Max_Read_Request_Size
        ...
      c08f8467
    • V
      memcg: zap memcg_slab_caches and memcg_slab_mutex · d5b3cf71
      Vladimir Davydov 提交于
      mem_cgroup->memcg_slab_caches is a list of kmem caches corresponding to
      the given cgroup.  Currently, it is only used on css free in order to
      destroy all caches corresponding to the memory cgroup being freed.  The
      list is protected by memcg_slab_mutex.  The mutex is also used to protect
      kmem_cache->memcg_params->memcg_caches arrays and synchronizes
      kmem_cache_destroy vs memcg_unregister_all_caches.
      
      However, we can perfectly get on without these two.  To destroy all caches
      corresponding to a memory cgroup, we can walk over the global list of kmem
      caches, slab_caches, and we can do all the synchronization stuff using the
      slab_mutex instead of the memcg_slab_mutex.  This patch therefore gets rid
      of the memcg_slab_caches and memcg_slab_mutex.
      
      Apart from this nice cleanup, it also:
      
       - assures that rcu_barrier() is called once at max when a root cache is
         destroyed or a memory cgroup is freed, no matter how many caches have
         SLAB_DESTROY_BY_RCU flag set;
      
       - fixes the race between kmem_cache_destroy and kmem_cache_create that
         exists, because memcg_cleanup_cache_params, which is called from
         kmem_cache_destroy after checking that kmem_cache->refcount=0,
         releases the slab_mutex, which gives kmem_cache_create a chance to
         make an alias to a cache doomed to be destroyed.
      Signed-off-by: NVladimir Davydov <vdavydov@parallels.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Michal Hocko <mhocko@suse.cz>
      Acked-by: NChristoph Lameter <cl@linux.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d5b3cf71
    • V
      memcg: zap memcg_name argument of memcg_create_kmem_cache · 3e0350a3
      Vladimir Davydov 提交于
      Instead of passing the name of the memory cgroup which the cache is
      created for in the memcg_name_argument, let's obtain it immediately in
      memcg_create_kmem_cache.
      Signed-off-by: NVladimir Davydov <vdavydov@parallels.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Michal Hocko <mhocko@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3e0350a3
    • V
      memcg: zap __memcg_{charge,uncharge}_slab · dbf22eb6
      Vladimir Davydov 提交于
      They are simple wrappers around memcg_{charge,uncharge}_kmem, so let's
      zap them and call these functions directly.
      Signed-off-by: NVladimir Davydov <vdavydov@parallels.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Michal Hocko <mhocko@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      dbf22eb6
    • W
      mm/page_alloc.c: place zone_id check before VM_BUG_ON_PAGE check · 4c5018ce
      Weijie Yang 提交于
      If the freeing page and its buddy page are not at the same zone, the
      current holding zone->lock for the freeing page cann't prevent buddy page
      getting allocated, this could trigger VM_BUG_ON_PAGE in page_is_buddy() at
      a very tiny chance, such as:
      
      cpu 0:						cpu 1:
      hold zone_1 lock
      check page and it buddy
      PageBuddy(buddy) is true			hold zone_2 lock
      page_order(buddy) == order is true		alloc buddy
      trigger VM_BUG_ON_PAGE(page_count(buddy) != 0)
      
      zone_1->lock prevents the freeing page getting allocated
      zone_2->lock prevents the buddy page getting allocated
      they are not the same zone->lock.
      
      If we can't remove the zone_id check statement, it's better handle this
      rare race.  This patch fixes this by placing the zone_id check before the
      VM_BUG_ON_PAGE check.
      Signed-off-by: NWeijie Yang <weijie.yang@samsung.com>
      Acked-by: NMel Gorman <mgorman@suse.de>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Rik van Riel <riel@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4c5018ce
    • A
      mm: hugetlb: fix type of hugetlb_treat_as_movable variable · 753162cd
      Andrey Ryabinin 提交于
      hugetlb_treat_as_movable declared as unsigned long, but
      proc_dointvec() used for parsing it:
      
      static struct ctl_table vm_table[] = {
      ...
              {
                      .procname	= "hugepages_treat_as_movable",
                      .data		= &hugepages_treat_as_movable,
                      .maxlen		= sizeof(int),
                      .mode		= 0644,
                      .proc_handler	= proc_dointvec,
              },
      
      This seems harmless, but it's better to use int type here.
      Signed-off-by: NAndrey Ryabinin <a.ryabinin@samsung.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Manfred Spraul <manfred@colorfullife.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>
      753162cd