1. 20 6月, 2012 3 次提交
  2. 19 6月, 2012 1 次提交
    • J
      phy/micrel: change phy_id_mask for KSZ9021 and KS8001 · 48d7d0ad
      Jason Wang 提交于
      On a freescale imx6q platform, a hardware phy chip KSZ9021 is
      recognized as a KS8001 chip by the current driver like this:
      eth0: Freescale FEC PHY driver [Micrel KS8001 or KS8721]
      
      KSZ9021 has phy_id 0x00221610, while KSZ8001 has phy_id
      0x0022161a, the current phy_id_mask (0x00fffff0/0x00ffff10) can't
      distinguish them. So change phy_id_mask to resolve this problem.
      
      Although the micrel datasheet says that the 4 LSB of phyid2 register
      contains the chip revision number and the current driver is designed
      to follow this rule, in reality the chip implementation doesn't follow
      it.
      
      Cc: David J. Choi <david.choi@micrel.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
      Signed-off-by: NHui Wang <jason77.wang@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      48d7d0ad
  3. 18 6月, 2012 6 次提交
  4. 17 6月, 2012 2 次提交
  5. 16 6月, 2012 3 次提交
  6. 14 6月, 2012 2 次提交
    • E
      bnx2x: fix checksum validation · d6cb3e41
      Eric Dumazet 提交于
      bnx2x driver incorrectly sets ip_summed to CHECKSUM_UNNECESSARY on
      encapsulated segments. TCP stack happily accepts frames with bad
      checksums, if they are inside a GRE or IPIP encapsulation.
      
      Our understanding is that if no IP or L4 csum validation was done by the
      hardware, we should leave ip_summed as is (CHECKSUM_NONE), since
      hardware doesn't provide CHECKSUM_COMPLETE support in its cqe.
      
      Then, if IP/L4 checksumming was done by the hardware, set
      CHECKSUM_UNNECESSARY if no error was flagged.
      
      Patch based on findings and analysis from Robert Evans
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: Yaniv Rosner <yanivr@broadcom.com>
      Cc: Merav Sicron <meravs@broadcom.com>
      Cc: Tom Herbert <therbert@google.com>
      Cc: Robert Evans <evansr@google.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Acked-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d6cb3e41
    • M
      ath9k: Fix softlockup in AR9485 · bcb7ad7b
      Mohammed Shafi Shajakhan 提交于
      steps to recreate:
      load latest ath9k driver with AR9485
      stop the network-manager and wpa_supplicant
      bring the interface up
      
      	Call Trace:
      	[<ffffffffa0517490>] ? ath_hw_check+0xe0/0xe0 [ath9k]
      	[<ffffffff812cd1e8>] __const_udelay+0x28/0x30
      	[<ffffffffa03bae7a>] ar9003_get_pll_sqsum_dvc+0x4a/0x80 [ath9k_hw]
      	[<ffffffffa05174eb>] ath_hw_pll_work+0x5b/0xe0 [ath9k]
      	[<ffffffff810744fe>] process_one_work+0x11e/0x470
      	[<ffffffff8107530f>] worker_thread+0x15f/0x360
      	[<ffffffff810751b0>] ? manage_workers+0x230/0x230
      	[<ffffffff81079af3>] kthread+0x93/0xa0
      	[<ffffffff815fd3a4>] kernel_thread_helper+0x4/0x10
      	[<ffffffff81079a60>] ? kthread_freezable_should_stop+0x70/0x70
      	[<ffffffff815fd3a0>] ? gs_change+0x13/0x13
      
      ensure that the PLL-WAR for AR9485/AR9340 is executed only if the STA is
      associated (or) IBSS/AP mode had started beaconing. Ideally this WAR
      is needed to recover from some rare beacon stuck during stress testing.
      Before the STA is associated/IBSS had started beaconing, PLL4(0x1618c)
      always seem to have zero even though we had configured PLL3(0x16188) to
      query about PLL's locking status. When we keep on polling infinitely PLL4's
      8th bit(ie check for PLL locking measurements is done), machine hangs
      due to softlockup.
      
      fixes https://bugzilla.redhat.com/show_bug.cgi?id=811142Reported-by: NRolf Offermanns <rolf.offermanns@gmx.net>
      Cc: stable@vger.kernel.org [3.0+]
      Tested-by: NMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      bcb7ad7b
  7. 13 6月, 2012 3 次提交
    • E
      bonding: Fix corrupted queue_mapping · 5ee31c68
      Eric Dumazet 提交于
      In the transmit path of the bonding driver, skb->cb is used to
      stash the skb->queue_mapping so that the bonding device can set its
      own queue mapping.  This value becomes corrupted since the skb->cb is
      also used in __dev_xmit_skb.
      
      When transmitting through bonding driver, bond_select_queue is
      called from dev_queue_xmit.  In bond_select_queue the original
      skb->queue_mapping is copied into skb->cb (via bond_queue_mapping)
      and skb->queue_mapping is overwritten with the bond driver queue.
      
      Subsequently in dev_queue_xmit, __dev_xmit_skb is called which writes
      the packet length into skb->cb, thereby overwriting the stashed
      queue mappping.  In bond_dev_queue_xmit (called from hard_start_xmit),
      the queue mapping for the skb is set to the stashed value which is now
      the skb length and hence is an invalid queue for the slave device.
      
      If we want to save skb->queue_mapping into skb->cb[], best place is to
      add a field in struct qdisc_skb_cb, to make sure it wont conflict with
      other layers (eg : Qdiscc, Infiniband...)
      
      This patchs also makes sure (struct qdisc_skb_cb)->data is aligned on 8
      bytes :
      
      netem qdisc for example assumes it can store an u64 in it, without
      misalignment penalty.
      
      Note : we only have 20 bytes left in (struct qdisc_skb_cb)->data[].
      The largest user is CHOKe and it fills it.
      
      Based on a previous patch from Tom Herbert.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Reported-by: NTom Herbert <therbert@google.com>
      Cc: John Fastabend <john.r.fastabend@intel.com>
      Cc: Roland Dreier <roland@kernel.org>
      Acked-by: NNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5ee31c68
    • W
      bonding:record primary when modify it via sysfs · 8a93664d
      Weiping Pan 提交于
      If we modify primary via sysfs and it is not a valid slave,
      we should record it for future use, and this behavior is the same with
      bond_check_params().
      Signed-off-by: NWeiping Pan <wpan@redhat.com>
      Acked-by: NNicolas de Pesloüan <nicolas.2p.debian@free.fr>
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8a93664d
    • A
      mwifiex: fix incorrect privacy setting in beacon and probe response · 6ddcd464
      Avinash Patil 提交于
      Test procedure:
      1. Start AP with security setting (e.g. WPA2)
      2. Stop AP
      3. Start AP with open security
      
      Here it's observed that privacy is enabled in beacons and
      probe responses.
      
      This patch fixes it by checking the privacy parameter from
      cfg80211_ap_settings. If privacy is not set in cfg80211_ap_settings,
      set open authentication and no encryption in FW.
      Signed-off-by: NAvinash Patil <patila@marvell.com>
      Signed-off-by: NBing Zhao <bzhao@marvell.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6ddcd464
  8. 12 6月, 2012 8 次提交
    • C
      tilegx network driver: initial support · e3d62d7e
      Chris Metcalf 提交于
      This change adds support for the tilegx network driver based on the
      GXIO IORPC support in the tilegx software stack, using the on-chip
      mPIPE packet processing engine.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e3d62d7e
    • M
      tg3: Apply short DMA frag workaround to 5906 · b7abee6e
      Matt Carlson 提交于
      5906 devices also need the short DMA fragment workaround.  This patch
      makes the necessary change.
      Signed-off-by: NMatt Carlson <mcarlson@broadcom.com>
      Tested-by: NChristian Kujau <lists@nerdbynature.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b7abee6e
    • S
      net: stmmac: Fix clock en-/disable calls · 883ffd6e
      Stefan Roese 提交于
      clk_{un}prepare is mandatory for platforms using common clock framework.
      Since these drivers are used by SPEAr platform, which supports common
      clock framework, add clk_{un}prepare() support for them. Otherwise
      the clocks are not correctly en-/disabled and ethernet support doesn't
      work.
      Signed-off-by: NStefan Roese <sr@denx.de>
      Cc: Viresh Kumar <viresh.linux@gmail.com>
      Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      883ffd6e
    • E
      lpc_eth: fix tx completion · 3f16da51
      Eric Dumazet 提交于
      __lpc_handle_xmit() has two bugs :
      
      1) It can leak skbs in case TXSTATUS_ERROR is set
      
      2) It can wake up txqueue while no slot was freed.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Reported-by: NRoland Stigge <stigge@antcom.de>
      Tested-by: NRoland Stigge <stigge@antcom.de>
      Cc: Kevin Wells <kevin.wells@nxp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3f16da51
    • E
      lpc_eth: add missing ndo_change_mtu() · e3047859
      Eric Dumazet 提交于
      lpc_eth does a copy of transmitted skbs to DMA area, without checking
      skb lengths, so can trigger buffer overflows :
      
      memcpy(pldat->tx_buff_v + txidx * ENET_MAXF_SIZE, skb->data, len);
      
      One way to get bigger skbs is to allow MTU changes above the 1500 limit.
      
      Calling eth_change_mtu() in ndo_change_mtu() makes sure this cannot
      happen.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Roland Stigge <stigge@antcom.de>
      Cc: Kevin Wells <kevin.wells@nxp.com>
      Acked-by: NRoland Stigge <stigge@antcom.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e3047859
    • J
      rndis_wlan: fix matching bssid check in rndis_check_bssid_list() · b0fd49b7
      Jussi Kivilinna 提交于
      rndis_check_bssid_list() originally tried to check if bssid->mac and
      match_bssid are equal using compare_ether_addr() when it should use
      !compare_ether_addr(). This check was added by commit
      b5257c95 as part of workaround for
      hardware issue.
      
      Commit 2e42e474 that replaced
      compare_ether_addr with ether_addr_equal relieved that this compare
      to be inverse of what it should be.
      
      Compare was added as response to hardware bug, where bssid-list does
      not contain BSSID and other information of currently connected AP
      (spec insists that device must provide this information in the list
      when connected). Lack bssid-data on current connection then causes
      WARN_ON somewhere in cfg80211. Workaround was to check if bssid-list
      returns current bssid and if it does not, manually construct bssid
      information in other ways. And this workaround worked, with inverse
      check. Which must mean that when hardware is experiencing the problem,
      it's actually returning empty bssid-list and this check didn't make
      any difference for workaround.
      
      However inverse check causes workaround be activated when bssid-list
      returns only entry, currently connected BSSID. That does not cause
      problems in itself, just slightly more inaccurate information in
      scan-list.
      
      Cc: Joe Perches <joe@perches.com>
      Cc: David S. Miller <davem@davemloft.net>
      Signed-off-by: NJussi Kivilinna <jussi.kivilinna@mbnet.fi>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b0fd49b7
    • M
      ath9k: remove incompatible IBSS interface check in change_iface · a23415fd
      Mohammed Shafi Shajakhan 提交于
      'cfg80211: fix interface combinations' ensures that if an interface
      type is not advertised by the driver in any of the interface combinations
      (via ieee80211_iface_combination) then it shall be treated as a single
      incompatible interface. if there are more than one interfaces present
      and changing them to incompatible interface type is not possible.
      These checks will be properly handled by cfg80211_change_iface ->
      cfg80211_can_change_interface.
      
      this patch is dependent on 'cfg80211: fix interface combinations'
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      a23415fd
    • M
      ath9k: Fix a WARNING on suspend/resume with IBSS · 2031b4c2
      Mohammed Shafi Shajakhan 提交于
      this patch is dependent on the patch "cfg80211: fix interface
      combinations"
      
      In ath9k currently we have ADHOC interface as a single incompatible
      interface. when drv_add_interface is called during resume we got to
      consider number of vifs already present in addition to checking the
      drivers 'opmode' information about ADHOC.  we incorrectly assume
      an ADHOC interface is already present. Then we may miss some driver
      specific data for the ADHOC interface after resume.
      
      The above mentioned checks can be removed from the driver,
      as the patch 'cfg80211: fix interface combinations' ensures that
      if an interface type is not advertised by the driver in any of the
      interface combinations(via ieee80211_iface_combination) then it shall
      be treated as a single incompatible interface. Fixes the following
      warning on suspend/resume with ibss interface.
      
              ath: phy0: Cannot create ADHOC interface when other
              interfaces already exist.
              WARNING: at net/mac80211/driver-ops.h:12
              ieee80211_reconfig+0x1882/0x1ca0 [mac80211]()
              Hardware name: 2842RK1
              wlan2:  Failed check-sdata-in-driver check, flags: 0x0
      
              Call Trace:
              [<c01361b2>] warn_slowpath_common+0x72/0xa0
              [<f8aaa7c2>] ? ieee80211_reconfig+0x1882/0x1ca0
              [mac80211]
              [<f8aaa7c2>] ? ieee80211_reconfig+0x1882/0x1ca0
              [mac80211]
              [<c0136283>] warn_slowpath_fmt+0x33/0x40
              [<f8aaa7c2>] ieee80211_reconfig+0x1882/0x1ca0 [mac80211]
              [<c06c1d1a>] ? mutex_lock_nested+0x23a/0x2f0
              [<f8a95097>] ieee80211_resume+0x27/0x70 [mac80211]
              [<fd177edf>] wiphy_resume+0x8f/0xa0 [cfg80211]
      
      Cc: stable@vger.kernel.org
      Cc: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2031b4c2
  9. 11 6月, 2012 3 次提交
  10. 09 6月, 2012 9 次提交