01 Aug, 2013

1 commit


06 Jul, 2013

2 commits

  • Pull crypto update from Herbert Xu:
    - Do not idle omap device between crypto operations in one session.
    - Added sha224/sha384 shims for SSSE3.
    - More optimisations for camellia-aesni-avx2.
    - Removed defunct blowfish/twofish AVX2 implementations.
    - Added unaligned buffer self-tests.
    - Added PCLMULQDQ optimisation for CRCT10DIF.
    - Added support for Freescale's DCP co-processor
    - Misc fixes.

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (44 commits)
    crypto: testmgr - test hash implementations with unaligned buffers
    crypto: testmgr - test AEADs with unaligned buffers
    crypto: testmgr - test skciphers with unaligned buffers
    crypto: testmgr - check that entries in alg_test_descs are in correct order
    Revert "crypto: twofish - add AVX2/x86_64 assembler implementation of twofish cipher"
    Revert "crypto: blowfish - add AVX2/x86_64 implementation of blowfish cipher"
    crypto: camellia-aesni-avx2 - tune assembly code for more performance
    hwrng: bcm2835 - fix MODULE_LICENSE tag
    hwrng: nomadik - use clk_prepare_enable()
    crypto: picoxcell - replace strict_strtoul() with kstrtoul()
    crypto: dcp - Staticize local symbols
    crypto: dcp - Use NULL instead of 0
    crypto: dcp - Use devm_* APIs
    crypto: dcp - Remove redundant platform_set_drvdata()
    hwrng: use platform_{get,set}_drvdata()
    crypto: omap-aes - Don't idle/start AES device between Encrypt operations
    crypto: crct10dif - Use PTR_RET
    crypto: ux500 - Cocci spatch "resource_size.spatch"
    crypto: sha256_ssse3 - add sha224 support
    crypto: sha512_ssse3 - add sha384 support
    ...

    Linus Torvalds
     
  • Pull ubi fixes from Artem Bityutskiy:
    "A couple of fixes and clean-ups, allow for assigning user-defined UBI
    device numbers when attaching MTD devices by using the "mtd=" module
    parameter"

    * tag 'upstream-3.11-rc1' of git://git.infradead.org/linux-ubi:
    UBI: support ubi_num on mtd.ubi command line
    UBI: fastmap break out of used PEB search
    UBI: document UBI_IOCVOLUP better in user header
    UBI: do not abort init when ubi.mtd devices cannot be found
    UBI: drop redundant "UBI error" string

    Linus Torvalds
     

05 Jul, 2013

