1. 01 4月, 2013 3 次提交
    • S
      sh_eth: make 'link' field of 'struct sh_eth_private' *int* · 3340d2aa
      Sergei Shtylyov 提交于
      The 'link' field of 'struct sh_eth_private' has type 'enum phy_state' while the
      'link' field of 'struct phy_device' is merely *int* (having values 0 and 1) and
      the former field gets assigned from the latter. Make the field match, getting
      rid of incorrectly used PHY_DOWN value in assignments/comparisons.
      Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3340d2aa
    • S
      sh_eth: workaround for spurious ECI interrupt · 3893b273
      Sergei Shtylyov 提交于
      At least on Renesas R8A7778, EESR.ECI interrupt seems to fire regardless of its
      mask in EESIPR register. I can 100% reproduce it with the following scenario:
      target is booted with 'ip=on' option, and so IP-Config opens SoC Ether device
      but doesn't get a proper reply and then succeeds with on-board SMC chip; then
      I login and try to bring up the SoC Ether device with 'ifconfig', and I get
      an ECI interrupt once request_irq() is called by sh_eth_open() (while interrupt
      mask in EESIPR register is all 0), if that interrupt is accompanied by a pending
      EESR.FRC (frame receive completion) interrupt, I get kernel oops in sh_eth_rx()
      because sh_eth_ring_init() hasn't been called yet!
      
      The solution I worked out is the following: in sh_eth_interrupt(), mask the
      interrupt status from EESR register with the interrupt mask from EESIPR register
      in order not to handle the disabled interrupts -- but forcing EESIPR.M_ECI bit
      in this mask set because we always need to fully handle EESR.ECI interrupt in
      sh_eth_error() in order to quench it (as it doesn't get cleared by just writing
      1 to the this bit as all the other interrupts).
      
      While at it, remove unneeded initializer for 'intr_status' variable and give it
      *unsigned long* type, matching the type of sh_eth_read()'s result; fix comment.
      Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Reviewed-by: NMax Filippov <max.filippov@cogentembedded.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3893b273
    • S
      sh_eth: fix handling of no LINK signal · 1e1b812b
      Sergei Shtylyov 提交于
      The code handling the absent LINK signal (or the absent PSR register -- which
      reflects the state of this signal) is quite naive and has probably never really
      worked.  It's probably enough to say that this code is executed only on the LINK
      change interrupt (sic!) but even if we actually have the signal and choose to
      ignore it (it might be connected to PHY's link/activity LED output as on the
      Renesas BOCK-W board), sh_eth_adjust_link() on which this code relies to update
      'mdp->link' gets executed later than the LINK change interrupt where it is
      checked, and so RX/TX never get enabled via ECMR register.
      
      So, ignore the LINK changed interrupt iff LINK signal is absent (or just chosen
      not to be used) or PSR register is absent, and enable/disable RX/TX directly in
      sh_eth_adjust_link() in this case.
      Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1e1b812b
  2. 30 3月, 2013 14 次提交
  3. 29 3月, 2013 3 次提交
    • D
      Merge branch 'wireless' · d2aa8eec
      David S. Miller 提交于
      John W. Linville says:
      
      ====================
      Please excuse this larger-than-I-would-like pull request intended
      for the 3.9 stream.  There are a number of late-breaking fixes,
      including a revert...
      
      Regarding the mac80211 bits, Johannes says:
      
      "I have two tracing fixes (one from Vladimir), two fixes for P2P device
      crashes, a fix for a BSS memory leak/lost update problem and a fix from
      Ben for a scanning issue in mac80211. It's a little on the large side
      because one of the P2P device problems required a bit much locking work,
      but I've run through all the different scenarios (wext/nl80211,
      p2p-device/station interface, ifdown/rfkill) to verify locking with
      lockdep."
      
      As for the iwlwifi bits, Johannes says:
      
      "I have three little fixes to the driver from Emmanuel. One addresses a
      small bug Ben Hutchings found during the stable review process and two
      address some warnings in the driver when RF-Kill is asserted."
      
      Along with those...
      
      Avinash Patil fixes an mwifiex bug cause by failing to process a sleep
      command due to bad SKB manipulation when going into power saving mode.
      
      Colin Ian King avoids a null pointer dereference in iwl4965.
      
      Dan Williams officially announces that he has dropped maintainership
      of the libertas driver.
      
      Iestyn C. Elfick adds a work-around to avoid b43 DMA transmision
      sequence error that would lead to a device reset.
      
      Luis R. Rodriguez avoids an ath9k warning by not queueing a work item
      while going to suspend mode.
      
      Rafał Miłecki provides a pair of b43 N-PHY fixes related to RSSI
      calibration.
      
      Finally, I revert "brcmsmac: support 4313iPA" because it has been
      reported in many places to cause problems with the already supported
      4313ePA devices.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d2aa8eec
    • J
      Merge branch 'master' of... · 630a216d
      John W. Linville 提交于
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
      630a216d
    • E
      aoe: reserve enough headroom on skbs · 91c57464
      Eric Dumazet 提交于
      Some network drivers use a non default hard_header_len
      
      Transmitted skb should take into account dev->hard_header_len, or risk
      crashes or expensive reallocations.
      
      In the case of aoe, lets reserve MAX_HEADER bytes.
      
      David reported a crash in defxx driver, solved by this patch.
      Reported-by: NDavid Oostdyk <daveo@ll.mit.edu>
      Tested-by: NDavid Oostdyk <daveo@ll.mit.edu>
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Ed Cashin <ecashin@coraid.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      91c57464
  4. 28 3月, 2013 12 次提交
  5. 27 3月, 2013 8 次提交