<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/pci/msi.c, branch linux-3.14.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.14.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.14.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-12-06T23:55:34Z</updated>
<entry>
<title>PCI/MSI: Add device flag indicating that 64-bit MSIs don't work</title>
<updated>2014-12-06T23:55:34Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
</author>
<published>2014-10-03T05:13:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2c120e85dea7358d2255cf68b2fd2b666077c768'/>
<id>urn:sha1:2c120e85dea7358d2255cf68b2fd2b666077c768</id>
<content type='text'>
commit f144d1496b47e7450f41b767d0d91c724c2198bc upstream.

This can be set by quirks/drivers to be used by the architecture code
that assigns the MSI addresses.

We additionally add verification in the core MSI code that the values
assigned by the architecture do satisfy the limitation in order to fail
gracefully if they don't (ie. the arch hasn't been updated to deal with
that quirk yet).

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Acked-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>PCI/MSI: Fix memory leak in free_msi_irqs()</title>
<updated>2014-06-16T20:40:33Z</updated>
<author>
<name>Alexei Starovoitov</name>
</author>
<published>2014-06-04T22:49:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=27f6dca8935ccbd73b6021098e83fc54a6248832'/>
<id>urn:sha1:27f6dca8935ccbd73b6021098e83fc54a6248832</id>
<content type='text'>
commit b701c0b1fe819a2083fc6ec5332e0e4492b9516d upstream.

free_msi_irqs() is leaking memory, since list_for_each_entry(entry,
&amp;dev-&gt;msi_list, list) {...} is never executed, because dev-&gt;msi_list is
made empty by the loop just above this one.

Fix it by relying on zero termination of attribute array like
populate_msi_sysfs() does.

