1. 23 12月, 2019 2 次提交
    • Q
      iommu/iova: Silence warnings under memory pressure · 944c9175
      Qian Cai 提交于
      When running heavy memory pressure workloads, this 5+ old system is
      throwing endless warnings below because disk IO is too slow to recover
      from swapping. Since the volume from alloc_iova_fast() could be large,
      once it calls printk(), it will trigger disk IO (writing to the log
      files) and pending softirqs which could cause an infinite loop and make
      no progress for days by the ongoimng memory reclaim. This is the counter
      part for Intel where the AMD part has already been merged. See the
      commit 3d708895 ("iommu/amd: Silence warnings under memory
      pressure"). Since the allocation failure will be reported in
      intel_alloc_iova(), so just call dev_err_once() there because even the
      "ratelimited" is too much, and silence the one in alloc_iova_mem() to
      avoid the expensive warn_alloc().
      
       hpsa 0000:03:00.0: DMAR: Allocating 1-page iova failed
       hpsa 0000:03:00.0: DMAR: Allocating 1-page iova failed
       hpsa 0000:03:00.0: DMAR: Allocating 1-page iova failed
       hpsa 0000:03:00.0: DMAR: Allocating 1-page iova failed
       hpsa 0000:03:00.0: DMAR: Allocating 1-page iova failed
       hpsa 0000:03:00.0: DMAR: Allocating 1-page iova failed
       hpsa 0000:03:00.0: DMAR: Allocating 1-page iova failed
       hpsa 0000:03:00.0: DMAR: Allocating 1-page iova failed
       slab_out_of_memory: 66 callbacks suppressed
       SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
         cache: iommu_iova, object size: 40, buffer size: 448, default order:
      0, min order: 0
         node 0: slabs: 1822, objs: 16398, free: 0
         node 1: slabs: 2051, objs: 18459, free: 31
       SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
         cache: iommu_iova, object size: 40, buffer size: 448, default order:
      0, min order: 0
         node 0: slabs: 1822, objs: 16398, free: 0
         node 1: slabs: 2051, objs: 18459, free: 31
       SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
         cache: iommu_iova, object size: 40, buffer size: 448, default order:
      0, min order: 0
       SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
       SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
       SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
       SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
       SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
         cache: skbuff_head_cache, object size: 208, buffer size: 640, default
      order: 0, min order: 0
         cache: skbuff_head_cache, object size: 208, buffer size: 640, default
      order: 0, min order: 0
         cache: skbuff_head_cache, object size: 208, buffer size: 640, default
      order: 0, min order: 0
         cache: skbuff_head_cache, object size: 208, buffer size: 640, default
      order: 0, min order: 0
         node 0: slabs: 697, objs: 4182, free: 0
         node 0: slabs: 697, objs: 4182, free: 0
         node 0: slabs: 697, objs: 4182, free: 0
         node 0: slabs: 697, objs: 4182, free: 0
         node 1: slabs: 381, objs: 2286, free: 27
         node 1: slabs: 381, objs: 2286, free: 27
         node 1: slabs: 381, objs: 2286, free: 27
         node 1: slabs: 381, objs: 2286, free: 27
         node 0: slabs: 1822, objs: 16398, free: 0
         cache: skbuff_head_cache, object size: 208, buffer size: 640, default
      order: 0, min order: 0
         node 1: slabs: 2051, objs: 18459, free: 31
         node 0: slabs: 697, objs: 4182, free: 0
       SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
         node 1: slabs: 381, objs: 2286, free: 27
         cache: skbuff_head_cache, object size: 208, buffer size: 640, default
      order: 0, min order: 0
         node 0: slabs: 697, objs: 4182, free: 0
         node 1: slabs: 381, objs: 2286, free: 27
       hpsa 0000:03:00.0: DMAR: Allocating 1-page iova failed
       warn_alloc: 96 callbacks suppressed
       kworker/11:1H: page allocation failure: order:0,
      mode:0xa20(GFP_ATOMIC), nodemask=(null),cpuset=/,mems_allowed=0-1
       CPU: 11 PID: 1642 Comm: kworker/11:1H Tainted: G    B
       Hardware name: HP ProLiant XL420 Gen9/ProLiant XL420 Gen9, BIOS U19
      12/27/2015
       Workqueue: kblockd blk_mq_run_work_fn
       Call Trace:
        dump_stack+0xa0/0xea
        warn_alloc.cold.94+0x8a/0x12d
        __alloc_pages_slowpath+0x1750/0x1870
        __alloc_pages_nodemask+0x58a/0x710
        alloc_pages_current+0x9c/0x110
        alloc_slab_page+0xc9/0x760
        allocate_slab+0x48f/0x5d0
        new_slab+0x46/0x70
        ___slab_alloc+0x4ab/0x7b0
        __slab_alloc+0x43/0x70
        kmem_cache_alloc+0x2dd/0x450
       SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
        alloc_iova+0x33/0x210
         cache: skbuff_head_cache, object size: 208, buffer size: 640, default
      order: 0, min order: 0
         node 0: slabs: 697, objs: 4182, free: 0
        alloc_iova_fast+0x62/0x3d1
         node 1: slabs: 381, objs: 2286, free: 27
        intel_alloc_iova+0xce/0xe0
        intel_map_sg+0xed/0x410
        scsi_dma_map+0xd7/0x160
        scsi_queue_rq+0xbf7/0x1310
        blk_mq_dispatch_rq_list+0x4d9/0xbc0
        blk_mq_sched_dispatch_requests+0x24a/0x300
        __blk_mq_run_hw_queue+0x156/0x230
        blk_mq_run_work_fn+0x3b/0x40
        process_one_work+0x579/0xb90
        worker_thread+0x63/0x5b0
        kthread+0x1e6/0x210
        ret_from_fork+0x3a/0x50
       Mem-Info:
       active_anon:2422723 inactive_anon:361971 isolated_anon:34403
        active_file:2285 inactive_file:1838 isolated_file:0
        unevictable:0 dirty:1 writeback:5 unstable:0
        slab_reclaimable:13972 slab_unreclaimable:453879
        mapped:2380 shmem:154 pagetables:6948 bounce:0
        free:19133 free_pcp:7363 free_cma:0
      Signed-off-by: NQian Cai <cai@lca.pw>
      Signed-off-by: NJoerg Roedel <jroedel@suse.de>
      944c9175
    • K
      iommu: Fix Kconfig indentation · d0432345
      Krzysztof Kozlowski 提交于
      Adjust indentation from spaces to tab (+optional two spaces) as in
      coding style with command like:
      	$ sed -e 's/^        /\t/' -i */Kconfig
      Signed-off-by: NKrzysztof Kozlowski <krzk@kernel.org>
      Signed-off-by: NJoerg Roedel <jroedel@suse.de>
      d0432345
  2. 21 12月, 2019 22 次提交
    • C
      sfc: Include XDP packet headroom in buffer step size. · 11a14dc8
      Charles McLachlan 提交于
      Correct a mismatch between rx_page_buf_step and the actual step size
      used when filling buffer pages.
      
      This patch fixes the page overrun that occured when the MTU was set to
      anything bigger than 1692.
      
      Fixes: 3990a8ff ("sfc: allocate channels for XDP tx queues")
      Signed-off-by: NCharles McLachlan <cmclachlan@solarflare.com>
      Signed-off-by: NEdward Cree <ecree@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      11a14dc8
    • E
      sfc: fix channel allocation with brute force · 8700aff0
      Edward Cree 提交于
      It was possible for channel allocation logic to get confused between what
       it had and what it wanted, and end up trying to use the same channel for
       both PTP and regular TX.  This led to a kernel panic:
          BUG: unable to handle page fault for address: 0000000000047635
          #PF: supervisor write access in kernel mode
          #PF: error_code(0x0002) - not-present page
          PGD 0 P4D 0
          Oops: 0002 [#1] SMP PTI
          CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W         5.4.0-rc3-ehc14+ #900
          Hardware name: Dell Inc. PowerEdge R710/0M233H, BIOS 6.4.0 07/23/2013
          RIP: 0010:native_queued_spin_lock_slowpath+0x188/0x1e0
          Code: f3 90 48 8b 32 48 85 f6 74 f6 eb e8 c1 ee 12 83 e0 03 83 ee 01 48 c1 e0 05 48 63 f6 48 05 c0 98 02 00 48 03 04 f5 a0 c6 ed 81 <48> 89 10 8b 42 08 85 c0 75 09 f3 90 8b 42 08 85 c0 74 f7 48 8b 32
          RSP: 0018:ffffc90000003d28 EFLAGS: 00010006
          RAX: 0000000000047635 RBX: 0000000000000246 RCX: 0000000000040000
          RDX: ffff888627a298c0 RSI: 0000000000003ffe RDI: ffff88861f6b8dd4
          RBP: ffff8886225c6e00 R08: 0000000000040000 R09: 0000000000000000
          R10: 0000000616f080c6 R11: 00000000000000c0 R12: ffff88861f6b8dd4
          R13: ffffc90000003dc8 R14: ffff88861942bf00 R15: ffff8886150f2000
          FS:  0000000000000000(0000) GS:ffff888627a00000(0000) knlGS:0000000000000000
          CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
          CR2: 0000000000047635 CR3: 000000000200a000 CR4: 00000000000006f0
          Call Trace:
           <IRQ>
           _raw_spin_lock_irqsave+0x22/0x30
           skb_queue_tail+0x1b/0x50
           sock_queue_err_skb+0x9d/0xf0
           __skb_complete_tx_timestamp+0x9d/0xc0
           efx_dequeue_buffer+0x126/0x180 [sfc]
           efx_xmit_done+0x73/0x1c0 [sfc]
           efx_ef10_ev_process+0x56a/0xfe0 [sfc]
           ? tick_sched_do_timer+0x60/0x60
           ? timerqueue_add+0x5d/0x70
           ? enqueue_hrtimer+0x39/0x90
           efx_poll+0x111/0x380 [sfc]
           ? rcu_accelerate_cbs+0x50/0x160
           net_rx_action+0x14a/0x400
           __do_softirq+0xdd/0x2d0
           irq_exit+0xa0/0xb0
           do_IRQ+0x53/0xe0
           common_interrupt+0xf/0xf
           </IRQ>
      
      In the long run we intend to rewrite the channel allocation code, but for
       'net' fix this by allocating extra_channels, and giving them TX queues,
       even if we do not in fact need them (e.g. on NICs without MAC TX
       timestamping), and thereby using simpler logic to assign the channels
       once they're allocated.
      
      Fixes: 3990a8ff ("sfc: allocate channels for XDP tx queues")
      Signed-off-by: NEdward Cree <ecree@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8700aff0
    • H
      hv_netvsc: Fix unwanted rx_table reset · b0689faa
      Haiyang Zhang 提交于
      In existing code, the receive indirection table, rx_table, is in
      struct rndis_device, which will be reset when changing MTU, ringparam,
      etc. User configured receive indirection table values will be lost.
      
      To fix this, move rx_table to struct net_device_context, and check
      netif_is_rxfh_configured(), so rx_table will be set to default only
      if no user configured value.
      
      Fixes: ff4a4419 ("netvsc: allow get/set of RSS indirection table")
      Signed-off-by: NHaiyang Zhang <haiyangz@microsoft.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b0689faa
    • R
      net: phy: ensure that phy IDs are correctly typed · 7d49a32a
      Russell King 提交于
      PHY IDs are 32-bit unsigned quantities. Ensure that they are always
      treated as such, and not passed around as "int"s.
      
      Fixes: 13d0ab67 ("net: phy: check return code when requesting PHY driver module")
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      Reviewed-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7d49a32a
    • M
      qede: Disable hardware gro when xdp prog is installed · 4c8dc005
      Manish Chopra 提交于
      commit 18c602de ("qede: Use NETIF_F_GRO_HW.") introduced
      a regression in driver that when xdp program is installed on
      qede device, device's aggregation feature (hardware GRO) is not
      getting disabled, which is unexpected with xdp.
      
      Fixes: 18c602de ("qede: Use NETIF_F_GRO_HW.")
      Signed-off-by: NManish Chopra <manishc@marvell.com>
      Signed-off-by: NAriel Elior <aelior@marvell.com>
      Reviewed-by: NMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4c8dc005
    • A
      net: ena: fix issues in setting interrupt moderation params in ethtool · 41c53caa
      Arthur Kiyanovski 提交于
      Issue 1:
      --------
      Reproduction steps:
      1. sudo ethtool -C eth0 rx-usecs 128
      2. sudo ethtool -C eth0 adaptive-rx on
      3. sudo ethtool -C eth0 adaptive-rx off
      4. ethtool -c eth0
      
      expected output: rx-usecs 128
      actual output: rx-usecs 0
      
      Reason for issue:
      In stage 3, ethtool userspace calls first the ena_get_coalesce() handler
      to get the current value of all properties, and then the ena_set_coalesce()
      handler. When ena_get_coalesce() is called the adaptive interrupt
      moderation is still on. There is an if in the code that returns the
      rx_coalesce_usecs only if the adaptive interrupt moderation is off.
      And since it is still on, rx_coalesce_usecs is not set, meaning it
      stays 0.
      
      Solution to issue:
      Remove this if static interrupt moderation intervals have nothing to do
      with dynamic ones.
      
      Issue 2:
      --------
      Reproduction steps:
      1. sudo ethtool -C eth0 adaptive-rx on
      2. sudo ethtool -C eth0 rx-usecs 128
      3. ethtool -c eth0
      
      expected output: rx-usecs 128
      actual output: rx-usecs 0
      
      Reason for issue:
      In stage 2, when ena_set_coalesce() is called, the handler tests if
      rx adaptive interrupt moderation is on, and if it is, it returns before
      getting to the part in the function that sets the rx non-adaptive
      interrupt moderation interval.
      
      Solution to issue:
      Remove the return from the function when rx adaptive interrupt moderation
      is on.
      
      Also cleaned up the fixed code in ena_set_coalesce by grouping together
      adaptive interrupt moderation toggling, and using && instead of nested
      ifs.
      
      Fixes: b3db86dc ("net: ena: reimplement set/get_coalesce()")
      Fixes: 0eda8479 ("net: ena: fix retrieval of nonadaptive interrupt moderation intervals")
      Fixes: 1738cd3e ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)")
      Signed-off-by: NArthur Kiyanovski <akiyano@amazon.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      41c53caa
    • A
      net: ena: fix default tx interrupt moderation interval · 05785adf
      Arthur Kiyanovski 提交于
      Current default non-adaptive tx interrupt moderation interval is 196 us.
      This value is too high and might cause the tx queue to fill up.
      
      In this commit we set the default non-adaptive tx interrupt moderation
      interval to 64 us in order to:
      1. Reduce the probability of the queue filling-up (when compared to the
         current default value of 196 us).
      2. Reduce unnecessary tx interrupt overhead (which happens if we set the
         default tx interval to 0).
         We determined experimentally that 64 us is an optimal value that
         reduces interrupt rate by more than 20% without affecting performance.
      
      Fixes: 1738cd3e ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)")
      Signed-off-by: NArthur Kiyanovski <akiyano@amazon.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      05785adf
    • P
      net: stmmac: platform: Fix MDIO init for platforms without PHY · d3e014ec
      Padmanabhan Rajanbabu 提交于
      The current implementation of "stmmac_dt_phy" function initializes
      the MDIO platform bus data, even in the absence of PHY. This fix
      will skip MDIO initialization if there is no PHY present.
      
      Fixes: 74371272 ("net: stmmac: Convert to phylink and remove phylib logic")
      Acked-by: NJayati Sahu <jayati.sahu@samsung.com>
      Signed-off-by: NSriram Dash <sriram.dash@samsung.com>
      Signed-off-by: NPadmanabhan Rajanbabu <p.rajanbabu@samsung.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d3e014ec
    • J
      net: hisilicon: Fix a BUG trigered by wrong bytes_compl · 90b3b339
      Jiangfeng Xiao 提交于
      When doing stress test, we get the following trace:
      kernel BUG at lib/dynamic_queue_limits.c:26!
      Internal error: Oops - BUG: 0 [#1] SMP ARM
      Modules linked in: hip04_eth
      CPU: 0 PID: 2003 Comm: tDblStackPcap0 Tainted: G           O L  4.4.197 #1
      Hardware name: Hisilicon A15
      task: c3637668 task.stack: de3bc000
      PC is at dql_completed+0x18/0x154
      LR is at hip04_tx_reclaim+0x110/0x174 [hip04_eth]
      pc : [<c041abfc>]    lr : [<bf0003a8>]    psr: 800f0313
      sp : de3bdc2c  ip : 00000000  fp : c020fb10
      r10: 00000000  r9 : c39b4224  r8 : 00000001
      r7 : 00000046  r6 : c39b4000  r5 : 0078f392  r4 : 0078f392
      r3 : 00000047  r2 : 00000000  r1 : 00000046  r0 : df5d5c80
      Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      Control: 32c5387d  Table: 1e189b80  DAC: 55555555
      Process tDblStackPcap0 (pid: 2003, stack limit = 0xde3bc190)
      Stack: (0xde3bdc2c to 0xde3be000)
      [<c041abfc>] (dql_completed) from [<bf0003a8>] (hip04_tx_reclaim+0x110/0x174 [hip04_eth])
      [<bf0003a8>] (hip04_tx_reclaim [hip04_eth]) from [<bf0012c0>] (hip04_rx_poll+0x20/0x388 [hip04_eth])
      [<bf0012c0>] (hip04_rx_poll [hip04_eth]) from [<c04c8d9c>] (net_rx_action+0x120/0x374)
      [<c04c8d9c>] (net_rx_action) from [<c021eaf4>] (__do_softirq+0x218/0x318)
      [<c021eaf4>] (__do_softirq) from [<c021eea0>] (irq_exit+0x88/0xac)
      [<c021eea0>] (irq_exit) from [<c0240130>] (msa_irq_exit+0x11c/0x1d4)
      [<c0240130>] (msa_irq_exit) from [<c0267ba8>] (__handle_domain_irq+0x110/0x148)
      [<c0267ba8>] (__handle_domain_irq) from [<c0201588>] (gic_handle_irq+0xd4/0x118)
      [<c0201588>] (gic_handle_irq) from [<c0558360>] (__irq_svc+0x40/0x58)
      Exception stack(0xde3bdde0 to 0xde3bde28)
      dde0: 00000000 00008001 c3637668 00000000 00000000 a00f0213 dd3627a0 c0af6380
      de00: c086d380 a00f0213 c0a22a50 de3bde6c 00000002 de3bde30 c0558138 c055813c
      de20: 600f0213 ffffffff
      [<c0558360>] (__irq_svc) from [<c055813c>] (_raw_spin_unlock_irqrestore+0x44/0x54)
      Kernel panic - not syncing: Fatal exception in interrupt
      
      Pre-modification code:
      int hip04_mac_start_xmit(struct sk_buff *skb, struct net_device *ndev)
      {
      [...]
      [1]	priv->tx_head = TX_NEXT(tx_head);
      [2]	count++;
      [3]	netdev_sent_queue(ndev, skb->len);
      [...]
      }
      An rx interrupt occurs if hip04_mac_start_xmit just executes to the line 2,
      tx_head has been updated, but corresponding 'skb->len' has not been
      added to dql_queue.
      
      And then
      hip04_mac_interrupt->__napi_schedule->hip04_rx_poll->hip04_tx_reclaim
      
      In hip04_tx_reclaim, because tx_head has been updated,
      bytes_compl will plus an additional "skb-> len"
      which has not been added to dql_queue. And then
      trigger the BUG_ON(bytes_compl > num_queued - dql->num_completed).
      
      To solve the problem described above, we put
      "netdev_sent_queue(ndev, skb->len);"
      before
      "priv->tx_head = TX_NEXT(tx_head);"
      
      Fixes: a41ea46a ("net: hisilicon: new hip04 ethernet driver")
      Signed-off-by: NJiangfeng Xiao <xiaojiangfeng@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      90b3b339
    • J
      s390/qeth: don't return -ENOTSUPP to userspace · 39bdbf3e
      Julian Wiedmann 提交于
      ENOTSUPP is not uapi, use EOPNOTSUPP instead.
      
      Fixes: d66cb37e ("qeth: Add new priority queueing options")
      Signed-off-by: NJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      39bdbf3e
    • J
      s390/qeth: fix promiscuous mode after reset · 0f399305
      Julian Wiedmann 提交于
      When managing the promiscuous mode during an RX modeset, qeth caches the
      current HW state to avoid repeated programming of the same state on each
      modeset.
      
      But while tearing down a device, we forget to clear the cached state. So
      when the device is later set online again, the initial RX modeset
      doesn't program the promiscuous mode since we believe it is already
      enabled.
      Fix this by clearing the cached state in the tear-down path.
      
      Note that for the SBP variant of promiscuous mode, this accidentally
      works right now because we unconditionally restore the SBP role while
      re-initializing.
      
      Fixes: 4a71df50 ("qeth: new qeth device driver")
      Signed-off-by: NJulian Wiedmann <jwi@linux.ibm.com>
      Reviewed-by: NAlexandra Winter <wintera@linux.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0f399305
    • J
      s390/qeth: handle error due to unsupported transport mode · 2e3d7fa5
      Julian Wiedmann 提交于
      Along with z/VM NICs, there's additional device types that only support
      a specific transport mode (eg. external-bridged IQD).
      Identify the corresponding error code, and raise a fitting error message
      so that the user knows to adjust their device configuration.
      
      On top of that also fix the subsequent error path, so that the rejected
      cmd doesn't need to wait for a timeout but gets cancelled straight away.
      
      Fixes: 4a71df50 ("qeth: new qeth device driver")
      Signed-off-by: NJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2e3d7fa5
    • R
      cxgb4: fix refcount init for TC-MQPRIO offload · ea8608d4
      Rahul Lakkireddy 提交于
      Properly initialize refcount to 1 when hardware queue arrays for
      TC-MQPRIO offload have been freshly allocated. Otherwise, following
      warning is observed. Also fix up error path to only free hardware
      queue arrays when refcount reaches 0.
      
      [  130.075342] ------------[ cut here ]------------
      [  130.075343] refcount_t: addition on 0; use-after-free.
      [  130.075355] WARNING: CPU: 0 PID: 10870 at lib/refcount.c:25
      refcount_warn_saturate+0xe1/0x100
      [  130.075356] Modules linked in: sch_mqprio iptable_nat ib_iser
      libiscsi scsi_transport_iscsi ib_ipoib rdma_ucm ib_umad iw_cxgb4 libcxgb
      ib_uverbs x86_pkg_temp_thermal cxgb4 igb
      [  130.075361] CPU: 0 PID: 10870 Comm: tc Kdump: loaded Not tainted
      5.5.0-rc1+ #11
      [  130.075362] Hardware name: Supermicro
      X9SRE/X9SRE-3F/X9SRi/X9SRi-3F/X9SRE/X9SRE-3F/X9SRi/X9SRi-3F, BIOS 3.2
      01/16/2015
      [  130.075363] RIP: 0010:refcount_warn_saturate+0xe1/0x100
      [  130.075364] Code: e8 14 41 c1 ff 0f 0b c3 80 3d 44 f4 10 01 00 0f 85
      63 ff ff ff 48 c7 c7 38 9f 83 8c 31 c0 c6 05 2e f4 10 01 01 e8 ef 40 c1
      ff <0f> 0b c3 48 c7 c7 10 9f 83 8c 31 c0 c6 05 17 f4 10 01 01 e8 d7 40
      [  130.075365] RSP: 0018:ffffa48d00c0b768 EFLAGS: 00010286
      [  130.075366] RAX: 0000000000000000 RBX: 0000000000000008 RCX:
      0000000000000001
      [  130.075366] RDX: 0000000000000001 RSI: 0000000000000096 RDI:
      ffff8a2e9fa187d0
      [  130.075367] RBP: ffff8a2e93890000 R08: 0000000000000398 R09:
      000000000000003c
      [  130.075367] R10: 00000000000142a0 R11: 0000000000000397 R12:
      ffffa48d00c0b848
      [  130.075368] R13: ffff8a2e94746498 R14: ffff8a2e966f7000 R15:
      0000000000000031
      [  130.075368] FS:  00007f689015f840(0000) GS:ffff8a2e9fa00000(0000)
      knlGS:0000000000000000
      [  130.075369] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  130.075369] CR2: 00000000006762a0 CR3: 00000007cf164005 CR4:
      00000000001606f0
      [  130.075370] Call Trace:
      [  130.075377]  cxgb4_setup_tc_mqprio+0xbee/0xc30 [cxgb4]
      [  130.075382]  ? cxgb4_ethofld_restart+0x50/0x50 [cxgb4]
      [  130.075384]  ? pfifo_fast_init+0x7e/0xf0
      [  130.075386]  mqprio_init+0x5f4/0x630 [sch_mqprio]
      [  130.075389]  qdisc_create+0x1bf/0x4a0
      [  130.075390]  tc_modify_qdisc+0x1ff/0x770
      [  130.075392]  rtnetlink_rcv_msg+0x28b/0x350
      [  130.075394]  ? rtnl_calcit.isra.32+0x110/0x110
      [  130.075395]  netlink_rcv_skb+0xc6/0x100
      [  130.075396]  netlink_unicast+0x1db/0x330
      [  130.075397]  netlink_sendmsg+0x2f5/0x460
      [  130.075399]  ? _copy_from_user+0x2e/0x60
      [  130.075400]  sock_sendmsg+0x59/0x70
      [  130.075401]  ____sys_sendmsg+0x1f0/0x230
      [  130.075402]  ? copy_msghdr_from_user+0xd7/0x140
      [  130.075403]  ___sys_sendmsg+0x77/0xb0
      [  130.075404]  ? ___sys_recvmsg+0x84/0xb0
      [  130.075406]  ? __handle_mm_fault+0x377/0xaf0
      [  130.075407]  __sys_sendmsg+0x53/0xa0
      [  130.075409]  do_syscall_64+0x44/0x130
      [  130.075412]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
      [  130.075413] RIP: 0033:0x7f688f13af10
      [  130.075414] Code: c3 48 8b 05 82 6f 2c 00 f7 db 64 89 18 48 83 cb ff
      eb dd 0f 1f 80 00 00 00 00 83 3d 8d d0 2c 00 00 75 10 b8 2e 00 00 00 0f
      05 <48> 3d 01 f0 ff ff 73 31 c3 48 83 ec 08 e8 ae cc 00 00 48 89 04 24
      [  130.075414] RSP: 002b:00007ffe6c7d9988 EFLAGS: 00000246 ORIG_RAX:
      000000000000002e
      [  130.075415] RAX: ffffffffffffffda RBX: 00000000006703a0 RCX:
      00007f688f13af10
      [  130.075415] RDX: 0000000000000000 RSI: 00007ffe6c7d99f0 RDI:
      0000000000000003
      [  130.075416] RBP: 000000005df38312 R08: 0000000000000002 R09:
      0000000000008000
      [  130.075416] R10: 00007ffe6c7d93e0 R11: 0000000000000246 R12:
      0000000000000000
      [  130.075417] R13: 00007ffe6c7e9c50 R14: 0000000000000001 R15:
      000000000067c600
      [  130.075418] ---[ end trace 8fbb3bf36a8671db ]---
      
      v2:
      - Move the refcount_set() closer to where the hardware queue arrays
        are being allocated.
      - Fix up error path to only free hardware queue arrays when refcount
        reaches 0.
      
      Fixes: 2d0cb84d ("cxgb4: add ETHOFLD hardware queue support")
      Signed-off-by: NRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ea8608d4
    • S
      s390/dasd: fix typo in copyright statement · daa400f5
      Stefan Haberland 提交于
      coypright -> copyright
      Reported-by: NKate Stewart <kstewart@linuxfoundation.org>
      Signed-off-by: NStefan Haberland <sth@linux.ibm.com>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      daa400f5
    • S
      s390/dasd: fix memleak in path handling error case · 00b39f69
      Stefan Haberland 提交于
      If for whatever reason the dasd_eckd_check_characteristics() function
      exits after at least some paths have their configuration data
      allocated those data is never freed again. In the error case the
      device->private pointer is set to NULL and dasd_eckd_uncheck_device()
      will exit without freeing the path data because of this NULL pointer.
      
      Fix by calling dasd_eckd_clear_conf_data() for error cases.
      
      Also use dasd_eckd_clear_conf_data() in dasd_eckd_uncheck_device()
      to avoid code duplication.
      Reported-by: NQian Cai <cai@lca.pw>
      Reviewed-by: NJan Hoeppner <hoeppner@linux.ibm.com>
      Signed-off-by: NStefan Haberland <sth@linux.ibm.com>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      00b39f69
    • J
      s390/dasd/cio: Interpret ccw_device_get_mdc return value correctly · dd4b3c83
      Jan Höppner 提交于
      The max data count (mdc) is an unsigned 16-bit integer value as per AR
      documentation and is received via ccw_device_get_mdc() for a specific
      path mask from the CIO layer. The function itself also always returns a
      positive mdc value or 0 in case mdc isn't supported or couldn't be
      determined.
      
      Though, the comment for this function describes a negative return value
      to indicate failures.
      
      As a result, the DASD device driver interprets the return value of
      ccw_device_get_mdc() incorrectly. The error case is essentially a dead
      code path.
      
      To fix this behaviour, check explicitly for a return value of 0 and
      change the comment for ccw_device_get_mdc() accordingly.
      
      This fix merely enables the error code path in the DASD functions
      get_fcx_max_data() and verify_fcx_max_data(). The actual functionality
      stays the same and is still correct.
      Reviewed-by: NCornelia Huck <cohuck@redhat.com>
      Signed-off-by: NJan Höppner <hoeppner@linux.ibm.com>
      Acked-by: NPeter Oberparleiter <oberpar@linux.ibm.com>
      Reviewed-by: NStefan Haberland <sth@linux.ibm.com>
      Signed-off-by: NStefan Haberland <sth@linux.ibm.com>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      dd4b3c83
    • A
      platform/x86: pcengines-apuv2: Spelling fixes in the driver · 02abbda1
      Andy Shevchenko 提交于
      Mainly does:
       - capitalize gpio and bios to GPIO and BIOS
       - capitalize beginning of comments
       - add periods in multi-line comments
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      02abbda1
    • E
      platform/x86: pcengines-apuv2: detect apuv4 board · 3d00da1d
      Enrico Weigelt, metux IT consult 提交于
      GPIO stuff on APUv4 seems to be the same as on APUv2, so we just
      need to match on DMI data.
      Signed-off-by: NEnrico Weigelt, metux IT consult <info@metux.net>
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      3d00da1d
    • E
      platform/x86: pcengines-apuv2: fix simswap GPIO assignment · d4ac8f83
      Enrico Weigelt, metux IT consult 提交于
      The mapping entry has to hold the GPIO line index instead of
      controller's register number.
      
      Fixes: 5037d4dd ("platform/x86: pcengines-apuv2: wire up simswitch gpio as led")
      Signed-off-by: NEnrico Weigelt, metux IT consult <info@metux.net>
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      d4ac8f83
    • M
      platform/x86: pmc_atom: Add Siemens CONNECT X300 to critclk_systems DMI table · e8796c6c
      Michael Haener 提交于
      The CONNECT X300 uses the PMC clock for on-board components and gets
      stuck during boot if the clock is disabled. Therefore, add this
      device to the critical systems list.
      Tested on CONNECT X300.
      
      Fixes: 648e9218 ("clk: x86: Stop marking clocks as CLK_IS_CRITICAL")
      Signed-off-by: NMichael Haener <michael.haener@siemens.com>
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      e8796c6c
    • H
      platform/x86: hp-wmi: Make buffer for HPWMI_FEATURE2_QUERY 128 bytes · 133b2ace
      Hans de Goede 提交于
      At least on the HP Envy x360 15-cp0xxx model the WMI interface
      for HPWMI_FEATURE2_QUERY requires an outsize of at least 128 bytes,
      otherwise it fails with an error code 5 (HPWMI_RET_INVALID_PARAMETERS):
      
      Dec 06 00:59:38 kernel: hp_wmi: query 0xd returned error 0x5
      
      We do not care about the contents of the buffer, we just want to know
      if the HPWMI_FEATURE2_QUERY command is supported.
      
      This commits bumps the buffer size, fixing the error.
      
      Fixes: 8a1513b4 ("hp-wmi: limit hotkey enable")
      Cc: stable@vger.kernel.org
      BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1520703Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      133b2ace
    • L
      platform/mellanox: fix the mlx-bootctl sysfs · 77dcc95e
      Liming Sun 提交于
      This is a follow-up commit for the sysfs attributes to change
      from DRIVER_ATTR to DEVICE_ATTR according to some initial comments.
      In such case, it's better to point the sysfs path to the device
      itself instead of the driver. The ABI document is also updated.
      
      Fixes: 79e29cb8 ("platform/mellanox: Add bootctl driver for Mellanox BlueField Soc")
      Signed-off-by: NLiming Sun <lsun@mellanox.com>
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      77dcc95e
  3. 20 12月, 2019 9 次提交
  4. 19 12月, 2019 7 次提交