6 commits

  • Pull device tree updates from Grant Likely:
    "This branch contains the following changes:
    - Removal of CONFIG_OF_DEVICE, it is always enabled by CONFIG_OF
    - Remove #ifdef from linux/of_platform.h to increase compiler syntax
    coverage
    - Bug fix for address decoding on Bimini and js2x powerpc platforms.
    - miscellaneous binding changes

    One note on the above. The binding changes going in from all kinds of
    different trees has gotten rather out of hand. I picked up some
    during this cycle, but even going though my tree isn't a great fit.

    Ian Campbell has prototyped splitting the bindings and .dtb files into
    a separate repository. The plan is to migrate to using that sometime
    in the next few kernel releases which should get rid of a lot of the
    churn on binding docs and .dts files"

    * tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux:
    of: Fix address decoding on Bimini and js2x machines
    of: remove CONFIG_OF_DEVICE
    usb: chipidea: depend on CONFIG_OF instead of CONFIG_OF_DEVICE
    of: remove of_platform_driver
    ibmebus: convert of_platform_driver to platform_driver
    driver core: move to_platform_driver to platform_device.h
    mfd: DT bindings for the palmas family MFD
    ARM: dts: omap3-devkit8000: fix NAND memory binding
    of/base: fix typos
    of: remove #ifdef from linux/of_platform.h

    Linus Torvalds
     
  • Pull input updates from Dmitry Torokhov:
    "First round of updates for the input subsystem.

    You will get a new touchsreen driver for Cypress 4th generation
    devices, a driver for a special controller implementing PS/2 protocol
    in OLPC devices, and a driver for power key for SiRFprimaII PWRC.

    HID and bcm5497 now support for the 2013 MacBook Air.

    EVIOCGKEY and the rest of evdev ioctls now flush events of matching
    type from the client's event queue so that clients can be sure any
    events received after issuing EVIOCG* ioctl are new events.

    And a host of cleanups and improvements in other drivers"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (87 commits)
    Input: cyttsp4 - kfree xfer_buf on error path in probe()
    Input: tps6507x-ts - select INPUT_POLLDEV
    Input: bcm5974 - add support for the 2013 MacBook Air
    HID: apple: Add support for the 2013 Macbook Air
    Input: cyttsp4 - leak on error path in probe()
    Input: cyttsp4 - silence NULL dereference warning
    Input: cyttsp4 - silence shift wrap warning
    Input: tps6507x-ts - convert to polled input device infrastructure
    ARM: davinci: da850-evm: remove vref from touchscreen platform data
    Input: cyttsp4 - SPI driver for Cypress TMA4XX touchscreen devices
    Input: cyttsp4 - I2C driver for Cypress TMA4XX touchscreen devices
    Input: cyttsp4 - add core driver for Cypress TMA4XX touchscreen devices
    Input: cyttsp - I2C driver split into two modules
    Input: add OLPC AP-SP driver
    Input: nspire-keypad - remove redundant dev_err call in nspire_keypad_probe()
    Input: tps6507x-ts - remove vref from platform data
    Input: tps6507x-ts - use bool for booleans
    Input: tps6507x-ts - remove bogus unreachable code
    Input: samsung-keypad - let device core setup the default pin configuration
    Input: wacom_i2c - implement hovering capability
    ...

    Linus Torvalds
     
  • Pull first round of SCSI updates from James Bottomley:
    "The patch set is mostly driver updates (usf, zfcp, lpfc, mpt2sas,
    megaraid_sas, bfa, ipr) and a few bug fixes. Also of note is that the
    Buslogic driver has been rewritten to a better coding style and 64 bit
    support added. We also removed the libsas limitation on 16 bytes for
    the command size (currently no drivers make use of this)"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (101 commits)
    [SCSI] megaraid: minor cut and paste error fixed.
    [SCSI] ufshcd-pltfrm: remove unnecessary dma_set_coherent_mask() call
    [SCSI] ufs: fix register address in UIC error interrupt handling
    [SCSI] ufshcd-pltfrm: add missing empty slot in ufs_of_match[]
    [SCSI] ufs: use devres functions for ufshcd
    [SCSI] ufs: Fix the response UPIU length setting
    [SCSI] ufs: rework link start-up process
    [SCSI] ufs: remove version check before IS reg clear
    [SCSI] ufs: amend interrupt configuration
    [SCSI] ufs: wrap the i/o access operations
    [SCSI] storvsc: Update the storage protocol to win8 level
    [SCSI] storvsc: Increase the value of scsi timeout for storvsc devices
    [SCSI] MAINTAINERS: Add myself as the maintainer for BusLogic SCSI driver
    [SCSI] BusLogic: Port driver to 64-bit.
    [SCSI] BusLogic: Fix style issues
    [SCSI] libiscsi: Added new boot entries in the session sysfs
    [SCSI] aacraid: Fix for arrays are going offline in the system. System hangs
    [SCSI] ipr: IOA Status Code(IOASC) update
    [SCSI] sd: Update WRITE SAME heuristics
    [SCSI] fnic: potential dead lock in fnic_is_abts_pending()
    ...

    Linus Torvalds
     
  • Pull trivial tree updates from Jiri Kosina:
    "The usual stuff from trivial tree"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)
    treewide: relase -> release
    Documentation/cgroups/memory.txt: fix stat file documentation
    sysctl/net.txt: delete reference to obsolete 2.4.x kernel
    spinlock_api_smp.h: fix preprocessor comments
    treewide: Fix typo in printk
    doc: device tree: clarify stuff in usage-model.txt.
    open firmware: "/aliasas" -> "/aliases"
    md: bcache: Fixed a typo with the word 'arithmetic'
    irq/generic-chip: fix a few kernel-doc entries
    frv: Convert use of typedef ctl_table to struct ctl_table
    sgi: xpc: Convert use of typedef ctl_table to struct ctl_table
    doc: clk: Fix incorrect wording
    Documentation/arm/IXP4xx fix a typo
    Documentation/networking/ieee802154 fix a typo
    Documentation/DocBook/media/v4l fix a typo
    Documentation/video4linux/si476x.txt fix a typo
    Documentation/virtual/kvm/api.txt fix a typo
    Documentation/early-userspace/README fix a typo
    Documentation/video4linux/soc-camera.txt fix a typo
    lguest: fix CONFIG_PAE -> CONFIG_x86_PAE in comment
    ...

    Linus Torvalds
     
  • Pull HID updates from Jiri Kosina:
    - HID battery handling cleanup by David Herrmann
    - ELO 4000/4500 driver, which has been finally ported to be proper HID
    driver by Jiri Slaby
    - ps3remote driver functionality is now provided by generic sony
    driver, by Jiri Kosina
    - PS2/3 Buzz controllers support, by Colin Leitner
    - rework of wiimote driver including full extensions hotpluggin
    support, sub-device modularization and speaker support by David
    Herrmann

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (55 commits)
    HID: wacom: Intuos4 battery charging changes
    HID: i2c-hid: support sending HID output reports using the output register
    HID: kye: Add report fixup for Genius Gila Gaming mouse
    HID: wiimote: support Nintendo Wii U Pro Controller
    Input: make gamepad API keycodes more clear
    input: document gamepad API and add extra keycodes
    HID: explain out-of-range check better
    HID: fix false positive out of range values
    HID: wiimote: fix coccinelle warnings
    HID: roccat: check cdev_add return value
    HID: fold ps3remote driver into generic Sony driver
    HID: hyperv: convert alloc+memcpy to memdup
    HID: core: fix reporting of raw events
    HID: wiimote: discard invalid EXT data reports
    HID: wiimote: fix classic controller parsing
    HID: wiimote: init EXT/MP during device detection
    HID: wiimote: fix DRM debug-attr to correctly parse input
    HID: wiimote: add MP quirks
    HID: wiimote: remove old static extension support
    HID: wiimote: add "bboard_calib" attribute
    ...

    Linus Torvalds
     
  • Pull powerpc updates from Ben Herrenschmidt:
    "This is the powerpc changes for the 3.11 merge window. In addition to
    the usual bug fixes and small updates, the main highlights are:

    - Support for transparent huge pages by Aneesh Kumar for 64-bit
    server processors. This allows the use of 16M pages as transparent
    huge pages on kernels compiled with a 64K base page size.

    - Base VFIO support for KVM on power by Alexey Kardashevskiy

    - Wiring up of our nvram to the pstore infrastructure, including
    putting compressed oopses in there by Aruna Balakrishnaiah

    - Move, rework and improve our "EEH" (basically PCI error handling
    and recovery) infrastructure. It is no longer specific to pseries
    but is now usable by the new "powernv" platform as well (no
    hypervisor) by Gavin Shan.

    - I fixed some bugs in our math-emu instruction decoding and made it
    usable to emulate some optional FP instructions on processors with
    hard FP that lack them (such as fsqrt on Freescale embedded
    processors).

    - Support for Power8 "Event Based Branch" facility by Michael
    Ellerman. This facility allows what is basically "userspace
    interrupts" for performance monitor events.

    - A bunch of Transactional Memory vs. Signals bug fixes and HW
    breakpoint/watchpoint fixes by Michael Neuling.

    And more ... I appologize in advance if I've failed to highlight
    something that somebody deemed worth it."

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (156 commits)
    pstore: Add hsize argument in write_buf call of pstore_ftrace_call
    powerpc/fsl: add MPIC timer wakeup support
    powerpc/mpic: create mpic subsystem object
    powerpc/mpic: add global timer support
    powerpc/mpic: add irq_set_wake support
    powerpc/85xx: enable coreint for all the 64bit boards
    powerpc/8xx: Erroneous double irq_eoi() on CPM IRQ in MPC8xx
    powerpc/fsl: Enable CONFIG_E1000E in mpc85xx_smp_defconfig
    powerpc/mpic: Add get_version API both for internal and external use
    powerpc: Handle both new style and old style reserve maps
    powerpc/hw_brk: Fix off by one error when validating DAWR region end
    powerpc/pseries: Support compression of oops text via pstore
    powerpc/pseries: Re-organise the oops compression code
    pstore: Pass header size in the pstore write callback
    powerpc/powernv: Fix iommu initialization again
    powerpc/pseries: Inform the hypervisor we are using EBB regs
    powerpc/perf: Add power8 EBB support
    powerpc/perf: Core EBB support for 64-bit book3s
    powerpc/perf: Drop MMCRA from thread_struct
    powerpc/perf: Don't enable if we have zero events
    ...

    Linus Torvalds
     

