17 Aug, 2017

1 commit

  • Pull SCSI fixes from James Bottomley:
    "A couple of minor fixes (st, ses) and some bigger driver fixes for
    qla2xxx (crash triggered by fw dump) and ipr (lockdep problems with
    mq)"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    scsi: ses: Fix wrong page error
    scsi: ipr: Fix scsi-mq lockdep issue
    scsi: st: fix blk_get_queue usage
    scsi: qla2xxx: Fix system crash while triggering FW dump

    Linus Torvalds
     

16 Aug, 2017

4 commits

  • Pull networking fixes from David Miller:

    1) Fix TCP checksum offload handling in iwlwifi driver, from Emmanuel
    Grumbach.

    2) In ksz DSA tagging code, free SKB if skb_put_padto() fails. From
    Vivien Didelot.

    3) Fix two regressions with bonding on wireless, from Andreas Born.

    4) Fix build when busypoll is disabled, from Daniel Borkmann.

    5) Fix copy_linear_skb() wrt. SO_PEEK_OFF, from Eric Dumazet.

    6) Set SKB cached route properly in inet_rtm_getroute(), from Florian
    Westphal.

    7) Fix PCI-E relaxed ordering handling in cxgb4 driver, from Ding
    Tianhong.

    8) Fix module refcnt leak in ULP code, from Sabrina Dubroca.

    9) Fix use of GFP_KERNEL in atomic contexts in AF_KEY code, from Eric
    Dumazet.

    10) Need to purge socket write queue in dccp_destroy_sock(), also from
    Eric Dumazet.

    11) Make bpf_trace_printk() work properly on 32-bit architectures, from
    Daniel Borkmann.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (47 commits)
    bpf: fix bpf_trace_printk on 32 bit archs
    PCI: fix oops when try to find Root Port for a PCI device
    sfc: don't try and read ef10 data on non-ef10 NIC
    net_sched: remove warning from qdisc_hash_add
    net_sched/sfq: update hierarchical backlog when drop packet
    net_sched: reset pointers to tcf blocks in classful qdiscs' destructors
    ipv4: fix NULL dereference in free_fib_info_rcu()
    net: Fix a typo in comment about sock flags.
    ipv6: fix NULL dereference in ip6_route_dev_notify()
    tcp: fix possible deadlock in TCP stack vs BPF filter
    dccp: purge write queue in dccp_destroy_sock()
    udp: fix linear skb reception with PEEK_OFF
    ipv6: release rt6->rt6i_idev properly during ifdown
    af_key: do not use GFP_KERNEL in atomic contexts
    tcp: ulp: avoid module refcnt leak in tcp_set_ulp
    net/cxgb4vf: Use new PCI_DEV_FLAGS_NO_RELAXED_ORDERING flag
    net/cxgb4: Use new PCI_DEV_FLAGS_NO_RELAXED_ORDERING flag
    PCI: Disable Relaxed Ordering Attributes for AMD A1100
    PCI: Disable Relaxed Ordering for some Intel processors
    PCI: Disable PCIe Relaxed Ordering if unsupported
    ...

    Linus Torvalds
     
  • Eric report a oops when booting the system after applying
    the commit a99b646afa8a ("PCI: Disable PCIe Relaxed..."):

    [ 4.241029] BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
    [ 4.247001] IP: pci_find_pcie_root_port+0x62/0x80
    [ 4.253011] PGD 0
    [ 4.253011] P4D 0
    [ 4.253011]
    [ 4.258013] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
    [ 4.262015] Modules linked in:
    [ 4.265005] CPU: 31 PID: 1 Comm: swapper/0 Not tainted 4.13.0-dbx-DEV #316
    [ 4.271002] Hardware name: Intel RML,PCH/Iota_QC_19, BIOS 2.40.0 06/22/2016
    [ 4.279002] task: ffffa2ee38cfa040 task.stack: ffffa51ec0004000
    [ 4.285001] RIP: 0010:pci_find_pcie_root_port+0x62/0x80
    [ 4.290012] RSP: 0000:ffffa51ec0007ab8 EFLAGS: 00010246
    [ 4.295003] RAX: 0000000000000000 RBX: ffffa2ee36bae000 RCX: 0000000000000006
    [ 4.303002] RDX: 000000000000081c RSI: ffffa2ee38cfa8c8 RDI: ffffa2ee36bae000
    [ 4.310013] RBP: ffffa51ec0007b58 R08: 0000000000000001 R09: 0000000000000000
    [ 4.317001] R10: 0000000000000000 R11: 0000000000000000 R12: ffffa51ec0007ad0
    [ 4.324005] R13: ffffa2ee36bae098 R14: 0000000000000002 R15: ffffa2ee37204818
    [ 4.331002] FS: 0000000000000000(0000) GS:ffffa2ee3fcc0000(0000) knlGS:0000000000000000
    [ 4.339002] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 4.345001] CR2: 0000000000000050 CR3: 000000401000f000 CR4: 00000000001406e0
    [ 4.351002] Call Trace:
    [ 4.354012] ? pci_configure_device+0x19f/0x570
    [ 4.359002] ? pci_conf1_read+0xb8/0xf0
    [ 4.363002] ? raw_pci_read+0x23/0x40
    [ 4.366011] ? pci_read+0x2c/0x30
    [ 4.370014] ? pci_read_config_word+0x67/0x70
    [ 4.374012] pci_device_add+0x28/0x230
    [ 4.378012] ? pci_vpd_f0_read+0x50/0x80
    [ 4.382014] pci_scan_single_device+0x96/0xc0
    [ 4.386012] pci_scan_slot+0x79/0xf0
    [ 4.389001] pci_scan_child_bus+0x31/0x180
    [ 4.394014] acpi_pci_root_create+0x1c6/0x240
    [ 4.398013] pci_acpi_scan_root+0x15f/0x1b0
    [ 4.402012] acpi_pci_root_add+0x2e6/0x400
    [ 4.406012] ? acpi_evaluate_integer+0x37/0x60
    [ 4.411002] acpi_bus_attach+0xdf/0x200
    [ 4.415002] acpi_bus_attach+0x6a/0x200
    [ 4.418014] acpi_bus_attach+0x6a/0x200
    [ 4.422013] acpi_bus_scan+0x38/0x70
    [ 4.426011] acpi_scan_init+0x10c/0x271
    [ 4.429001] acpi_init+0x2fa/0x348
    [ 4.433004] ? acpi_sleep_proc_init+0x2d/0x2d
    [ 4.437001] do_one_initcall+0x43/0x169
    [ 4.441001] kernel_init_freeable+0x1d0/0x258
    [ 4.445003] ? rest_init+0xe0/0xe0
    [ 4.449001] kernel_init+0xe/0x150

    ====================== cut here =============================

    It looks like the pci_find_pcie_root_port() was trying to
    find the Root Port for the PCI device which is the Root
    Port already, it will return NULL and trigger the problem,
    so check the highest_pcie_bridge to fix thie problem.

    Fixes: a99b646afa8a ("PCI: Disable PCIe Relaxed Ordering if unsupported")
    Fixes: c56d4450eb68 ("PCI: Turn off Request Attributes to avoid Chelsio T5 Completion erratum")
    Reported-by: Eric Dumazet
    Signed-off-by: Eric Dumazet
    Signed-off-by: Ding Tianhong
    Signed-off-by: David S. Miller

    dingtianhong
     
  • The MAC stats command takes a port ID, which doesn't exist on
    pre-ef10 NICs (5000- and 6000- series). This is extracted from the
    NIC specific data; we misinterpret this as the ef10 data structure,
    causing us to read potentially unallocated data. With a KASAN kernel
    this can cause errors with:
    BUG: KASAN: slab-out-of-bounds in efx_mcdi_mac_stats

    Fixes: 0a2ab4d988d7 ("sfc: set the port-id when calling MC_CMD_MAC_STATS")
    Reported-by: Stefano Brivio
    Tested-by: Stefano Brivio
    Signed-off-by: Bert Kenward
    Signed-off-by: David S. Miller

    Bert Kenward
     
  • …m/linux/kernel/git/kvalo/wireless-drivers

    Kalle Valo says:

    ====================
    wireless-drivers fixes for 4.13

    This time quite a few fixes for iwlwifi and one major regression fix
    for brcmfmac. For the iwlwifi aggregation bug a small change was
    needed for mac80211, but as Johannes is still away the mac80211 patch
    is taken via wireless-drivers tree.

    brcmfmac

    * fix firmware crash (a recent regression in bcm4343{0,1,8}

    iwlwifi

    * Some simple PCI HW ID fix-ups and additions for family 9000

    * Remove a bogus warning message with new FWs (bug #196915)

    * Don't allow illegal channel options to be used (bug #195299)

    * A fix for checksum offload in family 9000

    * A fix serious throughput degradation in 11ac with multiple streams

    * An old bug in SMPS where the firmware was not aware of SMPS changes

    * Fix a memory leak in the SAR code

    * Fix a stuck queue case in AP mode;

    * Convert a WARN to a simple debug in a legitimate race case (from
    which we can recover)

    * Fix a severe throughput aggregation on 9000-family devices due to
    aggregation issues, needed a small change in mac80211
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     

15 Aug, 2017

7 commits

  • cxgb4vf Ethernet driver now queries PCIe configuration space to
    determine if it can send TLPs to it with the Relaxed Ordering
    Attribute set, just like the pf did.

    Signed-off-by: Casey Leedom
    Signed-off-by: Ding Tianhong
    Reviewed-by: Casey Leedom
    Signed-off-by: David S. Miller

    Casey Leedom
     
  • cxgb4 Ethernet driver now queries PCIe configuration space to determine
    if it can send TLPs to it with the Relaxed Ordering Attribute set.

    Remove the enable_pcie_relaxed_ordering() to avoid enable PCIe Capability
    Device Control[Relaxed Ordering Enable] at probe routine, to make sure
    the driver will not send the Relaxed Ordering TLPs to the Root Complex which
    could not deal the Relaxed Ordering TLPs.

    Signed-off-by: Casey Leedom
    Signed-off-by: Ding Tianhong
    Reviewed-by: Casey Leedom
    Signed-off-by: David S. Miller

    Casey Leedom
     
  • Casey reported that the AMD ARM A1100 SoC has a bug in its PCIe
    Root Port where Upstream Transaction Layer Packets with the Relaxed
    Ordering Attribute clear are allowed to bypass earlier TLPs with
    Relaxed Ordering set, it would cause Data Corruption, so we need
    to disable Relaxed Ordering Attribute when Upstream TLPs to the
    Root Port.

    Reported-and-suggested-by: Casey Leedom
    Signed-off-by: Casey Leedom
    Signed-off-by: Ding Tianhong
    Acked-by: Casey Leedom
    Signed-off-by: David S. Miller

    dingtianhong
     
  • According to the Intel spec section 3.9.1 said:

    3.9.1 Optimizing PCIe Performance for Accesses Toward Coherent Memory
    and Toward MMIO Regions (P2P)

    In order to maximize performance for PCIe devices in the processors
    listed in Table 3-6 below, the soft- ware should determine whether the
    accesses are toward coherent memory (system memory) or toward MMIO
    regions (P2P access to other devices). If the access is toward MMIO
    region, then software can command HW to set the RO bit in the TLP
    header, as this would allow hardware to achieve maximum throughput for
    these types of accesses. For accesses toward coherent memory, software
    can command HW to clear the RO bit in the TLP header (no RO), as this
    would allow hardware to achieve maximum throughput for these types of
    accesses.

    Table 3-6. Intel Processor CPU RP Device IDs for Processors Optimizing
    PCIe Performance

    Processor CPU RP Device IDs

    Intel Xeon processors based on 6F01H-6F0EH
    Broadwell microarchitecture

    Intel Xeon processors based on 2F01H-2F0EH
    Haswell microarchitecture

    It means some Intel processors has performance issue when use the Relaxed
    Ordering Attribute, so disable Relaxed Ordering for these root port.

    Signed-off-by: Casey Leedom
    Signed-off-by: Ding Tianhong
    Acked-by: Alexander Duyck
    Acked-by: Ashok Raj
    Signed-off-by: David S. Miller

    dingtianhong
     
  • When bit4 is set in the PCIe Device Control register, it indicates
    whether the device is permitted to use relaxed ordering.
    On some platforms using relaxed ordering can have performance issues or
    due to erratum can cause data-corruption. In such cases devices must avoid
    using relaxed ordering.

    The patch adds a new flag PCI_DEV_FLAGS_NO_RELAXED_ORDERING to indicate that
    Relaxed Ordering (RO) attribute should not be used for Transaction Layer
    Packets (TLP) targeted towards these affected root complexes.

    This patch checks if there is any node in the hierarchy that indicates that
    using relaxed ordering is not safe. In such cases the patch turns off the
    relaxed ordering by clearing the capability for this device.

    Signed-off-by: Casey Leedom
    Signed-off-by: Ding Tianhong
    Acked-by: Ashok Raj
    Acked-by: Alexander Duyck
    Acked-by: Casey Leedom
    Signed-off-by: David S. Miller

    dingtianhong
     
  • Pull MD fixes from Shaohua Li:
    "Fix several bugs:

    - fix a rcu stall issue introduced in 4.12 (Neil Brown)

    - fix two raid5 cache race conditions (Song Liu)"

    * tag 'md/4.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md:
    MD: not clear ->safemode for external metadata array
    md/r5cache: fix io_unit handling in r5l_log_endio()
    md/r5cache: call mddev_lock/unlock() in r5c_journal_mode_set
    md: fix test in md_write_start()
    md: always clear ->safemode when md_check_recovery gets the mddev lock.

    Linus Torvalds
     
  • Pull crypto fixes from Herbert Xu:
    "Fix an error path bug in ixp4xx as well as a read overrun in
    sha1-avx2"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: x86/sha1 - Fix reads beyond the number of blocks passed
    crypto: ixp4xx - Fix error handling path in 'aead_perform()'

    Linus Torvalds
     

14 Aug, 2017

7 commits

  • The firmware feature check introduced for multi-scheduled scan turned out
    to be failing for bcm4343{0,1,8} devices resulting in a firmware crash.
    The reason for this crash has not yet been root cause so this patch avoids
    the feature check for those device as a short-term fix.

    Reported-by: Stefan Wahren
    Reported-by: Ian Molton
    Fixes: 9fe929aaace6 ("brcmfmac: add firmware feature detection for gscan feature")
    Signed-off-by: Arend van Spriel
    Signed-off-by: Kalle Valo

    Arend Van Spriel
     
  • bond_miimon_commit() handles the UP transition for each slave of a bond
    in the case of MII. It is triggered 10 times per second for the default
    MII Polling interval of 100ms. For device drivers that do not implement
    __ethtool_get_link_ksettings() the call to bond_update_speed_duplex()
    fails persistently while the MII status could remain UP. That is, in
    this and other cases where the speed/duplex update keeps failing over a
    longer period of time while the MII state is UP, a warning is printed
    every MII polling interval.

    To address these excessive warnings net_ratelimit() should be used.
    Printing a warning once would not be sufficient since the call to
    bond_update_speed_duplex() could recover to succeed and fail again
    later. In that case there would be no new indication what went wrong.

    Fixes: b5bf0f5b16b9c (bonding: correctly update link status during mii-commit phase)
    Signed-off-by: Andreas Born
    Signed-off-by: David S. Miller

    Andreas Born
     
  • Pull driver core fixes from Greg KH:
    "Here are three firmware core fixes for 4.13-rc5.

    All three of these fix reported issues and have been floating around
    for a few weeks. They have been in linux-next with no reported
    problems"

    * tag 'driver-core-4.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    firmware: avoid invalid fallback aborts by using killable wait
    firmware: fix batched requests - send wake up on failure on direct lookups
    firmware: fix batched requests - wake all waiters

    Linus Torvalds
     
  • Pull char/misc fixes from Greg KH:
    "Here are two patches for 4.13-rc5.

    One is a fix for a reported thunderbolt issue, and the other a fix for
    an MEI driver issue. Both have been in linux-next with no reported
    issues"

    * tag 'char-misc-4.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    thunderbolt: Do not enumerate more ports from DROM than the controller has
    mei: exclude device from suspend direct complete optimization

    Linus Torvalds
     
  • Pull tty/serial fixes from Greg KH:
    "Here are two tty serial driver fixes for 4.13-rc5. One is a revert of
    a -rc1 patch that turned out to not be a good idea, and the other is a
    fix for the pl011 serial driver.

    Both have been in linux-next with no reported issues"

    * tag 'tty-4.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    Revert "serial: Delete dead code for CIR serial ports"
    tty: pl011: fix initialization order of QDF2400 E44

    Linus Torvalds
     
  • Pull staging/iio fixes from Greg KH:
    "Here are some Staging and IIO driver fixes for 4.13-rc5.

    Nothing major, just a number of small fixes for reported issues. All
    of these have been in linux-next for a while now with no reported
    issues. Full details are in the shortlog"

    * tag 'staging-4.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: comedi: comedi_fops: do not call blocking ops when !TASK_RUNNING
    iio: aspeed-adc: wait for initial sequence.
    iio: accel: bmc150: Always restore device to normal mode after suspend-resume
    staging:iio:resolver:ad2s1210 fix negative IIO_ANGL_VEL read
    iio: adc: axp288: Fix the GPADC pin reading often wrongly returning 0
    iio: adc: vf610_adc: Fix VALT selection value for REFSEL bits
    iio: accel: st_accel: add SPI-3wire support
    iio: adc: Revert "axp288: Drop bogus AXP288_ADC_TS_PIN_CTRL register modifications"
    iio: adc: sun4i-gpadc-iio: fix unbalanced irq enable/disable
    iio: pressure: st_pressure_core: disable multiread by default for LPS22HB
    iio: light: tsl2563: use correct event code

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are a number of small USB driver fixes and new device ids for
    4.13-rc5. There is the usual gadget driver fixes, some new quirks for
    "messy" hardware, and some new device ids.

    All have been in linux-next with no reported issues"

    * tag 'usb-4.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    USB: serial: pl2303: add new ATEN device id
    usb: quirks: Add no-lpm quirk for Moshi USB to Ethernet Adapter
    USB: Check for dropped connection before switching to full speed
    usb:xhci:Add quirk for Certain failing HP keyboard on reset after resume
    usb: renesas_usbhs: gadget: fix unused-but-set-variable warning
    usb: renesas_usbhs: Fix UGCTRL2 value for R-Car Gen3
    usb: phy: phy-msm-usb: Fix usage of devm_regulator_bulk_get()
    usb: gadget: udc: renesas_usb3: Fix usb_gadget_giveback_request() calling
    usb: dwc3: gadget: Correct ISOC DATA PIDs for short packets
    USB: serial: option: add D-Link DWM-222 device ID
    usb: musb: fix tx fifo flush handling again
    usb: core: unlink urbs from the tail of the endpoint's urb_list
    usb-storage: fix deadlock involving host lock and scsi_done
    uas: Add US_FL_IGNORE_RESIDUE for Initio Corporation INIC-3069
    USB: hcd: Mark secondary HCD as dead if the primary one died
    USB: serial: cp210x: add support for Qivicon USB ZigBee dongle

    Linus Torvalds
     

13 Aug, 2017

4 commits

  • Pull another MTD fix from Brian Norris:
    "An mtdblock regression occurred in -rc1 (all writes were broken!), in
    the process of some block subsystem refactoring. Noticed and fixed
    last week, but I'm a little slow on the uptake"

    * tag 'for-linus-20170812' of git://git.infradead.org/linux-mtd:
    mtd: blkdevs: Fix mtd block write failure

    Linus Torvalds
     
  • All the MTD block write requests are failing with
    following error messages

    mkfs.ext4 /dev/mtdblock0

    print_req_error: I/O error, dev mtdblock0, sector 0
    Buffer I/O error on dev mtdblock0, logical block 0,
    lost async page write

    The control is going to default case after block write request
    because of missing return.

    Fixes: commit 2a842acab109 ("block: introduce new block status code type")
    Signed-off-by: Abhishek Sahu
    Signed-off-by: Brian Norris

    Abhishek Sahu
     
  • Pull SCSI target fixes from Nicholas Bellinger:
    "The highlights include:

    - Fix iscsi-target payload memory leak during
    ISCSI_FLAG_TEXT_CONTINUE (Varun Prakash)

    - Fix tcm_qla2xxx incorrect use of tcm_qla2xxx_free_cmd during ABORT
    (Pascal de Bruijn + Himanshu Madhani + nab)

    - Fix iscsi-target long-standing issue with parallel delete of a
    single network portal across multiple target instances (Gary Guo +
    nab)

    - Fix target dynamic se_node GPF during uncached shutdown regression
    (Justin Maggard + nab)"

    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    target: Fix node_acl demo-mode + uncached dynamic shutdown regression
    iscsi-target: Fix iscsi_np reset hung task during parallel delete
    qla2xxx: Fix incorrect tcm_qla2xxx_free_cmd use during TMR ABORT (v2)
    cxgbit: fix sg_nents calculation
    iscsi-target: fix invalid flags in text response
    iscsi-target: fix memory leak in iscsit_setup_text_cmd()
    cxgbit: add missing __kfree_skb()
    tcmu: free old string on reconfig
    tcmu: Fix possible to/from address overflow when doing the memcpy

    Linus Torvalds
     
  • Pull xen fixes from Juergen Gross:
    "Some fixes for Xen:

    - a fix for a regression introduced in 4.13 for a Xen HVM-guest
    configured with KASLR

    - a fix for a possible deadlock in the xenbus driver when booting the
    system

    - a fix for lost interrupts in Xen guests"

    * tag 'for-linus-4.13b-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen/events: Fix interrupt lost during irq_disable and irq_enable
    xen: avoid deadlock in xenbus
    xen: fix hvm guest with kaslr enabled
    xen: split up xen_hvm_init_shared_info()
    x86: provide an init_mem_mapping hypervisor hook

    Linus Torvalds
     

12 Aug, 2017

9 commits

  • ->safemode should be triggered by mdadm for external metadaa array, otherwise
    array's state confuses mdadm.

    Fixes: 33182d15c6bf(md: always clear ->safemode when md_check_recovery gets the mddev lock.)
    Cc: NeilBrown
    Signed-off-by: Shaohua Li

    Shaohua Li
     
  • If mISDN_FsmNew() fails to allocate memory for jumpmatrix
    then null pointer dereference will occur on any write to
    jumpmatrix.

    The patch adds check on successful allocation and
    corresponding error handling.

    Found by Linux Driver Verification project (linuxtesting.org).

    Signed-off-by: Anton Vasilyev
    Signed-off-by: David S. Miller

    Anton Vasilyev
     
  • The Flower app may receive a request to update the MTU of a representor
    netdev upon receipt of a control message from the firmware. This requires
    the RTNL lock which needs to be taken outside of the packet processing
    path.

    As a handling of this correctly seems a little to invasive for a fix simply
    skip setting the MTU for now.

    Relevant backtrace:
    [ 1496.288489] BUG: scheduling while atomic: kworker/0:3/373/0x00000100
    [ 1496.294911] dca syscopyarea sysfillrect sysimgblt fb_sys_fops ptp drm mxm_wmi ahci pps_core libahci i2c_algo_bit wmi [last unloaded: nfp]
    [ 1496.294918] CPU: 0 PID: 373 Comm: kworker/0:3 Tainted: G OE 4.13.0-rc3+ #3
    [ 1496.294919] Hardware name: Supermicro X10DRi/X10DRi, BIOS 2.0 12/28/2015
    [ 1496.294923] Workqueue: events work_for_cpu_fn
    [ 1496.294924] Call Trace:
    [ 1496.294927]
    [ 1496.294931] dump_stack+0x63/0x82
    [ 1496.294935] __schedule_bug+0x54/0x70
    [ 1496.294937] __schedule+0x62f/0x890
    [ 1496.294941] ? intel_unmap_sg+0x90/0x90
    [ 1496.294942] schedule+0x36/0x80
    [ 1496.294943] schedule_preempt_disabled+0xe/0x10
    [ 1496.294945] __mutex_lock.isra.2+0x445/0x4a0
    [ 1496.294947] ? device_is_rmrr_locked+0x12/0x50
    [ 1496.294950] ? kfree+0x162/0x170
    [ 1496.294952] ? device_is_rmrr_locked+0x12/0x50
    [ 1496.294953] ? iommu_should_identity_map+0x50/0xe0
    [ 1496.294954] __mutex_lock_slowpath+0x13/0x20
    [ 1496.294955] ? iommu_no_mapping+0x48/0xd0
    [ 1496.294956] ? __mutex_lock_slowpath+0x13/0x20
    [ 1496.294957] mutex_lock+0x2f/0x40
    [ 1496.294960] rtnl_lock+0x15/0x20
    [ 1496.294979] nfp_flower_cmsg_rx+0xc8/0x150 [nfp]
    [ 1496.294986] nfp_ctrl_poll+0x286/0x350 [nfp]
    [ 1496.294989] tasklet_action+0xf6/0x110
    [ 1496.294992] __do_softirq+0xed/0x278
    [ 1496.294993] irq_exit+0xb6/0xc0
    [ 1496.294994] do_IRQ+0x4f/0xd0
    [ 1496.294996] common_interrupt+0x89/0x89

    Fixes: 948faa46c05b ("nfp: add support for control messages for flower app")
    Signed-off-by: Simon Horman
    Reviewed-by: Jakub Kicinski
    Signed-off-by: David S. Miller

    Simon Horman
     
  • Currently, the function stmmac_mdio_register() is only used by
    stmmac_dvr_probe() from stmmac_main.c, in order to register the MDIO bus
    and probe information about the PHY. As this function is called before
    calling register_netdev(), all messages logged from stmmac_mdio_register
    are prefixed by "(unnamed net_device)". The goal of netdev_info or
    netdev_err is to dump useful infos about a net_device, when this data
    structure is partially initialized, there is no point for using these
    functions.

    This commit fixes the issue by replacing all netdev_*() by the
    corresponding dev_*() function for logging. The last netdev_info is
    replaced by phy_attached_info(), as a valid phydev can be used at this
    point.

    Signed-off-by: Romain Perier
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Romain Perier
     
  • The patch c4adfc822bf5 ("bonding: make speed, duplex setting consistent
    with link state") puts the link state to down if
    bond_update_speed_duplex() cannot retrieve speed and duplex settings.
    Assumably the patch was written with 802.3ad mode in mind which relies
    on link speed/duplex settings. For other modes like active-backup these
    settings are not required. Thus, only for these other modes, this patch
    reintroduces support for slaves that do not support reporting speed or
    duplex such as wireless devices. This fixes the regression reported in
    bug 196547 (https://bugzilla.kernel.org/show_bug.cgi?id=196547).

    Fixes: c4adfc822bf5 ("bonding: make speed, duplex setting consistent
    with link state")
    Signed-off-by: Andreas Born
    Acked-by: Mahesh Bandewar
    Signed-off-by: David S. Miller

    Andreas Born
     
  • Pull block fixes from Jens Axboe:
    "A set of fixes that should go into this series. This contains:

    - Fix from Bart for blk-mq requeue queue running, preventing a
    continued loop of run/restart.

    - Fix for a bio/blk-integrity issue, in two parts. One from
    Christoph, fixing where verification happens, and one from Milan,
    for a NULL profile.

    - NVMe pull request, most of the changes being for nvme-fc, but also
    a few trivial core/pci fixes"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    nvme: fix directive command numd calculation
    nvme: fix nvme reset command timeout handling
    nvme-pci: fix CMB sysfs file removal in reset path
    lpfc: support nvmet_fc defer_rcv callback
    nvmet_fc: add defer_req callback for deferment of cmd buffer return
    nvme: strip trailing 0-bytes in wwid_show
    block: Make blk_mq_delay_kick_requeue_list() rerun the queue at a quiet time
    bio-integrity: only verify integrity on the lowest stacked driver
    bio-integrity: Fix regression if profile verify_fn is NULL

    Linus Torvalds
     
  • Pull MMC fixes from Ulf Hansson:
    "MMC core:

    - fix lockdep splat when removing mmc_block module

    - fix the logic for setting eMMC HS400ES signal voltage

    MMC host:

    - omap_hsmmc: add CMD23 capability to fix -EIO errors"

    * tag 'mmc-v4.13-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
    mmc: block: fix lockdep splat when removing mmc_block module
    mmc: mmc: correct the logic for setting HS400ES signal voltage
    mmc: host: omap_hsmmc: Add CMD23 capability to omap_hsmmc driver

    Linus Torvalds
     
  • Pull fbdev fixes from Bartlomiej Zolnierkiewicz:

    - allow user to disable write combined mapping in efifb driver (Dave
    Airlie)

    - fix use after free bugs on driver removal in imxfb driver (Dan
    Carpenter)

    - fix unused variable warning in omapfb driver (Arnd Bergmann)

    * tag 'fbdev-v4.13-rc5' of git://github.com/bzolnier/linux:
    efifb: allow user to disable write combined mapping.
    fbdev: omapfb: remove unused variable
    video: fbdev: imxfb: use after free in imxfb_remove()

    Linus Torvalds
     
  • Pull IOMMU fix from Joerg Roedel:
    "Fix a NULL-pointer dereference in arm_smmu_add_device"

    * tag 'iommu-fixes-v4.13-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    iommu/arm-smmu: fix null-pointer dereference in arm_smmu_add_device

    Linus Torvalds
     

11 Aug, 2017

8 commits

  • Pull powerpc fixes from Michael Ellerman:
    "All fixes for code that went in this cycle.

    - a revert of an optimisation to the syscall exit path, which could
    lead to an oops on either older machines or machines with > 1TB of
    memory

    - disable some deep idle states if the firmware configuration for
    them fails

    - re-enable HARD/SOFT lockup detectors in defconfigs after a Kconfig
    change

    - six fairly small patches fixing bugs in our new watchdog code

    Thanks to: Gautham R Shenoy, Nicholas Piggin"

    * tag 'powerpc-4.13-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
    powerpc/watchdog: add locking around init/exit functions
    powerpc/watchdog: Fix marking of stuck CPUs
    powerpc/watchdog: Fix final-check recovered case
    powerpc/watchdog: Moderate touch_nmi_watchdog overhead
    powerpc/watchdog: Improve watchdog lock primitive
    powerpc: NMI IPI improve lock primitive
    powerpc/configs: Re-enable HARD/SOFT lockup detectors
    powerpc/powernv/idle: Disable LOSE_FULL_CONTEXT states when stop-api fails
    Revert "powerpc/64: Avoid restore_math call if possible in syscall exit"

    Linus Torvalds
     
  • Commit c54451a "iommu/arm-smmu: Fix the error path in arm_smmu_add_device"
    removed fwspec assignment in legacy_binding path as redundant which is
    wrong. It needs to be updated after fwspec initialisation in
    arm_smmu_register_legacy_master() as it is dereferenced later. Without
    this there is a NULL-pointer dereference panic during boot on some hosts.

    Signed-off-by: Artem Savkov
    Reviewed-by: Robin Murphy
    Acked-by: Will Deacon
    Signed-off-by: Joerg Roedel

    Artem Savkov
     
  • Here is a device has xen-pirq-MSI interrupt. Dom0 might lost interrupt
    during driver irq_disable/irq_enable. Here is the scenario,
    1. irq_disable -> disable_dynirq -> mask_evtchn(irq channel)
    2. dev interrupt raised by HW and Xen mark its evtchn as pending
    3. irq_enable -> startup_pirq -> eoi_pirq ->
    clear_evtchn(channel of irq) -> clear pending status
    4. consume_one_event process the irq event without pending bit assert
    which result in interrupt lost once
    5. No HW interrupt raising anymore.

    Now use enable_dynirq for enable_pirq of xen_pirq_chip to remove
    eoi_pirq when irq_enable.

    Signed-off-by: Liu Shuo
    Reviewed-by: Boris Ostrovsky
    Signed-off-by: Juergen Gross

    Liu Shuo
     
  • When starting the xenwatch thread a theoretical deadlock situation is
    possible:

    xs_init() contains:

    task = kthread_run(xenwatch_thread, NULL, "xenwatch");
    if (IS_ERR(task))
    return PTR_ERR(task);
    xenwatch_pid = task->pid;

    And xenwatch_thread() does:

    mutex_lock(&xenwatch_mutex);
    ...
    event->handle->callback();
    ...
    mutex_unlock(&xenwatch_mutex);

    The callback could call unregister_xenbus_watch() which does:

    ...
    if (current->pid != xenwatch_pid)
    mutex_lock(&xenwatch_mutex);
    ...

    In case a watch is firing before xenwatch_pid could be set and the
    callback of that watch unregisters a watch, then a self-deadlock would
    occur.

    Avoid this by setting xenwatch_pid in xenwatch_thread().

    Signed-off-by: Juergen Gross
    Reviewed-by: Boris Ostrovsky
    Signed-off-by: Juergen Gross

    Juergen Gross
     
  • Pull NVMe fixes from Christoph:

    "A few more small fixes - the fc/lpfc update is the biggest by far."

    Jens Axboe
     
  • Pull drm fixes from Dave Airlie:
    "Nothing too earth shattering here, it just seems like lots of little
    things all over the place.

    msm has probably the larger amount of changes, but they all seem fine,
    otherwise, some rockchip, i915, etnaviv and exynos fixes, along with
    one nouveau regression fix for some older GPUs"

    * tag 'drm-fixes-for-v4.13-rc5' of git://people.freedesktop.org/~airlied/linux: (35 commits)
    drm/nouveau/disp/nv04: avoid creation of output paths
    drm: make DRM_STM default n
    drm/exynos: forbid creating framebuffers from too small GEM buffers
    drm/etnaviv: Fix off-by-one error in reloc checking
    drm/i915: fix backlight invert for non-zero minimum brightness
    drm/i915/shrinker: Wrap need_resched() inside preempt-disable
    drm/i915/perf: fix flex eu registers programming
    drm/i915: Fix out-of-bounds array access in bdw_load_gamma_lut
    drm/i915/gvt: Change the max length of mmio_reg_rw from 4 to 8
    drm/i915/gvt: Initialize MMIO Block with HW state
    drm/rockchip: vop: report error when check resource error
    drm/rockchip: vop: round_up pitches to word align
    drm/rockchip: vop: fix NV12 video display error
    drm/rockchip: vop: fix iommu page fault when resume
    drm/i915/gvt: clean workload queue if error happened
    drm/i915/gvt: change resetting to resetting_eng
    drm/msm: gpu: don't abuse dma_alloc for non-DMA allocations
    drm/msm: gpu: call qcom_mdt interfaces only for ARCH_QCOM
    drm/msm/adreno: Prevent unclocked access when retrieving timestamps
    drm/msm: Remove __user from __u64 data types
    ...

    Linus Torvalds
     
  • Merge misc fixes from Andrew Morton:
    "21 fixes"

    * emailed patches from Andrew Morton : (21 commits)
    userfaultfd: replace ENOSPC with ESRCH in case mm has gone during copy/zeropage
    zram: rework copy of compressor name in comp_algorithm_store()
    rmap: do not call mmu_notifier_invalidate_page() under ptl
    mm: fix list corruptions on shmem shrinklist
    mm/balloon_compaction.c: don't zero ballooned pages
    MAINTAINERS: copy virtio on balloon_compaction.c
    mm: fix KSM data corruption
    mm: fix MADV_[FREE|DONTNEED] TLB flush miss problem
    mm: make tlb_flush_pending global
    mm: refactor TLB gathering API
    Revert "mm: numa: defer TLB flush for THP migration as long as possible"
    mm: migrate: fix barriers around tlb_flush_pending
    mm: migrate: prevent racy access to tlb_flush_pending
    fault-inject: fix wrong should_fail() decision in task context
    test_kmod: fix small memory leak on filesystem tests
    test_kmod: fix the lock in register_test_dev_kmod()
    test_kmod: fix bug which allows negative values on two config options
    test_kmod: fix spelling mistake: "EMTPY" -> "EMPTY"
    userfaultfd: hugetlbfs: remove superfluous page unlock in VM_SHARED case
    mm: ratelimit PFNs busy info message
    ...

    Linus Torvalds
     
  • comp_algorithm_store() passes the size of the source buffer to strlcpy()
    instead of the destination buffer size. Make it explicit that the two
    buffers have the same size and use strcpy() instead of strlcpy(). The
    latter can be done safely since the function ensures that the string in
    the source buffer is terminated.

    Link: http://lkml.kernel.org/r/20170803163350.45245-1-mka@chromium.org
    Signed-off-by: Matthias Kaehlcke
    Reviewed-by: Douglas Anderson
    Reviewed-by: Sergey Senozhatsky
    Acked-by: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthias Kaehlcke