Fixes: 1c51b50c2995 ("PCI/MSI: Export MSI mode using attributes, not kobjects")
Signed-off-by: Alexei Starovoitov &lt;ast@plumgrid.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Acked-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>PCI/MSI: Fix pci_msix_vec_count() htmldocs failure</title>
<updated>2014-02-13T17:47:44Z</updated>
<author>
<name>Masanari Iida</name>
</author>
<published>2014-02-13T17:47:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=75ce2d53cef8ea964634583ba45d6323ba5be243'/>
<id>urn:sha1:75ce2d53cef8ea964634583ba45d6323ba5be243</id>
<content type='text'>
An empty line in msi.c caused "make htmldocs" failure:

  Warning(/home/iida/Repo/linux-next//drivers/pci/msi.c:962): bad line:

Fixes: ff1aa430a2fa ("PCI/MSI: Add pci_msix_vec_count()")
Signed-off-by: Masanari Iida &lt;standby24x7@gmail.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
</content>
</entry>
<entry>
<title>PCI/MSI: Fix leak of msi_attrs</title>
<updated>2014-02-13T17:47:35Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
</author>
<published>2014-02-13T17:47:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=29237756477d5e777e39257d94af449fc66026c2'/>
<id>urn:sha1:29237756477d5e777e39257d94af449fc66026c2</id>
<content type='text'>
Coverity reported that I forgot to clean up some allocated memory on the
error path in populate_msi_sysfs(), so this patch fixes that.

Thanks to Dave Jones for pointing out where the error was, I obviously
can't read code this morning...

Found by Coverity (CID 1163317).

Fixes: 1c51b50c2995 ("PCI/MSI: Export MSI mode using attributes, not kobjects")
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Cc: Dave Jones &lt;davej@redhat.com&gt;
</content>
</entry>
<entry>
<title>PCI/MSI: Check kmalloc() return value, fix leak of name</title>
<updated>2014-02-13T17:47:20Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
</author>
<published>2014-02-13T17:47:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=86bb4f697a964ab5e50f1159e04c6a5d5acde2d4'/>
<id>urn:sha1:86bb4f697a964ab5e50f1159e04c6a5d5acde2d4</id>
<content type='text'>
Coverity reported that I forgot to check the return value of kmalloc() when
creating the MSI attribute name, so fix that up and properly free it if
there is an error when allocating the msi_dev_attr variable.

Found by Coverity (CID 1163315 and 1163316).

Fixes: 1c51b50c2995 ("PCI/MSI: Export MSI mode using attributes, not kobjects")
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'pci/msi' into next</title>
<updated>2014-01-08T00:34:39Z</updated>
<author>
<name>Bjorn Helgaas</name>
</author>
<published>2014-01-08T00:34:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=04f982beb900f37bc216d63c9dbc5bdddb4a3d3a'/>
<id>urn:sha1:04f982beb900f37bc216d63c9dbc5bdddb4a3d3a</id>
<content type='text'>
* pci/msi:
  PCI/MSI: Add pci_enable_msi_range() and pci_enable_msix_range()
  PCI/MSI: Add pci_msix_vec_count()
  PCI/MSI: Remove pci_enable_msi_block_auto()
  PCI/MSI: Add pci_msi_vec_count()
</content>
</entry>
<entry>
<title>PCI/MSI: Add pci_enable_msi_range() and pci_enable_msix_range()</title>
<updated>2014-01-04T00:17:55Z</updated>
<author>
<name>Alexander Gordeev</name>
</author>
<published>2013-12-30T07:28:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=302a2523c277bea0bbe8340312b09507905849ed'/>
<id>urn:sha1:302a2523c277bea0bbe8340312b09507905849ed</id>
<content type='text'>
This adds pci_enable_msi_range(), which supersedes the pci_enable_msi()
and pci_enable_msi_block() MSI interfaces.

It also adds pci_enable_msix_range(), which supersedes the
pci_enable_msix() MSI-X interface.

The old interfaces have three categories of return values:

    negative: failure; caller should not retry
    positive: failure; value indicates number of interrupts that *could*
	have been allocated, and caller may retry with a smaller request
    zero: success; at least as many interrupts allocated as requested

It is error-prone to handle these three cases correctly in drivers.

The new functions return either a negative error code or a number of
successfully allocated MSI/MSI-X interrupts, which is expected to lead to
clearer device driver code.

pci_enable_msi(), pci_enable_msi_block() and pci_enable_msix() still exist
unchanged, but are deprecated and may be removed after callers are updated.

[bhelgaas: tweak changelog]
Suggested-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: Alexander Gordeev &lt;agordeev@redhat.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Tejun Heo &lt;tj@kernel.org&gt;</content>
</entry>
<entry>
<title>PCI/MSI: Add pci_msix_vec_count()</title>
<updated>2014-01-04T00:17:55Z</updated>
<author>
<name>Alexander Gordeev</name>
</author>
<published>2013-12-30T07:28:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ff1aa430a2fa43189e89c7ddd559f0bee2298288'/>
<id>urn:sha1:ff1aa430a2fa43189e89c7ddd559f0bee2298288</id>
<content type='text'>
This creates an MSI-X counterpart for pci_msi_vec_count().  Device drivers
can use this function to obtain maximum number of MSI-X interrupts the
device supports and use that number in a subsequent call to
pci_enable_msix().

pci_msix_vec_count() supersedes pci_msix_table_size() and returns a
negative errno if device does not support MSI-X interrupts.  After this
update, callers must always check the returned value.

The only user of pci_msix_table_size() was the PCI-Express port driver,
which is also updated by this change.

Signed-off-by: Alexander Gordeev &lt;agordeev@redhat.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Tejun Heo &lt;tj@kernel.org&gt;</content>
</entry>
<entry>
<title>PCI/MSI: Remove pci_enable_msi_block_auto()</title>
<updated>2014-01-04T00:17:55Z</updated>
<author>
<name>Alexander Gordeev</name>
</author>
<published>2013-12-30T07:28:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7b92b4f61ec49cb1a5813298f35258bd7ecd3667'/>
<id>urn:sha1:7b92b4f61ec49cb1a5813298f35258bd7ecd3667</id>
<content type='text'>
The new pci_msi_vec_count() interface makes pci_enable_msi_block_auto()
superfluous.

Drivers can use pci_msi_vec_count() to learn the maximum number of MSIs
supported by the device, and then call pci_enable_msi_block().

pci_enable_msi_block_auto() was introduced recently, and its only user is
the AHCI driver, which is also updated by this change.

Signed-off-by: Alexander Gordeev &lt;agordeev@redhat.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Acked-by: Tejun Heo &lt;tj@kernel.org&gt;</content>
</entry>
<entry>
<title>PCI/MSI: Add pci_msi_vec_count()</title>
<updated>2014-01-04T00:17:55Z</updated>
<author>
<name>Alexander Gordeev</name>
</author>
<published>2013-12-30T07:28:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d1ac1d2622e8f0fd2a25127a8649d135b54db8a9'/>
<id>urn:sha1:d1ac1d2622e8f0fd2a25127a8649d135b54db8a9</id>
<content type='text'>
Device drivers can use this interface to obtain the maximum number of MSI
interrupts the device supports and use that number, e.g., in a subsequent
call to pci_enable_msi_block().

Signed-off-by: Alexander Gordeev &lt;agordeev@redhat.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Tejun Heo &lt;tj@kernel.org&gt;</content>
</entry>
</feed>
