1. 10 1月, 2006 1 次提交
  2. 15 12月, 2005 1 次提交
    • M
      [SCSI] convert sg to scsi_execute_async · d6b10348
      Mike Christie 提交于
      Convert sg to always send scatterlists, and kill scsi_request usage.
      
      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 obey all queue limits so we can find
      out about problems before calling scsi_execute_async. Currently, sg.c
      could allocate a buffer that is too large, and send the request
      to scsi_execute_async. scsi_execute_async will then check it against
      all the queue limits and return a failure in this case. It would nicer
      to know about the queue limit violation right away.
      - 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>
      d6b10348
  3. 03 12月, 2005 2 次提交
  4. 09 11月, 2005 1 次提交
    • O
      [PATCH] changing CONFIG_LOCALVERSION rebuilds too much, for no good reason · 733482e4
      Olaf Hering 提交于
      This patch removes almost all inclusions of linux/version.h.  The 3
      #defines are unused in most of the touched files.
      
      A few drivers use the simple KERNEL_VERSION(a,b,c) macro, which is
      unfortunatly in linux/version.h.
      
      There are also lots of #ifdef for long obsolete kernels, this was not
      touched.  In a few places, the linux/version.h include was move to where
      the LINUX_VERSION_CODE was used.
      
      quilt vi `find * -type f -name "*.[ch]"|xargs grep -El '(UTS_RELEASE|LINUX_VERSION_CODE|KERNEL_VERSION|linux/version.h)'|grep -Ev '(/(boot|coda|drm)/|~$)'`
      
      search pattern:
      /UTS_RELEASE\|LINUX_VERSION_CODE\|KERNEL_VERSION\|linux\/\(utsname\|version\).h
      Signed-off-by: NOlaf Hering <olh@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      733482e4
  5. 07 11月, 2005 1 次提交
  6. 30 10月, 2005 2 次提交
    • 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
    • D
      [PATCH] Use sg_set_buf/sg_init_one where applicable · 378f058c
      David Hardeman 提交于
      This patch uses sg_set_buf/sg_init_one in some places where it was
      duplicated.
      Signed-off-by: NDavid Hardeman <david@2gen.com>
      Cc: James Bottomley <James.Bottomley@steeleye.com>
      Cc: Greg KH <greg@kroah.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      378f058c
  7. 29 10月, 2005 3 次提交
  8. 28 10月, 2005 1 次提交
  9. 29 9月, 2005 1 次提交
  10. 19 9月, 2005 1 次提交
  11. 10 9月, 2005 1 次提交
    • D
      [SCSI] sg: do not set VM_IO flag on mmap-ed pages · 1c8e71d7
      Douglas Gilbert 提交于
      Further to the problem discussed in this post:
      http://marc.theaimsgroup.com/?l=linux-scsi&m=112540053711489&w=2
      
      It seems that the sg driver does not need to set the VM_IO flag
      on pages that it memory maps to the user space since they are
      not from the IO space. Ahmed Teirelbar <ahmed.teirelbar@adic.com>
      wants the facility and has tested this patch as I have without
      adverse effects.
      
      The oops protection is still important. Some users really did
      try and use dio transfers from the sg driver to memory mapped
      IO space (on a video capture card if my memory serves) during the
      lk 2.4 series. I'm not sure how successful it was but that will
      now be politely refused in lk 2.6.13+ .
      
      Changelog:
         - set the page flags for sg's reserved buffer mmap-ed
           to the user space to VM_RESERVED (rather than
           VM_RESERVED | VM_IO )
      Signed-off-by: NDouglas Gilbert <dougg@torque.net>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      1c8e71d7
  12. 05 9月, 2005 1 次提交
  13. 28 8月, 2005 1 次提交
  14. 31 7月, 2005 1 次提交
  15. 21 6月, 2005 1 次提交
  16. 04 6月, 2005 1 次提交
    • B
      [SCSI] sg: Command completion after remove oops · 521314c1
      brking@us.ibm.com 提交于
      A problem exists todayin the sg driver that if an SG_IO request is
      outstanding to a device when it is removed from the system. The
      system may oops if that command completes later in time.
      
      1. sg_remove gets called
      2. sg_remove calls sg_finish_req_req on all pending requests
         This removes the Sg_request's from the headrp list in the Sg_fd
      3. The sleeping SG_IO ioctl is woken. It does nothing and returns.
      4. The caller closes the fd, which invokes sg_release
      5. sg_release calls sg_remove_sfp. It finds no outstanding commands
         since the headrp list is empty, so it calls __sg_remove_sfp,
         which frees the sfp.
      6. Now when sg_cmd_done gets called, sg uses upper_private_data in
         the Scsi_Request, which should point to the srp, which has been
         freed, so it points to freed memory.
      7. sg then dereferences the srp pointer to get the sfp, and we oops.
      
      The fix is to NULL out the upper_private_data field in this path,
      which sg_cmd_done already checks for, which will prevent the oops
      from occurring.
      
      cpu 0x1: Vector: 300 (Data Access) at [c00000000fff7aa0]
          pc: d0000000002bbea8: .sg_cmd_done+0x70/0x394 [sg]
          lr: d000000000073304: .scsi_finish_command+0x10c/0x130 [scsi_mod]
          sp: c00000000fff7d20
         msr: 8000000000009032
         dar: 2f70726f63202f78
       dsisr: 40000000
        current = 0xc0000000024589b0
        paca    = 0xc0000000003da800
          pid   = 7, comm = events/1
      [c00000000fff7dc0] d000000000073304 .scsi_finish_command+0x10c/0x130 [scsi_mod]
      [c00000000fff7e50] d00000000007317c .scsi_softirq+0x140/0x168 [scsi_mod]
      [c00000000fff7ef0] c0000000000634dc .__do_softirq+0xa0/0x17c
      [c00000000fff7f90] c000000000018430 .call_do_softirq+0x14/0x24
      [c00000000ed472e0] c0000000000142e0 .do_softirq+0x74/0x9c
      [c00000000ed47370] c000000000013c9c .do_IRQ+0xe8/0x100
      [c00000000ed473f0] c00000000000ae34 HardwareInterrupt_entry+0x8/0x54
      
      c00000000003df28 .smp_call_function+0
      x100/0x1d0
      [c00000000ed47780] c0000000000ba99c .invalidate_bh_lrus+0x30/0x70
      [c00000000ed47810] c0000000000b91a0 .invalidate_bdev+0x18/0x3c
      [c00000000ed478a0] c0000000000da7b8 .__invalidate_device+0x70/0x94
      [c00000000ed47930] c0000000001d40bc .invalidate_partition+0x4c/0x7c
      [c00000000ed479c0] c00000000010a944 .del_gendisk+0x48/0x15c
      [c00000000ed47a50] d00000000003d55c .sd_remove+0x34/0xe4 [sd_mod]
      [c00000000ed47ae0] c0000000001c5d30 .device_release_driver+0x90/0xb4
      [c00000000ed47b70] c0000000001c6130 .bus_remove_device+0xb0/0x12c
      [c00000000ed47c00] c0000000001c4378 .device_del+0x120/0x198
      [c00000000ed47ca0] d00000000007dcdc .scsi_remove_device+0xb4/0x194 [scsi_mod]
      [c00000000ed47d30] d0000000000a5864 .ipr_worker_thread+0x1d4/0x27c [ipr]
      [c00000000ed47dd0] c0000000000734c4 .worker_thread+0x238/0x2f4
      [c00000000ed47ee0] c0000000000796c0 .kthread+0xcc/0x11c
      [c00000000ed47f90] c000000000018ad0 .kernel_thread+0x4c/0x6c
      Signed-off-by: NBrian King <brking@us.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      521314c1
  17. 19 4月, 2005 2 次提交
  18. 17 4月, 2005 3 次提交
    • [PATCH] remove outdated print_* functions · 1409277c
      提交于
      We have the scsi_print_* functions in the proper namespace for a long
      time now and there weren't a lot users left.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      1409277c
    • [PATCH] sg.c: update · cb59e840
      提交于
      The attachment combines the most recent patch from
      Yum Rayan <yum.rayan@gmail.com> (to reduce sg stack
      usage), Adrian Bunk <bunk@stusta.de> (to fix check
      after use) and me (fix elapsed time calculation
      (duration) on ia64 machines).
      
      I have modified the patch from Yum Rayan so kmalloc()
      in sg_read() is only called for the (rare) code paths
      that need them.
      
      Changelog:
         - reduce stack usage in sg_ioctl() and sg_read()
         - fix check after use in sg_mmap()
         - hold duration internally in milliseconds and
           check current time later than held time
      Signed-off-by: NDouglas Gilbert <dougg@torque.net>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      cb59e840
    • 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