1. 08 1月, 2015 5 次提交
  2. 07 1月, 2015 2 次提交
  3. 06 1月, 2015 3 次提交
  4. 05 1月, 2015 2 次提交
  5. 26 12月, 2014 1 次提交
  6. 13 12月, 2014 1 次提交
  7. 05 12月, 2014 2 次提交
  8. 03 12月, 2014 2 次提交
  9. 25 11月, 2014 1 次提交
  10. 24 11月, 2014 1 次提交
  11. 15 11月, 2014 1 次提交
    • H
      ahci_sunxi: Make AHCI_HFLAG_NO_PMP flag configurable with a module option · 35c16a8f
      Hans de Goede 提交于
      The use of the AHCI_HFLAG_NO_PMP flag is something which we inherited from
      the Allwinner android kernel sources, and I've always wanted to test if this
      is really necessary.
      
      So recently I've bought a sata port multiplexer, and I've given this a test
      spin on both A10 and A20 devices, and it seems to work fine:
      
      [    2.154456] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
      [    2.161092] ata1.15: Port Multiplier 1.2, 0x197b:0x0325 r0, 5 ports, feat 0x5/0xf
      [    2.175511] ata1.00: hard resetting link
      [    2.524929] ata1.00: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
      [    2.531430] ata1.01: hard resetting link
      [    2.974465] ata1.01: link resume succeeded after 1 retries
      [    3.094932] ata1.01: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
      [    3.101431] ata1.02: hard resetting link
      [    4.174466] ata1.02: failed to resume link (SControl 0)
      [    4.180065] ata1.02: SATA link down (SStatus 0 SControl 0)
      (and the same for links 3 and 4)
      
      Once the NO_PMP flag is removed it correctly sees the 2 disks which I've
      attached, and I can mount and use them just fine.
      
      Unfortunately when I then directly attached a disk to the sata port on the
      sunxi SoC, and booted a kernel without the AHCI_HFLAG_NO_PMP flag, it would
      not recognize that disk.
      
      It turns out that the sata controller in the sunxi SoCs fails to handle
      soft-resets issued to directly attached disks, and when pmp support is
      enabled the kernel will always issue a soft-reset.
      
      So add a module parameter to enable pmp usage, and default this to off, so
      that directly attached disks keep working normally.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      35c16a8f
  12. 12 11月, 2014 1 次提交
    • C
      scsi: don't set tagging state from scsi_adjust_queue_depth · c8b09f6f
      Christoph Hellwig 提交于
      Remove the tagged argument from scsi_adjust_queue_depth, and just let it
      handle the queue depth.  For most drivers those two are fairly separate,
      given that most modern drivers don't care about the SCSI "tagged" status
      of a command at all, and many old drivers allow queuing of multiple
      untagged commands in the driver.
      
      Instead we start out with the ->simple_tags flag set before calling
      ->slave_configure, which is how all drivers actually looking at
      ->simple_tags except for one worke anyway.  The one other case looks
      broken, but I've kept the behavior as-is for now.
      
      Except for that we only change ->simple_tags from the ->change_queue_type,
      and when rejecting a tag message in a single driver, so keeping this
      churn out of scsi_adjust_queue_depth is a clear win.
      
      Now that the usage of scsi_adjust_queue_depth is more obvious we can
      also remove all the trivial instances in ->slave_alloc or ->slave_configure
      that just set it to the cmd_per_lun default.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NMike Christie <michaelc@cs.wisc.edu>
      Reviewed-by: NHannes Reinecke <hare@suse.de>
      Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com>
      c8b09f6f
  13. 06 11月, 2014 2 次提交
  14. 05 11月, 2014 1 次提交
  15. 28 10月, 2014 5 次提交
  16. 27 10月, 2014 1 次提交
  17. 20 10月, 2014 1 次提交
  18. 16 10月, 2014 1 次提交
  19. 08 10月, 2014 2 次提交
    • S
      pata_serverworks: disable 64-KB DMA transfers on Broadcom OSB4 IDE Controller · 37017ac6
      Scott Carter 提交于
      The Broadcom OSB4 IDE Controller (vendor and device IDs: 1166:0211)
      does not support 64-KB DMA transfers.
      Whenever a 64-KB DMA transfer is attempted,
      the transfer fails and messages similar to the following
      are written to the console log:
      
         [ 2431.851125] sr 0:0:0:0: [sr0] Unhandled sense code
         [ 2431.851139] sr 0:0:0:0: [sr0]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
         [ 2431.851152] sr 0:0:0:0: [sr0]  Sense Key : Hardware Error [current]
         [ 2431.851166] sr 0:0:0:0: [sr0]  Add. Sense: Logical unit communication time-out
         [ 2431.851182] sr 0:0:0:0: [sr0] CDB: Read(10): 28 00 00 00 76 f4 00 00 40 00
         [ 2431.851210] end_request: I/O error, dev sr0, sector 121808
      
      When the libata and pata_serverworks modules
      are recompiled with ATA_DEBUG and ATA_VERBOSE_DEBUG defined in libata.h,
      the 64-KB transfer size in the scatter-gather list can be seen
      in the console log:
      
         [ 2664.897267] sr 9:0:0:0: [sr0] Send:
         [ 2664.897274] 0xf63d85e0
         [ 2664.897283] sr 9:0:0:0: [sr0] CDB:
         [ 2664.897288] Read(10): 28 00 00 00 7f b4 00 00 40 00
         [ 2664.897319] buffer = 0xf6d6fbc0, bufflen = 131072, queuecommand 0xf81b7700
         [ 2664.897331] ata_scsi_dump_cdb: CDB (1:0,0,0) 28 00 00 00 7f b4 00 00 40
         [ 2664.897338] ata_scsi_translate: ENTER
         [ 2664.897345] ata_sg_setup: ENTER, ata1
         [ 2664.897356] ata_sg_setup: 3 sg elements mapped
         [ 2664.897364] ata_bmdma_fill_sg: PRD[0] = (0x66FD2000, 0xE000)
         [ 2664.897371] ata_bmdma_fill_sg: PRD[1] = (0x65000000, 0x10000)
         ------------------------------------------------------> =======
         [ 2664.897378] ata_bmdma_fill_sg: PRD[2] = (0x66A10000, 0x2000)
         [ 2664.897386] ata1: ata_dev_select: ENTER, device 0, wait 1
         [ 2664.897422] ata_sff_tf_load: feat 0x1 nsect 0x0 lba 0x0 0x0 0xFC
         [ 2664.897428] ata_sff_tf_load: device 0xA0
         [ 2664.897448] ata_sff_exec_command: ata1: cmd 0xA0
         [ 2664.897457] ata_scsi_translate: EXIT
         [ 2664.897462] leaving scsi_dispatch_cmnd()
         [ 2664.897497] Doing sr request, dev = sr0, block = 0
         [ 2664.897507] sr0 : reading 64/256 512 byte blocks.
         [ 2664.897553] ata_sff_hsm_move: ata1: protocol 7 task_state 1 (dev_stat 0x58)
         [ 2664.897560] atapi_send_cdb: send cdb
         [ 2666.910058] ata_bmdma_port_intr: ata1: host_stat 0x64
         [ 2666.910079] __ata_sff_port_intr: ata1: protocol 7 task_state 3
         [ 2666.910093] ata_sff_hsm_move: ata1: protocol 7 task_state 3 (dev_stat 0x51)
         [ 2666.910101] ata_sff_hsm_move: ata1: protocol 7 task_state 4 (dev_stat 0x51)
         [ 2666.910129] sr 9:0:0:0: [sr0] Done:
         [ 2666.910136] 0xf63d85e0 TIMEOUT
      
      lspci shows that the driver used for the Broadcom OSB4 IDE Controller is
      pata_serverworks:
      
         00:0f.1 IDE interface: Broadcom OSB4 IDE Controller (prog-if 8e [Master SecP SecO PriP])
                 Flags: bus master, medium devsel, latency 64
                 [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
                 [virtual] Memory at 000003f0 (type 3, non-prefetchable) [size=1]
                 I/O ports at 0170 [size=8]
                 I/O ports at 0374 [size=4]
                 I/O ports at 1440 [size=16]
                 Kernel driver in use: pata_serverworks
      
      The pata_serverworks driver supports five distinct device IDs,
      one being the OSB4 and the other four belonging to the CSB series.
      The CSB series appears to support 64-KB DMA transfers,
      as tests on a machine with an SAI2 motherboard
      containing a Broadcom CSB5 IDE Controller (vendor and device IDs: 1166:0212)
      showed no problems with 64-KB DMA transfers.
      
      This problem was first discovered when attempting to install openSUSE
      from a DVD on a machine with an STL2 motherboard.
      Using the pata_serverworks module,
      older releases of openSUSE will not install at all due to the timeouts.
      Releases of openSUSE prior to 11.3 can be installed by disabling
      the pata_serverworks module using the brokenmodules boot parameter,
      which causes the serverworks module to be used instead.
      Recent releases of openSUSE (12.2 and later) include better error recovery and
      will install, though very slowly.
      On all openSUSE releases, the problem can be recreated
      on a machine containing a Broadcom OSB4 IDE Controller
      by mounting an install DVD and running a command similar to the following:
      
         find /mnt -type f -print | xargs cat > /dev/null
      
      The patch below corrects the problem.
      Similar to the other ATA drivers that do not support 64-KB DMA transfers,
      the patch changes the ata_port_operations qc_prep vector to point to a routine
      that breaks any 64-KB segment into two 32-KB segments and
      changes the scsi_host_template sg_tablesize element to reduce by half
      the number of scatter/gather elements allowed.
      These two changes affect only the OSB4.
      Signed-off-by: NScott Carter <ccscott@funsoft.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: stable@vger.kernel.org
      37017ac6
    • G
      libata: Un-break ATA blacklist · 1c402799
      George Spelvin 提交于
      lib/glob.c provides a new glob_match() function, with arguments in
      (pattern, string) order.  It replaced a private function with arguments
      in (string, pattern) order, but I didn't swap the call site...
      
      The result was the entire ATA blacklist was effectively disabled.
      
      The lesson for today is "I f***ed up *how* badly *how* many months ago?",
      er, I mean "Nobody Tests RC Kernels On Legacy Hardware".
      
      This was not a subtle break, but it made it through an entire RC
      cycle unreported, presumably because all the people doing testing
      have full-featured hardware.
      
      (FWIW, the reason for the argument swap was because fnmatch() does it that
      way, and for a while implementing a full fnmatch() was being considered.)
      
      Fixes: 428ac5fc (libata: Use glob_match from lib/glob.c)
      Reported-by: NSteven Honeyman <stevenhoneyman@gmail.com>
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=71371#c21Signed-off-by: NGeorge Spelvin <linux@horizon.com>
      Cc: <stable@vger.kernel.org> # 3.17
      Tested-by: NSteven Honeyman <stevenhoneyman@gmail.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      1c402799
  20. 06 10月, 2014 5 次提交