1. 18 4月, 2008 11 次提交
    • B
      ide: remove broken/dangerous HDIO_[UNREGISTER,SCAN]_HWIF ioctls (take 3) · 93de00fd
      Bartlomiej Zolnierkiewicz 提交于
      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: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      93de00fd
    • B
      ide: remove obsoleted "idex=base[,ctl[,irq]]" kernel parameters (take 2) · 9a0e77f2
      Bartlomiej Zolnierkiewicz 提交于
      * Remove obsoleted "idex=base[,ctl[,irq]]" kernel parameters
        and update Documentation/ide/ide.txt.
      
      * Remove no longer needed ide_forced chipset type.
      
      v2:
      * is_chipset_set[] -> is_chipset_set in ide.c.
      
      * Documentation/ide/ide.txt fix.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      9a0e77f2
    • B
      ide: remove CONFIG_BLK_DEV_HD_IDE config option (take 2) · 80aa31cb
      Bartlomiej Zolnierkiewicz 提交于
      * Remove CONFIG_BLK_DEV_HD hack from init_hwif_default()
        ("hda=noprobe hdb=noprobe" kernel parameters should be used
        instead if somebody wishes to use the old "hd" driver).
      
      * Make CONFIG_BLK_DEV_HD_ONLY config option available also when
        IDE subsystem is used and update help entry.
      
      * Remove no longer needed CONFIG_BLK_DEV_HD_IDE config option.
      
      v2:
      * Update documentation to suggest "hda=noprobe hdb=noprobe"
        instead of obsoleted "ide0=noprobe".
      
      * Update Documentation/ide/ide.txt.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      80aa31cb
    • B
      ide: add warm-plug support for IDE devices (take 2) · f74c9141
      Bartlomiej Zolnierkiewicz 提交于
      * Add 'struct class ide_port_class' ('ide_port' class) and a 'struct
        device *portdev' ('ide_port' class device) in ide_hwif_t.
      
      * Register 'ide_port' class in ide_init() and unregister it in
        cleanup_module().
      
      * Create ->portdev in ide_register_port () and unregister it in
        ide_unregister().
      
      * Add "delete_devices" class device attribute for unregistering IDE devices
        on a port and "scan" one for probing+registering IDE devices on a port.
      
      * Add ide_sysfs_register_port() helper for registering "delete_devices"
        and "scan" attributes with ->portdev.  Call it in ide_device_add_all().
      
      * Document IDE warm-plug support in Documentation/ide/warm-plug-howto.txt.
      
      v2:
      * Convert patch from using 'struct class_device' to use 'struct device'.
        (thanks to Kay Sievers for doing it)
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      f74c9141
    • B
      ide: remove dead/obsolete ->busproc method · 50672e5d
      Bartlomiej Zolnierkiewicz 提交于
      ->busproc method is used by HDIO_SET_BUSSTATE ioctl but it has no chance
      of working as intended (in 2.4.x days) because to issue an ioctl there
      is a device node needed and:
      
      - for BUSSTATE_TRISTATE+OFF it is too late (devices are already gone)
      
      - for BUSSTATE_TRISTATE+ON it is too early (devices are not registered yet)
      
      Just remove ->busproc method for now (it was only implemented by hpt366,
      siimage and tc86c001 host drivers).
      
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      50672e5d
    • B
      ide: rework PowerMac media-bay support (take 2) · 2dde7861
      Bartlomiej Zolnierkiewicz 提交于
      Rework PowerMac media-bay support in such way that instead of
      un/registering the IDE interface we un/register IDE devices:
      
      * Add ide_port_scan() helper for probing+registerering devices on a port.
      
      * Rename ide_port_unregister_devices() to __ide_port_unregister_devices().
      
      * Add ide_port_unregister_devices() helper for unregistering devices on a port.
      
      * Add 'ide_hwif_t *cd_port' to 'struct media_bay_info', pass 'hwif' instead
        of hwif->index to media_bay_set_ide_infos() and use it to setup 'cd_port'.
      
      * Use ide_port_unregister_devices() instead of ide_unregister()
        and ide_port_scan() instead of ide_register_hw() in media_bay_step().
      
      * Unexport ide_register_hw() and make it static.
      
      v2:
      * Fix build by adding <linux/ide.h> include to <asm-powerpc/mediabay.h>.
        (Reported by Michael/Kamalesh/Andrew).
      
      Cc: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
      Cc: Michael Ellerman <michael@ellerman.id.au>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      2dde7861
    • B
      ide: factor out devices init from ide_init_port_data() · 43514ed1
      Bartlomiej Zolnierkiewicz 提交于
      * Factor out devices init from ide_init_port_data() to
        ide_port_init_devices_data().
      
      While at it:
      
      * Add explicit clearing of IDE device structure.
      
      There should be no functionality changes caused by this patch.
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      43514ed1
    • B
      ide: factor out code unregistering devices from ide_unregister() · 71bf9f6f
      Bartlomiej Zolnierkiewicz 提交于
      Factor out code unregistering devices from ide_unregister() to
      ide_port_unregister_devices().
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      71bf9f6f
    • B
      ide: use ide_find_port() instead of ide_deprecated_find_port() · 4f0eee4d
      Bartlomiej Zolnierkiewicz 提交于
      * Use ide_find_port() instead of ide_deprecated_find_port() in bast-ide/
        palm_bk3710/ide-cs/delkin_cb host drivers and in ide_register_hw().
      
      * Remove no longer needed ide_deprecated_find_port().
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      4f0eee4d
    • B
      ide: fix ide_find_port() · 2625cd52
      Bartlomiej Zolnierkiewicz 提交于
      * Instead of checking for '->io_ports[IDE_DATA_OFFSET] == 0' check for
        '->chipset == ide_unknown' when looking for an empty ide_hwifs[] slot.
      
      * Do ide-pnp initialization after ide-generic when IDE is built-in
        (ide-pnp is the only user of ide_find_port() which needs such fixup).
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      2625cd52
    • G
      IDE: remove ide=reverse IDE core · a594eeb1
      Greg Kroah-Hartman 提交于
      This option is obsolete and can be removed safely.
      
      It allows us to remove the pci_get_device_reverse() function from the
      PCI core.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      a594eeb1
  2. 22 3月, 2008 3 次提交
  3. 08 3月, 2008 2 次提交
  4. 27 2月, 2008 3 次提交
  5. 22 2月, 2008 1 次提交
  6. 11 2月, 2008 1 次提交
    • B
      ide: remove stale version number · eba8ff94
      Bartlomiej Zolnierkiewicz 提交于
      On Thursday 03 January 2008, Robert Hancock wrote:
      
      [...]
      
      > How about getting rid of this stupid thing in drivers/ide/ide.c:
      > 
      > #define       REVISION        "Revision: 7.00alpha2"
      > 
      > which is used in:
      > 
      > printk(KERN_INFO "Uniform Multi-Platform E-IDE driver " REVISION "\n");
      > 
      > It's been 7.00alpha2 for god knows how long, so clearly this version 
      > number is not useful..
      
      Cc: Robert Hancock <hancockr@shaw.ca>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      eba8ff94
  7. 06 2月, 2008 1 次提交
    • B
      ide: remove ide_setup_ports() · 29dd5975
      Bartlomiej Zolnierkiewicz 提交于
      ide-cris.c:
      * Add cris_setup_ports() helper and use it instead of ide_setup_ports()
        (fixes random value being set in ->io_ports[IDE_IRQ_OFFSET]).
      
      buddha.c:
      * Add buddha_setup_ports() helper and use it instead of ide_setup_ports().
      
      falconide.c:
      * Add falconide_setup_ports() helper and use it instead of ide_setup_ports(),
        also fix return value of falconide_init() while at it.
      
      gayle.c:
      * Add gayle_setup_ports() helper and use it instead of ide_setup_ports().
      
      macide.c:
      * Add macide_setup_ports() helper and use it instead of ide_setup_ports()
        (fixes incorrect value being set in ->io_ports[IDE_IRQ_OFFSET]).
      
      q40ide.c:
      * Fix q40_ide_setup_ports() comments.
      
      ide.c:
      * Remove no longer needed ide_setup_ports().
      
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      29dd5975
  8. 03 2月, 2008 7 次提交
  9. 02 2月, 2008 7 次提交
  10. 27 1月, 2008 4 次提交
    • B
      ide: convert "empty" REQ_TYPE_ATA_CMD requests to use REQ_TYPE_ATA_TASKFILE · 852738f3
      Bartlomiej Zolnierkiewicz 提交于
      Based on the previous work by Tejun Heo.
      
      There should be no functionality changes caused by this patch.
      
      Cc: Tejun Heo <htejun@gmail.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      852738f3
    • B
      ide: initialize rq->cmd_type in ide_init_drive_cmd() callers · 145b75e9
      Bartlomiej Zolnierkiewicz 提交于
      * Initialize rq->cmd_type in ide_wait_cmd(), ide_cmd_ioctl() and
        set_pio_mode() (other callers were aleady over-riding rq->cmd_type).
      
      * Remove no longer needed rq->cmd_type setup from ide_init_drive_cmd().
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      145b75e9
    • B
      ide: remove broken disk byte-swapping support · 9e47be0c
      Bartlomiej Zolnierkiewicz 提交于
      Remove broken disk byte-swapping support:
      - it can cause a data corruption on SMP (or if using PREEMPT on UP)
      - all data coming from disk are byte-swapped by taskfile_*_data() which
        results in incorrect identify data being reported by /proc/ide/ and IOCTLs
      - "hdx=bswap/byteswap" kernel parameter has been broken on m68k host drivers
        (including Atari/Q40 ones) since 2.5.x days (because of 'hwif' zero-ing)
      - byte-swapping is limited to PIO transfers (for working with TiVo disks on
        x86 machines using user-space solutions or dm-byteswap should result in
        much better performance because DMA can be used)
      
      For previous discussions please see:
      
      http://www.ussg.iu.edu/hypermail/linux/kernel/0201.0/0768.html
      http://lkml.org/lkml/2004/2/28/111
      
      [ I have dm-byteswap device mapper target if somebody is interested
        (patch is for 2.6.4 though but I'll dust it off if needed). ]
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      9e47be0c
    • B
      ide: make remaining built-in only IDE host drivers modular (take 2) · ade2daf9
      Bartlomiej Zolnierkiewicz 提交于
      * Make remaining built-in only IDE host drivers modular, add ide-scan-pci.c
        file for probing PCI host drivers registered with IDE core (special case
        for built-in IDE and CONFIG_IDEPCI_PCIBUS_ORDER=y) and then take care of
        the ordering in which all IDE host drivers are probed when IDE is built-in
        during link time.
      
      * Move probing of gayle, falconide, macide, q40ide and buddha (m68k arch
        specific) host drivers, before PCI ones (no PCI on m68k), ide-cris (cris
        arch specific), cmd640 (x86 arch specific) and pmac (ppc arch specific).
      
      * Move probing of ide-cris (cris arch specific) host driver before cmd640
        (x86 arch specific).
      
      * Move probing of mpc8xx (ppc specific) host driver before ide-pnp (depends
        on ISA and none of ppc platform that use mpc8xx supports ISA) and ide-h8300
        (h8300 arch specific).
      
      * Add "probe_vlb" kernel parameter to cmd640 host driver and update
        Documentation/ide.txt accordingly.
      
      * Make IDE_ARM config option visible so it can also be disabled if needed.
      
      * Remove bogus comment from ide.c while at it.
      
      v2:
      * Fix two issues spotted by Sergei:
        - replace ENOMEM error value by ENOENT in ide-h8300 host driver
        - fix MODULE_PARM_DESC() in cmd640 host driver
      
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      ade2daf9