1. 05 6月, 2017 2 次提交
    • L
      ip6_tunnel: fix traffic class routing for tunnels · 5f733ee6
      Liam McBirnie 提交于
      ip6_route_output() requires that the flowlabel contains the traffic
      class for policy routing.
      
      Commit 0e9a7095 ("ip6_tunnel, ip6_gre: fix setting of DSCP on
      encapsulated packets") removed the code which previously added the
      traffic class to the flowlabel.
      
      The traffic class is added here because only route lookup needs the
      flowlabel to contain the traffic class.
      
      Fixes: 0e9a7095 ("ip6_tunnel, ip6_gre: fix setting of DSCP on encapsulated packets")
      Signed-off-by: NLiam McBirnie <liam.mcbirnie@boeing.com>
      Acked-by: NPeter Dawson <peter.a.dawson@boeing.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5f733ee6
    • T
      net: qcom/emac: do not use hardware mdio automatic polling · 24609669
      Timur Tabi 提交于
      Use software polling (PHY_POLL) to check for link state changes instead
      of relying on the EMAC's hardware polling feature.  Some PHY drivers
      are unable to get a functioning link because the HW polling is not
      robust enough.
      
      The EMAC is able to poll the PHY on the MDIO bus looking for link state
      changes (via the Link Status bit in the Status Register at address 0x1).
      When the link state changes, the EMAC triggers an interrupt and tells the
      driver what the new state is.  The feature eliminates the need for
      software to poll the MDIO bus.
      
      Unfortunately, this feature is incompatible with phylib, because it
      ignores everything that the PHY core and PHY drivers are trying to do.
      In particular:
      
      1. It assumes a compatible register set, so PHYs with different registers
         may not work.
      
      2. It doesn't allow for hardware errata that have work-arounds implemented
         in the PHY driver.
      
      3. It doesn't support multiple register pages. If the PHY core switches
         the register set to another page, the EMAC won't know the page has
         changed and will still attempt to read the same PHY register.
      
      4. It only checks the copper side of the link, not the SGMII side.  Some
         PHY drivers (e.g. at803x) may also check the SGMII side, and
         report the link as not ready during autonegotiation if the SGMII link
         is still down.  Phylib then waits for another interrupt to query
         the PHY again, but the EMAC won't send another interrupt because it
         thinks the link is up.
      
      Cc: stable@vger.kernel.org # 4.11.x
      Tested-by: NManoj Iyer <manoj.iyer@canonical.com>
      Signed-off-by: NTimur Tabi <timur@codeaurora.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      24609669
  2. 03 6月, 2017 8 次提交
  3. 02 6月, 2017 12 次提交
  4. 01 6月, 2017 8 次提交
  5. 31 5月, 2017 9 次提交
  6. 30 5月, 2017 1 次提交
    • J
      mac80211: fix TX aggregation start/stop callback race · 7a7c0a64
      Johannes Berg 提交于
      When starting or stopping an aggregation session, one of the steps
      is that the driver calls back to mac80211 that the start/stop can
      proceed. This is handled by queueing up a fake SKB and processing
      it from the normal iface/sdata work. Since this isn't flushed when
      disassociating, the following race is possible:
      
       * associate
       * start aggregation session
       * driver callback
       * disassociate
       * associate again to the same AP
       * callback processing runs, leading to a WARN_ON() that
         the TID hadn't requested aggregation
      
      If the second association isn't to the same AP, there would only
      be a message printed ("Could not find station: <addr>"), but the
      same race could happen.
      
      Fix this by not going the whole detour with a fake SKB etc. but
      simply looking up the aggregation session in the driver callback,
      marking it with a START_CB/STOP_CB bit and then scheduling the
      regular aggregation work that will now process these bits as well.
      This also simplifies the code and gets rid of the whole problem
      with allocation failures of said skb, which could have left the
      session in limbo.
      Reported-by: NJouni Malinen <j@w1.fi>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      7a7c0a64