public inbox for linux-arm-msm@vger.kernel.org
 help / color / mirror / Atom feed
From: Sinan Kaya <okaya@codeaurora.org>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	linux-pci@vger.kernel.org, timur@codeaurora.org
Cc: linux-arm-msm@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	"David S. Miller" <davem@davemloft.net>,
	Kees Cook <keescook@chromium.org>,
	Eric Dumazet <edumazet@google.com>,
	Tobias Klauser <tklauser@distanz.ch>,
	"open list:NETWORKING DRIVERS" <netdev@vger.kernel.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH V4 14/26] pch_gbe: deprecate pci_get_bus_and_slot()
Date: Tue, 19 Dec 2017 07:17:41 -0500	[thread overview]
Message-ID: <ef7d09ce-06af-ad3e-1048-3b413cc32e9b@codeaurora.org> (raw)
In-Reply-To: <1513680330.7000.167.camel@linux.intel.com>

On 12/19/2017 5:45 AM, Andy Shevchenko wrote:
> On Tue, 2017-12-19 at 00:37 -0500, Sinan Kaya wrote:
>> pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as
>> where a PCI device is present. This restricts the device drivers to be
>> reused for other domain numbers.
>>
>> Getting ready to remove pci_get_bus_and_slot() function in favor of
>> pci_get_domain_bus_and_slot().
>>
> 
> Where this idea come from?

There are systems out (mostly ARM) there with non-zero segment numbers. The
pci_get_bus_and_slot() API is restrictive and unnecessarily forces 0 segment
numbers for some generic device drivers. Obtaining the segment number is as
easy as calling pci_domain_nr().

The problems with pci_get_bus_and_slot() are:

1. we don't know if the device driver intentionally called pci_get_bus_and_slot()
to limit 0 segment number.
2. we don't know if the driver developer just copied an example from another
system and it just happened to work on x86 architecture while broken on other
architectures.

Some device drivers may want to limit the segment number. Than specifying 0
while calling pci_get_domain_bus_and_slot() is a better way to express this.

pci_get_bus_and_slot() is unnecessarily restricting some device drivers. Nvidia
as an example. I remember that somebody came up with a very ugly patch to force
segment 0 into Microsoft hypervisor layer. 

This was rejected out right and told to fix the Nvidia driver instead. This patch
essentially fixes some of these flaws while removing the limiting API from the
kernel altogether so that same mistakes are not made.

> 
> pci_get_bus_and_slot() still might be useful for the wired devices in
> SoC where we know for sure that domain == 0.
> 

Then hard code the domain number as 0 while calling pci_get_domain_bus_and_slot()
if you know for sure that this device will never work on a non-zero domain.