04 Jul, 2013

31 commits

  • Jiri Kosina
     
  • Pull hwmon updates from Guenter Roeck:
    - new driver to support GMT G762/G763 pwm fan controllers
    - add support for DS1631, DS1721, and DS1731 to ds1621 driver
    - remove detect function from ds1621 driver as unreliable
    - bug fixes in nct6775, iio_hwmon, and adm1021 drivers
    - remove redundant platform_set_drvdata in various drivers
    - add device tree support to ina2xx driver

    * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (ds1621) Fix temperature rounding operations
    hwmon: (nct6775) Drop unsupported fan alarm attributes for NCT6775
    hwmon: (nct6775) Fix temperature alarm attributes
    Add support for GMT G762/G763 PWM fan controllers
    hwmon: (ina2xx) Add device tree support to pass the shunt resistor
    hwmon: (ds1621) Update documentation
    hwmon: (ds1621) Add DS1731 chip support to ds1621 driver
    hwmon: (iio_hwmon) add alias table
    hwmon: (adm1021) Do not create min sysfs attributes for LM84
    hwmon: (ds1621) Remove detect function
    hwmon: (ds1621) Add ds1631 chip support to ds1621 driver and documentation
    hwmon: (ds1621) Add ds1721 update interval sysfs attribute
    hwmon: (ds1621) Add ds1721 chip support
    hwmon: (w83627ehf) Remove redundant platform_set_drvdata()
    hwmon: (ntc_thermistor) Remove redundant platform_set_drvdata()
    hwmon: (i5k_amb) Remove redundant platform_set_drvdata()
    hwmon: (coretemp) Remove redundant platform_set_drvdata()
    hwmon: (abituguru3) Remove redundant platform_set_drvdata()

    Linus Torvalds
     
  • Pull LED subsystem updates from Bryan Wu:
    - lp55xx device tree updates
    - mc13xxx driver updates
    - some clean up

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
    leds: mc13783: Fix "uninitialized variable" warning
    leds: Convert led class driver from legacy pm ops to dev_pm_ops
    leds: leds-mc13783: Add MC13892 LED support
    leds: leds-mc13783: Prepare driver to support MC13892 LEDs
    leds: renesas-tpu: cleanup a small type issue
    leds: use platform_{get,set}_drvdata()
    leds: leds-gpio: Let device core handle pinctrl
    leds: lp5562: Properly setup of_device_id table
    leds: lp5523: Properly setup of_device_id table
    leds: lp5521: Properly setup of_device_id table
    leds: lp5562: support the device tree feature
    leds: lp55xx: support dynamic channel settings in the device tree structure
    leds: leds-ns2: remove unnecessary platform_set_drvdata()
    leds: leds-mc13783: remove unnecessary platform_set_drvdata()
    leds: leds-gpio: remove unnecessary platform_set_drvdata()
    leds: atmel-pwm: remove unnecessary platform_set_drvdata()
    leds: lp55xx: add support for Device Tree bindings

    Linus Torvalds
     
  • Pull sound updates from Takashi Iwai:
    "A relative calm release at this time with a flat diffstat. The only
    significant change in the ALSA core side is the support for more than
    32 card instances, configurable via kconfig. Other than that, in both
    ASoC and other parts, mostly some improvements and fixes on the driver
    side.

    - hda: More quirks for ALC269-variants on Dell & co, VIA codec fixes
    - hda: Haswell HDMI audio fixes, runtime PM improvements
    - hda: Intel BayTrail support, ALC5505 DSP support
    - es1968: MediaForte M56VAP support
    - usb-audio: Improved support for Yamaha/Roland devices
    - usb-audio: M2Tech hiFace, Audio Advantage Micro II support
    - hdspm: wordclock fixes
    - ASoC: Pending fixes for WM8962
    - ASoC: Cleanups and fixes for Blackfin, SGTL5000 and UX500
    - ASoC: Generalisation of the Bluetooth and HDMI stub drivers
    - ASoC: SSM2518 and RT5640 codec drivers.
    - ASoC: Tegra CPUs with RT5640 machine driver
    - ASoC: AC'97 refactoring bug fixes
    - ASoC: ADAU1701 driver fixes
    - Clean up of *_set_drvdata() in a wide range of drivers"

    * tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (284 commits)
    ALSA: vmaster: Fix the regression of missing vmaster hook call
    ALSA: hda - Add Dell SSID to support Headset Mic recording
    ASoC: adau1701: remove control_data assignment
    ASoC: adau1701: more direct regmap usage
    ASoC: ac97: fixup multi-platform AC'97 module build failure
    ASoC: pxa2xx: fixup multi-platform AC'97 build failures
    ASoC: tegra20-ac97: Remove unused variable
    ASoC: tegra20-ac97: Remove duplicate error message
    ALSA: usb-audio: Add Audio Advantage Micro II
    ASoC: tas5086: fix Mid-Z implementation
    ASoC: tas5086: fix TAS5086_CLOCK_CONTROL register size
    ALSA: Replace the magic number 44 with const
    ALSA: hda - Fix the max length of control name in generic parser
    ALSA: hda - Guess what, it's two more Dell headset mic quirks
    ALSA: hda - Yet another Dell headset mic quirk
    ALSA: hda - Add support for ALC5505 DSP power-save mode
    ASoC: mfld: Remove unused variable
    ALSA: usb-audio: add quirks for Roland QUAD/OCTO-CAPTURE
    ALSA: usb-audio: claim autodetected PCM interfaces all at once
    ALSA: usb-audio: remove superfluous Roland quirks
    ...

    Linus Torvalds
     
  • Pull libata updates from Tejun Heo:
    "Overview of changes:

    - The rest of maintainer email address updates.

    - Some core updates - more robust default behavior for port
    multipliers, better error reporting for SG_IO commands, and a way
    to better work around now ancient and probably pretty rare PATA ->
    SATA bridges with ATAPI devices.

    - sata_rcar stabilization.

    - Some hardware PCI ID additions and one-off low level driver
    updates."

    * 'for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: (22 commits)
    AHCI: use ATA_BUSY
    libata-zpodd: must use ata_tf_init()
    ahci: AHCI-mode SATA patch for Intel Coleto Creek DeviceIDs
    ata_piix: IDE-mode SATA patch for Intel Coleto Creek DeviceIDs
    libata: cleanup SAT error translation
    ahci: sata: add support for exynos5440 sata
    libata: skip SRST for all SIMG [34]7x port-multipliers
    ahci: remove pmp link online check in FBS EH
    sata highbank: add bit-banged SGPIO driver support
    ahci: make ahci_transmit_led_message into a function pointer
    sata_rcar: fix compilation warning in sata_rcar_thaw()
    sata_highbank: increase retry count but shorten duration for Calxeda controller
    ata: use pci_get_drvdata()
    ipr: qc_fill_rtf() method should not store alternate status register
    sata_rcar: add 'base' local variable to some functions
    sata_rcar: correct 'sata_rcar_sht'
    sata_rcar: kill superfluous code in sata_rcar_bmdma_fill_sg()
    libata: do not limit R-Car SATA driver to shmobile
    ata: use platform_{get,set}_drvdata()
    AHCI: Make distinct names for ports in /proc/interrupts
    ...

    Linus Torvalds
     
  • Merge first patch-bomb from Andrew Morton:
    - various misc bits
    - I'm been patchmonkeying ocfs2 for a while, as Joel and Mark have been
    distracted. There has been quite a bit of activity.
    - About half the MM queue
    - Some backlight bits
    - Various lib/ updates
    - checkpatch updates
    - zillions more little rtc patches
    - ptrace
    - signals
    - exec
    - procfs
    - rapidio
    - nbd
    - aoe
    - pps
    - memstick
    - tools/testing/selftests updates

    * emailed patches from Andrew Morton : (445 commits)
    tools/testing/selftests: don't assume the x bit is set on scripts
    selftests: add .gitignore for kcmp
    selftests: fix clean target in kcmp Makefile
    selftests: add .gitignore for vm
    selftests: add hugetlbfstest
    self-test: fix make clean
    selftests: exit 1 on failure
    kernel/resource.c: remove the unneeded assignment in function __find_resource
    aio: fix wrong comment in aio_complete()
    drivers/w1/slaves/w1_ds2408.c: add magic sequence to disable P0 test mode
    drivers/memstick/host/r592.c: convert to module_pci_driver
    drivers/memstick/host/jmb38x_ms: convert to module_pci_driver
    pps-gpio: add device-tree binding and support
    drivers/pps/clients/pps-gpio.c: convert to module_platform_driver
    drivers/pps/clients/pps-gpio.c: convert to devm_* helpers
    drivers/parport/share.c: use kzalloc
    Documentation/accounting/getdelays.c: avoid strncpy in accounting tool
    aoe: update internal version number to v83
    aoe: update copyright date
    aoe: perform I/O completions in parallel
    ...

    Linus Torvalds
     
  • Pull PCI changes from Bjorn Helgaas:
    "PCI device hotplug
    - Add pci_alloc_dev() interface (Gu Zheng)
    - Add pci_bus_get()/put() for reference counting (Jiang Liu)
    - Fix SR-IOV reference count issues (Jiang Liu)
    - Remove unused acpi_pci_roots list (Jiang Liu)

    MSI
    - Conserve interrupt resources on x86 (Alexander Gordeev)

    AER
    - Force fatal severity when component has been reset (Betty Dall)
    - Reset link below Root Port as well as Downstream Port (Betty Dall)
    - Fix "Firmware first" flag setting (Bjorn Helgaas)
    - Don't parse HEST for non-PCIe devices (Bjorn Helgaas)

    ASPM
    - Warn when we can't disable ASPM as driver requests (Bjorn Helgaas)

    Miscellaneous
    - Add CircuitCo PCI IDs (Darren Hart)
    - Add AMD CZ SATA and SMBus PCI IDs (Shane Huang)
    - Work around Ivytown NTB BAR size issue (Jon Mason)
    - Detect invalid initial BAR values (Kevin Hao)
    - Add pcibios_release_device() (Sebastian Ott)
    - Fix powerpc & sparc PCI_UNKNOWN power state usage (Bjorn Helgaas)"

    * tag 'pci-v3.11-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (51 commits)
    MAINTAINERS: Add ACPI folks for ACPI-related things under drivers/pci
    PCI: Add CircuitCo vendor ID and subsystem ID
    PCI: Use pdev->pm_cap instead of pci_find_capability(..,PCI_CAP_ID_PM)
    PCI: Return early on allocation failures to unindent mainline code
    PCI: Simplify IOV implementation and fix reference count races
    PCI: Drop redundant setting of bus->is_added in virtfn_add_bus()
    unicore32/PCI: Remove redundant call of pci_bus_add_devices()
    m68k/PCI: Remove redundant call of pci_bus_add_devices()
    PCI / ACPI / PM: Use correct power state strings in messages
    PCI: Fix comment typo for pcie_pme_remove()
    PCI: Rename pci_release_bus_bridge_dev() to pci_release_host_bridge_dev()
    PCI: Fix refcount issue in pci_create_root_bus() error recovery path
    ia64/PCI: Clean up pci_scan_root_bus() usage
    PCI/AER: Reset link for devices below Root Port or Downstream Port
    ACPI / APEI: Force fatal AER severity when component has been reset
    PCI/AER: Remove "extern" from function declarations
    PCI/AER: Move AER severity defines to aer.h
    PCI/AER: Set dev->__aer_firmware_first only for matching devices
    PCI/AER: Factor out HEST device type matching
    PCI/AER: Don't parse HEST table for non-PCIe devices
    ...

    Linus Torvalds
     
  • Currently, when a disconnect is requested by the user (via NBD_DISCONNECT
    ioctl) the return from NBD_DO_IT is undefined (it is usually one of
    several error codes). This means that nbd-client does not know if a
    manual disconnect was performed or whether a network error occurred.
    Because of this, nbd-client's persist mode (which tries to reconnect after
    error, but not after manual disconnect) does not always work correctly.

    This change fixes this by causing NBD_DO_IT to always return 0 if a user
    requests a disconnect. This means that nbd-client can correctly either
    persist the connection (if an error occurred) or disconnect (if the user
    requested it).

    Signed-off-by: Paul Clements
    Acked-by: Rob Landley
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Clements
     
  • Change endpoint device name format to use a component tag value instead of
    device destination ID.

    RapidIO specification defines a component tag to be a unique identifier
    for devices in a network. RapidIO switches already use component tag as
    part of their device name and also use it for device identification when
    processing error management event notifications.

    Forming an endpoint's device name using its component tag instead of
    destination ID allows to keep sysfs device directories unchanged in case
    if a routing process dynamically changes endpoint's destination ID as a
    result of route optimization.

    This change should not affect any existing users because a valid device
    destination ID always should be obtained by reading "destid" attribute and
    not by parsing device name.

    This patch also removes switchid member from struct rio_switch because it
    simply duplicates the component tag and does not have other use than in
    device name generation.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Cc: Andre van Herk
    Cc: Micha Nelissen
    Cc: Stef van Os
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Add RapidIO-specific modalias generation to enable udev notifications
    about RapidIO-specific events.

    The RapidIO modalias string format is shown below:

    "rapidio:vNNNNdNNNNavNNNNadNNNN"

    Where:
    v - Device Vendor ID (16 bit),
    d - Device ID (16 bit),
    av - Assembly Vendor ID (16 bit),
    ad - Assembly ID (16 bit),

    as they are reported in corresponding Capability Registers (CARs)
    of each RapidIO device.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Cc: Andre van Herk
    Cc: Micha Nelissen
    Cc: Stef van Os
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Update enumeration/discovery method registration mechanism to allow
    loading enumeration/discovery methods before all mports are registered.

    Existing statically linked RapidIO subsystem expects that all available
    RapidIO mport devices are initialized and registered before the
    enumeration/discovery method is registered. Switching to loadable mport
    device drivers creates situation when mport device driver can be loaded
    after enumeration/discovery method is attached (e.g., loadable mport
    driver in a system with statically linked RapidIO core and enumerator).
    This also will happen in a system with hot-pluggable RapidIO controllers.

    To remove the dependency on the initialization/registration order this
    patch introduces enumeration/discovery registration mechanism that
    supports arbitrary registration order of mports and enumerator/discovery
    methods.

    The following registration rules are implemented:
    - only one enumeration/discovery method can be registered for given mport ID
    (including RIO_MPORT_ANY);
    - when new enumeration/discovery methods tries to attach to the registered mport
    device, method with matching mport ID will replace a default method previously
    registered for given mport (if any);
    - enumeration/discovery method with target ID=RIO_MPORT_ANY will be attached
    only to mports that do not have another enumerator attached to them;
    - when new mport device is registered with RapidIO subsystem, registration
    routine searches for the enumeration/discovery method with the best matching
    mport ID;

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Cc: Andre van Herk
    Cc: Micha Nelissen
    Cc: Stef van Os
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Rework RapidIO switch drivers to add an option to build them as loadable
    kernel modules.

    This patch removes RapidIO-specific vmlinux section and converts switch
    drivers to be compatible with LDM driver registration method. To simplify
    registration of device-specific callback routines this patch introduces
    rio_switch_ops data structure. The sw_sysfs() callback is removed from
    the list of device-specific operations because under the new structure its
    functions can be handled by switch driver's probe() and remove() routines.

    If a specific switch device driver is not loaded the RapidIO subsystem
    core will use default standard-based operations to configure a switch.
    Because the current implementation of RapidIO enumeration/discovery method
    relies on availability of device-specific operations for error management,
    switch device drivers must be loaded before the RapidIO
    enumeration/discovery starts.

    This patch also moves several common routines from enumeration/discovery
    module into the RapidIO core code to make switch-specific operations
    accessible to all components of RapidIO subsystem.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Cc: Andre van Herk
    Cc: Micha Nelissen
    Cc: Stef van Os
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • copy_process() adds the new child to thread_group/init_task.tasks list and
    then does attach_pid(child, PIDTYPE_PID). This means that the lockless
    next_thread() or next_task() can see this thread with the wrong pid. Say,
    "ls /proc/pid/task" can list the same inode twice.

    We could move attach_pid(child, PIDTYPE_PID) up, but in this case
    find_task_by_vpid() can find the new thread before it was fully
    initialized.

    And this is already true for PIDTYPE_PGID/PIDTYPE_SID, With this patch
    copy_process() initializes child->pids[*].pid first, then calls
    attach_pid() to insert the task into the pid->tasks list.

    attach_pid() no longer need the "struct pid*" argument, it is always
    called after pid_link->pid was already set.

    Signed-off-by: Oleg Nesterov
    Cc: "Eric W. Biederman"
    Cc: Michal Hocko
    Cc: Pavel Emelyanov
    Cc: Sergey Dyasly
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • Move __set_special_pids() from exit.c to sys.c close to its single caller
    and make it static.

    And rename it to set_special_pids(), another helper with this name has
    gone away.

    Signed-off-by: Oleg Nesterov
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • crtools uses a parasite code for dumping processes. The parasite code is
    injected into a process with help PTRACE_SEIZE.

    Currently crtools blocks signals from a parasite code. If a process has
    pending signals, crtools wait while a process handles these signals.

    This method is not suitable for stopped tasks. A stopped task can have a
    few pending signals, when we will try to execute a parasite code, we will
    need to drop SIGSTOP, but all other signals must remain pending, because a
    state of processes must not be changed during checkpointing.

    This patch adds two ptrace commands to set/get signal-blocked mask.

    I think gdb can use this commands too.

    [akpm@linux-foundation.org: be consistent with brace layout]
    Signed-off-by: Andrey Vagin
    Reviewed-by: Oleg Nesterov
    Cc: Roland McGrath
    Cc: Michael Kerrisk
    Cc: Pavel Emelyanov
    Cc: Cyrill Gorcunov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Vagin
     
  • These functions allow the driver core to automatically clean up any
    allocation made by lcd drivers. Thus it simplifies the error paths.

    Signed-off-by: Jingoo Han
    Cc: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jingoo Han
     
  • These functions allow the driver core to automatically clean up any
    allocation made by backlight drivers. Thus it simplifies the error
    paths.

    Signed-off-by: Jingoo Han
    Cc: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jingoo Han
     
  • There have never been any real users of MEMSET operations since they
    have been introduced in January 2007 by commit 7405f74badf4 ("dmaengine:
    refactor dmaengine around dma_async_tx_descriptor"). Therefore remove
    support for them for now, it can be always brought back when needed.

    [sebastian.hesselbarth@gmail.com: fix drivers/dma/mv_xor]
    Signed-off-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: Kyungmin Park
    Signed-off-by: Sebastian Hesselbarth
    Cc: Vinod Koul
    Acked-by: Dan Williams
    Cc: Tomasz Figa
    Cc: Herbert Xu
    Cc: Olof Johansson
    Cc: Kevin Hilman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bartlomiej Zolnierkiewicz
     
  • dmi_match() considers a substring match to be a successful match. This is
    not always sufficient to distinguish between DMI data for different
    systems. Add support for exact string matching using strcmp() in addition
    to the substring matching using strstr().

    The specific use case in the i915 driver is to allow us to use an exact
    match for D510MO, without also incorrectly matching D510MOV:

    {
    .ident = "Intel D510MO",
    .matches = {
    DMI_MATCH(DMI_BOARD_VENDOR, "Intel"),
    DMI_EXACT_MATCH(DMI_BOARD_NAME, "D510MO"),
    },
    }

    Signed-off-by: Jani Nikula
    Cc:
    Cc: Chris Wilson
    Cc: Cornel Panceac
    Acked-by: Daniel Vetter
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jani Nikula
     
  • For the workqueue creation interfaces that do not expect format strings,
    make sure they cannot accidently be parsed that way. Additionally, clean
    up calls made with a single parameter that would be handled as a format
    string. Many callers are passing potentially dynamic string content, so
    use "%s" in those cases to avoid any potential accidents.

    Signed-off-by: Kees Cook
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • Sparse generates a false positive when you pass a __user or __iomem
    pointer to the IS_ERR() functions.

    drivers/rtc/rtc-ds1286.c:344:36: sparse: incorrect type in argument 1 (different address spaces)
    drivers/rtc/rtc-ds1286.c:344:36: expected void const *ptr
    drivers/rtc/rtc-ds1286.c:344:36: got unsigned int [noderef] [usertype] *rtcregs

    We can silence these by adding a __force here and upgrading to Sparse
    v0.4.5-rc1 or later.

    This change has no effect when using current Sparse releases.

    Signed-off-by: Dan Carpenter
    Acked-by: Christopher Li
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     
  • Instead of leaving a hidden trap for the next person who comes along and
    wants to add something to mem_section, add a big fat warning about it
    needing to be a power-of-2, and insert a BUILD_BUG_ON() in sparse_init()
    to catch mistakes.

    Right now non-power-of-2 mem_sections cause a number of WARNs at boot
    (which don't clearly point to the size of mem_section as an issue), but
    the system limps on (temporarily, at least).

    This is based upon Dave Hansen's earlier RFC where he ran into the same
    issue:
    "sparsemem: fix boot when SECTIONS_PER_ROOT is not power-of-2"
    http://lkml.indiana.edu/hypermail/linux/kernel/1205.2/03077.html

    Signed-off-by: Cody P Schafer
    Acked-by: Dave Hansen
    Cc: Jiang Liu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cody P Schafer
     
  • Now nobody makes use of free_all_bootmem_node(), kill it.

    Signed-off-by: Jiang Liu
    Cc: Johannes Weiner
    Cc: "David S. Miller"
    Cc: Yinghai Lu
    Acked-by: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Introduce a helper function set_max_mapnr() to set global variable
    max_mapnr.

    Also unify condition compilation for max_mapnr with
    CONFIG_NEED_MULTIPLE_NODES instead of CONFIG_DISCONTIGMEM.

    Signed-off-by: Jiang Liu
    Cc: Greg Kroah-Hartman
    Cc: Mauro Carvalho Chehab
    Cc: "David S. Miller"
    Cc: Mark Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Now all references to num_physpages have been removed, so kill it.

    Signed-off-by: Jiang Liu
    Cc: Mel Gorman
    Cc: Michel Lespinasse
    Cc: Rik van Riel
    Cc: Jiang Liu
    Cc: Hugh Dickins
    Cc: David Rientjes
    Cc: Al Viro
    Cc: Konstantin Khlebnikov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Introduce helper function mem_init_print_info() to simplify mem_init()
    across different architectures, which also unifies the format and
    information printed.

    Function mem_init_print_info() calculates memory statistics information
    without walking each page, so it should be a little faster on some
    architectures.

    Also introduce another helper get_num_physpages() to kill the global
    variable num_physpages.

    Signed-off-by: Jiang Liu
    Cc: Mel Gorman
    Cc: Michel Lespinasse
    Cc: Rik van Riel
    Cc: Minchan Kim
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • The original goal of this patchset is to fix the bug reported by
    https://bugzilla.kernel.org/show_bug.cgi?id=53501 Now it has also been
    expanded to reduce common code used by memory initializion.

    Patch 1-7:
    1) add comments for global variables exported by vmlinux.lds
    2) normalize global variables exported by vmlinux.lds
    Patch 8:
    Introduce helper functions mem_init_print_info() and
    get_num_physpages()
    Patch 9:
    Avoid using global variable num_physpages at runtime
    Patch 10:
    Don't update num_physpages in memory_hotplug.c
    Patch 11-40:
    Modify arch mm initialization code to:
    1) Simplify mem_init() by using mem_init_print_info()
    2) Prepare for killing global variable num_physpages
    Patch 41:
    Kill the global variable num_physpages

    With all patches applied, mem_init(), free_initmem(), free_initrd_mem()
    could be as simple as below. This patch series has reduced about 1.2K
    lines of code in total.

    #ifndef CONFIG_DISCONTIGMEM
    void __init
    mem_init(void)
    {
    max_mapnr = max_low_pfn;
    free_all_bootmem();
    high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);

    mem_init_print_info(NULL);
    }
    #endif /* CONFIG_DISCONTIGMEM */

    void
    free_initmem(void)
    {
    free_initmem_default(-1);
    }

    #ifdef CONFIG_BLK_DEV_INITRD
    void
    free_initrd_mem(unsigned long start, unsigned long end)
    {
    free_reserved_area(start, end, -1, "initrd");
    }
    #endif

    Due to hardware resource limitations, I have only tested this on x86_64.
    And the messages reported on an x86_64 system are:

    Log message before applying patches:
    Memory: 7745676k/8910848k available (6934k kernel code, 836024k absent, 329148k reserved, 6343k data, 1012k init)

    Log message after applying patches:
    Memory: 7744624K/8074824K available (6969K kernel code, 1011K data, 2828K rodata, 1016K init, 9640K bss, 330200K reserved)

    Great thanks to Vineet Gupta for testing on ARC.

    This patch:

    Document global variables exported from vmlinux.lds.

    1) Add comments about usage guidelines for global variables exported
    from vmlinux.lds.S.
    2) Remove unused __initdata_begin[] and __initdata_end[].

    Signed-off-by: Jiang Liu
    Acked-by: Arnd Bergmann
    Cc: Arnd Bergmann
    Cc: Vineet Gupta
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Currently lock_memory_hotplug()/unlock_memory_hotplug() are used to
    protect totalram_pages and zone->managed_pages. Other than the memory
    hotplug driver, totalram_pages and zone->managed_pages may also be
    modified at runtime by other drivers, such as Xen balloon,
    virtio_balloon etc. For those cases, memory hotplug lock is a little
    too heavy, so introduce a dedicated lock to protect totalram_pages and
    zone->managed_pages.

    Now we have a simplified locking rules totalram_pages and
    zone->managed_pages as:

    1) no locking for read accesses because they are unsigned long.
    2) no locking for write accesses at boot time in single-threaded context.
    3) serialize write accesses at runtime by acquiring the dedicated
    managed_page_count_lock.

    Also adjust zone->managed_pages when freeing reserved pages into the
    buddy system, to keep totalram_pages and zone->managed_pages in
    consistence.

    [akpm@linux-foundation.org: don't export adjust_managed_page_count to modules (for now)]
    Signed-off-by: Jiang Liu
    Cc: Mel Gorman
    Cc: Michel Lespinasse
    Cc: Rik van Riel
    Cc: Minchan Kim
    Cc: "H. Peter Anvin"
    Cc: "Michael S. Tsirkin"
    Cc:
    Cc: Arnd Bergmann
    Cc: Catalin Marinas
    Cc: Chris Metcalf
    Cc: David Howells
    Cc: Geert Uytterhoeven
    Cc: Ingo Molnar
    Cc: Jeremy Fitzhardinge
    Cc: Jianguo Wu
    Cc: Joonsoo Kim
    Cc: Kamezawa Hiroyuki
    Cc: Konrad Rzeszutek Wilk
    Cc: Marek Szyprowski
    Cc: Rusty Russell
    Cc: Tang Chen
    Cc: Tejun Heo
    Cc: Thomas Gleixner
    Cc: Wen Congyang
    Cc: Will Deacon
    Cc: Yasuaki Ishimatsu
    Cc: Yinghai Lu
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Commit "mm: introduce new field 'managed_pages' to struct zone" assumes
    that all highmem pages will be freed into the buddy system by function
    mem_init(). But that's not always true, some architectures may reserve
    some highmem pages during boot. For example PPC may allocate highmem
    pages for giagant HugeTLB pages, and several architectures have code to
    check PageReserved flag to exclude highmem pages allocated during boot
    when freeing highmem pages into the buddy system.

    So treat highmem pages in the same way as normal pages, that is to:
    1) reset zone->managed_pages to zero in mem_init().
    2) recalculate managed_pages when freeing pages into the buddy system.

    Signed-off-by: Jiang Liu
    Cc: "H. Peter Anvin"
    Cc: Tejun Heo
    Cc: Joonsoo Kim
    Cc: Yinghai Lu
    Cc: Mel Gorman
    Cc: Minchan Kim
    Cc: Kamezawa Hiroyuki
    Cc: Marek Szyprowski
    Cc: "Michael S. Tsirkin"
    Cc:
    Cc: Arnd Bergmann
    Cc: Catalin Marinas
    Cc: Chris Metcalf
    Cc: David Howells
    Cc: Geert Uytterhoeven
    Cc: Ingo Molnar
    Cc: Jeremy Fitzhardinge
    Cc: Jianguo Wu
    Cc: Konrad Rzeszutek Wilk
    Cc: Michel Lespinasse
    Cc: Rik van Riel
    Cc: Rusty Russell
    Cc: Tang Chen
    Cc: Thomas Gleixner
    Cc: Wen Congyang
    Cc: Will Deacon
    Cc: Yasuaki Ishimatsu
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Address more review comments from last round of code review.
    1) Enhance free_reserved_area() to support poisoning freed memory with
    pattern '0'. This could be used to get rid of poison_init_mem()
    on ARM64.
    2) A previous patch has disabled memory poison for initmem on s390
    by mistake, so restore to the original behavior.
    3) Remove redundant PAGE_ALIGN() when calling free_reserved_area().

    Signed-off-by: Jiang Liu
    Cc: Geert Uytterhoeven
    Cc: "H. Peter Anvin"
    Cc: "Michael S. Tsirkin"
    Cc:
    Cc: Arnd Bergmann
    Cc: Catalin Marinas
    Cc: Chris Metcalf
    Cc: David Howells
    Cc: Ingo Molnar
    Cc: Jeremy Fitzhardinge
    Cc: Jianguo Wu
    Cc: Joonsoo Kim
    Cc: Kamezawa Hiroyuki
    Cc: Konrad Rzeszutek Wilk
    Cc: Marek Szyprowski
    Cc: Mel Gorman
    Cc: Michel Lespinasse
    Cc: Minchan Kim
    Cc: Rik van Riel
    Cc: Rusty Russell
    Cc: Tang Chen
    Cc: Tejun Heo
    Cc: Thomas Gleixner
    Cc: Wen Congyang
    Cc: Will Deacon
    Cc: Yasuaki Ishimatsu
    Cc: Yinghai Lu
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Change signature of free_reserved_area() according to Russell King's
    suggestion to fix following build warnings:

    arch/arm/mm/init.c: In function 'mem_init':
    arch/arm/mm/init.c:603:2: warning: passing argument 1 of 'free_reserved_area' makes integer from pointer without a cast [enabled by default]
    free_reserved_area(__va(PHYS_PFN_OFFSET), swapper_pg_dir, 0, NULL);
    ^
    In file included from include/linux/mman.h:4:0,
    from arch/arm/mm/init.c:15:
    include/linux/mm.h:1301:22: note: expected 'long unsigned int' but argument is of type 'void *'
    extern unsigned long free_reserved_area(unsigned long start, unsigned long end,

    mm/page_alloc.c: In function 'free_reserved_area':
    >> mm/page_alloc.c:5134:3: warning: passing argument 1 of 'virt_to_phys' makes pointer from integer without a cast [enabled by default]
    In file included from arch/mips/include/asm/page.h:49:0,
    from include/linux/mmzone.h:20,
    from include/linux/gfp.h:4,
    from include/linux/mm.h:8,
    from mm/page_alloc.c:18:
    arch/mips/include/asm/io.h:119:29: note: expected 'const volatile void *' but argument is of type 'long unsigned int'
    mm/page_alloc.c: In function 'free_area_init_nodes':
    mm/page_alloc.c:5030:34: warning: array subscript is below array bounds [-Warray-bounds]

    Also address some minor code review comments.

    Signed-off-by: Jiang Liu
    Reported-by: Arnd Bergmann
    Cc: "H. Peter Anvin"
    Cc: "Michael S. Tsirkin"
    Cc:
    Cc: Catalin Marinas
    Cc: Chris Metcalf
    Cc: David Howells
    Cc: Geert Uytterhoeven
    Cc: Ingo Molnar
    Cc: Jeremy Fitzhardinge
    Cc: Jianguo Wu
    Cc: Joonsoo Kim
    Cc: Kamezawa Hiroyuki
    Cc: Konrad Rzeszutek Wilk
    Cc: Marek Szyprowski
    Cc: Mel Gorman
    Cc: Michel Lespinasse
    Cc: Minchan Kim
    Cc: Rik van Riel
    Cc: Rusty Russell
    Cc: Tang Chen
    Cc: Tejun Heo
    Cc: Thomas Gleixner
    Cc: Wen Congyang
    Cc: Will Deacon
    Cc: Yasuaki Ishimatsu
    Cc: Yinghai Lu
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu