1. 21 2月, 2008 1 次提交
    • H
      ata: fix sparse warnings in pata_legacy.c · cb616dd5
      Harvey Harrison 提交于
      Use ld_qdi and ld_winbond to avoid shadowing static int
      variables qdi and winbond.  The ld_ prefix refers to
      legacy_data.
      
      drivers/ata/pata_legacy.c:777:21: warning: symbol 'qdi' shadows an earlier one
      drivers/ata/pata_legacy.c:128:12: originally declared here
      drivers/ata/pata_legacy.c:811:21: warning: symbol 'qdi' shadows an earlier one
      drivers/ata/pata_legacy.c:128:12: originally declared here
      drivers/ata/pata_legacy.c:848:21: warning: symbol 'qdi' shadows an earlier one
      drivers/ata/pata_legacy.c:128:12: originally declared here
      drivers/ata/pata_legacy.c:882:21: warning: symbol 'qdi' shadows an earlier one
      drivers/ata/pata_legacy.c:128:12: originally declared here
      drivers/ata/pata_legacy.c:1040:21: warning: symbol 'winbond' shadows an earlier one
      drivers/ata/pata_legacy.c:129:12: originally declared here
      Signed-off-by: NHarvey Harrison <harvey.harrison@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      cb616dd5
  2. 19 2月, 2008 4 次提交
    • J
      libata: implement drain buffers · fa2fc7f4
      James Bottomley 提交于
      This just updates the libata slave configure routine to take advantage
      of the block layer drain buffers.  It also adjusts the size lengths in
      the atapi code to add the drain buffer to the DMA length so the driver
      knows it can rely on it.
      
      I suspect I should also be checking for AHCI as well as ATA_DEV_ATAPI,
      but I couldn't see how to do that easily.
      
      tj: * atapi_drain_needed() added such that draining is applied to only
            misc ATAPI commands.
          * q->bounce_gfp used when allocating drain buffer.
          * Now duplicate ATAPI PIO drain logic dropped.
          * ata_dev_printk() used instead of sdev_printk().
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      fa2fc7f4
    • J
      libata: eliminate the home grown dma padding in favour of · dde20207
      James Bottomley 提交于
      that provided by the block layer
      
      ATA requires that all DMA transfers begin and end on word boundaries.
      Because of this, a large amount of machinery grew up in ide to adjust
      scatterlists on this basis.  However, as of 2.5, the block layer has a
      dma_alignment variable which ensures both the beginning and length of a
      DMA transfer are aligned on the dma_alignment boundary.  Although the
      block layer does adjust the beginning of the transfer to ensure this
      happens, it doesn't actually adjust the length, it merely makes sure
      that space is allocated for transfers beyond the declared length.  The
      upshot of this is that scatterlists may be padded to any size between
      the actual length and the length adjusted to the dma_alignment safely
      knowing that memory is allocated in this region.
      
      Right at the moment, SCSI takes the default dma_aligment which is on a
      512 byte boundary.  Note that this aligment only applies to transfers
      coming in from user space.  However, since all kernel allocations are
      automatically aligned on a minimum of 32 byte boundaries, it is safe to
      adjust them in this manner as well.
      
      tj: * Adjusting sg after padding is done in block layer.  Make libata
            set queue alignment correctly for ATAPI devices and drop broken
            sg mangling from ata_sg_setup().
          * Use request->raw_data_len for ATAPI transfer chunk size.
          * Killed qc->raw_nbytes.
          * Separated out killing qc->n_iter.
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      dde20207
    • T
      libata: update ATAPI overflow draining · 56c819df
      Tejun Heo 提交于
      For misc ATAPI commands which transfer variable length data to the
      host, overflow can occur due to application or hardware bug.  Such
      overflows can be ignored safely as long as overflow data is properly
      drained.  libata HSM implementation has this implemented in
      __atapi_pio_bytes() and recently updated for 2.6.24-rc but it requires
      further improvements.  Improve drain logic such that...
      
      * Report overflow errors using ehi desc mechanism instead of printing
        directly.
      
      * Properly calculate the number of bytes to be drained considering
        actual number of consumed bytes for partial draining.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Acked-by: NAlbert Lee <albertcc@tw.ibm.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      56c819df
    • M
      ide/libata: ST310211A has buggy HPA too · b152fcd3
      Mikko Rapeli 提交于
      Signed-off-by: NMikko Rapeli <mikko.rapeli@teleca.com>
      Tested-by: NBart Champagne <bart@as35701.net>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      b152fcd3
  3. 16 2月, 2008 14 次提交
  4. 12 2月, 2008 7 次提交
    • B
      sata_mv: platform driver allocs dma without create · fbf14e2f
      Byron Bradley 提交于
      When the sata_mv driver is used as a platform driver,
      mv_create_dma_pools() is never called so it fails when trying
      to alloc in mv_pool_start().
      Signed-off-by: NByron Bradley <byron.bbradley@gmail.com>
      Acked-by: NMark Lord <mlord@pobox.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      fbf14e2f
    • A
      pata_ninja32: setup changes · 41946450
      Alan Cox 提交于
      Forcibly set more of the configuration at init time. This seems to fix at
      least one problem reported. We don't know what most of these bits do, but
      we do know what windows stuffs there.
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      41946450
    • A
      pata_legacy: typo fix · 8397248d
      Alan Cox 提交于
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      8397248d
    • A
      pata_amd: Note in the module description it handles Nvidia · c9544bcb
      Alan Cox 提交于
      This has confused a few people so fix it
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      c9544bcb
    • Y
      sata_mv: fix loop with last port · 8f71efe2
      Yinghai Lu 提交于
      commit f351b2d6
              sata_mv: Support SoC controllers
      
      cause panic:
      
      scsi 4:0:0:0: Direct-Access     ATA      HITACHI HDS7225S V44O PQ: 0 ANSI: 5
      sd 4:0:0:0: [sde] 488390625 512-byte hardware sectors (250056 MB)
      sd 4:0:0:0: [sde] Write Protect is off
      sd 4:0:0:0: [sde] Mode Sense: 00 3a 00 00
      sd 4:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
      sd 4:0:0:0: [sde] 488390625 512-byte hardware sectors (250056 MB)
      sd 4:0:0:0: [sde] Write Protect is off
      sd 4:0:0:0: [sde] Mode Sense: 00 3a 00 00
      sd 4:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
       sde:<1>BUG: unable to handle kernel NULL pointer dereference at 000000000000001a
      IP: [<ffffffff806262c7>] mv_interrupt+0x21c/0x4cc
      PGD 0
      Oops: 0000 [1] SMP
      CPU 3
      Modules linked in:
      Pid: 0, comm: swapper Not tainted 2.6.24-smp-08636-g0afc2edf-dirty #26
      RIP: 0010:[<ffffffff806262c7>]  [<ffffffff806262c7>] mv_interrupt+0x21c/0x4cc
      RSP: 0000:ffff8102050bbec8  EFLAGS: 00010297
      RAX: 0000000000000008 RBX: 0000000000000000 RCX: 0000000000000003
      RDX: 0000000000008000 RSI: 0000000000000286 RDI: ffff8102035180e0
      RBP: 0000000000000001 R08: 0000000000000003 R09: ffff8102036613e0
      R10: 0000000000000002 R11: ffffffff8061474c R12: ffff8102035bf828
      R13: 0000000000000008 R14: ffff81020348ece8 R15: ffffc20002cb2000
      FS:  0000000000000000(0000) GS:ffff810405025700(0000) knlGS:0000000000000000
      CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
      CR2: 000000000000001a CR3: 0000000000201000 CR4: 00000000000006e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process swapper (pid: 0, threadinfo ffff810405094000, task ffff8102050b28c0)
      Stack:  000000010000000c 0002040000220400 0000001100000002 ffff81020348eda8
       0000000000000001 ffff8102035f2cc0 0000000000000000 0000000000000000
       0000000000000018 0000000000000000 0000000000000000 ffffffff80269ee8
      Call Trace:
       <IRQ>  [<ffffffff80269ee8>] ? handle_IRQ_event+0x25/0x53
       [<ffffffff8026b393>] ? handle_fasteoi_irq+0x90/0xc8
       [<ffffffff802218e2>] ? do_IRQ+0xf1/0x15f
       [<ffffffff8021df24>] ? default_idle+0x0/0x55
       [<ffffffff8021f361>] ? ret_from_intr+0x0/0xa
       <EOI>  [<ffffffff8023010c>] ? lapic_next_event+0x0/0xa
       [<ffffffff8021df55>] ? default_idle+0x31/0x55
       [<ffffffff8021df50>] ? default_idle+0x2c/0x55
       [<ffffffff8021df24>] ? default_idle+0x0/0x55
       [<ffffffff8021e00b>] ? cpu_idle+0x92/0xb8
      
      Code: 41 14 85 c0 89 44 24 14 0f 84 9d 02 00 00 f7 d0 01 d6 41 89 d5 89 41 14 8b 41 14 89 34 24 e9 7e 02 00 00 49 63 c5 49 8b 5c c6 48 <f6> 43 1a 80 4c 8b a3 20 37 00 00 0f 85 62 02 00 00 31 c9 41 83
      RIP  [<ffffffff806262c7>] mv_interrupt+0x21c/0x4cc
       RSP <ffff8102050bbec8>
      CR2: 000000000000001a
      ---[ end trace 2583b5f7a5350584 ]---
      Kernel panic - not syncing: Aiee, killing interrupt handler!
      
      last_port already include port0 base.
      this patch change use last_port directly, and move pp assignment later.
      Signed-off-by: NYinghai Lu <yinghai.lu@sun.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      8f71efe2
    • T
      libata: ignore deverr on SETXFER if mode is configured · 4055dee7
      Tejun Heo 提交于
      Some controllers (VIA CX700) raise device error on SETXFER even after
      mode configuration succeeded.  Update ata_dev_set_mode() such that
      device error is ignored if transfer mode is configured correctly.  To
      implement this, device is revalidated even after device error on
      SETXFER.
      
      This fixes kernel bugzilla bug 8563.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      4055dee7
    • T
      pata_via: fix SATA cable detection on cx700 · 7585eb1b
      Tejun Heo 提交于
      The first port of cx700 is SATA.  Fix cable detection.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      7585eb1b
  5. 06 2月, 2008 10 次提交
  6. 03 2月, 2008 1 次提交
  7. 02 2月, 2008 3 次提交