aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/msi.h13
1 files changed, 6 insertions, 7 deletions
diff --git a/include/linux/msi.h b/include/linux/msi.h
index 1a00367d2cfa..fc918a658d48 100644
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -17,6 +17,7 @@
*/
#include <linux/cpumask.h>
+#include <linux/xarray.h>
#include <linux/mutex.h>
#include <linux/list.h>
#include <asm/msi.h>
@@ -123,7 +124,6 @@ struct pci_msi_desc {
/**
* struct msi_desc - Descriptor structure for MSI based interrupts
- * @list: List head for management
* @irq: The base interrupt number
* @nvec_used: The number of vectors used
* @dev: Pointer to the device which uses this descriptor
@@ -140,7 +140,6 @@ struct pci_msi_desc {
*/
struct msi_desc {
/* Shared device/bus type independent data */
- struct list_head list;
unsigned int irq;
unsigned int nvec_used;
struct device *dev;
@@ -176,16 +175,16 @@ enum msi_desc_filter {
* msi_device_data - MSI per device data
* @properties: MSI properties which are interesting to drivers
* @platform_data: Platform-MSI specific data
- * @list: List of MSI descriptors associated to the device
- * @mutex: Mutex protecting the MSI list
- * @__next: Cached pointer to the next entry for iterators
+ * @mutex: Mutex protecting the MSI descriptor store
+ * @__store: Xarray for storing MSI descriptor pointers
+ * @__iter_idx: Index to search the next entry for iterators
*/
struct msi_device_data {
unsigned long properties;
struct platform_msi_priv_data *platform_data;
- struct list_head list;
struct mutex mutex;
- struct msi_desc *__next;
+ struct xarray __store;
+ unsigned long __iter_idx;
};
int msi_setup_device_data(struct device *dev);