<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/ata/libahci.c, branch linux-4.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.9.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.9.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2020-10-01T18:40:19Z</updated>
<entry>
<title>ata: make qc_prep return ata_completion_errors</title>
<updated>2020-10-01T18:40:19Z</updated>
<author>
<name>Jiri Slaby</name>
</author>
<published>2019-10-31T09:59:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6cf0ac583fe1920e8e7a71cf41dc9a63a9edeca6'/>
<id>urn:sha1:6cf0ac583fe1920e8e7a71cf41dc9a63a9edeca6</id>
<content type='text'>
commit 95364f36701e62dd50eee91e1303187fd1a9f567 upstream.

In case a driver wants to return an error from qc_prep, return enum
ata_completion_errors. sata_mv is one of those drivers -- see the next
patch. Other drivers return the newly defined AC_ERR_OK.

[v2] use enum ata_completion_errors and AC_ERR_OK.

Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Cc: Jens Axboe &lt;axboe@kernel.dk&gt;
Cc: linux-ide@vger.kernel.org
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ahci: Do not export local variable ahci_em_messages</title>
<updated>2020-01-29T09:24:30Z</updated>
<author>
<name>Andy Shevchenko</name>
</author>
<published>2019-08-30T19:42:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1c1beb4eab8845b870eaf7ffa1850c8953459fa3'/>
<id>urn:sha1:1c1beb4eab8845b870eaf7ffa1850c8953459fa3</id>
<content type='text'>
[ Upstream commit 60fc35f327e0a9e60b955c0f3c3ed623608d1baa ]

The commit ed08d40cdec4
  ("ahci: Changing two module params with static and __read_mostly")
moved ahci_em_messages to be static while missing the fact of exporting it.

WARNING: "ahci_em_messages" [vmlinux] is a static EXPORT_SYMBOL_GPL

Drop export for the local variable ahci_em_messages.

Fixes: ed08d40cdec4 ("ahci: Changing two module params with static and __read_mostly")
Cc: Chuansheng Liu &lt;chuansheng.liu@intel.com&gt;
Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>ata: libahci: Correct setting of DEVSLP register</title>
<updated>2018-09-19T20:47:14Z</updated>
<author>
<name>Srinivas Pandruvada</name>
</author>
<published>2018-07-02T19:01:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c9b2ba4aed21ad77e8a953c2235b710db6a8a446'/>
<id>urn:sha1:c9b2ba4aed21ad77e8a953c2235b710db6a8a446</id>
<content type='text'>
[ Upstream commit 2dbb3ec29a6c069035857a2fc4c24e80e5dfe3cc ]

We have seen that on some platforms, SATA device never show any DEVSLP
residency. This prevent power gating of SATA IP, which prevent system
to transition to low power mode in systems with SLP_S0 aka modern
standby systems. The PHY logic is off only in DEVSLP not in slumber.
Reference:
https://www.intel.com/content/dam/www/public/us/en/documents/datasheets
/332995-skylake-i-o-platform-datasheet-volume-1.pdf
Section 28.7.6.1

Here driver is trying to do read-modify-write the devslp register. But
not resetting the bits for which this driver will modify values (DITO,
MDAT and DETO). So simply reset those bits before updating to new values.

Signed-off-by: Srinivas Pandruvada &lt;srinivas.pandruvada@linux.intel.com&gt;
Reviewed-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Reviewed-by: Hans de Goede &lt;hdegoede@redhat.com&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>libahci: Fix possible Spectre-v1 pmp indexing in ahci_led_store()</title>
<updated>2018-08-24T11:12:28Z</updated>
<author>
<name>John Garry</name>
</author>
<published>2018-06-08T10:26:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5600d61e7d9521f69bf500744cd6e72dd96d37ba'/>
<id>urn:sha1:5600d61e7d9521f69bf500744cd6e72dd96d37ba</id>
<content type='text'>
[ Upstream commit fae2a63737e5973f1426bc139935a0f42e232844 ]

Currently smatch warns of possible Spectre-V1 issue in ahci_led_store():
drivers/ata/libahci.c:1150 ahci_led_store() warn: potential spectre issue 'pp-&gt;em_priv' (local cap)

Userspace controls @pmp from following callchain:
em_message-&gt;store()
-&gt;ata_scsi_em_message_store()
--&gt;ap-&gt;ops-&gt;em_store()
---&gt;ahci_led_store()

After the mask+shift @pmp is effectively an 8b value, which is used to
index into an array of length 8, so sanitize the array index.

