1. 28 4月, 2009 4 次提交
    • T
      ide-cd,atapi: use bio for internal commands · 02e7cf8f
      Tejun Heo 提交于
      Impact: unify request data buffer handling
      
      rq->data is used mostly to pass kernel buffer through request queue
      without using bio.  There are only a couple of places which still do
      this in kernel and converting to bio isn't difficult.
      
      This patch converts ide-cd and atapi to use bio instead of rq->data
      for request sense and internal pc commands.  With previous change to
      unify sense request handling, this is relatively easily achieved by
      adding blk_rq_map_kern() during sense_rq prep and PC issue.
      
      If blk_rq_map_kern() fails for sense, the error is deferred till sense
      issue and aborts the failed command which triggered the sense.  Note
      that this is a slim possibility as sense prep is done on each command
      issue, so for the above condition to actually trigger, all preps since
      the last sense issue till the issue of the request which would require
      a sense should fail.
      
      * do_request functions might sleep now.  This should be okay as ide
        request_fn - do_ide_request() - is invoked only from make_request
        and plug work.  Make sure this is the case by adding might_sleep()
        to do_ide_request().
      
      * Functions which access the read sense data before the sense request
        is complete now should access bio_data(sense_rq->bio) as the sense
        buffer might have been copied during blk_rq_map_kern().
      
      * ide-tape updated to map sg.
      
      * cdrom_do_block_pc() now doesn't have to deal with REQ_TYPE_ATA_PC
        special case.  Simplified.
      
      * tp_ops->output/input_data path dropped from ide_pc_intr().
      Signed-off-by: NTejun Heo <tj@kernel.org>
      02e7cf8f
    • B
      ide-atapi: convert ide-{floppy,tape} to using preallocated sense buffer · 06875320
      Borislav Petkov 提交于
      Since we're issuing REQ_TYPE_SENSE now we need to allow those types of
      rqs in the ->do_request callbacks. As a future improvement, sense_len
      assignment might be unified across all ATAPI devices. Borislav to
      check with specs and test.
      
      As a result, get rid of ide_queue_pc_head() and
      drive->request_sense_rq.
      
      tj: * Init request sense ide_atapi_pc from sense request.  In the
            longer timer, it would probably better to fold
            ide_create_request_sense_cmd() into its only current user -
            ide_floppy_get_format_progress().
      
          * ide_retry_pc() no longer takes @disk.
      
      CC: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      CC: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Signed-off-by: NBorislav Petkov <petkovbb@gmail.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      06875320
    • T
      ide-atapi: don't abuse rq->buffer · ac0b0113
      Tejun Heo 提交于
      Impact: rq->buffer usage cleanup
      
      ide-atapi uses rq->buffer as private opaque value for internal special
      requests.  rq->special isn't used for these cases (the only case where
      rq->special is used is for ide-tape rw requests).  Use rq->special
      instead.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Jens Axboe <axboe@kernel.dk>
      ac0b0113
    • T
      ide-tape: remove back-to-back REQUEST_SENSE detection · 0de57fb9
      Tejun Heo 提交于
      Impact: fix an oops which always triggers
      
      ide_tape_issue_pc() assumed drive->pc isn't NULL on invocation when
      checking for back-to-back request sense issues but drive->pc can be
      NULL and even when it's not NULL, it's not safe to dereference it once
      the previous command is complete because pc could have been freed or
      was on stack.  Kill back-to-back REQUEST_SENSE detection.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      0de57fb9
  2. 01 4月, 2009 2 次提交
    • B
      ide-{floppy,tape}: fix padding for PIO transfers · d93bc452
      Bartlomiej Zolnierkiewicz 提交于
      * Return number of bytes left to transfer from idetape_{in,out}put_buffers()
        and number of bytes done from ide_tape_io_buffers().
      
      * Fix padding for PIO transfers in ide_pc_intr() so read/write buffers are
        always completely processed and then the transfer is padded if necessary.
      
      * Remove invalid error messages.
      
      * Remove now superfluous padding from ide{_io_buffers,tape_input_buffers}().
      
      While at it:
      
      * Set pc->bh to NULL in idetape_input_buffers() after all bh-s are done.
      
      * Cache !!(pc->flags & PC_FLAG_WRITING) in local variable in ide_pc_intr().
      
      Cc: Borislav Petkov <petkovbb@gmail.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      d93bc452
    • B
      ide: decrease size of ->pc_buf field in struct ide_atapi_pc · 41fa9f86
      Bartlomiej Zolnierkiewicz 提交于
      struct ide_atapi_pc is often allocated on the stack and size of ->pc_buf
      size is 256 bytes.  However since only ide_floppy_create_read_capacity_cmd()
      and idetape_create_inquiry_cmd() require such size allocate buffers for
      these pc-s explicitely and decrease ->pc_buf size to 64 bytes.
      
      Cc: Borislav Petkov <petkovbb@gmail.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      41fa9f86
  3. 27 3月, 2009 12 次提交
  4. 05 3月, 2009 1 次提交
    • H
      ide: NULL noise: drivers/ide/ide-*.c · 71bfc7a7
      Hannes Eder 提交于
      Fix this sparse warnings:
        drivers/ide/ide-disk_proc.c:130:11: warning: Using plain integer as NULL pointer
        drivers/ide/ide-floppy_proc.c:32:11: warning: Using plain integer as NULL pointer
        drivers/ide/ide-proc.c:234:11: warning: Using plain integer as NULL pointer
        drivers/ide/ide-tape.c:2141:11: warning: Using plain integer as NULL pointer
      Signed-off-by: NHannes Eder <hannes@hanneseder.net>
      Cc: trivial@kernel.org
      Cc: kernel-janitors@vger.kernel.org
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      71bfc7a7
  5. 26 2月, 2009 1 次提交
  6. 07 1月, 2009 3 次提交
  7. 02 1月, 2009 2 次提交
  8. 21 10月, 2008 3 次提交
    • A
      [PATCH] switch ide-tape · a4600f81
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      a4600f81
    • A
      [PATCH] beginning of methods conversion · d4430d62
      Al Viro 提交于
      To keep the size of changesets sane we split the switch by drivers;
      to keep the damn thing bisectable we do the following:
      	1) rename the affected methods, add ones with correct
      prototypes, make (few) callers handle both.  That's this changeset.
      	2) for each driver convert to new methods.  *ALL* drivers
      are converted in this series.
      	3) kill the old (renamed) methods.
      
      Note that it _is_ a flagday; all in-tree drivers are converted and by the
      end of this series no trace of old methods remain.  The only reason why
      we do that this way is to keep the damn thing bisectable and allow per-driver
      debugging if anything goes wrong.
      
      New methods:
      	open(bdev, mode)
      	release(disk, mode)
      	ioctl(bdev, mode, cmd, arg)		/* Called without BKL */
      	compat_ioctl(bdev, mode, cmd, arg)
      	locked_ioctl(bdev, mode, cmd, arg)	/* Called with BKL, legacy */
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      d4430d62
    • A
      1bddd9e6
  9. 18 10月, 2008 2 次提交
  10. 17 10月, 2008 1 次提交
  11. 14 10月, 2008 9 次提交