Kernel sources for Moto G9 (Play) (Guamp)
Find a file
Geert Uytterhoeven 6a8b02ead7 PCI: Fix pci_register_io_range() memory leak
[ Upstream commit f6bda644fa3a7070621c3bf12cd657f69a42f170 ]

Kmemleak reports:

  unreferenced object 0xc328de40 (size 64):
    comm "kworker/1:1", pid 21, jiffies 4294938212 (age 1484.670s)
    hex dump (first 32 bytes):
      00 00 00 00 00 00 00 00 e0 d8 fc eb 00 00 00 00  ................
      00 00 10 fe 00 00 00 00 00 00 00 00 00 00 00 00  ................

  backtrace:
    [<ad758d10>] pci_register_io_range+0x3c/0x80
    [<2c7f139e>] of_pci_range_to_resource+0x48/0xc0
    [<f079ecc8>] devm_of_pci_get_host_bridge_resources.constprop.0+0x2ac/0x3ac
    [<e999753b>] devm_of_pci_bridge_init+0x60/0x1b8
    [<a895b229>] devm_pci_alloc_host_bridge+0x54/0x64
    [<e451ddb0>] rcar_pcie_probe+0x2c/0x644

In case a PCI host driver's probe is deferred, the same I/O range may be
allocated again, and be ignored, causing a memory leak.

Fix this by (a) letting logic_pio_register_range() return -EEXIST if the
passed range already exists, so pci_register_io_range() will free it, and
by (b) making pci_register_io_range() not consider -EEXIST an error
condition.

Link: https://lore.kernel.org/r/20210202100332.829047-1-geert+renesas@glider.be
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-03-17 16:43:46 +01:00
arch sparc64: Use arch_validate_flags() to validate ADI flag 2021-03-17 16:43:46 +01:00
block block: genhd: add 'groups' argument to device_add_disk 2021-03-11 14:04:59 +01:00
certs certs: Fix blacklist flag type confusion 2021-03-04 09:39:44 +01:00
crypto crypto: tcrypt - avoid signed overflow in byte count 2021-03-07 12:18:58 +01:00
Documentation sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs output 2021-03-07 12:19:01 +01:00
drivers PCI: Fix pci_register_io_range() memory leak 2021-03-17 16:43:46 +01:00
firmware Fix built-in early-load Intel microcode alignment 2020-01-23 08:21:29 +01:00
fs udf: fix silent AED tagLocation corruption 2021-03-17 16:43:45 +01:00
include net: check if protocol extracted by virtio_net_hdr_set_proto is correct 2021-03-17 16:43:43 +01:00
init fgraph: Initialize tracing_graph_pause at task creation 2021-02-13 13:51:13 +01:00
ipc ipc/util.c: sysvipc_find_ipc() incorrectly updates position index 2020-05-20 08:18:40 +02:00
kernel printk: fix deadlock when kernel panic 2021-03-04 09:39:57 +01:00
lib PCI: Fix pci_register_io_range() memory leak 2021-03-17 16:43:46 +01:00
LICENSES
mm Revert "mm, slub: consider rest of partial list if acquire_slab() fails" 2021-03-17 16:43:43 +01:00
net net: qrtr: fix error return code of qrtr_sendmsg() 2021-03-17 16:43:44 +01:00
samples samples: bpf: Fix lwt_len_hist reusing previous BPF map 2020-12-30 11:25:57 +01:00
scripts scripts/recordmcount.{c,pl}: support -ffunction-sections .text.* section names 2021-03-17 16:43:43 +01:00
security smackfs: restrict bytes count in smackfs write functions 2021-03-07 12:18:55 +01:00
sound ASoC: Intel: bytcr_rt5640: Add quirk for ARCHOS Cesium 140 2021-03-11 14:05:01 +01:00
tools perf traceevent: Ensure read cmdlines are null terminated. 2021-03-17 16:43:44 +01:00
usr initramfs: restore default compression behavior 2020-04-13 10:44:59 +02:00
virt kvm: check tlbs_dirty directly 2021-02-23 15:01:00 +01:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS Documentation/llvm: add documentation on building w/ Clang/LLVM 2020-09-26 18:01:31 +02:00
Makefile Linux 4.19.180 2021-03-11 14:05:02 +01:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.