1. 30 3月, 2010 1 次提交
    • N
      r8169: offical fix for CVE-2009-4537 (overlength frame DMAs) · c0cd884a
      Neil Horman 提交于
      Official patch to fix the r8169 frame length check error.
      
      Based on this initial thread:
      http://marc.info/?l=linux-netdev&m=126202972828626&w=1
      This is the official patch to fix the frame length problems in the r8169
      driver.  As noted in the previous thread, while this patch incurs a performance
      hit on the driver, its possible to improve performance dynamically by updating
      the mtu and rx_copybreak values at runtime to return performance to what it was
      for those NICS which are unaffected by the ideosyncracy (if there are any).
      
      Summary:
      
          A while back Eric submitted a patch for r8169 in which the proper
      allocated frame size was written to RXMaxSize to prevent the NIC from dmaing too
      much data.  This was done in commit fdd7b4c3.  A
      long time prior to that however, Francois posted
      126fa4b9, which expiclitly disabled the MaxSize
      setting due to the fact that the hardware behaved in odd ways when overlong
      frames were received on NIC's supported by this driver.  This was mentioned in a
      security conference recently:
      http://events.ccc.de/congress/2009/Fahrplan//events/3596.en.html
      
      It seems that if we can't enable frame size filtering, then, as Eric correctly
      noticed, we can find ourselves DMA-ing too much data to a buffer, causing
      corruption.  As a result is seems that we are forced to allocate a frame which
      is ready to handle a maximally sized receive.
      
      This obviously has performance issues with it, so to mitigate that issue, this
      patch does two things:
      
      1) Raises the copybreak value to the frame allocation size, which should force
      appropriately sized packets to get allocated on rx, rather than a full new 16k
      buffer.
      
      2) This patch only disables frame filtering initially (i.e., during the NIC
      open), changing the MTU results in ring buffer allocation of a size in relation
      to the new mtu (along with a warning indicating that this is dangerous).
      
      Because of item (2), individuals who can't cope with the performance hit (or can
      otherwise filter frames to prevent the bug), or who have hardware they are sure
      is unaffected by this issue, can manually lower the copybreak and reset the mtu
      such that performance is restored easily.
      Signed-off-by: NNeil Horman <nhorman@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c0cd884a
  2. 29 3月, 2010 2 次提交
  3. 28 3月, 2010 3 次提交
    • F
      r8169: fix broken register writes · 78f1cd02
      Francois Romieu 提交于
      This is quite similar to b39fe41f
      though said registers are not even documented as 64-bit registers
      - as opposed to the initial TxDescStartAddress ones - but as single
      bytes which must be combined into 32 bits at the MMIO read/write
      level before being merged into a 64 bit logical entity.
      
      Credits go to Ben Hutchings <ben@decadent.org.uk> for the MAR
      registers (aka "multicast is broken for ages on ARM) and to
      Timo Teräs <timo.teras@iki.fi> for the MAC registers.
      Signed-off-by: NFrancois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      78f1cd02
    • K
      pcnet_cs: add new id · 1546a713
      Ken Kawasaki 提交于
      pcnet_cs:
       *add new id (Allied Telesis LM33-PCM-T Lan&Modem multifunction card)
       *use PROD_ID for LA-PCM.(because LA-PCM and LM33-PCM-T use the same MANF_ID).
      Signed-off-by: NKen Kawasaki <ken_kawasaki@spring.nifty.jp>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1546a713
    • A
      bonding: fix broken multicast with round-robin mode · a2fd940f
      Andy Gospodarek 提交于
      Round-robin (mode 0) does nothing to ensure that any multicast traffic
      originally destined for the host will continue to arrive at the host when
      the link that sent the IGMP join or membership report goes down.  One of
      the benefits of absolute round-robin transmit.
      
      Keeping track of subscribed multicast groups for each slave did not seem
      like a good use of resources, so I decided to simply send on the
      curr_active slave of the bond (typically the first enslaved device that
      is up).  This makes failover management simple as IGMP membership
      reports only need to be sent when the curr_active_slave changes.  I
      tested this patch and it appears to work as expected.
      
      Originally reported by Lon Hohberger <lhh@redhat.com>.
      Signed-off-by: NAndy Gospodarek <andy@greyhouse.net>
      CC: Lon Hohberger <lhh@redhat.com>
      CC: Jay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a2fd940f
  4. 27 3月, 2010 26 次提交
  5. 26 3月, 2010 8 次提交