1. Nov 09, 2018
  2. Nov 08, 2018
  3. Nov 02, 2018
    • Keith Busch's avatar
      nvme-pci: fix conflicting p2p resource adds · 9fe5c59f
      Keith Busch authored
      
      
      The nvme pci driver had been adding its CMB resource to the P2P DMA
      subsystem everytime on on a controller reset. This results in the
      following warning:
      
          ------------[ cut here ]------------
          nvme 0000:00:03.0: Conflicting mapping in same section
          WARNING: CPU: 7 PID: 81 at kernel/memremap.c:155 devm_memremap_pages+0xa6/0x380
          ...
          Call Trace:
           pci_p2pdma_add_resource+0x153/0x370
           nvme_reset_work+0x28c/0x17b1 [nvme]
           ? add_timer+0x107/0x1e0
           ? dequeue_entity+0x81/0x660
           ? dequeue_entity+0x3b0/0x660
           ? pick_next_task_fair+0xaf/0x610
           ? __switch_to+0xbc/0x410
           process_one_work+0x1cf/0x350
           worker_thread+0x215/0x3d0
           ? process_one_work+0x350/0x350
           kthread+0x107/0x120
           ? kthread_park+0x80/0x80
           ret_from_fork+0x1f/0x30
          ---[ end trace f7ea76ac6ee72727 ]---
          nvme nvme0: failed to register the CMB
      
      This patch fixes this by registering the CMB with P2P only once.
      
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Reviewed-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      9fe5c59f
    • James Smart's avatar
      nvme-fc: fix request private initialization · d19b8bc8
      James Smart authored
      The patch made to avoid Coverity reporting of out of bounds access
      on aen_op moved the assignment of a pointer, leaving it null when it
      was subsequently used to calculate a private pointer. Thus the private
      pointer was bad.
      
      Move/correct the private pointer initialization to be in sync with the
      patch.
      
      Fixes: 0d2bdf9f
      
       ("nvme-fc: rework the request initialization code")
      Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      d19b8bc8
    • Dennis Zhou's avatar
      blkcg: revert blkcg cleanups series · b5f2954d
      Dennis Zhou authored
      This reverts a series committed earlier due to null pointer exception
      bug report in [1]. It seems there are edge case interactions that I did
      not consider and will need some time to understand what causes the
      adverse interactions.
      
      The original series can be found in [2] with a follow up series in [3].
      
      [1] https://www.spinics.net/lists/cgroups/msg20719.html
      [2] https://lore.kernel.org/lkml/20180911184137.35897-1-dennisszhou@gmail.com/
      [3] https://lore.kernel.org/lkml/20181020185612.51587-1-dennis@kernel.org/
      
      This reverts the following commits:
      d459d853, b2c3fa54, 101246ec, b3b9f24f, e2b09899,
      f0fcb3ec, c839e7a0, bdc24917, 74b7c02a, 5bf9a1f3,
      a7b39b4e, 07b05bcc, 49f4c2dc, 27e6fa99
      
      
      
      Signed-off-by: default avatarDennis Zhou <dennis@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      b5f2954d
    • Ming Lei's avatar
      block: brd: associate with queue until adding disk · 153fcd5f
      Ming Lei authored
      
      
      brd_free() may be called in failure path on one brd instance which
      disk isn't added yet, so release handler of gendisk may free the
      associated request_queue early and causes the following use-after-free[1].
      
      This patch fixes this issue by associating gendisk with request_queue
      just before adding disk.
      
      [1] KASAN: use-after-free Read in del_timer_syncNon-volatile memory driver v1.3
      Linux agpgart interface v0.103
      [drm] Initialized vgem 1.0.0 20120112 for virtual device on minor 0
      usbcore: registered new interface driver udl
      ==================================================================
      BUG: KASAN: use-after-free in __lock_acquire+0x36d9/0x4c20
      kernel/locking/lockdep.c:3218
      Read of size 8 at addr ffff8801d1b6b540 by task swapper/0/1
      
      CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.19.0+ #88
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
      Google 01/01/2011
      Call Trace:
        __dump_stack lib/dump_stack.c:77 [inline]
        dump_stack+0x244/0x39d lib/dump_stack.c:113
        print_address_description.cold.7+0x9/0x1ff mm/kasan/report.c:256
        kasan_report_error mm/kasan/report.c:354 [inline]
        kasan_report.cold.8+0x242/0x309 mm/kasan/report.c:412
        __asan_report_load8_noabort+0x14/0x20 mm/kasan/report.c:433
        __lock_acquire+0x36d9/0x4c20 kernel/locking/lockdep.c:3218
        lock_acquire+0x1ed/0x520 kernel/locking/lockdep.c:3844
        del_timer_sync+0xb7/0x270 kernel/time/timer.c:1283
        blk_cleanup_queue+0x413/0x710 block/blk-core.c:809
        brd_free+0x5d/0x71 drivers/block/brd.c:422
        brd_init+0x2eb/0x393 drivers/block/brd.c:518
        do_one_initcall+0x145/0x957 init/main.c:890
        do_initcall_level init/main.c:958 [inline]
        do_initcalls init/main.c:966 [inline]
        do_basic_setup init/main.c:984 [inline]
        kernel_init_freeable+0x5c6/0x6b9 init/main.c:1148
        kernel_init+0x11/0x1ae init/main.c:1068
        ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:350
      
      Reported-by: default avatar <syzbot+3701447012fe951dabb2@syzkaller.appspotmail.com>
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      153fcd5f
  4. Oct 31, 2018
  5. Oct 29, 2018
  6. Oct 26, 2018
  7. Oct 25, 2018
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · d49f8a52
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This is mostly updates of the usual drivers: UFS, esp_scsi, NCR5380,
        qla2xxx, lpfc, libsas, hisi_sas.
      
        In addition there's a set of mostly small updates to the target
        subsystem a set of conversions to the generic DMA API, which do have
        some potential for issues in the older drivers but we'll handle those
        as case by case fixes.
      
        A new myrs driver for the DAC960/mylex raid controllers to replace the
        block based DAC960 which is also being removed by Jens in this merge
        window.
      
        Plus the usual slew of trivial changes"
      
      [ "myrs" stands for "MYlex Raid Scsi". Obviously. Silly of me to even
        wonder. There's also a "myrb" driver, where the 'b' stands for
        'block'. Truly, somebody has got mad naming skillz. - Linus ]
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (237 commits)
        scsi: myrs: Fix the processor absent message in processor_show()
        scsi: myrs: Fix a logical vs bitwise bug
        scsi: hisi_sas: Fix NULL pointer dereference
        scsi: myrs: fix build failure on 32 bit
        scsi: fnic: replace gross legacy tag hack with blk-mq hack
        scsi: mesh: switch to generic DMA API
        scsi: ips: switch to generic DMA API
        scsi: smartpqi: fully convert to the generic DMA API
        scsi: vmw_pscsi: switch to generic DMA API
        scsi: snic: switch to generic DMA API
        scsi: qla4xxx: fully convert to the generic DMA API
        scsi: qla2xxx: fully convert to the generic DMA API
        scsi: qla1280: switch to generic DMA API
        scsi: qedi: fully convert to the generic DMA API
        scsi: qedf: fully convert to the generic DMA API
        scsi: pm8001: switch to generic DMA API
        scsi: nsp32: switch to generic DMA API
        scsi: mvsas: fully convert to the generic DMA API
        scsi: mvumi: switch to generic DMA API
        scsi: mpt3sas: switch to generic DMA API
        ...
      d49f8a52
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · bd6bf7c1
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
      
       - Fix ASPM link_state teardown on removal (Lukas Wunner)
      
       - Fix misleading _OSC ASPM message (Sinan Kaya)
      
       - Make _OSC optional for PCI (Sinan Kaya)
      
       - Don't initialize ASPM link state when ACPI_FADT_NO_ASPM is set
         (Patrick Talbert)
      
       - Remove x86 and arm64 node-local allocation for host bridge structures
         (Punit Agrawal)
      
       - Pay attention to device-specific _PXM node values (Jonathan Cameron)
      
       - Support new Immediate Readiness bit (Felipe Balbi)
      
       - Differentiate between pciehp surprise and safe removal (Lukas Wunner)
      
       - Remove unnecessary pciehp includes (Lukas Wunner)
      
       - Drop pciehp hotplug_slot_ops wrappers (Lukas Wunner)
      
       - Tolerate PCIe Slot Presence Detect being hardwired to zero to
         workaround broken hardware, e.g., the Wilocity switch/wireless device
         (Lukas Wunner)
      
       - Unify pciehp controller & slot structs (Lukas Wunner)
      
       - Constify hotplug_slot_ops ...
      bd6bf7c1
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-4.20-rc1' of git://git.infradead.org/users/vkoul/slave-dma · a41efc2a
      Linus Torvalds authored
      Pull dmaengine updates from Vinod Koul:
      
       - Support for ColdFire mcf5441x edma controller
      
       - Support for link list mode in sprd dma
      
       - More users of managed dmaenginem_async_device_register API
      
       - Cyclic mode support in owl dma driver
      
       - DT updates for renesas drivers, dma-jz4780 updates and support for
         JZ4770, JZ4740 and JZ4725B controllers
      
       - Removal of deprecated dma_slave_config direction in dmaengine
         drivers, few more users will be removed in next cycle and eventually
         removed.
      
       - Minor updates to idma64, ioat, pxa, ppc drivers
      
      * tag 'dmaengine-4.20-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (66 commits)
        dmaengine: ppc4xx: fix off-by-one build failure
        dmaengine: owl: Fix warnings generated during build
        dmaengine: fsl-edma: remove dma_slave_config direction usage
        dmaengine: rcar-dmac: set scatter/gather max segment size
        dmaengine: mmp_tdma: remove dma_slave_config direction usage
        dmaengine: ep93xx_dma: remove dma_slave_config direction usage
        dmaengine: k3dma: remove dma_slave_config direction usage
        dmaengine: k3dma: dont use direction for memcpy
        dmaengine: imx-dma: remove dma_slave_config direction usage
        dmaengine: idma: remove dma_slave_config direction usage
        dmaengine: hsu: remove dma_slave_config direction usage
        dmaengine: dw: remove dma_slave_config direction usage
        dmaengine: jz4740: remove dma_slave_config direction usage
        dmaengine: coh901318: remove dma_slave_config direction usage
        dmaengine: bcm2835: remove dma_slave_config direction usage
        dmaengine: at_hdmac: remove dma_slave_config direction usage
        dmaengine: owl: Add Slave and Cyclic mode support for Actions Semi Owl S900 SoC
        dmaengine: ioat: fix prototype of ioat_enumerate_channels
        dmaengine: stm32-dma: check whether length is aligned on FIFO threshold
        dt-bindings: dmaengine: usb-dmac: Add binding for r8a7744
        ...
      a41efc2a
    • Linus Torvalds's avatar
      Merge tag 'edac_for_4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · 36168d71
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
       "The EDAC tree was busier than usual this cycle as the shortlog below
        shows.
      
        Also, this pull request is carrying an ACPI DSM driver which is used
        to ask the platform to supply the DIMM location of a reported hardware
        error and thus simplify all the EDAC logic when trying to map the
        error address to the respective DIMM.
      
        Core EDAC updates:
      
         - amd64_edac: AMD family 0x17, models 0x10-0x2f support (Michael Jin)
           Hygon Dhyana support (Pu Wen)
      
         - sb_edac: New maintainer + fixes (Tony Luck) Error reporting
           improvements and fixes (Qiuxu Zhuo)
      
         - ghes_edac: SMBIOS handle type 17 for DIMM locating and per-DIMM
           error accounting (Fan Wu)
      
         - altera_edac: Stratix10 support and refactoring (Thor Thayer)
      
        Out of tree addition:
      
         - acpi_adxl: Address Translation interface using an ACPI DSM (Tony
           Luck)
      
         - the usual amount of other misc fixes and cleanups all over"
      
      * tag 'edac_for_4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (22 commits)
        ACPI/ADXL: Add address translation interface using an ACPI DSM
        EDAC, thunderx: Fix memory leak in thunderx_l2c_threaded_isr()
        EDAC, skx_edac: Fix logical channel intermediate decoding
        EDAC, {i7core,sb,skx}_edac: Fix uncorrected error counting
        EDAC, altera: Work around int-to-pointer-cast warnings
        EDAC, amd64: Add Hygon Dhyana support
        EDAC: Raise the maximum number of memory controllers
        arm64: dts: stratix10: Add peripheral EDAC nodes
        EDAC, altera: Add Stratix10 peripheral support
        EDAC, altera: Merge Stratix10 into the Arria10 SDRAM probe routine
        arm64: dts: stratix10: Add SDRAM node
        EDAC, altera: Combine Stratix10 and Arria10 probe functions
        arm64: dts: stratix10: Additions to EDAC System Manager
        EDAC, i7core: Remove set but not used variable pvt
        EDAC, ghes: Use CPER module handles to locate DIMMs
        EDAC: Correct DIMM capacity unit symbol
        EDAC, sb_edac: Fix signedness bugs in *_get_ha() functions
        EDAC, sb_edac: Fix reporting for patrol scrubber errors
        EDAC, sb_edac: Return early on ADDRV bit and address type test
        MAINTAINERS: Update maintainer for drivers/edac/sb_edac.c
        ...
      36168d71
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 6078e07d
      Linus Torvalds authored
      Pull libnvdimm updates from Dan Williams:
      
       - Improve the efficiency and performance of reading nvdimm-namespace
         labels. Reduce the amount of label data read at driver load time by a
         few orders of magnitude. Reduce heavyweight call-outs to
         platform-firmware routines.
      
       - Handle media errors located in the 'struct page' array stored on a
         persistent memory namespace. Let the kernel clear these errors rather
         than an awkward userspace workaround.
      
       - Fix Address Range Scrub (ARS) completion tracking. Correct occasions
         where the kernel indicates completion of ARS before submission.
      
       - Fix asynchronous device registration reference counting.
      
       - Add support for reporting an nvdimm dirty-shutdown-count via sysfs.
      
       - Fix various small libnvdimm core and uapi issues.
      
      * tag 'libnvdimm-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (21 commits)
        acpi, nfit: Further restrict userspace ARS start requests
        acpi, nfit: Fix Address Range Scrub completion tracking
        UAPI: ndctl: Remove use of PAGE_SIZE
        UAPI: ndctl: Fix g++-unsupported initialisation in headers
        tools/testing/nvdimm: Populate dirty shutdown data
        acpi, nfit: Collect shutdown status
        acpi, nfit: Introduce nfit_mem flags
        libnvdimm, label: Fix sparse warning
        nvdimm: Use namespace index data to reduce number of label reads needed
        nvdimm: Split label init out from the logic for getting config data
        nvdimm: Remove empty if statement
        nvdimm: Clarify comment in sizeof_namespace_index
        nvdimm: Sanity check labeloff
        libnvdimm, dimm: Maximize label transfer size
        libnvdimm, pmem: Fix badblocks population for 'raw' namespaces
        libnvdimm, namespace: Drop the repeat assignment for variable dev->parent
        libnvdimm, region: Fail badblocks listing for inactive regions
        libnvdimm, pfn: during init, clear errors in the metadata area
        libnvdimm: Set device node in nd_device_register
        libnvdimm: Hold reference on parent while scheduling async init
        ...
      6078e07d
    • Linus Torvalds's avatar
      Merge tag 'for-v4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · df132e40
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
      
       - Add Spreadtrum SC2731 charger driver
      
       - bq25890-charger: Add BQ25896 support
      
       - bq27xxx-battery: Add support for BQ27411
      
       - qcom-pon: Add pms405 pon support
      
       - cros-charger: add support for dedicated port
      
       - misc fixes
      
      * tag 'for-v4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (28 commits)
        power: max8925: mark expected switch fall-through
        power: supply: fix spelling mistake "Gauage" -> "Gauge"
        power: reset: qcom-pon: Add pms405 pon support
        power: supply: bq27xxx: Add support for BQ27411
        power: supply: Add Spreadtrum SC2731 charger support
        dt-bindings: power: Add Spreadtrum SC2731 charger documentation
        power: supply: twl4030_charger: disable eoc interrupt on linear charge
        power: supply: twl4030_charger: fix charging current out-of-bounds
        power: supply: bq25890_charger: fix semicolon.cocci warnings
        power: supply: max8998-charger: Fix platform data retrieval
        power: supply: cros: add support for dedicated port
        mfd: cros: add charger port count command definition
        power: reset: at91-poweroff: do not procede if at91_shdwc is allocated
        power: reset: at91-poweroff: rename at91_shdwc_base member of struct shdwc
        power: reset: at91-poweroff: make sclk part of struct shdwc
        power: reset: at91-poweroff: make mpddrc_base part of struct shdwc
        power: reset: at91-poweroff: use only one poweroff function
        power: reset: at91-poweroff: switch to slow clock before shutdown
        power: reset: convert to SPDX identifiers
        power: supply: ab8500_fg: silence uninitialized variable warnings
        ...
      df132e40
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 96f2f66a
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - rumble support for Xbox One S, from Andrey Smirnov
      
       - high-resolution support for Logitech mice, from Harry Cutts
      
       - support for recent devices requiring the HID parse to be able to cope
         with tag report sizes > 256
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (35 commits)
        HID: usbhid: Add quirk for Redragon/Dragonrise Seymur 2
        HID: wacom: Work around HID descriptor bug in DTK-2451 and DTH-2452
        HID: google: add dependency on Cros EC for Hammer
        HID: elan: fix spelling mistake "registred" -> "registered"
        HID: google: drop superfluous const before SIMPLE_DEV_PM_OPS()
        HID: google: add support tablet mode switch for Whiskers
        mfd: cros: add "base attached" MKBP switch definition
        Input: reserve 2 events code because of HID
        HID: magicmouse: add support for Apple Magic Trackpad 2
        HID: i2c-hid: override HID descriptors for certain devices
        HID: hid-bigbenff: driver for BigBen Interactive PS3OFMINIPAD gamepad
        HID: logitech: fix a used uninitialized GCC warning
        HID: intel-ish-hid: using list_head for ipc write queue
        HID: intel-ish-hid: use resource-managed api
        HID: intel_ish-hid: Enhance API to get ring buffer sizes
        HID: intel-ish-hid: use helper function to search client id
        HID: intel-ish-hid: ishtp: add helper function for client search
        HID: intel-ish-hid: use helper function to access client buffer
        HID: intel-ish-hid: ishtp: add helper functions for client buffer operation
        HID: intel-ish-hid: use helper function for private driver data set/get
        ...
      96f2f66a