1. 20 4月, 2007 4 次提交
    • 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
  2. 19 4月, 2007 1 次提交
    • 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
  3. 18 4月, 2007 6 次提交
  4. 17 4月, 2007 1 次提交
    • M
      IB/mthca: Fix data corruption after FMR unmap on Sinai · 608d8268
      Michael S. Tsirkin 提交于
      In mthca_arbel_fmr_unmap(), the high bits of the key are masked off.
      This gets rid of the effect of adjust_key(), which makes sure that
      bits 3 and 23 of the key are equal when the Sinai throughput
      optimization is enabled, and so it may happen that an FMR will end up
      with bits 3 and 23 in the key being different.  This causes data
      corruption, because when enabling the throughput optimization, the
      driver promises the HCA firmware that bits 3 and 23 of all memory keys
      will always be equal.
      
      Fix by re-applying adjust_key() after masking the key.
      
      Thanks to Or Gerlitz for reproducing the problem, and Ariel Shahar for
      help in debug.
      Signed-off-by: NMichael S. Tsirkin <mst@dev.mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      608d8268
  5. 15 4月, 2007 1 次提交
  6. 14 4月, 2007 2 次提交
  7. 13 4月, 2007 3 次提交
    • N
      [PATCH] md: fix calculation for size of filemap_attr array in md/bitmap · 505fa2c4
      Neil Brown 提交于
      If 'num_pages' were ever 1 more than a multiple of 8 (32bit platforms)
      or of 16 (64 bit platforms).  filemap_attr would be allocated one
      'unsigned long' shorter than required.  We need a round-up in there.
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      505fa2c4
    • B
      [PATCH] cciss: unregister from SCSI before tearing down device resources · b6550777
      Bjorn Helgaas 提交于
      We must unregister from SCSI before we unmap device resources and unhook
      the IRQ handler.  Otherwise, SCSI may send us more requests, and we won't
      be able to handle them.
      
      I see the following oops during every reboot of my HP DL360:
      
          ...
          Unmounting local filesystems...done.
          Rebooting... Completed flushing cache on controller 0
          BUG: unable to handle kernel paging request at virtual address f8808040
           printing eip:
          c02dc72b
          *pde = 02120067
          *pte = 00000000
          Oops: 0002 [#1]
          SMP
          Modules linked in:
          CPU:    1
          EIP:    0060:[<c02dc72b>]    Not tainted VLI
          EFLAGS: 00010046   (2.6.21-rc6 #1)
          EIP is at SA5_submit_command+0xb/0x20
          eax: f8808000   ebx: f7a00000   ecx: f79f0000   edx: 37a00000
          esi: f79f0000   edi: 00000000   ebp: 00000000   esp: dd717a44
          ds: 007b   es: 007b   fs: 00d8  gs: 0000  ss: 0068
          Process khelper (pid: 1427, ti=dd716000 task=c2260a70 task.ti=dd716000)
          Stack: c02df2c0 f7a00000 f7a00000 00d41008 c02df691 00000000 00000010 00000002
      	   00000001 f79f0000 f7fff844 c1398420 00000000 00000000 00001000 230a3020
      	   69666564 5420656e 50434f49 465f544b 4853554c 44414552 0a312009 66656423
          Call Trace:
           [<c02df2c0>] start_io+0x80/0x120
           [<c02df691>] do_cciss_request+0x331/0x350
           [<c014242a>] mempool_alloc+0x2a/0xe0
           [<c020ad71>] blk_alloc_request+0x61/0x80
           [<c020b02e>] get_request+0x15e/0x1e0
           [<c01595e0>] cache_alloc_refill+0xb0/0x1e0
           [<c021049d>] as_update_rq+0x2d/0x80
           [<c0210d28>] as_add_request+0x68/0x90
           [<c0207f99>] elv_insert+0x119/0x160
           [<c020bd0b>] __make_request+0xcb/0x320
           [<c0122ee0>] lock_timer_base+0x20/0x50
           [<c0123096>] del_timer+0x56/0x60
           [<c020a7b8>] blk_remove_plug+0x38/0x70
           [<c020a815>] __generic_unplug_device+0x25/0x30
           [<c020a835>] generic_unplug_device+0x15/0x30
          ...
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Acked-by: NMike Miller <mike.miller@hp.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b6550777
    • S
      RDMA/cxgb3: Add set_tcb_rpl_handler · 1ca19770
      Steve Wise 提交于
      As of commit 6cdbd77e ("cxgb3 - missing CPL hanler and register
      setting."), the cxgb3 ethernet NIC driver no longer handles SET_TCB
      replies, so we need to do it in the iWARP driver.
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Acked-by: NDivy Le Ray <divy@chelsio.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      1ca19770
  8. 12 4月, 2007 3 次提交
  9. 11 4月, 2007 18 次提交
  10. 10 4月, 2007 1 次提交