All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Cc: stable@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4.14.y] PCI: OF: Fix I/O space page leak
Date: Fri, 24 Aug 2018 08:49:51 +0200	[thread overview]
Message-ID: <20180824064951.GC24399@kroah.com> (raw)
In-Reply-To: <0a28fd20-ea95-2b2b-d6bf-116be9983902@cogentembedded.com>

On Thu, Aug 23, 2018 at 10:55:26PM +0300, Sergei Shtylyov wrote:
> Commit a5fb9fb023a1435f2b42bccd7f547560f3a21dc3 upstream.
> 
> When testing the R-Car PCIe driver on the Condor board, if the PCIe PHY
> driver was left disabled, the kernel crashed with this BUG:
> 
>   kernel BUG at lib/ioremap.c:72!
>   Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
>   Modules linked in:
>   CPU: 0 PID: 39 Comm: kworker/0:1 Not tainted 4.17.0-dirty #1092
>   Hardware name: Renesas Condor board based on r8a77980 (DT)
>   Workqueue: events deferred_probe_work_func
>   pstate: 80000005 (Nzcv daif -PAN -UAO)
>   pc : ioremap_page_range+0x370/0x3c8
>   lr : ioremap_page_range+0x40/0x3c8
>   sp : ffff000008da39e0
>   x29: ffff000008da39e0 x28: 00e8000000000f07
>   x27: ffff7dfffee00000 x26: 0140000000000000
>   x25: ffff7dfffef00000 x24: 00000000000fe100
>   x23: ffff80007b906000 x22: ffff000008ab8000
>   x21: ffff000008bb1d58 x20: ffff7dfffef00000
>   x19: ffff800009c30fb8 x18: 0000000000000001
>   x17: 00000000000152d0 x16: 00000000014012d0
>   x15: 0000000000000000 x14: 0720072007200720
>   x13: 0720072007200720 x12: 0720072007200720
>   x11: 0720072007300730 x10: 00000000000000ae
>   x9 : 0000000000000000 x8 : ffff7dffff000000
>   x7 : 0000000000000000 x6 : 0000000000000100
>   x5 : 0000000000000000 x4 : 000000007b906000
>   x3 : ffff80007c61a880 x2 : ffff7dfffeefffff
>   x1 : 0000000040000000 x0 : 00e80000fe100f07
>   Process kworker/0:1 (pid: 39, stack limit = 0x        (ptrval))
>   Call trace:
>    ioremap_page_range+0x370/0x3c8
>    pci_remap_iospace+0x7c/0xac
>    pci_parse_request_of_pci_ranges+0x13c/0x190
>    rcar_pcie_probe+0x4c/0xb04
>    platform_drv_probe+0x50/0xbc
>    driver_probe_device+0x21c/0x308
>    __device_attach_driver+0x98/0xc8
>    bus_for_each_drv+0x54/0x94
>    __device_attach+0xc4/0x12c
>    device_initial_probe+0x10/0x18
>    bus_probe_device+0x90/0x98
>    deferred_probe_work_func+0xb0/0x150
>    process_one_work+0x12c/0x29c
>    worker_thread+0x200/0x3fc
>    kthread+0x108/0x134
>    ret_from_fork+0x10/0x18
>   Code: f9004ba2 54000080 aa0003fb 17ffff48 (d4210000)
> 
> It turned out that pci_remap_iospace() wasn't undone when the driver's
> probe failed, and since devm_phy_optional_get() returned -EPROBE_DEFER,
> the probe was retried, finally causing the BUG due to trying to remap
> already remapped pages.
> 
> Introduce the devm_pci_remap_iospace() managed API and replace the
> pci_remap_iospace() call with it to fix the bug.
> 
> Fixes: dbf9826d5797 ("PCI: generic: Convert to DT resource parsing API")
> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
> [lorenzo.pieralisi@arm.com: split commit/updated the commit log]
> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
> 
> ---
>  drivers/pci/host/pci-host-common.c |    2 -
>  drivers/pci/host/pcie-rcar.c       |    2 -
>  drivers/pci/pci.c                  |   38 +++++++++++++++++++++++++++++++++++++
>  include/linux/pci.h                |    2 +
>  4 files changed, 42 insertions(+), 2 deletions(-)

Also now applied.

greg k-h

  reply	other threads:[~2018-08-24  6:49 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-15 16:00 [PATCH 0/8] Fix PCI I/O space page leaks Sergei Shtylyov
2018-07-15 16:00 ` Sergei Shtylyov
2018-07-15 16:00 ` Sergei Shtylyov
2018-07-15 16:00 ` Sergei Shtylyov
2018-07-15 16:03 ` [PATCH 1/8] PCI: xgene: Fix I/O space page leak Sergei Shtylyov
2018-07-15 16:03   ` Sergei Shtylyov
2018-07-15 16:06 ` [PATCH 2/8] PCI: of: " Sergei Shtylyov
2018-07-15 16:08 ` [PATCH 3/8] PCI: versatile: " Sergei Shtylyov
2018-07-15 16:08   ` Sergei Shtylyov
2018-07-15 16:13 ` [PATCH 4/8] PCI: designware: " Sergei Shtylyov
2018-07-15 16:23 ` [PATCH 5/8] PCI: aardvark: " Sergei Shtylyov
2018-07-15 16:23   ` Sergei Shtylyov
2018-07-15 16:28 ` [PATCH 6/8] PCI: faraday: " Sergei Shtylyov
2018-07-15 16:31 ` [PATCH 7/8] PCI: mediatek: " Sergei Shtylyov
2018-07-15 16:31   ` Sergei Shtylyov
2018-07-15 16:31   ` Sergei Shtylyov
2018-07-15 16:34 ` [PATCH 8/8] PCI: v3-semi: " Sergei Shtylyov
2018-07-16 15:06 ` [PATCH 0/8] Fix PCI I/O space page leaks Lorenzo Pieralisi
2018-07-16 15:06   ` Lorenzo Pieralisi
2018-07-16 15:06   ` Lorenzo Pieralisi
2018-07-16 15:06   ` Lorenzo Pieralisi
2018-07-16 18:50   ` Sergei Shtylyov
2018-07-16 18:50     ` Sergei Shtylyov
2018-07-16 18:50     ` Sergei Shtylyov
2018-07-16 18:50     ` Sergei Shtylyov
2018-08-23 19:55 ` [PATCH 4.14.y] PCI: OF: Fix I/O space page leak Sergei Shtylyov
2018-08-24  6:49   ` Greg Kroah-Hartman [this message]
2018-08-23 20:04 ` [PATCH 4.9.y] " Sergei Shtylyov
2018-08-23 20:10   ` Sergei Shtylyov
2018-08-23 20:11 ` [PATCH v2 " Sergei Shtylyov
2018-08-24  6:49   ` Greg Kroah-Hartman

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=20180824064951.GC24399@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=bhelgaas@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=sergei.shtylyov@cogentembedded.com \
    --cc=stable@vger.kernel.org \
    /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.