1. 15 1月, 2006 1 次提交
  2. 13 1月, 2006 1 次提交
  3. 16 12月, 2005 2 次提交
    • J
      Fix up SCSI mismerge · 7b16318d
      James Bottomley 提交于
      I forgot to do a git-update-cache on the merged files ...
      7b16318d
    • K
      [SCSI] Fix st oops with new scsi_execute infrastructure · 787926b1
      Kai Makisara 提交于
      Patch from Kai minus last sg_segs clearing which was merged already.
      
      > > Was there a oops or lockup or any debug output you can send me? I will try
      > > some more large request tests with scsi_debug. You also have to compile your
      > > kernel with SCSI_MAX_PHYS_SEGMENTS == 255 to get larger requests now.
      >
      It was an oops in sgl_unmap_user_pages(). The reason is this:
      
      		/* XXX: just for debug. Remove when PageReserved is removed */
      		BUG_ON(PageReserved(page));
      
      I was using /dev/zero as input and it triggers this. When I used a file as
      input, this did not trigger. Should this BUG_ON be removed?
      
      In the same log I noticed that there was another ->sg_segs inconsistency.
      Also, the field ->last_SRpnt was not reset when scsi_execute_async()
      failed. This caused the error message "Async command already active"
      later and prevented proper close.
      
      While doing the changes, I noticed that the current code (since
      2.6.0-test4) does not set the pages dirty when reading with direct i/o.
      
      All of these st problems (including the one I sent earlier) are fixed in
      the patch at the end of this message. These fixes should probably be
      included already in 2.6.15.
      
      After these fixes, the tape seems to operate as expected. Without other
      changes, the largest block size with sym53c896 SCSI adapter is 384 kB. The
      maximum number of sg segments is set to 96 and clustering is disabled in
      the driver. 96 x 4 kB = 384 kB. OK.
      
      I enabled clustering and set max_sectors to 10000 in the SCSI HBA driver.
      Now the block size limit is 5000 kB as expected.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      787926b1
  4. 15 12月, 2005 2 次提交
    • M
      [SCSI] convert st to use scsi_execute_async · 8b05b773
      Mike Christie 提交于
      convert st to always send scatterlists and kill scsi_request
      usage.
      
      This is the same as last time as it was posted, but with Kai's patches
      merged and we now pass the bytes value to scsi_execute_async.
      
      TODO:
      
      - move DIO code to common place or make block layers usable for ULDs.
      - move buffer allocation code to common place for all ULDs to use. And
      make buffer allocation code handle all queue limits so we can find
      out about problems before calling scsi_execute_async.
      - move indirect (copy_to/from_user) paths commone place or make block
      layers usable for ULDs.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      8b05b773
    • M
      [SCSI] complete the whole command when it is REQ_BLOCK_PC · 0d95716d
      Mike Christie 提交于
      sd does not allow scsi_io_completion to retry commands for
      SG_IO requests, and it make sense that it should not happen for st
      SG_IO commands too. If for st we hit the bottom of scsi_io_completion
      we will probably screw things up pretty bad. This patch returns to the
      block layer that the whole command completed and relies on the caller to check
      the request errors field. For initialization commands like in sd, this adds
      the previous behavior where scsi_io_completion did not process the error.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      0d95716d
  5. 14 12月, 2005 2 次提交
  6. 03 12月, 2005 1 次提交
  7. 02 12月, 2005 1 次提交
    • H
      [SCSI] st: fix a bug in sgl_map_user_pages failure path · 6bc733e9
      Hugh Dickins 提交于
      Nick and I had already been looking at drivers/scsi/{sg.c,st.c},
      brought there by __put_page in sg.c's peculiar sg_rb_correct4mmap,
      which we'd like to remove.  But that's irrelevant to your pain, except...
      
      One extract from the patches I'd like to send Doug and Kai for 2.6.15
      or 2.6.16 is this below: since the incomplete get_user_pages path omits
      to reset res, but has already released all the pages, it will result in
      premature freeing of user pages, and behaviour just like you've seen.
      
      Though I'd have thought incomplete get_user_pages was an exceptional
      case, and a bit surprised you'd encounter it.  Perhaps there's some
      other premature freeing in the driver, and this instance has nothing
      whatever to do with it.
      
      If the problem were easily reproducible, it'd be great if you could
      try this patch; but I think you've said it's not :-(
      Signed-off-by: NKai Makisara <kai.makisara@kolumbus.fi>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      6bc733e9
  8. 07 11月, 2005 1 次提交
  9. 30 10月, 2005 1 次提交
    • N
      [PATCH] core remove PageReserved · b5810039
      Nick Piggin 提交于
      Remove PageReserved() calls from core code by tightening VM_RESERVED
      handling in mm/ to cover PageReserved functionality.
      
      PageReserved special casing is removed from get_page and put_page.
      
      All setting and clearing of PageReserved is retained, and it is now flagged
      in the page_alloc checks to help ensure we don't introduce any refcount
      based freeing of Reserved pages.
      
      MAP_PRIVATE, PROT_WRITE of VM_RESERVED regions is tentatively being
      deprecated.  We never completely handled it correctly anyway, and is be
      reintroduced in future if required (Hugh has a proof of concept).
      
      Once PageReserved() calls are removed from kernel/power/swsusp.c, and all
      arch/ and driver code, the Set and Clear calls, and the PG_reserved bit can
      be trivially removed.
      
      Last real user of PageReserved is swsusp, which uses PageReserved to
      determine whether a struct page points to valid memory or not.  This still
      needs to be addressed (a generic page_is_ram() should work).
      
      A last caveat: the ZERO_PAGE is now refcounted and managed with rmap (and
      thus mapcounted and count towards shared rss).  These writes to the struct
      page could cause excessive cacheline bouncing on big systems.  There are a
      number of ways this could be addressed if it is an issue.
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      
      Refcount bug fix for filemap_xip.c
      Signed-off-by: NCarsten Otte <cotte@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b5810039
  10. 29 10月, 2005 3 次提交
  11. 28 10月, 2005 1 次提交
  12. 15 9月, 2005 1 次提交
  13. 05 9月, 2005 1 次提交
  14. 08 8月, 2005 1 次提交
    • K
      [SCSI] drivers/scsi/st.c: add reference count and related fixes · f03a5670
      Kai Makisara 提交于
      I have rediffed the patch against 2.6.13-rc5, done a couple of cosmetic
      cleanups, and run some tests.  Brian King has acknowledged that it fixes the
      problems he has seen. Seems mature enough for inclusion into 2.6.14 (or
      later)?
      
      Nate's explanation of the changes:
      
      I've attached patches against 2.6.13rc2. These are basically identical
      to my earlier patches, as I found that all issues I'd seen in earlier
      kernels still existed in this kernel.
      
      To summarize, the changes are: (more details in my original email)
      
      - add a kref to the scsi_tape structure, and associate reference
      counting stuff
      
      - set sr_request->end_io = blk_end_sync_rq so we get notified when an IO
      is rejected when the device goes away
      
      - check rq_status when IOs complete, else we don't know that IOs
      rejected for a dead device in fact did not complete
      
      - change last_SRpnt so it's set before an async IO is issued (in case
      st_sleep_done is bypassed)
      
      - fix a bogus use of last_SRpnt in st_chk_result
      Signed-off-by: NNate Dailey <nate.dailey@stratus.com>
      Signed-off-by: NKai Makisara <kai.makisara@kolumbus.fi>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      f03a5670
  15. 02 8月, 2005 1 次提交
    • K
      [SCSI] Fix SCSI tape oops at module removal · c2c96f46
      Kai Makisara 提交于
      Removing the SCSI tape module results in an oops in class_device_destroy if
      any devices are present. The patch at the end of this message fixes the bug
      by moving class_destroy() later in exit_st() so that the class still exists
      when devices are removed. (The bug is old but class_simple_device_remove() did
      nothing when the class did not exist.)
      
      The patch also fixes a "class leak" in init_st() error path.
      
      I would like to get this into 2.6.13 but it may be too late?
      Signed-off-by: NKai Makisara <kai.makisara@kolumbus.fi>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      c2c96f46
  16. 21 6月, 2005 1 次提交
  17. 21 5月, 2005 1 次提交
  18. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4