From: Mike Qiu <qiudayu@linux.vnet.ibm.com>
To: Mike Qiu <qiudayu@linux.vnet.ibm.com>
Cc: linux-pci@vger.kernel.org, benh@kernel.crashing.org, tglx@linutronix.de
Subject: Re: [PATCH] PowerNV/PCI: Fix NULL PCI controller
Date: Mon, 22 Apr 2013 14:15:50 +0800 [thread overview]
Message-ID: <5174D596.9070308@linux.vnet.ibm.com> (raw)
In-Reply-To: <1366611236-1811-1-git-send-email-qiudayu@linux.vnet.ibm.com>
2013/4/22 14:13, Mike Qiu wrote:
Resend this patch because it has been send to kernel mailling list before :)
> In pnv_pci_read_config() or pnv_pci_write_config(), we never check if
> the PCI controller is valid before converting that into platform
> dependent one, this is very dangerous.
>
> To avoid this potential risks, the patch check PCI controller first
> before use it.
>
> Signed-off-by: Mike Qiu <qiudayu@linux.vnet.ibm.com>
> ---
> arch/powerpc/platforms/powernv/pci.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c
> index b8b8e0b..e7b7f1a 100644
> --- a/arch/powerpc/platforms/powernv/pci.c
> +++ b/arch/powerpc/platforms/powernv/pci.c
> @@ -286,11 +286,11 @@ static int pnv_pci_read_config(struct pci_bus *bus,
> int where, int size, u32 *val)
> {
> struct pci_controller *hose = pci_bus_to_host(bus);
> - struct pnv_phb *phb = hose->private_data;
> + struct pnv_phb *phb = hose ? hose->private_data : NULL;
> u32 bdfn = (((uint64_t)bus->number) << 8) | devfn;
> s64 rc;
>
> - if (hose == NULL)
> + if (!phb)
> return PCIBIOS_DEVICE_NOT_FOUND;
>
> switch (size) {
> @@ -330,10 +330,10 @@ static int pnv_pci_write_config(struct pci_bus *bus,
> int where, int size, u32 val)
> {
> struct pci_controller *hose = pci_bus_to_host(bus);
> - struct pnv_phb *phb = hose->private_data;
> + struct pnv_phb *phb = hose ? hose->private_data : NULL;
> u32 bdfn = (((uint64_t)bus->number) << 8) | devfn;
>
> - if (hose == NULL)
> + if (!phb)
> return PCIBIOS_DEVICE_NOT_FOUND;
>
> cfg_dbg("pnv_pci_write_config bus: %x devfn: %x +%x/%x -> %08x\n",
next prev parent reply other threads:[~2013-04-22 6:16 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-22 6:13 [PATCH] PowerNV/PCI: Fix NULL PCI controller Mike Qiu
2013-04-22 6:15 ` Mike Qiu [this message]
2013-04-22 6:36 ` Benjamin Herrenschmidt
2013-04-22 7:41 ` Mike Qiu
2013-04-22 8:04 ` Benjamin Herrenschmidt
2013-04-22 9:44 ` Mike Qiu
2013-04-22 17:35 ` Bjorn Helgaas
2013-04-23 1:46 ` Mike Qiu
2013-04-23 1:49 ` Benjamin Herrenschmidt
-- strict thread matches above, loose matches on Subject: below --
2013-04-17 6:53 Mike Qiu
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=5174D596.9070308@linux.vnet.ibm.com \
--to=qiudayu@linux.vnet.ibm.com \
--cc=benh@kernel.crashing.org \
--cc=linux-pci@vger.kernel.org \
--cc=tglx@linutronix.de \
/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.