1. 20 8月, 2016 7 次提交
    • J
      i40e: use alloc_workqueue instead of create_singlethread_workqueue · 6992a6c9
      Jacob Keller 提交于
      Replace calls to create_singlethread_workqueue instead with alloc_workqueue
      as is style with other Intel drivers. This provides more control over
      workqueue creation, and allows explicit setting of the desired mode of
      operation. It also makes it more obvious that driver name constant is
      passed to a format "%s".
      
      Change-ID: I6192b44caf5140336cd54c5b350d51c73b541fdb
      Signed-off-by: NJacob Keller <jacob.e.keller@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      6992a6c9
    • J
      i40e: use configured RSS key and lookup table in i40e_vsi_config_rss · 552b9962
      Jacob Keller 提交于
      A previous refactor added support to store user configuration for VSIs,
      so that extra VSIs such as for VMDq can use this information when
      configuring. Unfortunately the i40e_vsi_config_rss function was missed
      in this refactor, and the values were being ignored. Fix this by
      checking for the fields and using those instead of always using the
      default values.
      Signed-off-by: NJacob Keller <jacob.e.keller@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      552b9962
    • J
      i40e: fix broken i40e_config_rss_aq function · 776b2e15
      Jacob Keller 提交于
      X722 hardware requires using the admin queue to configure RSS. This
      function was previously re-written in commit e69ff813 ("i40e: rework
      the functions to configure RSS with similar parameters").
      However, the previous refactor did not work correctly for a few reasons
      
      (a) it does not check whether seed is NULL before using it, resulting in
      a NULL pointer dereference
      
      [  402.954721] BUG: unable to handle kernel NULL pointer dereference at           (null)
      [  402.955568] IP: [<ffffffffa0090ccf>] i40e_config_rss_aq.constprop.65+0x2f/0x1c0 [i40e]
      [  402.956402] PGD ad610067 PUD accc0067 PMD 0
      [  402.957235] Oops: 0000 [#1] SMP
      [  402.958064] Modules linked in: ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ip_set nfnetlink ebtable_filter ebtable_
      broute bridge stp llc ebtable_nat ebtables ip6table_mangle ip6table_raw ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv
      6 ip6table_security ip6table_filter ip6_tables iptable_mangle iptable_raw iptable_nat nf_conntrack_ipv4_ nf_defrag_ipv4_ nf_nat_ip
      v4_ nf_nat nf_conntrack iptable_security intel_rapl i86_kg_temp_thermal coretemp kvm_intel kvm irqbypass crct10dif_clMl crc32_
      pclMl ghash_clMlni_intel iTCO_wdt iTCO_vendor_support shpchp sb_edac dcdbas pcspkr joydev ipmi_devintf wmi edac_core ipmi_ssif
       acpi_ad acpi_ower_meter ipmi_si ipmi_msghandler mei_me nfsd lpc_ich mei ioatdma tpm_tis auth_rpcgss tpm nfs_acl lockd grace s
      unrpc ifs nngag200 i2c_algo_bit drm_kms_helper ttm drm iigbe bnx2x i40e dca mdio ptp pps_core libcrc32c fjes crc32c_intel
      [  402.965563] CPU: 22 PID: 2461 Conm: ethtool Not tainted 4.6.0-rc7_1.2-ABNidQ+ #20
      [  402.966719] Hardware name: Dell Inc. PowerEdge R720/0C4Y3R, BIOS 2.5.2 01/28/2015
      [  402.967862] task: ffff880219b51dc0 ti: ffff8800b3408000 task.ti: ffff8800b3408000
      [  402.969046] RIP: 0010:[<ffffffffa0090ccf>]  [<ffffffffa0090ccf>] i40e_config_rss_aq.constprop.65+0x2f/0x1c0 [i40e]
      [  402.970339] RSP: 0018:ffff8800b340ba90  EFLAGS: 00010246
      [  402.971616] RAX: 0000000000000000 RBX: ffff88042ec14000 RCX: 0000000000000200
      [  402.972961] RDX: ffff880428eb9200 RSI: 0000000000000000 RDI: ffff88042ec14000
      [  402.974312] RBP: ffff8800b340baf8 R08: ffff880237ada8f0 R09: ffff880428eb9200
      [  402.975709] R10: ffff880428eb9200 R11: 0000000000000000 R12: ffff88042ec2e000
      [  402.977104] R13: ffff88042ec2e000 R14: ffff88042ec14000 R15: ffff88022ea00800
      [  402.978541] FS:  00007f84fd054700(0000) GS:ffff880237ac0000(0000) knlGS:0000000000000000
      [  402.980003] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  402.981508] CR2: 0000000000000000 CR3: 000000003289e000 CR4: 00000000000406e0
      [  402.983028] Stack:
      [  402.984578]  0000000002000200 0000000000000000 ffff88023ffeda68 ffff88023ffef000
      [  402.986187]  0000000000000268 ffff8800b340bbf8 ffff88023ffedd80 0000000088ce4f1d
      [  402.987844]  ffff88042ec14000 ffff88022ea00800 ffff88042ec2e000 ffff88042ec14000
      [  402.989509] Call Trace:
      [  402.991200]  [<ffffffffa009636f>] i40e_config_rss+0x11f/0x1c0 [i40e]
      [  402.992924]  [<ffffffffa00a1ae0>] i40e_set_rifh+0ic0/0x130 [i40e]
      [  402.994684]  [<ffffffff816d54b7>] ethtool_set_rifh+0x1f7/0x300
      [  402.996446]  [<ffffffff8136d02b>] ? cred_has_capability+0io6b/0x100
      [  402.998203]  [<ffffffff8136d102>] ? selinux_capable+0x12/0x20
      [  402.999968]  [<ffffffff8136277b>] ? security_capable+0x4b/0x70
      [  403.001707]  [<ffffffff816d6da3>] dev_ethtool+0x1423/0x2290
      [  403.003461]  [<ffffffff816eab41>] dev_ioctl+0x191/0io630
      [  403.005186]  [<ffffffff811cf80a>] ? lru_cache_add+0x3a/0i80
      [  403.006942]  [<ffffffff817f2a8e>] ? _raw_spin_unlock+0ie/0x20
      [  403.008691]  [<ffffffff816adb95>] sock_do_ioctl+0x45/0i50
      [  403.010421]  [<ffffffff816ae229>] sock_ioctl+0x209/0x2d0
      [  403.012173]  [<ffffffff81262194>] do_vfs_ioctl+0u4/0io6c0
      [  403.013911]  [<ffffffff81262829>] SyS_ioctl+0x79/0x90
      [  403.015710]  [<ffffffff817f2e72>] entry_SYSCALL_64_fastpath+0x1a/0u4
      [  403.017500] Code: 90 55 48 89 e5 41 57 41 56 41 55 41 54 53 48 89 fb 48 83 ec 40 4c 8b a7 e0 05 00 00 65 48 8b 04 25 28 00 00 00 48 89 45 d0 31 c0 <48> 8b 06 41 0f b7 bc 24 f2 0f 00 00 48 89 45 9c 48 8b 46 08 48
      [  403.021454] RIP  [<ffffffffa0090ccf>] i40e_config_rss_aq.constprop.65+0x2f/0x1c0 [i40e]
      [  403.023395]  RSP <ffff8800b340ba90>
      [  403.025271] CR2: 0000000000000000
      [  403.027169] ---[ end trace 64561b528cf61cf0 ]---
      
      (b) it does not even bother to use the passed in *lut parameter which
      defines the requested lookup table. Instead it uses its own round robin
      table.
      
      Fix these issues by re-writing it to be similar to i40e_config_rss_reg
      and i40e_get_rss_aq.
      
      Fixes: e69ff813 ("i40e: rework the functions to configure RSS with similar parameters", 2015-10-21)
      Signed-off-by: NJacob Keller <jacob.e.keller@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      776b2e15
    • J
      i40e: move i40e_vsi_config_rss below i40e_get_rss_aq · 0582b964
      Jacob Keller 提交于
      Move this function below the two functions related to configuring RSS
      via the admin queue. This helps co-locate the two functions, and made it
      easier to spot a bug in the first i40e_config_rss_aq function as
      compared to the i40e_get_rss_aq function.
      Signed-off-by: NJacob Keller <jacob.e.keller@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      0582b964
    • Y
      qed: utilize FW 8.10.10.0 · 05fafbfb
      Yuval Mintz 提交于
      This new firmware for the qed* adpaters fixes several issues:
       - Better blocking of malicious VFs.
       - After FLR, Tx-switching [internal routing] of packets might
         be incorrect.
       - Deletion of unicast MAC filters would sometime have side-effect
         of corrupting the MAC filters configred for a device.
      It also contains fixes for future qed* drivers that *hopefully* would be
      sent for review in the near future.
      
      In addition, it would allow driver some new functionality, including:
       - Allowing PF/VF driver compaitibility with old drivers [running
         pre-8.10.5.0 firmware].
       - Better debug facilities.
      
      This would also bump the qed* driver versions to 8.10.9.20.
      Signed-off-by: NYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      05fafbfb
    • T
      ibmvnic: Handle backing device failover and reinitialization · dfad09a6
      Thomas Falcon 提交于
      An upcoming feature of IBM VNIC protocol is the ability to configure
      redundant backing devices for a VNIC client. In case of a failure
      on the current backing device, the driver will receive a signal
      from the hypervisor indicating that a failover will occur. The driver
      will then wait for a message from the backing device before
      establishing a new connection.
      Signed-off-by: NThomas Falcon <tlfalcon@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dfad09a6
    • O
      net: hns: Add reset function support for RoCE driver · e0180688
      oulijun 提交于
      It added reset function for RoCE driver. RoCE is a feature of hns.
      In hip06 SoC, in RoCE reset process, it's needed to configure dsaf
      channel reset, port and sl map info. Reset function of RoCE is
      located in dsaf module, we only call it in RoCE driver when needed.
      
      This patch is used to fix the conflict, please refer to this link:
        https://www.spinics.net/lists/linux-rdma/msg39114.htmlSigned-off-by: NWei Hu <xavier.huwei@huawei.com>
      Signed-off-by: NNenglong Zhao <zhaonenglong@hisilicon.com>
      Signed-off-by: NLijun Ou <oulijun@huawei.com>
      Signed-off-by: NSheng Li <lisheng011@huawei.com>
      Reviewed-by: NYisen Zhuang <yisen.zhuang@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e0180688
  2. 19 8月, 2016 33 次提交