-- 
Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.

  reply	other threads:[~2017-12-19 12:17 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-19  5:37 [PATCH V4 00/26] PCI: deprecate pci_get_bus_and_slot() Sinan Kaya
2017-12-19  5:37 ` [PATCH V4 01/26] alpha/PCI: " Sinan Kaya
2018-01-03 12:43   ` Sinan Kaya
2017-12-19  5:37 ` [PATCH V4 02/26] powerpc/PCI: " Sinan Kaya
2017-12-19 10:29   ` Michael Ellerman
2017-12-19 12:24     ` Sinan Kaya
2017-12-19  5:37 ` [PATCH V4 03/26] x86/PCI: " Sinan Kaya
2017-12-19  5:37 ` [PATCH V4 04/26] ata: " Sinan Kaya
2017-12-19  5:37 ` [PATCH V4 05/26] agp: nvidia: " Sinan Kaya
2018-01-03 12:44   ` Sinan Kaya
2018-01-29 21:43     ` Dave Airlie
2018-01-29 22:01       ` Sinan Kaya
2018-01-29 22:38       ` Bjorn Helgaas
2018-01-29 22:43         ` Dave Airlie
2017-12-19  5:37 ` [PATCH V4 06/26] edd: " Sinan Kaya
2018-01-03 12:48   ` Sinan Kaya
2017-12-19  5:37 ` [PATCH V4 07/26] ibft: " Sinan Kaya
2017-12-19  5:37 ` [PATCH V4 08/26] drm/gma500: " Sinan Kaya
2018-01-04 12:27   ` Sinan Kaya
     [not found] ` <1513661883-28662-1-git-send-email-okaya-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-12-19  5:37   ` [PATCH V4 09/26] drm/nouveau: " Sinan Kaya
2018-01-04 12:26     ` Sinan Kaya
2017-12-19  5:37   ` [PATCH V4 11/26] iommu/amd: " Sinan Kaya
2018-01-04 12:25     ` Sinan Kaya
     [not found]       ` <8a5dad82-2886-2a51-28bc-b84ab253c361-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-01-04 16:28         ` Gary R Hook
2018-01-04 16:32           ` Sinan Kaya
2018-01-04 17:25             ` Gary R Hook
2018-01-17 13:02     ` Joerg Roedel
2017-12-19  5:37 ` [PATCH V4 10/26] Drivers: ide: " Sinan Kaya
2017-12-19 14:13   ` David Miller
2017-12-19  5:37 ` [PATCH V4 12/26] powerpc/powermac: " Sinan Kaya
2017-12-19  5:37 ` [PATCH V4 13/26] bnx2x: " Sinan Kaya
2017-12-19 14:14   ` David Miller
2017-12-19  5:37 ` [PATCH V4 14/26] pch_gbe: " Sinan Kaya
2017-12-19 10:45   ` Andy Shevchenko
2017-12-19 12:17     ` Sinan Kaya [this message]
2017-12-19 13:24       ` Andy Shevchenko
2017-12-19 14:53       ` David Miller
2017-12-19 14:13   ` David Miller
2017-12-19  5:37 ` [PATCH V4 15/26] PCI: cpqhp: " Sinan Kaya
2017-12-19  5:37 ` [PATCH V4 16/26] PCI: ibmphp: " Sinan Kaya
2017-12-19  5:37 ` [PATCH V4 17/26] PCI/quirks: " Sinan Kaya
2017-12-19  5:37 ` [PATCH V4 18/26] PCI/syscall: " Sinan Kaya
2017-12-19  5:37 ` [PATCH V4 19/26] xen: " Sinan Kaya
2017-12-19  5:37 ` [PATCH V4 20/26] openprom: " Sinan Kaya
2017-12-19 14:13   ` David Miller
2017-12-19  5:37 ` [PATCH V4 21/26] backlight: " Sinan Kaya
2017-12-19  8:51   ` Lee Jones
2017-12-19  5:37 ` [PATCH V4 22/26] video: fbdev: intelfb: " Sinan Kaya
2018-01-02 13:38   ` Sinan Kaya
2018-01-03 11:18     ` Bartlomiej Zolnierkiewicz
2017-12-19  5:37 ` [PATCH V4 23/26] video: fbdev: nvidia: " Sinan Kaya
2018-01-02 13:38   ` Sinan Kaya
2018-01-03 11:18     ` Bartlomiej Zolnierkiewicz
2017-12-19  5:38 ` [PATCH V4 24/26] video: fbdev: riva: " Sinan Kaya
2018-01-02 13:37   ` Sinan Kaya
2018-01-03 11:18     ` Bartlomiej Zolnierkiewicz
2017-12-19  5:38 ` [PATCH V4 25/26] i7300_idle: remove unused file Sinan Kaya
2018-01-02 13:36   ` Sinan Kaya
2018-01-02 13:44     ` Greg Kroah-Hartman
2017-12-19  5:38 ` [PATCH V4 26/26] PCI: Remove pci_get_bus_and_slot() function Sinan Kaya
2018-02-16 14:55   ` Bjorn Helgaas
2018-01-11 23:57 ` [PATCH V4 00/26] PCI: deprecate pci_get_bus_and_slot() Bjorn Helgaas

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=ef7d09ce-06af-ad3e-1048-3b413cc32e9b@codeaurora.org \
    --to=okaya@codeaurora.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=keescook@chromium.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=timur@codeaurora.org \
    --cc=tklauser@distanz.ch \
    /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