From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
To: davem@davemloft.net
Cc: Jacob Keller <jacob.e.keller@intel.com>,
netdev@vger.kernel.org, nhorman@redhat.com, sassmann@redhat.com,
Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Subject: [net-next 03/14] ixgbe: fix use of list_for_each in ixgbe_enumerate_functions
Date: Thu, 24 Jul 2014 06:13:13 -0700 [thread overview]
Message-ID: <1406207604-31653-4-git-send-email-jeffrey.t.kirsher@intel.com> (raw)
In-Reply-To: <1406207604-31653-1-git-send-email-jeffrey.t.kirsher@intel.com>
From: Jacob Keller <jacob.e.keller@intel.com>
Fix a bug in the misuse of the list_for_each macro to loop over every
entry in the bus_list. Instead of attempting to loop over the list from
a random entry point, go up to the bus and use the real list_head entry
point. This prevents the possible read or write of unallocated or
incorrectly addressed memory.
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 9aa9d0b..4268a89 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -7973,23 +7973,20 @@ static const struct net_device_ops ixgbe_netdev_ops = {
**/
static inline int ixgbe_enumerate_functions(struct ixgbe_adapter *adapter)
{
- struct list_head *entry;
+ struct pci_dev *entry;
int physfns = 0;
/* Some cards can not use the generic count PCIe functions method,
* because they are behind a parent switch, so we hardcode these with
* the correct number of functions.
*/
- if (ixgbe_pcie_from_parent(&adapter->hw)) {
+ if (ixgbe_pcie_from_parent(&adapter->hw))
physfns = 4;
- } else {
- list_for_each(entry, &adapter->pdev->bus_list) {
- struct pci_dev *pdev =
- list_entry(entry, struct pci_dev, bus_list);
- /* don't count virtual functions */
- if (!pdev->is_virtfn)
- physfns++;
- }
+
+ list_for_each_entry(entry, &adapter->pdev->bus->devices, bus_list) {
+ /* don't count virtual functions */
+ if (!entry->is_virtfn)
+ physfns++;
}
return physfns;
--
1.9.3
next prev parent reply other threads:[~2014-07-24 13:14 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-24 13:13 [net-next 00/14][pull request] Intel Wired LAN Driver Updates 2014-07-24 Jeff Kirsher
2014-07-24 13:13 ` [net-next 01/14] ixgbe: Fix possible null-dereference in error path Jeff Kirsher
2014-07-24 13:13 ` [net-next 02/14] ixgbe: Change some uses of strncpy to strlcpy Jeff Kirsher
2014-07-24 13:13 ` Jeff Kirsher [this message]
2014-07-24 16:48 ` [net-next 03/14] ixgbe: fix use of list_for_each in ixgbe_enumerate_functions Keller, Jacob E
2014-07-24 13:13 ` [net-next 04/14] ixgbe: don't check minimum link when direct assigned to virtual machine Jeff Kirsher
2014-07-24 13:13 ` [net-next 05/14] igb: Add message when malformed packets detected by hw Jeff Kirsher
2014-07-24 13:13 ` [net-next 06/14] igb: bump igb version to 5.2.13 Jeff Kirsher
2014-07-24 13:13 ` [net-next 07/14] i40e: fix format mismatch in drivers/net/ethernet/intel/i40e/i40e_debugfs.c Jeff Kirsher
2014-07-24 13:13 ` [net-next 08/14] i40e/i40evf: Add nvmupdate support Jeff Kirsher
2014-07-24 13:13 ` [net-next 09/14] i40e/i40evf: fix extension header csum logic Jeff Kirsher
2014-07-24 13:13 ` [net-next 10/14] i40evf: don't wait so long Jeff Kirsher
2014-07-24 13:13 ` [net-next 11/14] i40e/i40evf: ARQ copy desc data even for failed commands Jeff Kirsher
2014-07-24 13:13 ` [net-next 12/14] i40e: Fix firmware API version errors Jeff Kirsher
2014-07-24 13:13 ` [net-next 13/14] i40e: Give link more time after setting flow control Jeff Kirsher
2014-07-24 13:13 ` [net-next 14/14] i40e: always print aqtx answer Jeff Kirsher
2014-07-24 18:42 ` Joe Perches
2014-07-24 19:20 ` Nelson, Shannon
2014-07-24 19:56 ` Joe Perches
2014-07-24 20:13 ` Nelson, Shannon
2014-07-25 6:08 ` [net-next 00/14][pull request] Intel Wired LAN Driver Updates 2014-07-24 David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1406207604-31653-4-git-send-email-jeffrey.t.kirsher@intel.com \
--to=jeffrey.t.kirsher@intel.com \
--cc=davem@davemloft.net \
--cc=jacob.e.keller@intel.com \
--cc=netdev@vger.kernel.org \
--cc=nhorman@redhat.com \
--cc=sassmann@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox