1. 20 4月, 2007 7 次提交
    • S
      sky2: handle descriptor errors · 40b01727
      Stephen Hemminger 提交于
      There should never be descriptor error unless hardware or driver is buggy.
      But if an error occurs, print useful information, clear irq, and recover.
      Signed-off-by: NStephen Hemminger <shemminger@linux-foundation.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      40b01727
    • S
      sky2: disable support for 88E8056 · 0a17e4c2
      Stephen Hemminger 提交于
      This device is having all sorts of problems that lead to data corruption
      and system instability.  It gets receive status and data out of order,
      it generates descriptor and TSO errors, etc.
      
      Until the problems are resolved, it should not be used by anyone
      who cares about there system.
      Signed-off-by: NStephen Hemminger <shemminger@linux-foundation.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      0a17e4c2
    • D
      gianfar needs crc32 lib dependency · bf41a7c5
      Dave Jiang 提交于
      Gianfar needs crc32 to be selected to compile.
      Signed-off-by: NDave Jiang <djiang@mvista.com>
      
      --
       drivers/net/Kconfig |    1 +
       1 files changed, 1 insertions(+), 0 deletions(-)
      --
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      bf41a7c5
    • L
      spidernet: Fix problem sending IP fragments · 33bdeec8
      Linas Vepstas 提交于
      The basic structure of "normal" UDP/IP/Ethernet
      frames (that actually work):
       - It starts with the Ethernet header (dest MAC, src MAC, etc.)
       - The next part is occupied by the IP header (version info, length of
      packet, id=0, fragment offset=0, checksum, from / to address, etc.)
       - Then comes the UDP header (src / dest port, length, checksum)
       - Actual payload
       - Ethernet checksum
      
      Now what's different for IP fragment:
       - The IP header has id set to some value (same for all fragments),
      offset is set appropriately (i.e. 0 for first fragment, following
      according to size of other fragments), size is the length of the frame.
       - UDP header is unchanged. I.e. length is according to full UDP
      datagram, not just the part within the actual frame! But this is only
      true within the first frame: all following frames don't have a valid
      UDP-header at all.
      
      The spidernet silicon seems to be quite intelligent: It's able to
      compute (IP / UDP / Ethernet) checksums on the fly and tests if frames
      are conforming to RFC -- at least conforming to RFC on complete frames.
      
      But IP fragments are different as explained above:
      I.e. for IP fragments containing part of a UDP datagram it sees
      incompatible length in the headers for IP and UDP in the first frame
      and, thus, skips this frame. But the content *is* correct for IP
      fragments. For all following frames it finds (most probably) no valid
      UDP header at all. But this *is* also correct for IP fragments.
      
      The Linux IP-stack seems to be clever in this point. It expects the
      spidernet to calculate the checksum (since the module claims to be able
      to do so) and marks the skb's for "normal" frames accordingly
      (ip_summed set to CHECKSUM_HW).
      But for the IP fragments it does not expect the driver to be capable to
      handle the frames appropriately. Thus all checksums are allready
      computed. This is also flaged within the skb (ip_summed set to
      CHECKSUM_NONE).
      
      Unfortunately the spidernet driver ignores that hints. It tries to send
      the IP fragments of UDP datagrams as normal UDP/IP frames. Since they
      have different structure the silicon detects them the be not
      "well-formed" and skips them.
      
      The following one-liner against 2.6.21-rc2 changes this behavior. If the
      IP-stack claims to have done the checksumming, the driver should not
      try to checksum (and analyze) the frame but send it as is.
      Signed-off-by: NNorbert Eicker <n.eicker@fz-juelich.de>
      Signed-off-by: NLinas Vepstas <linas@austin.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      33bdeec8
    • D
      cxgb3 - PHY interrupts and GPIO pins. · 1ca03cbc
      Divy Le Ray 提交于
      Remove assumption that PHY interrupts use GPIOs 3 and 5.
      Deal with PHY interrupts connected to any GPIO pins.
      Signed-off-by: NDivy Le Ray <divy@chelsio.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      1ca03cbc
    • D
      cxgb3 - Fix low memory conditions · 606fcd0b
      Divy Le Ray 提交于
      Reuse the incoming skb when a clientless abort req is recieved.
      
      The release of RDMA connections HW resources might be deferred in
      low memory situations.
      Ensure that no further activity is passed up to the RDMA driver
      for these connections.
      Signed-off-by: NDivy Le Ray <divy@chelsio.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      606fcd0b
    • L
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm · 895e1fc7
      Linus Torvalds 提交于
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm:
        KVM: Fix off-by-one when writing to a nonpae guest pde
      895e1fc7
  2. 19 4月, 2007 5 次提交
    • A
      KVM: Fix off-by-one when writing to a nonpae guest pde · 6b8d0f9b
      Avi Kivity 提交于
      Nonpae guest pdes are shadowed by two pae ptes, so we double the offset
      twice: once to account for the pte size difference, and once because we
      need to shadow pdes for a single guest pde.
      
      But when writing to the upper guest pde we also need to truncate the
      lower bits, otherwise the multiply shifts these bits into the pde index
      and causes an access to the wrong shadow pde.  If we're at the end of the
      page (accessing the very last guest pde) we can even overflow into the
      next host page and oops.
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      6b8d0f9b
    • D
      [NETLINK]: Don't attach callback to a going-away netlink socket · ac57b3a9
      Denis Lunev 提交于
      There is a race between netlink_dump_start() and netlink_release()
      that can lead to the situation when a netlink socket with non-zero
      callback is freed.
      
      Here it is:
      
      CPU1:                           CPU2
      netlink_release():              netlink_dump_start():
      
                                      sk = netlink_lookup(); /* OK */
      
      netlink_remove();
      
      spin_lock(&nlk->cb_lock);
      if (nlk->cb) { /* false */
        ...
      }
      spin_unlock(&nlk->cb_lock);
      
                                      spin_lock(&nlk->cb_lock);
                                      if (nlk->cb) { /* false */
                                               ...
                                      }
                                      nlk->cb = cb;
                                      spin_unlock(&nlk->cb_lock);
                                      ...
      sock_orphan(sk);
      /*
       * proceed with releasing
       * the socket
       */
      
      The proposal it to make sock_orphan before detaching the callback
      in netlink_release() and to check for the sock to be SOCK_DEAD in
      netlink_dump_start() before setting a new callback.
      Signed-off-by: NDenis Lunev <den@openvz.org>
      Signed-off-by: NKirill Korotaev <dev@openvz.org>
      Signed-off-by: NPavel Emelianov <xemul@openvz.org>
      Acked-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ac57b3a9
    • O
      [IrDA]: Correctly handling socket error · bfb6709d
      Olaf Kirch 提交于
      This patch fixes an oops first reported in mid 2006 - see
      http://lkml.org/lkml/2006/8/29/358 The cause of this bug report is that
      when an error is signalled on the socket, irda_recvmsg_stream returns
      without removing a local wait_queue variable from the socket's sk_sleep
      queue. This causes havoc further down the road.
      
      In response to this problem, a patch was made that invoked sock_orphan on
      the socket when receiving a disconnect indication. This is not a good fix,
      as this sets sk_sleep to NULL, causing applications sleeping in recvmsg
      (and other places) to oops.
      
      This is against the latest net-2.6 and should be considered for -stable
      inclusion. 
      Signed-off-by: NOlaf Kirch <olaf.kirch@oracle.com>
      Signed-off-by: NSamuel Ortiz <samuel@sortiz.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bfb6709d
    • V
      [SCTP]: Do not interleave non-fragments when in partial delivery · d0cf0d99
      Vlad Yasevich 提交于
      The way partial delivery is currently implemnted, it is possible to
      intereleave a message (either from another steram, or unordered) that
      is not part of partial delivery process.  The only way to this is for
      a message to not be a fragment and be 'in order' or unorderd for a
      given stream.  This will result in bypassing the reassembly/ordering
      queues where things live duing partial delivery, and the
      message will be delivered to the socket in the middle of partial delivery.
      
      This is a two-fold problem, in that:
      1.  the app now must check the stream-id and flags which it may not
      be doing.
      2.  this clearing partial delivery state from the association and results
      in ulp hanging.
      
      This patch is a band-aid over a much bigger problem in that we
      don't do stream interleave.
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d0cf0d99
    • D
      [IPSEC] af_key: Fix thinko in pfkey_xfrm_policy2msg() · fefaa75e
      David S. Miller 提交于
      Make sure to actually assign the determined mode to
      rq->sadb_x_ipsecrequest_mode.
      
      Noticed by Joe Perches.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fefaa75e
  3. 18 4月, 2007 25 次提交
  4. 17 4月, 2007 3 次提交