1. 05 1月, 2011 1 次提交
  2. 17 4月, 2008 1 次提交
    • J
      [S390] dasd: fix double elevator_exit call when deadline iosched fails to load · 08a8a0c5
      Josef 'Jeff' Sipek 提交于
      I compiled the kernel without deadline, and the dasd code exits the old
      scheduler (CFQ), fails to load the new one (deadline), and then things just
      hang - with one of these (sorry about the weird chars - I copy & pasted it
      from a 3270 console):
      
      dasd(eckd): 0.0.0151: 3390/0A(CU:3990/01) Cyl:3338 Head:15 Sec:224
      ------------ cut here ------------
      Badness at kernel/mutex.c:134
      Modules linked in: dasd_eckd_mod dasd_mod
      CPU: 0 Not tainted 2.6.25-rc3 #9
      Process exe (pid: 538, task: 000000000d172000, ksp: 000000000d21ef88)
      Krnl PSW : 0404000180000000 000000000022fb5c (mutex_lock_nested+0x2a4/0x2cc)
                 R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:0 PM:0 EA:3
      Krnl GPRS: 0000000000024218 000000000076fc78 0000000000000000 000000000000000f
                 000000000022f92e 0000000000449898 000000000f921c00 000003e000162590
                 00000000001539c4 000000000d172000 070000007fffffff 000000000d21f400
                 000000000f8f2560 00000000002413f8 000000000022fb44 000000000d21f400
      Krnl Code: 000000000022fb50: bf2f1000           icm     %r2,15,0(%r1)
                 000000000022fb54: a774fef6           brc     7,22f940
                 000000000022fb58: a7f40001           brc     15,22fb5a
                >000000000022fb5c: a7f4fef2           brc     15,22f940
                 000000000022fb60: c0e5fffa112a       brasl   %r14,171db4
                 000000000022fb66: 1222               ltr     %r2,%r2
                 000000000022fb68: a784fedb           brc     8,22f91e
                 000000000022fb6c: c010002a0086       larl    %r1,76fc78
      Call Trace:
      (<000000000022f92e> mutex_lock_nested+0x76/0x2cc)
       <00000000001539c4> elevator_exit+0x38/0x80
       <0000000000156ffe> blk_cleanup_queue+0x62/0x7c
       <000003e0001d5414> dasd_change_state+0xe0/0x8ec
       <000003e0001d5cae> dasd_set_target_state+0x8e/0x9c
       <000003e0001d5f74> dasd_generic_set_online+0x160/0x284
       <000003e00011e83a> dasd_eckd_set_online+0x2e/0x40
       <0000000000199bf4> ccw_device_set_online+0x170/0x2c0
       <0000000000199d9e> online_store_recog_and_online+0x5a/0x14c
       <000000000019a08a> online_store+0xbe/0x2ec
       <000000000018456c> dev_attr_store+0x38/0x58
       <000000000010efbc> sysfs_write_file+0x130/0x190
       <00000000000af582> vfs_write+0xb2/0x160
       <00000000000afc7c> sys_write+0x54/0x9c
       <0000000000025e16> sys32_write+0x2e/0x50
       <0000000000024218> sysc_noemu+0x10/0x16
       <0000000077e82bd2> 0x77e82bd2
      
      Set elevator pointer to NULL in order to avoid double elevator_exit
      calls when elevator_init call for deadline iosched fails.
      Also make sure the dasd device driver depends on IOSCHED_DEADLINE so
      the default IO scheduler of the dasd driver is present.
      Signed-off-by: NJosef 'Jeff' Sipek <jeffpc@josefsipek.net>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      08a8a0c5
  3. 10 5月, 2007 1 次提交
  4. 01 10月, 2006 1 次提交
    • D
      [PATCH] BLOCK: Make it possible to disable the block layer [try #6] · 9361401e
      David Howells 提交于
      Make it possible to disable the block layer.  Not all embedded devices require
      it, some can make do with just JFFS2, NFS, ramfs, etc - none of which require
      the block layer to be present.
      
      This patch does the following:
      
       (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev
           support.
      
       (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls
           an item that uses the block layer.  This includes:
      
           (*) Block I/O tracing.
      
           (*) Disk partition code.
      
           (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS.
      
           (*) The SCSI layer.  As far as I can tell, even SCSI chardevs use the
           	 block layer to do scheduling.  Some drivers that use SCSI facilities -
           	 such as USB storage - end up disabled indirectly from this.
      
           (*) Various block-based device drivers, such as IDE and the old CDROM
           	 drivers.
      
           (*) MTD blockdev handling and FTL.
      
           (*) JFFS - which uses set_bdev_super(), something it could avoid doing by
           	 taking a leaf out of JFFS2's book.
      
       (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and
           linux/elevator.h contingent on CONFIG_BLOCK being set.  sector_div() is,
           however, still used in places, and so is still available.
      
       (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and
           parts of linux/fs.h.
      
       (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK.
      
       (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK.
      
       (*) set_page_dirty() doesn't call __set_page_dirty_buffers() if CONFIG_BLOCK
           is not enabled.
      
       (*) fs/no-block.c is created to hold out-of-line stubs and things that are
           required when CONFIG_BLOCK is not set:
      
           (*) Default blockdev file operations (to give error ENODEV on opening).
      
       (*) Makes some /proc changes:
      
           (*) /proc/devices does not list any blockdevs.
      
           (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK.
      
       (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK.
      
       (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if
           given command other than Q_SYNC or if a special device is specified.
      
       (*) In init/do_mounts.c, no reference is made to the blockdev routines if
           CONFIG_BLOCK is not defined.  This does not prohibit NFS roots or JFFS2.
      
       (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return
           error ENOSYS by way of cond_syscall if so).
      
       (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if
           CONFIG_BLOCK is not set, since they can't then happen.
      Signed-Off-By: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      9361401e
  5. 24 3月, 2006 3 次提交
  6. 21 2月, 2006 1 次提交
  7. 04 2月, 2006 1 次提交
  8. 07 1月, 2006 1 次提交
  9. 05 9月, 2005 1 次提交
  10. 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