1. 16 12月, 2021 11 次提交
  2. 15 12月, 2021 2 次提交
  3. 14 12月, 2021 4 次提交
    • D
      mlxsw: spectrum_router: Consolidate MAC profiles when possible · b442f2ea
      Danielle Ratson 提交于
      Currently, when setting a router interface (RIF) MAC address while the
      MAC profile is not shared with other RIFs, the profile is edited so that
      the new MAC address is assigned to it.
      
      This does not take into account a situation in which the new MAC address
      already matches an existing MAC profile. In that situation, two MAC
      profiles will be occupied even though they hold MAC addresses from the
      same profile.
      
      In order to prevent that, add a check to ensure that editing a MAC
      profile takes place only when the new MAC address does not match an
      existing profile.
      
      Fixes: 605d25cd ("mlxsw: spectrum_router: Add RIF MAC profiles support")
      Reported-by: NMaksym Yaremchuk <maksymy@nvidia.com>
      Tested-by: NMaksym Yaremchuk <maksymy@nvidia.com>
      Signed-off-by: NDanielle Ratson <danieller@nvidia.com>
      Signed-off-by: NIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b442f2ea
    • O
      net: stmmac: fix tc flower deletion for VLAN priority Rx steering · aeb7c75c
      Ong Boon Leong 提交于
      To replicate the issue:-
      
      1) Add 1 flower filter for VLAN Priority based frame steering:-
      $ IFDEVNAME=eth0
      $ tc qdisc add dev $IFDEVNAME ingress
      $ tc qdisc add dev $IFDEVNAME root mqprio num_tc 8 \
         map 0 1 2 3 4 5 6 7 0 0 0 0 0 0 0 0 \
         queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 hw 0
      $ tc filter add dev $IFDEVNAME parent ffff: protocol 802.1Q \
         flower vlan_prio 0 hw_tc 0
      
      2) Get the 'pref' id
      $ tc filter show dev $IFDEVNAME ingress
      
      3) Delete a specific tc flower record (say pref 49151)
      $ tc filter del dev $IFDEVNAME parent ffff: pref 49151
      
      From dmesg, we will observe kernel NULL pointer ooops
      
      [  197.170464] BUG: kernel NULL pointer dereference, address: 0000000000000000
      [  197.171367] #PF: supervisor read access in kernel mode
      [  197.171367] #PF: error_code(0x0000) - not-present page
      [  197.171367] PGD 0 P4D 0
      [  197.171367] Oops: 0000 [#1] PREEMPT SMP NOPTI
      
      <snip>
      
      [  197.171367] RIP: 0010:tc_setup_cls+0x20b/0x4a0 [stmmac]
      
      <snip>
      
      [  197.171367] Call Trace:
      [  197.171367]  <TASK>
      [  197.171367]  ? __stmmac_disable_all_queues+0xa8/0xe0 [stmmac]
      [  197.171367]  stmmac_setup_tc_block_cb+0x70/0x110 [stmmac]
      [  197.171367]  tc_setup_cb_destroy+0xb3/0x180
      [  197.171367]  fl_hw_destroy_filter+0x94/0xc0 [cls_flower]
      
      The above issue is due to previous incorrect implementation of
      tc_del_vlan_flow(), shown below, that uses flow_cls_offload_flow_rule()
      to get struct flow_rule *rule which is no longer valid for tc filter
      delete operation.
      
        struct flow_rule *rule = flow_cls_offload_flow_rule(cls);
        struct flow_dissector *dissector = rule->match.dissector;
      
      So, to ensure tc_del_vlan_flow() deletes the right VLAN cls record for
      earlier configured RX queue (configured by hw_tc) in tc_add_vlan_flow(),
      this patch introduces stmmac_rfs_entry as driver-side flow_cls_offload
      record for 'RX frame steering' tc flower, currently used for VLAN
      priority. The implementation has taken consideration for future extension
      to include other type RX frame steering such as EtherType based.
      
      v2:
       - Clean up overly extensive backtrace and rewrite git message to better
         explain the kernel NULL pointer issue.
      
      Fixes: 0e039f5c ("net: stmmac: add RX frame steering based on VLAN priority in tc flower")
      Tested-by: NKurt Kanzenbach <kurt@linutronix.de>
      Signed-off-by: NOng Boon Leong <boon.leong.ong@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      aeb7c75c
    • S
      iavf: do not override the adapter state in the watchdog task (again) · fe523d7c
      Stefan Assmann 提交于
      The watchdog task incorrectly changes the state to __IAVF_RESETTING,
      instead of letting the reset task take care of that. This was already
      resolved by commit 22c8fd71 ("iavf: do not override the adapter
      state in the watchdog task") but the problem was reintroduced by the
      recent code refactoring in commit 45eebd62 ("iavf: Refactor iavf
      state machine tracking").
      
      Fixes: 45eebd62 ("iavf: Refactor iavf state machine tracking")
      Signed-off-by: NStefan Assmann <sassmann@kpanic.de>
      Tested-by: NKonrad Jankowski <konrad0.jankowski@intel.com>
      Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
      fe523d7c
    • D
      iavf: missing unlocks in iavf_watchdog_task() · bc2f39a6
      Dan Carpenter 提交于
      This code was re-organized and there some unlocks missing now.
      
      Fixes: 898ef1cb ("iavf: Combine init and watchdog state machines")
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Tested-by: NKonrad Jankowski <konrad0.jankowski@intel.com>
      Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
      bc2f39a6
  4. 13 12月, 2021 7 次提交
  5. 11 12月, 2021 2 次提交
  6. 10 12月, 2021 5 次提交
  7. 09 12月, 2021 9 次提交