Signed-off-by: John Garry &lt;john.garry@huawei.com&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;

Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>ahci: use pci_alloc_irq_vectors</title>
<updated>2016-09-06T16:38:17Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2016-09-05T15:21:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0b9e2988ab2261fd6d4a0039edf81ed1e3662be8'/>
<id>urn:sha1:0b9e2988ab2261fd6d4a0039edf81ed1e3662be8</id>
<content type='text'>
Use the new pci_alloc_irq_vectors API to allocate MSI-X and MSI vectors.
The big advantage over the old code is that we can use the same API for
MSI and MSI-X, and that we don't need to store the MSI-X vector mapping
in driver-private data structures.

This first conversion keeps the probe order as-is: MSI-X multi vector,
MSI multi vector, MSI single vector, MSI-X single vector and last a
single least legacy interrupt line.  There is one small change of
behavior: we now check the "MSI Revert to Single Message" flag for
MSI-X in addition to MSI.

Because the API to find the Linux IRQ number for a MSI/MSI-X vector
is PCI specific, but libahaci is bus-agnostic I had to a
get_irq_vector function pointer to struct ahci_host_priv.  The
alternative would be to move the multi-vector case of ahci_host_activate
to ahci.c and just call ata_host_activate directly from the others
users of ahci_host_activate.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' into for-4.9</title>
<updated>2016-09-06T16:35:56Z</updated>
<author>
<name>Tejun Heo</name>
</author>
<published>2016-09-06T16:35:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2536524a91fe5c5a9fddd282fd4e79ee0976aefe'/>
<id>urn:sha1:2536524a91fe5c5a9fddd282fd4e79ee0976aefe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ahci: disable correct irq for dummy ports</title>
<updated>2016-08-11T17:45:31Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2016-08-11T14:26:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9b4b3f6a062b22550e62523efe5213776cdd426b'/>
<id>urn:sha1:9b4b3f6a062b22550e62523efe5213776cdd426b</id>
<content type='text'>
irq already contains the interrupt number for the port, don't add the
port index to it.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Fixes: d684a90d38e2 ("ahci: per-port msix support")
Cc: stable@vger.kernel.org v4.5+
</content>
</entry>
<entry>
<title>ahci: also use a per-port lock for the multi-MSIX case</title>
<updated>2016-08-11T16:37:31Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2016-08-11T14:26:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cd27396e6103a43c3df76f70db1feafa16206471'/>
<id>urn:sha1:cd27396e6103a43c3df76f70db1feafa16206471</id>
<content type='text'>
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
</content>
</entry>
<entry>
<title>AHCI: Clear GHC.IS to prevent unexpectly asserting INTx</title>
<updated>2016-07-20T15:10:10Z</updated>
<author>
<name>Pang Raymond</name>
</author>
<published>2016-07-20T12:13:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0516900adfa1955f91f1c310f9a2fa857949de1c'/>
<id>urn:sha1:0516900adfa1955f91f1c310f9a2fa857949de1c</id>
<content type='text'>
Due to PCI subsystem behaviour, unloading AHCI driver will disable
MSI and enable INTx. When HBA supports MSIx or Multiple MSI, Driver's
irq handler doesn't clear GHC.IS register. It works well when reading or
writing data and GHC.IS is always non-zero. But when unloading driver
(or any other operation which causes disable MSIx and enable INTx), PCI
 subsystem uses config write(Rx04.bit10) to enable INTx. Because
GHC.IS is non-zero, HBA will falsely assume some port needs interrupt
service. Then it asserts INTx. To make things worse, when AHCI controller
shares the same interrupt pin with other PCI device, that PCI device's ISR
will be called and nobody de-asserts previous INTx.
This patch clears GHC.IS in ahci_port_stop() even when using MSIx or
MMSI to prevent this case. It ensures GHC.IS is zero before PCI subsystem
enables INTx.

tj: Minor updates to the comment.

Signed-off-by: Raymond Pang &lt;raymond_rule@hotmail.com&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
</content>
</entry>
<entry>
<title>libata: use ata_is_ncq() accessors</title>
<updated>2016-07-14T14:44:57Z</updated>
<author>
<name>Hannes Reinecke</name>
</author>
<published>2016-07-14T00:05:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=179b310ae77ea4f924fe338af5c8983c3f339098'/>
<id>urn:sha1:179b310ae77ea4f924fe338af5c8983c3f339098</id>
<content type='text'>
Use accessor functions instead of the raw value.

Signed-off-by: Hannes Reinecke &lt;hare@suse.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
</content>
</entry>
</feed>
