From 891f692533c36a17f00d25d24e4ac44ef38c9e5c Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Thu, 14 Jul 2011 17:53:54 +0000 Subject: [PATCH 01/16] Docs: MSI-HOWTO: Use the subjunctive, and change `can' to `may' Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index 3f5e0b09bed5..43ffff1b5618 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -45,7 +45,7 @@ arrived in memory (this becomes more likely with devices behind PCI-PCI bridges). In order to ensure that all the data has arrived in memory, the interrupt handler must read a register on the device which raised the interrupt. PCI transaction ordering rules require that all the data -arrives in memory before the value can be returned from the register. +arrive in memory before the value may be returned from the register. Using MSIs avoids this problem as the interrupt-generating write cannot pass the data writes, so by the time the interrupt is raised, the driver knows that all the data has arrived in memory. From 4979de6efb5553505a595eadc1cf7c386ca1ddc6 Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Thu, 14 Jul 2011 19:52:56 +0000 Subject: [PATCH 02/16] Docs: MSI-HOWTO: Use present tense and streamline some wording Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 44 ++++++++++++++++----------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index 43ffff1b5618..13f3a9930ad5 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -86,13 +86,13 @@ device. int pci_enable_msi(struct pci_dev *dev) -A successful call will allocate ONE interrupt to the device, regardless -of how many MSIs the device supports. The device will be switched from +A successful call allocates ONE interrupt to the device, regardless +of how many MSIs the device supports. The device is switched from pin-based interrupt mode to MSI mode. The dev->irq number is changed -to a new number which represents the message signaled interrupt. -This function should be called before the driver calls request_irq() -since enabling MSIs disables the pin-based IRQ and the driver will not -receive interrupts on the old interrupt. +to a new number which represents the message signaled interrupt; +consequently, this function should be called before the driver calls +request_irq(), because an MSI is delivered via a vector that is +different from the vector of a pin-based interrupt. 4.2.2 pci_enable_msi_block @@ -111,10 +111,10 @@ the device are in the range dev->irq to dev->irq + count - 1. If this function returns a negative number, it indicates an error and the driver should not attempt to request any more MSI interrupts for -this device. If this function returns a positive number, it will be -less than 'count' and indicate the number of interrupts that could have -been allocated. In neither case will the irq value have been -updated, nor will the device have been switched into MSI mode. +this device. If this function returns a positive number, it is +less than 'count' and indicates the number of interrupts that could have +been allocated. In neither case is the irq value updated or the device +switched into MSI mode. The device driver must decide what action to take if pci_enable_msi_block() returns a value less than the number asked for. @@ -124,7 +124,7 @@ again. Note that it is not guaranteed to succeed, even when the 'count' has been reduced to the value returned from a previous call to pci_enable_msi_block(). This is because there are multiple constraints on the number of vectors that can be allocated; pci_enable_msi_block() -will return as soon as it finds any constraint that doesn't allow the +returns as soon as it finds any constraint that doesn't allow the call to succeed. 4.2.3 pci_disable_msi @@ -139,8 +139,8 @@ device, so drivers should not cache the value of dev->irq. A device driver must always call free_irq() on the interrupt(s) for which it has called request_irq() before calling this function. -Failure to do so will result in a BUG_ON(), the device will be left with -MSI enabled and will leak its vector. +Failure to do so results in a BUG_ON(), leaving the device with +MSI enabled and thus leaking its vector. 4.3 Using MSI-X @@ -168,10 +168,10 @@ int pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries, int nvec) Calling this function asks the PCI subsystem to allocate 'nvec' MSIs. The 'entries' argument is a pointer to an array of msix_entry structs which should be at least 'nvec' entries in size. On success, the -function will return 0 and the device will have been switched into -MSI-X interrupt mode. The 'vector' elements in each entry will have -been filled in with the interrupt number. The driver should then call -request_irq() for each 'vector' that it decides to use. +device is switched into MSI-X mode and the function returns 0. +The 'vector' member in each entry is populated with the interrupt number; +the driver should then call request_irq() for each 'vector' that it +decides to use. If this function returns a negative number, it indicates an error and the driver should not attempt to allocate any more MSI-X interrupts for @@ -219,8 +219,8 @@ the value of the 'vector' elements over a call to pci_disable_msix(). A device driver must always call free_irq() on the interrupt(s) for which it has called request_irq() before calling this function. -Failure to do so will result in a BUG_ON(), the device will be left with -MSI enabled and will leak its vector. +Failure to do so results in a BUG_ON(), leaving the device with +MSI-X enabled and thus leaking its vector. 4.3.3 The MSI-X Table @@ -235,7 +235,7 @@ If a device implements both MSI and MSI-X capabilities, it can run in either MSI mode or MSI-X mode but not both simultaneously. This is a requirement of the PCI spec, and it is enforced by the PCI layer. Calling pci_enable_msi() when MSI-X is already enabled or -pci_enable_msix() when MSI is already enabled will result in an error. +pci_enable_msix() when MSI is already enabled results in an error. If a device driver wishes to switch between MSI and MSI-X at runtime, it must first quiesce the device, then switch it back to pin-interrupt mode, before calling pci_enable_msi() or pci_enable_msix() and resuming @@ -281,7 +281,7 @@ disabled to enabled and back again. Using 'lspci -v' (as root) may show some devices with "MSI", "Message Signalled Interrupts" or "MSI-X" capabilities. Each of these capabilities -has an 'Enable' flag which will be followed with either "+" (enabled) +has an 'Enable' flag which is followed with either "+" (enabled) or "-" (disabled). @@ -298,7 +298,7 @@ The PCI stack provides three ways to disable MSIs: Some host chipsets simply don't support MSIs properly. If we're lucky, the manufacturer knows this and has indicated it in the ACPI -FADT table. In this case, Linux will automatically disable MSIs. +FADT table. In this case, Linux automatically disables MSIs. Some boards don't include this information in the table and so we have to detect them ourselves. The complete list of these is found near the quirk_disable_all_msi() function in drivers/pci/quirks.c. From a2d4d50128279c67d4cf38061206cddc1fc37e75 Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Thu, 14 Jul 2011 20:03:28 +0000 Subject: [PATCH 03/16] Docs: MSI-HOWTO: `asked for' -> `requested' Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index 13f3a9930ad5..867ed0351106 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -117,7 +117,7 @@ been allocated. In neither case is the irq value updated or the device switched into MSI mode. The device driver must decide what action to take if -pci_enable_msi_block() returns a value less than the number asked for. +pci_enable_msi_block() returns a value less than the number requested. Some devices can make use of fewer interrupts than the maximum they request; in this case the driver should call pci_enable_msi_block() again. Note that it is not guaranteed to succeed, even when the From 1d15afcc73004028f2870ede7a56d590e1ca8ca8 Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Thu, 14 Jul 2011 20:05:01 +0000 Subject: [PATCH 04/16] Docs: MSI-HOWTO: Streamline some wording Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index 867ed0351106..faf37f9d29dc 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -118,8 +118,8 @@ switched into MSI mode. The device driver must decide what action to take if pci_enable_msi_block() returns a value less than the number requested. -Some devices can make use of fewer interrupts than the maximum they -request; in this case the driver should call pci_enable_msi_block() +For instance, the driver could still make use of fewer interrupts; +in this case the driver should call pci_enable_msi_block() again. Note that it is not guaranteed to succeed, even when the 'count' has been reduced to the value returned from a previous call to pci_enable_msi_block(). This is because there are multiple constraints From 263d8d57b3b2e2fbb4e79b7cda7ef3399add4fb7 Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Thu, 14 Jul 2011 21:28:00 +0000 Subject: [PATCH 05/16] Docs: MSI-HOWTO: Put the `because' subordinate clause first Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index faf37f9d29dc..1d7047a34862 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -137,8 +137,8 @@ interrupt number and frees the previously allocated message signaled interrupt(s). The interrupt may subsequently be assigned to another device, so drivers should not cache the value of dev->irq. -A device driver must always call free_irq() on the interrupt(s) -for which it has called request_irq() before calling this function. +Before calling this function, a device driver must always call free_irq() +on any interrupt for which it previously called request_irq(). Failure to do so results in a BUG_ON(), leaving the device with MSI enabled and thus leaking its vector. @@ -217,8 +217,8 @@ the previously allocated message signaled interrupts. The interrupts may subsequently be assigned to another device, so drivers should not cache the value of the 'vector' elements over a call to pci_disable_msix(). -A device driver must always call free_irq() on the interrupt(s) -for which it has called request_irq() before calling this function. +Before calling this function, a device driver must always call free_irq() +on any interrupt for which it previously called request_irq(). Failure to do so results in a BUG_ON(), leaving the device with MSI-X enabled and thus leaking its vector. From e4439236ef5ac8e51ce97d03df8ef3e6dc5c6d51 Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Thu, 14 Jul 2011 21:30:18 +0000 Subject: [PATCH 06/16] Docs: MSI-HOWTO: Offset modifier with a comma, and insert `yet' for emphasis Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index 1d7047a34862..515396a3d7e3 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -155,10 +155,10 @@ struct msix_entry { }; This allows for the device to use these interrupts in a sparse fashion; -for example it could use interrupts 3 and 1027 and allocate only a +for example, it could use interrupts 3 and 1027 and yet allocate only a two-element array. The driver is expected to fill in the 'entry' value -in each element of the array to indicate which entries it wants the kernel -to assign interrupts for. It is invalid to fill in two entries with the +in each element of the array to indicate for which entries the kernel +should assign interrupts; it is invalid to fill in two entries with the same number. 4.3.1 pci_enable_msix From ed737c1882c652f0b5a888df59895b5dc2d10cd7 Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Mon, 18 Jul 2011 16:15:00 +0000 Subject: [PATCH 07/16] Docs: MSI-HOWTO: Insert `that' ... as per Randy Dunlap's wishes :-P Message-Id: <20110717114023.2b4cce91.rdunlap@xenotime.net> Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index 515396a3d7e3..c504f12bcc61 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -190,7 +190,7 @@ during the initialization phase. It is ideal if drivers can cope with a variable number of MSI-X interrupts, there are many reasons why the platform may not be able to provide the -exact number a driver asks for. +exact number that a driver asks for. A request loop to achieve that might look like: From 6457d9b350b3f4f2098984eee016c6c994b9c096 Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Thu, 14 Jul 2011 21:54:18 +0000 Subject: [PATCH 08/16] Docs: MSI-HOWTO: Move a sentence to another paragraph Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index c504f12bcc61..28d1ceeea655 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -171,7 +171,8 @@ which should be at least 'nvec' entries in size. On success, the device is switched into MSI-X mode and the function returns 0. The 'vector' member in each entry is populated with the interrupt number; the driver should then call request_irq() for each 'vector' that it -decides to use. +decides to use. The device driver is responsible for keeping track of the +interrupts assigned to the MSI-X vectors so it can free them again later. If this function returns a negative number, it indicates an error and the driver should not attempt to allocate any more MSI-X interrupts for @@ -181,9 +182,7 @@ below. This function, in contrast with pci_enable_msi(), does not adjust dev->irq. The device will not generate interrupts for this interrupt -number once MSI-X is enabled. The device driver is responsible for -keeping track of the interrupts assigned to the MSI-X vectors so it can -free them again later. +number once MSI-X is enabled. Device drivers should normally call this function once per device during the initialization phase. From 5a84fc3162e06632ebea42cefe3b964299213d33 Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Thu, 14 Jul 2011 21:55:05 +0000 Subject: [PATCH 09/16] Docs: MSI-HOWTO: , -> ; Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index 28d1ceeea655..f533bc2f283c 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -187,7 +187,7 @@ number once MSI-X is enabled. Device drivers should normally call this function once per device during the initialization phase. -It is ideal if drivers can cope with a variable number of MSI-X interrupts, +It is ideal if drivers can cope with a variable number of MSI-X interrupts; there are many reasons why the platform may not be able to provide the exact number that a driver asks for. From e6ffceb0ded9beeaddd9c246b3fec298c6b1f0c9 Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Thu, 14 Jul 2011 23:30:47 +0000 Subject: [PATCH 10/16] Docs: MSI-HOWTO: API -> function Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index f533bc2f283c..d9c8d989f2b3 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -211,7 +211,7 @@ static int foo_driver_enable_msix(struct foo_adapter *adapter, int nvec) void pci_disable_msix(struct pci_dev *dev) -This API should be used to undo the effect of pci_enable_msix(). It frees +This function should be used to undo the effect of pci_enable_msix(). It frees the previously allocated message signaled interrupts. The interrupts may subsequently be assigned to another device, so drivers should not cache the value of the 'vector' elements over a call to pci_disable_msix(). From e14bd7e614b57493e1cbefb8a06d3754bdd04e26 Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Fri, 15 Jul 2011 03:12:13 +0000 Subject: [PATCH 11/16] Docs: MSI-HOWTO: Insert a comma Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index d9c8d989f2b3..c9cffaf16f82 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -231,7 +231,7 @@ mask or unmask an interrupt, it should call disable_irq() / enable_irq(). 4.4 Handling devices implementing both MSI and MSI-X capabilities If a device implements both MSI and MSI-X capabilities, it can -run in either MSI mode or MSI-X mode but not both simultaneously. +run in either MSI mode or MSI-X mode, but not both simultaneously. This is a requirement of the PCI spec, and it is enforced by the PCI layer. Calling pci_enable_msi() when MSI-X is already enabled or pci_enable_msix() when MSI is already enabled results in an error. From 952df55b5a30913f4a5536b12ad09dd95c66d83f Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Fri, 15 Jul 2011 03:15:10 +0000 Subject: [PATCH 12/16] Docs: MSI-HOWTO: may -> might Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index c9cffaf16f82..257628fdd464 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -250,7 +250,7 @@ the MSI-X facilities in preference to the MSI facilities. As mentioned above, MSI-X supports any number of interrupts between 1 and 2048. In constrast, MSI is restricted to a maximum of 32 interrupts (and must be a power of two). In addition, the MSI interrupt vectors must -be allocated consecutively, so the system may not be able to allocate +be allocated consecutively, so the system might not be able to allocate as many vectors for MSI as it could for MSI-X. On some platforms, MSI interrupts must all be targeted at the same set of CPUs whereas MSI-X interrupts can all be targeted at different CPUs. From e6b85a1f8a56d3c9db0273b7e4aaab802dc07a9b Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Fri, 15 Jul 2011 03:25:44 +0000 Subject: [PATCH 13/16] Docs: MSI-HOWTO: Use `unknown ...' rather than `... know about.' Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index 257628fdd464..2322a570beb5 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -316,7 +316,7 @@ Some bridges allow you to enable MSIs by changing some bits in their PCI configuration space (especially the Hypertransport chipsets such as the nVidia nForce and Serverworks HT2000). As with host chipsets, Linux mostly knows about them and automatically enables MSIs if it can. -If you have a bridge which Linux doesn't yet know about, you can enable +If you have a bridge unknown to Linux, you can enable MSIs in configuration space using whatever method you know works, then enable MSIs on that bridge by doing: From 1b8386f61241471c722fbdff48e3d1d97bfca8e6 Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Fri, 15 Jul 2011 03:26:37 +0000 Subject: [PATCH 14/16] Docs: MSI-HOWTO: can -> could Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index 2322a570beb5..3b4727825287 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -326,7 +326,7 @@ where $bridge is the PCI address of the bridge you've enabled (eg 0000:00:0e.0). To disable MSIs, echo 0 instead of 1. Changing this value should be -done with caution as it can break interrupt handling for all devices +done with caution as it could break interrupt handling for all devices below this bridge. Again, please notify linux-pci@vger.kernel.org of any bridges that need From c2b65e181acb9a981c890489c0f9a04d8e1b91f9 Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Fri, 15 Jul 2011 03:27:22 +0000 Subject: [PATCH 15/16] Docs: MSI-HOWTO: Insert a comma Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index 3b4727825287..67ed5d89524c 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -335,7 +335,7 @@ special handling. 5.3. Disabling MSIs on a single device Some devices are known to have faulty MSI implementations. Usually this -is handled in the individual device driver but occasionally it's necessary +is handled in the individual device driver, but occasionally it's necessary to handle this with a quirk. Some drivers have an option to disable use of MSI. While this is a convenient workaround for the driver author, it is not good practise, and should not be emulated. From 798c794df81e0a1af62c1d7e48b464f4096f3b9a Mon Sep 17 00:00:00 2001 From: Michael Witten Date: Fri, 15 Jul 2011 03:29:04 +0000 Subject: [PATCH 16/16] Docs: MSI-HOWTO: MSI -> MSIs Signed-off-by: Michael Witten Acked-by: Matthew Wilcox Signed-off-by: Randy Dunlap --- Documentation/PCI/MSI-HOWTO.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index 67ed5d89524c..53e6fca146d7 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt @@ -349,7 +349,7 @@ for your machine. You should also check your .config to be sure you have enabled CONFIG_PCI_MSI. Then, 'lspci -t' gives the list of bridges above a device. Reading -/sys/bus/pci/devices/*/msi_bus will tell you whether MSI are enabled (1) +/sys/bus/pci/devices/*/msi_bus will tell you whether MSIs are enabled (1) or disabled (0). If 0 is found in any of the msi_bus files belonging to bridges between the PCI root and the device, MSIs are disabled.