All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <bhelgaas@google.com>
To: Yijing Wang <wangyijing@huawei.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Gavin Shan <shangw@linux.vnet.ibm.com>,
	"James E.J. Bottomley" <JBottomley@parallels.com>,
	"David S. Miller" <davem@davemloft.net>,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
	Hanjun Guo <guohanjun@huawei.com>,
	e1000-devel@lists.sourceforge.net, netdev@vger.kernel.org,
	Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
	Jacob Keller <jacob.e.keller@intel.com>
Subject: Re: [PATCH 5/7] ixgbe: use pcie_capability_read_word() to simplify code
Date: Wed, 4 Sep 2013 10:20:22 -0600	[thread overview]
Message-ID: <20130904162022.GE24733@google.com> (raw)
In-Reply-To: <1378193715-25328-5-git-send-email-wangyijing@huawei.com>

[+cc Jacob, Jeff]

On Tue, Sep 03, 2013 at 03:35:13PM +0800, Yijing Wang wrote:
> use pcie_capability_read_word() to simplify code.
> 
> Signed-off-by: Yijing Wang <wangyijing@huawei.com>
> Cc: e1000-devel@lists.sourceforge.net
> Cc: netdev@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |    6 ++----
>  1 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index bad8f14..bfa0b06 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -152,7 +152,6 @@ MODULE_VERSION(DRV_VERSION);
>  static int ixgbe_read_pci_cfg_word_parent(struct ixgbe_adapter *adapter,
>  					  u32 reg, u16 *value)
>  {
> -	int pos = 0;
>  	struct pci_dev *parent_dev;
>  	struct pci_bus *parent_bus;
>  
> @@ -164,11 +163,10 @@ static int ixgbe_read_pci_cfg_word_parent(struct ixgbe_adapter *adapter,
>  	if (!parent_dev)
>  		return -1;
>  
> -	pos = pci_find_capability(parent_dev, PCI_CAP_ID_EXP);
> -	if (!pos)
> +	if (!pci_is_pcie(parent_dev))
>  		return -1;
>  
> -	pci_read_config_word(parent_dev, pos + reg, value);
> +	pcie_capability_read_word(parent_dev, reg, value);
>  	return 0;
>  }
>  

Here's the caller of ixgbe_read_pci_cfg_word_parent():

    /* Get the negotiated link width and speed from PCI config space of the
     * parent, as this device is behind a switch
     */
    err = ixgbe_read_pci_cfg_word_parent(adapter, 18, &link_status);

This should be using PCI_EXP_LNKSTA instead of "18".

But it would be even better if we could drop ixgbe_get_parent_bus_info()
completely.  It seems redundant after merging Jacob's new
pcie_get_minimum_link() stuff [1].

ixgbe_disable_pcie_master() looks like it should be using
pcie_capability_read_word() with PCI_EXP_DEVSTA instead of using
IXGBE_PCI_DEVICE_STATUS.  If fact, it looks like it could use the
new pci_wait_for_pending_transaction() interface [2].

It looks like all the #defines in the "PCI Bus Info" block
(IXGBE_PCI_DEVICE_STATUS, IXGBE_PCI_DEVICE_STATUS_TRANSACTION_PENDING,
IXGBE_PCI_LINK_STATUS, etc.) [3] are really for PCIe-generic things.  If
so, the IXGBE-specific ones should be dropped in favor of the generic
ones.

[1] http://git.kernel.org/cgit/linux/kernel/git/davem/net-next.git/commit/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c?id=e027d1aec4bb49030646d2c186a721f94372d7f2
[2] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/pci/pci.c?id=3775a209d38aa3a0c7ed89a7d0f529e0230f280e
[3] http://git.kernel.org/cgit/linux/kernel/git/davem/net-next.git/tree/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h#n1833

  parent reply	other threads:[~2013-09-04 16:20 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-03  7:35 [PATCH 1/7] scsi/bfa: use pcie_capability_xxx to simplify code Yijing Wang
2013-09-03  7:35 ` Yijing Wang
2013-09-03  7:35 ` [PATCH 2/7] scsi/csiostor: " Yijing Wang
2013-09-03  7:35   ` Yijing Wang
2013-09-03 23:43   ` Bjorn Helgaas
2013-09-05  7:37     ` Yijing Wang
2013-09-05  7:37       ` Yijing Wang
2013-09-03  7:35 ` [PATCH 3/7] powerpc/pci: use pci_is_pcie() " Yijing Wang
2013-09-03  7:35   ` Yijing Wang
2013-09-04  3:16   ` Gavin Shan
2013-09-04 21:07   ` Kumar Gala
2013-09-04 21:07     ` Kumar Gala
2013-09-03  7:35 ` [PATCH 4/7] x86/pci: use pcie_cap " Yijing Wang
2013-09-04  2:59   ` Bjorn Helgaas
2013-09-05  6:34     ` Yijing Wang
2013-09-03  7:35 ` [PATCH 5/7] ixgbe: use pcie_capability_read_word() " Yijing Wang
2013-09-03  7:35   ` Yijing Wang
2013-09-04  9:26   ` [E1000-devel] " Jeff Kirsher
2013-09-04  9:26     ` Jeff Kirsher
2013-09-04 16:20   ` Bjorn Helgaas [this message]
2013-09-04 17:24     ` Keller, Jacob E
2013-09-04 17:24       ` Keller, Jacob E
2013-09-04 17:24       ` Keller, Jacob E
2013-09-03  7:35 ` [PATCH 6/7] PCI: use pci_is_pcie() " Yijing Wang
2013-09-03  7:35 ` [PATCH 7/7] scsi/qla2xxx: use pcie_is_pcie() " Yijing Wang
2013-09-03  7:35   ` Yijing Wang
2013-09-03 20:18   ` Chad Dupuis
2013-09-03 23:34 ` [PATCH 1/7] scsi/bfa: use pcie_capability_xxx " Bjorn Helgaas
2013-09-04  2:37   ` Bjorn Helgaas
2013-09-05  7:21   ` Yijing Wang
2013-09-05  7:21     ` Yijing Wang

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=20130904162022.GE24733@google.com \
    --to=bhelgaas@google.com \
    --cc=JBottomley@parallels.com \
    --cc=benh@kernel.crashing.org \
    --cc=davem@davemloft.net \
    --cc=e1000-devel@lists.sourceforge.net \
    --cc=guohanjun@huawei.com \
    --cc=jacob.e.keller@intel.com \
    --cc=jeffrey.t.kirsher@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=shangw@linux.vnet.ibm.com \
    --cc=wangyijing@huawei.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.