2019-05-19 15:51:48 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2005-08-28 20:18:39 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-16 09:16:37 -03:00
|
|
|
|
2005-08-28 20:18:39 -04:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-04-09 18:34:56 +03:00
|
|
|
|
2009-04-02 10:37:25 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-04-02 11:34:15 +08:00
|
|
|
|
2006-06-11 09:59:27 -04:00
|
|
|
|
2015-07-13 11:48:23 -05:00
|
|
|
|
2016-07-15 05:09:02 +08:00
|
|
|
|
2007-10-30 11:44:35 -04:00
|
|
|
|
2016-07-13 04:31:23 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-02 20:18:49 +09:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2007-01-02 20:18:49 +09:00
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2017-08-29 14:42:06 +02:00
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2005-10-21 18:46:32 -04:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2005-10-21 18:46:32 -04:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-10-21 18:46:32 -04:00
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2005-10-21 18:46:32 -04:00
|
|
|
|
|
|
|
|
|
2009-11-26 22:46:03 -05:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2012-09-07 22:38:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-10-21 18:46:32 -04:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-11-17 10:00:47 -05:00
|
|
|
|
2011-03-07 08:56:44 +01:00
|
|
|
|
2010-08-17 10:56:53 -07:00
|
|
|
|
2015-03-27 16:46:36 +01:00
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-03-05 17:20:55 +01:00
|
|
|
|
|
|
|
|
|
2009-04-02 10:37:25 -04:00
|
|
|
|
2016-08-21 23:23:19 -05:00
|
|
|
|
2008-09-24 13:05:10 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2007-01-02 20:18:49 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-07 08:56:44 +01:00
|
|
|
|
2007-01-02 20:18:49 +09:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2007-07-20 01:11:59 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-03-14 21:37:48 +01:00
|
|
|
|
|
|
|
|
|
2007-08-27 19:35:22 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-03-14 21:37:48 +01:00
|
|
|
|
|
|
|
|
|
2007-08-27 19:35:22 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-03-14 21:37:48 +01:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2015-03-27 16:46:33 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2006-05-15 20:58:17 +09:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2006-05-15 20:58:17 +09:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2006-05-15 20:58:17 +09:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-05-28 08:30:36 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-08-11 03:35:53 -04:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2009-07-14 20:43:39 -06:00
|
|
|
|
2013-10-21 19:26:30 -06:00
|
|
|
|
2009-07-14 20:43:39 -06:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-07-14 20:43:39 -06:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2009-07-14 20:43:39 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2009-07-14 20:43:39 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 09:56:18 +01:00
|
|
|
|
2009-07-14 20:43:39 -06:00
|
|
|
|
2006-05-15 21:03:38 +09:00
|
|
|
|
|
|
|
|
|
2016-04-25 12:45:45 +02:00
|
|
|
|
2013-08-24 23:22:50 -07:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-10-12 15:06:27 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-06 09:56:18 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2007-06-07 16:01:17 +08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-07-14 20:43:39 -06:00
|
|
|
|
2007-10-19 06:42:56 -04:00
|
|
|
|
|
|
|
|
|
2007-10-25 18:30:36 +09:00
|
|
|
|
2005-05-12 15:29:42 -04:00
|
|
|
|
2006-03-21 15:52:49 +00:00
|
|
|
|
|
|
|
|
|
2007-04-11 00:23:13 +01:00
|
|
|
|
|
|
|
|
|
2009-07-14 20:43:39 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-21 19:26:30 -06:00
|
|
|
|
2009-07-14 20:43:39 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-01 19:05:58 +09:00
|
|
|
|
2013-10-21 19:26:30 -06:00
|
|
|
|
2007-07-01 19:05:58 +09:00
|
|
|
|
2013-10-21 19:26:30 -06:00
|
|
|
|
2007-12-15 15:04:59 +09:00
|
|
|
|
2009-07-14 20:43:39 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-12-15 15:04:59 +09:00
|
|
|
|
2009-07-14 20:43:39 -06:00
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-04-02 10:37:25 -04:00
|
|
|
|
2009-07-14 20:43:39 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-21 19:26:30 -06:00
|
|
|
|
|
|
|
|
|
2016-04-25 12:45:52 +02:00
|
|
|
|
2016-04-25 12:45:53 +02:00
|
|
|
|
2013-10-21 19:26:30 -06:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
|
|
|
|
|
2006-05-15 21:03:38 +09:00
|
|
|
|
2016-04-25 12:45:47 +02:00
|
|
|
|
|
|
|
|
|
2016-04-25 12:45:52 +02:00
|
|
|
|
2016-04-25 12:45:47 +02:00
|
|
|
|
2013-08-24 23:22:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-25 12:45:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-25 12:45:54 +02:00
|
|
|
|
2016-04-25 12:45:49 +02:00
|
|
|
|
2016-04-25 12:45:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-25 12:45:53 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-05-15 21:03:38 +09:00
|
|
|
|
2016-04-25 12:45:48 +02:00
|
|
|
|
2006-05-15 21:03:38 +09:00
|
|
|
|
2017-06-04 14:42:22 +02:00
|
|
|
|
|
|
|
|
|
2023-05-11 03:13:47 +02:00
|
|
|
|
|
|
|
|
|
2017-06-04 14:42:22 +02:00
|
|
|
|
scsi: ata: libata: Handle completion of CDL commands using policy 0xD
A CDL timeout for policy 0xF is defined as a NCQ error, just with a CDL
specific sk/asc/ascq in the sense data. Therefore, the existing code in
libata does not need to be modified to handle a policy 0xF CDL timeout.
For Command Duration Limits policy 0xD:
The device shall complete the command without error with the additional
sense code set to DATA CURRENTLY UNAVAILABLE.
Since a CDL timeout for policy 0xD is not an error, we cannot use the NCQ
Command Error log (10h).
Instead, we need to read the Sense Data for Successful NCQ Commands log
(0Fh).
In the success case, just like in the error case, we cannot simply read a
log page from the interrupt handler itself, since reading a log page
involves sending a READ LOG DMA EXT or READ LOG EXT command.
Therefore, we add a new EH action ATA_EH_GET_SUCCESS_SENSE. When a command
completes without error, and when the ATA_SENSE bit is set, this new action
is set as pending, and EH is scheduled.
This way, similar to the NCQ error case, the log page will be read from EH
context.
An alternative would have been to add a new kthread or workqueue to handle
this. However, extending EH can be done with minimal changes and avoids the
need to synchronize a new kthread/workqueue with EH.
Co-developed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Link: https://lore.kernel.org/r/20230511011356.227789-20-nks@flawful.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2023-05-11 03:13:52 +02:00
|
|
|
|
|
|
|
|
|
2022-02-07 11:27:53 +09:00
|
|
|
|
2017-06-04 14:42:22 +02:00
|
|
|
|
|
|
|
|
|
2023-05-11 03:13:47 +02:00
|
|
|
|
2023-05-11 03:13:50 +02:00
|
|
|
|
2017-06-04 14:42:24 +02:00
|
|
|
|
2012-09-07 22:40:01 +08:00
|
|
|
|
2016-04-25 12:45:56 +02:00
|
|
|
|
2017-06-04 14:42:22 +02:00
|
|
|
|
2023-05-11 03:13:47 +02:00
|
|
|
|
2012-12-17 23:18:59 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-09-07 22:40:01 +08:00
|
|
|
|
2012-12-17 23:18:59 +08:00
|
|
|
|
|
|
|
|
|
2012-09-07 22:40:01 +08:00
|
|
|
|
2016-10-17 11:27:29 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2013-08-24 23:22:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-25 12:45:47 +02:00
|
|
|
|
2013-08-24 23:22:50 -07:00
|
|
|
|
2016-04-25 12:45:47 +02:00
|
|
|
|
2016-04-25 12:45:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-24 23:22:50 -07:00
|
|
|
|
2016-04-25 12:45:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-24 23:22:50 -07:00
|
|
|
|
2007-03-16 10:22:26 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-08-10 18:52:12 +01:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-09-26 12:48:41 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-08-10 18:52:12 +01:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-06-12 12:01:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-12 21:37:02 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-04 12:17:09 -04:00
|
|
|
|
|
|
|
|
|
libata: Handle drives that require a spin-up command before first access
(S)ATA drives can be configured for "power-up in standby",
a mode whereby a specific "spin up now!" command is required
before the first media access.
Currently, a drive with this feature enabled can not be used at all
with libata, and once in this mode, the drive becomes a doorstop.
The older drivers/ide subsystem at least enumerates the drive,
so that it can be woken up after the fact from a userspace HDIO_*
command, but not libata.
This patch adds support to libata for the "power-up in standby"
mode where a "spin up now!" command (SET_FEATURES) is needed.
With this, libata will recognize such drives, spin them up,
and then re-IDENTIFY them if necessary to get a full/complete
set of drive features data.
Drives in this state are determined by looking for
special values in id[2], as documented in the current ATA specs.
Signed-off-by: Mark Lord <mlord@pobox.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-04-17 18:26:07 -04:00
|
|
|
|
2007-08-15 03:57:11 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-05-11 03:13:50 +02:00
|
|
|
|
|
|
|
|
|
2007-08-15 03:57:11 -04:00
|
|
|
|
2009-09-16 04:17:02 +09:00
|
|
|
|
2009-09-16 04:16:04 +09:00
|
|
|
|
|
|
|
|
|
2009-09-16 04:17:02 +09:00
|
|
|
|
2009-09-16 04:16:04 +09:00
|
|
|
|
2009-09-16 04:17:02 +09:00
|
|
|
|
2012-09-07 22:40:01 +08:00
|
|
|
|
2007-08-15 03:57:11 -04:00
|
|
|
|
2016-04-04 11:43:55 +02:00
|
|
|
|
scsi: ata: libata: Handle completion of CDL commands using policy 0xD
A CDL timeout for policy 0xF is defined as a NCQ error, just with a CDL
specific sk/asc/ascq in the sense data. Therefore, the existing code in
libata does not need to be modified to handle a policy 0xF CDL timeout.
For Command Duration Limits policy 0xD:
The device shall complete the command without error with the additional
sense code set to DATA CURRENTLY UNAVAILABLE.
Since a CDL timeout for policy 0xD is not an error, we cannot use the NCQ
Command Error log (10h).
Instead, we need to read the Sense Data for Successful NCQ Commands log
(0Fh).
In the success case, just like in the error case, we cannot simply read a
log page from the interrupt handler itself, since reading a log page
involves sending a READ LOG DMA EXT or READ LOG EXT command.
Therefore, we add a new EH action ATA_EH_GET_SUCCESS_SENSE. When a command
completes without error, and when the ATA_SENSE bit is set, this new action
is set as pending, and EH is scheduled.
This way, similar to the NCQ error case, the log page will be read from EH
context.
An alternative would have been to add a new kthread or workqueue to handle
this. However, extending EH can be done with minimal changes and avoids the
need to synchronize a new kthread/workqueue with EH.
Co-developed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Link: https://lore.kernel.org/r/20230511011356.227789-20-nks@flawful.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2023-05-11 03:13:52 +02:00
|
|
|
|
2016-04-04 11:43:55 +02:00
|
|
|
|
2007-12-15 15:04:59 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-28 18:20:46 +08:00
|
|
|
|
|
|
|
|
|
2007-12-15 15:04:59 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-04-02 10:37:25 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-01 19:05:58 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-11-27 19:43:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-05-15 20:58:17 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-10-02 11:22:02 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-05-15 20:58:17 +09:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2016-07-16 22:16:43 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
libata: fix HDIO_GET_32BIT ioctl
As reported by Soohoon Lee, the HDIO_GET_32BIT ioctl does not
work correctly in compat mode with libata.
I have investigated the issue further and found multiple problems
that all appeared with the same commit that originally introduced
HDIO_GET_32BIT handling in libata back in linux-2.6.8 and presumably
also linux-2.4, as the code uses "copy_to_user(arg, &val, 1)" to copy
a 'long' variable containing either 0 or 1 to user space.
The problems with this are:
* On big-endian machines, this will always write a zero because it
stores the wrong byte into user space.
* In compat mode, the upper three bytes of the variable are updated
by the compat_hdio_ioctl() function, but they now contain
uninitialized stack data.
* The hdparm tool calling this ioctl uses a 'static long' variable
to store the result. This means at least the upper bytes are
initialized to zero, but calling another ioctl like HDIO_GET_MULTCOUNT
would fill them with data that remains stale when the low byte
is overwritten. Fortunately libata doesn't implement any of the
affected ioctl commands, so this would only happen when we query
both an IDE and an ATA device in the same command such as
"hdparm -N -c /dev/hda /dev/sda"
* The libata code for unknown reasons started using ATA_IOC_GET_IO32
and ATA_IOC_SET_IO32 as aliases for HDIO_GET_32BIT and HDIO_SET_32BIT,
while the ioctl commands that were added later use the normal
HDIO_* names. This is harmless but rather confusing.
This addresses all four issues by changing the code to use put_user()
on an 'unsigned long' variable in HDIO_GET_32BIT, like the IDE subsystem
does, and by clarifying the names of the ioctl commands.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reported-by: Soohoon Lee <Soohoon.Lee@f5.com>
Tested-by: Soohoon Lee <Soohoon.Lee@f5.com>
Cc: stable@vger.kernel.org
Signed-off-by: Tejun Heo <tj@kernel.org>
2016-02-11 14:16:27 +01:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-10 21:41:41 +02:00
|
|
|
|
2007-12-30 09:32:22 +00:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2007-11-27 19:28:53 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-09-07 22:38:20 +08:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2014-12-21 22:36:37 -05:00
|
|
|
|
ata: libata-scsi: Fix system suspend for a security locked drive
Commit cf3fc037623c ("ata: libata-scsi: Fix ata_to_sense_error() status
handling") fixed ata_to_sense_error() to properly generate sense key
ABORTED COMMAND (without any additional sense code), instead of the
previous bogus sense key ILLEGAL REQUEST with the additional sense code
UNALIGNED WRITE COMMAND, for a failed command.
However, this broke suspend for Security locked drives (drives that have
Security enabled, and have not been Security unlocked by boot firmware).
The reason for this is that the SCSI disk driver, for the Synchronize
Cache command only, treats any sense data with sense key ILLEGAL REQUEST
as a successful command (regardless of ASC / ASCQ).
After commit cf3fc037623c ("ata: libata-scsi: Fix ata_to_sense_error()
status handling") the code that treats any sense data with sense key
ILLEGAL REQUEST as a successful command is no longer applicable, so the
command fails, which causes the system suspend to be aborted:
sd 1:0:0:0: PM: dpm_run_callback(): scsi_bus_suspend returns -5
sd 1:0:0:0: PM: failed to suspend async: error -5
PM: Some devices failed to suspend, or early wake event detected
To make suspend work once again, for a Security locked device only,
return sense data LOGICAL UNIT ACCESS NOT AUTHORIZED, the actual sense
data which a real SCSI device would have returned if locked.
The SCSI disk driver treats this sense data as a successful command.
Cc: stable@vger.kernel.org
Reported-by: Ilia Baryshnikov <qwelias@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220704
Fixes: cf3fc037623c ("ata: libata-scsi: Fix ata_to_sense_error() status handling")
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Niklas Cassel <cassel@kernel.org>
2025-11-19 15:13:14 +01:00
|
|
|
|
2007-09-23 13:14:11 +09:00
|
|
|
|
2012-09-07 22:38:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-07-27 09:24:35 +08:00
|
|
|
|
2012-09-07 22:38:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-16 14:28:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-16 14:28:34 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-16 14:28:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2012-09-07 22:38:20 +08:00
|
|
|
|
2005-09-27 17:38:03 +08:00
|
|
|
|
2007-10-25 00:58:59 -04:00
|
|
|
|
|
|
|
|
|
2012-09-07 22:38:20 +08:00
|
|
|
|
2007-10-25 00:58:59 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
|
|
|
|
|
2010-08-17 10:56:53 -07:00
|
|
|
|
2009-11-17 10:00:47 -05:00
|
|
|
|
2010-08-17 10:56:53 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-11-17 10:00:47 -05:00
|
|
|
|
|
|
|
|
|
2010-08-17 10:56:53 -07:00
|
|
|
|
2009-11-17 10:00:47 -05:00
|
|
|
|
2010-08-17 10:56:53 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-11-17 10:00:47 -05:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
|
|
|
|
|
2015-03-27 16:46:30 +01:00
|
|
|
|
|
|
|
|
|
2015-05-04 21:54:20 -04:00
|
|
|
|
2015-03-27 16:46:30 +01:00
|
|
|
|
|
|
|
|
|
2015-05-04 21:54:20 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-03-27 16:46:30 +01:00
|
|
|
|
|
|
|
|
|
2016-04-04 11:43:55 +02:00
|
|
|
|
|
|
|
|
|
ata: fix ata_id_sense_reporting_enabled() and ata_id_has_sense_reporting()
ACS-5 section
7.13.6.41 Words 85..87, 120: Commands and feature sets supported or enabled
states that:
If bit 15 of word 86 is set to one, bit 14 of word 119 is set to one,
and bit 15 of word 119 is cleared to zero, then word 119 is valid.
If bit 15 of word 86 is set to one, bit 14 of word 120 is set to one,
and bit 15 of word 120 is cleared to zero, then word 120 is valid.
(This text also exists in really old ACS standards, e.g. ACS-3.)
Currently, ata_id_sense_reporting_enabled() and
ata_id_has_sense_reporting() both check bit 15 of word 86,
but neither of them check that bit 14 of word 119 is set to one,
or that bit 15 of word 119 is cleared to zero.
Additionally, make ata_id_sense_reporting_enabled() return false
if !ata_id_has_sense_reporting(), similar to how e.g.
ata_id_flush_ext_enabled() returns false if !ata_id_has_flush_ext().
Fixes: e87fd28cf9a2 ("libata: Implement support for sense data reporting")
Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
2022-09-16 14:28:32 +02:00
|
|
|
|
2016-04-04 11:43:55 +02:00
|
|
|
|
ata: fix ata_id_sense_reporting_enabled() and ata_id_has_sense_reporting()
ACS-5 section
7.13.6.41 Words 85..87, 120: Commands and feature sets supported or enabled
states that:
If bit 15 of word 86 is set to one, bit 14 of word 119 is set to one,
and bit 15 of word 119 is cleared to zero, then word 119 is valid.
If bit 15 of word 86 is set to one, bit 14 of word 120 is set to one,
and bit 15 of word 120 is cleared to zero, then word 120 is valid.
(This text also exists in really old ACS standards, e.g. ACS-3.)
Currently, ata_id_sense_reporting_enabled() and
ata_id_has_sense_reporting() both check bit 15 of word 86,
but neither of them check that bit 14 of word 119 is set to one,
or that bit 15 of word 119 is cleared to zero.
Additionally, make ata_id_sense_reporting_enabled() return false
if !ata_id_has_sense_reporting(), similar to how e.g.
ata_id_flush_ext_enabled() returns false if !ata_id_has_flush_ext().
Fixes: e87fd28cf9a2 ("libata: Implement support for sense data reporting")
Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
2022-09-16 14:28:32 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-04 11:43:55 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ata: fix ata_id_sense_reporting_enabled() and ata_id_has_sense_reporting()
ACS-5 section
7.13.6.41 Words 85..87, 120: Commands and feature sets supported or enabled
states that:
If bit 15 of word 86 is set to one, bit 14 of word 119 is set to one,
and bit 15 of word 119 is cleared to zero, then word 119 is valid.
If bit 15 of word 86 is set to one, bit 14 of word 120 is set to one,
and bit 15 of word 120 is cleared to zero, then word 120 is valid.
(This text also exists in really old ACS standards, e.g. ACS-3.)
Currently, ata_id_sense_reporting_enabled() and
ata_id_has_sense_reporting() both check bit 15 of word 86,
but neither of them check that bit 14 of word 119 is set to one,
or that bit 15 of word 119 is cleared to zero.
Additionally, make ata_id_sense_reporting_enabled() return false
if !ata_id_has_sense_reporting(), similar to how e.g.
ata_id_flush_ext_enabled() returns false if !ata_id_has_flush_ext().
Fixes: e87fd28cf9a2 ("libata: Implement support for sense data reporting")
Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
2022-09-16 14:28:32 +02:00
|
|
|
|
2016-04-04 11:43:55 +02:00
|
|
|
|
ata: fix ata_id_sense_reporting_enabled() and ata_id_has_sense_reporting()
ACS-5 section
7.13.6.41 Words 85..87, 120: Commands and feature sets supported or enabled
states that:
If bit 15 of word 86 is set to one, bit 14 of word 119 is set to one,
and bit 15 of word 119 is cleared to zero, then word 119 is valid.
If bit 15 of word 86 is set to one, bit 14 of word 120 is set to one,
and bit 15 of word 120 is cleared to zero, then word 120 is valid.
(This text also exists in really old ACS standards, e.g. ACS-3.)
Currently, ata_id_sense_reporting_enabled() and
ata_id_has_sense_reporting() both check bit 15 of word 86,
but neither of them check that bit 14 of word 119 is set to one,
or that bit 15 of word 119 is cleared to zero.
Additionally, make ata_id_sense_reporting_enabled() return false
if !ata_id_has_sense_reporting(), similar to how e.g.
ata_id_flush_ext_enabled() returns false if !ata_id_has_flush_ext().
Fixes: e87fd28cf9a2 ("libata: Implement support for sense data reporting")
Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
2022-09-16 14:28:32 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-04 11:43:55 +02:00
|
|
|
|
|
|
|
|
|
2016-08-21 23:23:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-10-19 06:42:56 -04:00
|
|
|
|
2007-08-22 23:31:43 +01:00
|
|
|
|
|
|
|
|
|
2006-02-12 22:47:04 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-08-10 18:52:12 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-02-12 22:47:04 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-02-21 20:25:08 +09:00
|
|
|
|
2008-10-10 22:39:30 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
|
|
|
|
|
2007-02-21 20:25:08 +09:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-11-04 22:05:49 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-11-04 22:05:49 -05:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-11-04 22:05:49 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-11-04 22:05:49 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
|
|
|
|
|
2007-11-04 22:05:49 -05:00
|
|
|
|
|
|
|
|
|
2017-08-29 14:42:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-09-19 23:46:01 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
|
|
|
|
|
2008-09-19 23:46:01 +02:00
|
|
|
|
|
|
|
|
|
2011-03-07 08:56:44 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-05-15 00:40:35 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-24 23:22:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-25 12:45:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-17 11:27:29 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2009-04-02 10:37:25 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
|
|
|
|
|
2009-04-02 10:37:25 -04:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2009-11-26 22:46:03 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2009-11-26 22:46:03 -05:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2009-11-26 22:46:03 -05:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2005-05-12 15:29:42 -04:00
|
|
|
|
2006-08-31 00:02:15 -04:00
|
|
|
|
|
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-05-12 15:29:42 -04:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2006-08-10 18:52:12 +01:00
|
|
|
|
2010-02-23 12:41:22 -06:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2009-02-01 20:46:39 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2006-08-10 18:52:12 +01:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-09-24 13:05:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-25 12:45:55 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2009-06-15 18:52:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2009-06-15 18:52:52 +02:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2009-06-15 18:52:52 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2009-06-15 18:52:52 +02:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2006-10-10 14:28:11 -07:00
|
|
|
|
2007-02-21 20:25:08 +09:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
|
|
|
|
|
2006-10-10 14:28:11 -07:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2007-11-05 22:58:58 +00:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
|
|
|
|
|
2007-11-05 22:58:58 +00:00
|
|
|
|
|
|
|
|
|
2005-10-22 14:27:05 -04:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-03-18 10:30:43 +08:00
|
|
|
|
2007-10-30 11:44:35 -04:00
|
|
|
|
2008-08-18 21:40:05 +02:00
|
|
|
|
2007-10-30 11:44:35 -04:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2008-02-21 13:25:50 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2005-10-12 15:12:26 +08:00
|
|
|
|
2010-04-07 13:52:08 -04:00
|
|
|
|
2016-07-15 05:09:02 +08:00
|
|
|
|
2005-10-12 15:12:26 +08:00
|
|
|
|
|
|
|
|
|
2011-03-14 08:54:20 +01:00
|
|
|
|
2005-10-12 15:12:26 +08:00
|
|
|
|
|
|
|
|
|
2016-07-15 05:09:02 +08:00
|
|
|
|
2005-10-12 15:12:26 +08:00
|
|
|
|
|
|
|
|
|
2007-07-01 19:05:58 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|