04 Dec, 2008

2 commits

  • Update FMODE_NDELAY before each ioctl call so that we can kill the
    magic FMODE_NDELAY_NOW. It would be even better to do this directly
    in setfl(), but for that we'd need to have FMODE_NDELAY for all files,
    not just block special files.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Commit 33c2dca4957bd0da3e1af7b96d0758d97e708ef6 (trim file propagation
    in block/compat_ioctl.c) removed the handling of some ioctls from
    compat_blkdev_driver_ioctl. That caused them to be rejected as unknown
    by the compat layer.

    Signed-off-by: Andreas Schwab
    Cc: Al Viro
    Signed-off-by: Al Viro

    Andreas Schwab
     

24 Oct, 2008

1 commit


21 Oct, 2008

5 commits


09 Oct, 2008

1 commit

  • We may well want mkfs tools to use this to mark the whole device as
    unwanted before they format it, for example.

    The ioctl takes a pair of uint64_ts, which are start offset and length
    in _bytes_. Although at the moment it might make sense for them both to
    be in 512-byte sectors, I don't want to limit the ABI to that.

    Signed-off-by: David Woodhouse
    Signed-off-by: Jens Axboe

    David Woodhouse
     

13 May, 2008

1 commit

  • bdevname() fills the buffer that it is given as a parameter, so calling
    strcpy() or snprintf() on the returned value is redundant (and probably not
    guaranteed to work - I don't think strcpy and snprintf support overlapping
    buffers.)

    Signed-off-by: Jean Delvare
    Cc: Stephen Tweedie
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean Delvare
     

18 Apr, 2008

1 commit

  • hdparm explicitely marks HDIO_[UNREGISTER,SCAN]_HWIF ioctls as DANGEROUS
    and given the number of bugs we can assume that there are no real users:

    * DMA has no chance of working because DMA resources are released by
    ide_unregister() and they are never allocated again.

    * Since ide_init_hwif_ports() is used for ->io_ports[] setup the ioctls
    don't work for almost all hosts with "non-standard" (== non ISA-like)
    layout of IDE taskfile registers (there is a lot of such host drivers).

    * ide_port_init_devices() is not called when probing IDE devices so:
    - drive->autotune is never set and IDE host/devices are not programmed
    for the correct PIO/DMA transfer modes (=> possible data corruption)
    - host specific I/O 32-bit and IRQ unmasking settings are not applied
    (=> possible data corruption)
    - host specific ->port_init_devs method is not called (=> no luck with
    ht6560b, qd65xx and opti621 host drivers)

    * ->rw_disk method is not preserved (=> no HPT3xxN chipsets support).

    * ->serialized flag is not preserved (=> possible data corruption when
    using icside, aec62xx (ATP850UF chipset), cmd640, cs5530, hpt366
    (HPT3xxN chipsets), rz1000, sc1200, dtc2278 and ht6560b host drivers).

    * ->ack_intr method is not preserved (=> needed by ide-cris, buddha,
    gayle and macide host drivers).

    * ->sata_scr[] and sata_misc[] is cleared by ide_unregister() and it
    isn't initialized again (SiI3112 support needs them).

    * To issue an ioctl() there need to be at least one IDE device present
    in the system.

    * ->cable_detect method is not preserved + it is not called when probing
    IDE devices so cable detection is broken (however since DMA support is
    also broken it doesn't really matter ;-).

    * Some objects which may have already been freed in ide_unregister()
    are restored by ide_hwif_restore() (i.e. ->hwgroup).

    * ide_register_hw() may unregister unrelated IDE ports if free ide_hwifs[]
    slot cannot be found.

    * When IDE host drivers are modular unregistered port may be re-used by
    different host driver that owned it first causing subtle bugs.

    Since we now have a proper warm-plug support remove these ioctls,
    then remove no longer needed:
    - ide_register_hw() and ide_hwif_restore() functions
    - 'init_default' and 'restore' arguments of ide_unregister()
    - zeroeing of hwif->{dma,extra}_* fields in ide_unregister()

    As an added bonus IDE core code size shrinks by ~3kB (x86-32).

    v2:
    * fix ide_unregister() arguments in cleanup_module() (Andrew Morton).

    v3:
    * fix ide_unregister() arguments in palm_bk3710.c.

    Acked-by: Sergei Shtylyov
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

28 Jan, 2008

1 commit

  • Since the SCSI layer uses the request queues from the block layer, blktrace can
    also be used to trace the requests to all SCSI devices (like SCSI tape drives),
    not only disks. The only missing part is the ioctl interface to start and stop
    tracing.

    This patch adds the SETUP, START, STOP and TEARDOWN ioctls from blktrace to the
    sg device files. With this change, blktrace can be used for SCSI devices like
    for disks, e.g.: blktrace -d /dev/sg1 -o - | blkparse -i -

    Signed-off-by: Christof Schmitt
    Signed-off-by: Jens Axboe

    Christof Schmitt
     

29 Oct, 2007

1 commit


10 Oct, 2007

7 commits