From: Filipe Manana <fdmanana(a)suse.com>
[ Upstream commit 1693d5442c458ae8d5b0d58463b873cd879569ed ]
Add a helper function to determine if a block group is being used and make
use of it at btrfs_delete_unused_bgs(). This helper will also be used in
future code changes.
Reviewed-by: Johannes Thumshirn <johannes.thumshirn(a)wdc.com>
Reviewed-by: Josef Bacik <josef(a)toxicpanda.com>
Reviewed-by: Boris Burkov <boris(a)bur.io>
Signed-off-by: Filipe Manana <fdmanana(a)suse.com>
Reviewed-by: David Sterba <dsterba(a)suse.com>
Signed-off-by: David Sterba <dsterba(a)suse.com>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
fs/btrfs/block-group.c | 3 +--
fs/btrfs/block-group.h | 7 +++++++
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/fs/btrfs/block-group.c b/fs/btrfs/block-group.c
index 4ca6828586af5..a2bac7196d18b 100644
--- a/fs/btrfs/block-group.c
+++ b/fs/btrfs/block-group.c
@@ -1330,8 +1330,7 @@ void btrfs_delete_unused_bgs(struct btrfs_fs_info *fs_info)
}
spin_lock(&block_group->lock);
- if (block_group->reserved || block_group->pinned ||
- block_group->used || block_group->ro ||
+ if (btrfs_is_block_group_used(block_group) || block_group->ro ||
list_is_singular(&block_group->list)) {
/*
* We want to bail if we made new allocations or have
diff --git a/fs/btrfs/block-group.h b/fs/btrfs/block-group.h
index a15868d607a92..f042c1c85a255 100644
--- a/fs/btrfs/block-group.h
+++ b/fs/btrfs/block-group.h
@@ -211,6 +211,13 @@ static inline u64 btrfs_block_group_end(struct btrfs_block_group *block_group)
return (block_group->start + block_group->length);
}
+static inline bool btrfs_is_block_group_used(const struct btrfs_block_group *bg)
+{
+ lockdep_assert_held(&bg->lock);
+
+ return (bg->used > 0 || bg->reserved > 0 || bg->pinned > 0);
+}
+
static inline bool btrfs_is_block_group_data_only(
struct btrfs_block_group *block_group)
{
--
2.43.0
From: Johannes Berg <johannes.berg(a)intel.com>
Ben Greear further reports deadlocks during concurrent debugfs
remove while files are being accessed, even though the code in
question now uses debugfs cancellations. Turns out that despite
all the review on the locking, we missed completely that the
logic is wrong: if the refcount hits zero we can finish (and
need not wait for the completion), but if it doesn't we have
to trigger all the cancellations. As written, we can _never_
get into the loop triggering the cancellations. Fix this, and
explain it better while at it.
Cc: stable(a)vger.kernel.org
Fixes: 8c88a474357e ("debugfs: add API to allow debugfs operations cancellation")
Reported-by: Ben Greear <greearb(a)candelatech.com>
Closes: https://lore.kernel.org/r/1c9fa9e5-09f1-0522-fdbc-dbcef4d255ca@candelatech.…
Tested-by: Madhan Sai <madhan.singaraju(a)candelatech.com>
Signed-off-by: Johannes Berg <johannes.berg(a)intel.com>
---
fs/debugfs/inode.c | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
index 034a617cb1a5..a40da0065433 100644
--- a/fs/debugfs/inode.c
+++ b/fs/debugfs/inode.c
@@ -751,13 +751,28 @@ static void __debugfs_file_removed(struct dentry *dentry)
if ((unsigned long)fsd & DEBUGFS_FSDATA_IS_REAL_FOPS_BIT)
return;
- /* if we hit zero, just wait for all to finish */
- if (!refcount_dec_and_test(&fsd->active_users)) {
- wait_for_completion(&fsd->active_users_drained);
+ /* if this was the last reference, we're done */
+ if (refcount_dec_and_test(&fsd->active_users))
return;
- }
- /* if we didn't hit zero, try to cancel any we can */
+ /*
+ * If there's still a reference, the code that obtained it can
+ * be in different states:
+ * - The common case of not using cancellations, or already
+ * after debugfs_leave_cancellation(), where we just need
+ * to wait for debugfs_file_put() which signals the completion;
+ * - inside a cancellation section, i.e. between
+ * debugfs_enter_cancellation() and debugfs_leave_cancellation(),
+ * in which case we need to trigger the ->cancel() function,
+ * and then wait for debugfs_file_put() just like in the
+ * previous case;
+ * - before debugfs_enter_cancellation() (but obviously after
+ * debugfs_file_get()), in which case we may not see the
+ * cancellation in the list on the first round of the loop,
+ * but debugfs_enter_cancellation() signals the completion
+ * after adding it, so this code gets woken up to call the
+ * ->cancel() function.
+ */
while (refcount_read(&fsd->active_users)) {
struct debugfs_cancellation *c;
--
2.43.2
Currently xhci_map_urb_for_dma() creates a temporary buffer
and copies the SG list to the new linear buffer. But if the
kzalloc_node() fails, then the following sg_pcopy_to_buffer()
can lead to crash since it tries to memcpy to NULL pointer.
So return -ENOMEM if kzalloc returns null pointer.
Cc: <stable(a)vger.kernel.org> # 5.11
Fixes: 2017a1e58472 ("usb: xhci: Use temporary buffer to consolidate SG")
Signed-off-by: Prashanth K <quic_prashk(a)quicinc.com>
---
v2: Updated -EAGAIN to -ENOMEM
drivers/usb/host/xhci.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index c057c42c36f4..35e9efdee3b2 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -1217,6 +1217,8 @@ static int xhci_map_temp_buffer(struct usb_hcd *hcd, struct urb *urb)
temp = kzalloc_node(buf_len, GFP_ATOMIC,
dev_to_node(hcd->self.sysdev));
+ if (!temp)
+ return -ENOMEM;
if (usb_urb_dir_out(urb))
sg_pcopy_to_buffer(urb->sg, urb->num_sgs,
--
2.25.1
From: Prashanth K <quic_prashk(a)quicinc.com>
Currently xhci_map_urb_for_dma() creates a temporary buffer and copies
the SG list to the new linear buffer. But if the kzalloc_node() fails,
then the following sg_pcopy_to_buffer() can lead to crash since it
tries to memcpy to NULL pointer.
So return -ENOMEM if kzalloc returns null pointer.
Cc: <stable(a)vger.kernel.org> # 5.11
Fixes: 2017a1e58472 ("usb: xhci: Use temporary buffer to consolidate SG")
Signed-off-by: Prashanth K <quic_prashk(a)quicinc.com>
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
---
drivers/usb/host/xhci.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 5d70e0176527..8579603edaff 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -1219,6 +1219,8 @@ static int xhci_map_temp_buffer(struct usb_hcd *hcd, struct urb *urb)
temp = kzalloc_node(buf_len, GFP_ATOMIC,
dev_to_node(hcd->self.sysdev));
+ if (!temp)
+ return -ENOMEM;
if (usb_urb_dir_out(urb))
sg_pcopy_to_buffer(urb->sg, urb->num_sgs,
--
2.25.1
The commit 80dd33cf72d1 ("drivers: base: Fix device link removal")
introduces a workqueue to release the consumer and supplier devices used
in the devlink.
In the job queued, devices are release and in turn, when all the
references to these devices are dropped, the release function of the
device itself is called.
Nothing is present to provide some synchronisation with this workqueue
in order to ensure that all ongoing releasing operations are done and
so, some other operations can be started safely.
For instance, in the following sequence:
1) of_platform_depopulate()
2) of_overlay_remove()
During the step 1, devices are released and related devlinks are removed
(jobs pushed in the workqueue).
During the step 2, OF nodes are destroyed but, without any
synchronisation with devlink removal jobs, of_overlay_remove() can raise
warnings related to missing of_node_put():
ERROR: memory leak, expected refcount 1 instead of 2
Indeed, the missing of_node_put() call is going to be done, too late,
from the workqueue job execution.
Introduce device_link_wait_removal() to offer a way to synchronize
operations waiting for the end of devlink removals (i.e. end of
workqueue jobs).
Also, as a flushing operation is done on the workqueue, the workqueue
used is moved from a system-wide workqueue to a local one.
Fixes: 80dd33cf72d1 ("drivers: base: Fix device link removal")
Cc: stable(a)vger.kernel.org
Signed-off-by: Herve Codina <herve.codina(a)bootlin.com>
---
drivers/base/core.c | 26 +++++++++++++++++++++++---
include/linux/device.h | 1 +
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/drivers/base/core.c b/drivers/base/core.c
index d5f4e4aac09b..80d9430856a8 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -44,6 +44,7 @@ static bool fw_devlink_is_permissive(void);
static void __fw_devlink_link_to_consumers(struct device *dev);
static bool fw_devlink_drv_reg_done;
static bool fw_devlink_best_effort;
+static struct workqueue_struct *device_link_wq;
/**
* __fwnode_link_add - Create a link between two fwnode_handles.
@@ -532,12 +533,26 @@ static void devlink_dev_release(struct device *dev)
/*
* It may take a while to complete this work because of the SRCU
* synchronization in device_link_release_fn() and if the consumer or
- * supplier devices get deleted when it runs, so put it into the "long"
- * workqueue.
+ * supplier devices get deleted when it runs, so put it into the
+ * dedicated workqueue.
*/
- queue_work(system_long_wq, &link->rm_work);
+ queue_work(device_link_wq, &link->rm_work);
}
+/**
+ * device_link_wait_removal - Wait for ongoing devlink removal jobs to terminate
+ */
+void device_link_wait_removal(void)
+{
+ /*
+ * devlink removal jobs are queued in the dedicated work queue.
+ * To be sure that all removal jobs are terminated, ensure that any
+ * scheduled work has run to completion.
+ */
+ drain_workqueue(device_link_wq);
+}
+EXPORT_SYMBOL_GPL(device_link_wait_removal);
+
static struct class devlink_class = {
.name = "devlink",
.dev_groups = devlink_groups,
@@ -4099,9 +4114,14 @@ int __init devices_init(void)
sysfs_dev_char_kobj = kobject_create_and_add("char", dev_kobj);
if (!sysfs_dev_char_kobj)
goto char_kobj_err;
+ device_link_wq = alloc_workqueue("device_link_wq", 0, 0);
+ if (!device_link_wq)
+ goto wq_err;
return 0;
+ wq_err:
+ kobject_put(sysfs_dev_char_kobj);
char_kobj_err:
kobject_put(sysfs_dev_block_kobj);
block_kobj_err:
diff --git a/include/linux/device.h b/include/linux/device.h
index 1795121dee9a..d7d8305a72e8 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -1249,6 +1249,7 @@ void device_link_del(struct device_link *link);
void device_link_remove(void *consumer, struct device *supplier);
void device_links_supplier_sync_state_pause(void);
void device_links_supplier_sync_state_resume(void);
+void device_link_wait_removal(void);
/* Create alias, so I can be autoloaded. */
#define MODULE_ALIAS_CHARDEV(major,minor) \
--
2.43.0
This is the start of the stable review cycle for the 5.4.270 release.
There are 84 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Thu, 29 Feb 2024 13:15:36 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.270-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 5.4.270-rc1
Andrii Nakryiko <andriin(a)fb.com>
scripts/bpf: Fix xdp_md forward declaration typo
Bart Van Assche <bvanassche(a)acm.org>
fs/aio: Restrict kiocb_set_cancel_fn() to I/O submitted via libaio
Erik Kurzinger <ekurzinger(a)nvidia.com>
drm/syncobj: call drm_syncobj_fence_add_wait when WAIT_AVAILABLE flag is set
Christian König <christian.koenig(a)amd.com>
drm/syncobj: make lockdep complain on WAIT_FOR_SUBMIT v3
Florian Westphal <fw(a)strlen.de>
netfilter: nf_tables: set dormant flag on hook register failure
Sabrina Dubroca <sd(a)queasysnail.net>
tls: stop recv() if initial process_rx_list gave us non-DATA
Jakub Kicinski <kuba(a)kernel.org>
tls: rx: drop pointless else after goto
Jakub Kicinski <kuba(a)kernel.org>
tls: rx: jump to a more appropriate label
Jason Gunthorpe <jgg(a)nvidia.com>
s390: use the correct count for __iowrite64_copy()
Wolfram Sang <wsa+renesas(a)sang-engineering.com>
packet: move from strlcpy with unused retval to strscpy
Vasiliy Kovalev <kovalev(a)altlinux.org>
ipv6: sr: fix possible use-after-free and null-ptr-deref
Daniil Dulov <d.dulov(a)aladdin.ru>
afs: Increase buffer size in afs_update_volume_status()
Eric Dumazet <edumazet(a)google.com>
ipv6: properly combine dev_base_seq and ipv6.dev_addr_genid
Eric Dumazet <edumazet(a)google.com>
ipv4: properly combine dev_base_seq and ipv4.dev_addr_genid
Arnd Bergmann <arnd(a)arndb.de>
nouveau: fix function cast warnings
Randy Dunlap <rdunlap(a)infradead.org>
scsi: jazz_esp: Only build if SCSI core is builtin
Gianmarco Lusvardi <glusvardi(a)posteo.net>
bpf, scripts: Correct GPL license name
Andrii Nakryiko <andriin(a)fb.com>
scripts/bpf: teach bpf_helpers_doc.py to dump BPF helper definitions
Arnd Bergmann <arnd(a)arndb.de>
RDMA/srpt: fix function pointer cast warnings
Bart Van Assche <bvanassche(a)acm.org>
RDMA/srpt: Make debug output more detailed
Kalesh AP <kalesh-anakkur.purayil(a)broadcom.com>
RDMA/bnxt_re: Return error for SRQ resize
Zhipeng Lu <alexious(a)zju.edu.cn>
IB/hfi1: Fix a memleak in init_credit_return
Xu Yang <xu.yang_2(a)nxp.com>
usb: roles: don't get/set_role() when usb_role_switch is unregistered
Krishna Kurapati <quic_kriskura(a)quicinc.com>
usb: gadget: ncm: Avoid dropping datagrams of properly parsed NTBs
Frank Li <Frank.Li(a)nxp.com>
usb: cdns3: fix memory double free when handle zero packet
Frank Li <Frank.Li(a)nxp.com>
usb: cdns3: fixed memory use after free at cdns3_gadget_ep_disable()
Nikita Shubin <nikita.shubin(a)maquefel.me>
ARM: ep93xx: Add terminator to gpiod_lookup_table
Tom Parkin <tparkin(a)katalix.com>
l2tp: pass correct message length to ip6_append_data
Vidya Sagar <vidyas(a)nvidia.com>
PCI/MSI: Prevent MSI hardware interrupt number truncation
Vasiliy Kovalev <kovalev(a)altlinux.org>
gtp: fix use-after-free and null-ptr-deref in gtp_genl_dump_pdp()
Mikulas Patocka <mpatocka(a)redhat.com>
dm-crypt: don't modify the data when using authenticated encryption
Daniel Vacek <neelx(a)redhat.com>
IB/hfi1: Fix sdma.h tx->num_descs off-by-one error
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
PCI: tegra: Fix OF node reference leak
Pali Rohár <pali(a)kernel.org>
PCI: tegra: Fix reporting GPIO error value
Sireesh Kodali <sireeshkodali1(a)gmail.com>
arm64: dts: qcom: msm8916: Fix typo in pronto remoteproc node
Nathan Chancellor <nathan(a)kernel.org>
drm/amdgpu: Fix type of second parameter in trans_msg() callback
Matthew Wilcox (Oracle) <willy(a)infradead.org>
iomap: Set all uptodate bits for an Uptodate page
Mikulas Patocka <mpatocka(a)redhat.com>
dm-integrity: don't modify bio's immutable bio_vec in integrity_metadata()
Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
x86/alternatives: Disable KASAN in apply_alternatives()
Trek <trek00(a)inbox.ru>
drm/amdgpu: Check for valid number of registers to read
Icenowy Zheng <icenowy(a)aosc.io>
Revert "drm/sun4i: dsi: Change the start delay calculation"
Kai-Heng Feng <kai.heng.feng(a)canonical.com>
ALSA: hda/realtek - Enable micmute LED on and HP system
Björn Töpel <bjorn.topel(a)gmail.com>
selftests/bpf: Avoid running unprivileged tests with alignment requirements
Nikolay Aleksandrov <nikolay(a)cumulusnetworks.com>
net: bridge: clear bridge's private skb space on xmit
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
spi: mt7621: Fix an error message in mt7621_spi_probe()
John Stultz <john.stultz(a)linaro.org>
driver core: Set deferred_probe_timeout to a longer default if CONFIG_MODULES is set
Miaoqian Lin <linmq006(a)gmail.com>
pinctrl: rockchip: Fix refcount leak in rockchip_pinctrl_parse_groups
Lee Jones <lee.jones(a)linaro.org>
pinctrl: pinctrl-rockchip: Fix a bunch of kerneldoc misdemeanours
Eric Dumazet <edumazet(a)google.com>
tcp: add annotations around sk->sk_shutdown accesses
Soheil Hassas Yeganeh <soheil(a)google.com>
tcp: return EPOLLOUT from tcp_poll only when notsent_bytes is half the limit
Paolo Abeni <pabeni(a)redhat.com>
tcp: factor out __tcp_close() helper
Geert Uytterhoeven <geert+renesas(a)glider.be>
pmdomain: renesas: r8a77980-sysc: CR7 must be always on
Alexandra Winter <wintera(a)linux.ibm.com>
s390/qeth: Fix potential loss of L3-IP@ in case of network issues
Yi Sun <yi.sun(a)unisoc.com>
virtio-blk: Ensure no requests in virtqueues before deleting vqs.
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
firewire: core: send bus reset promptly on gap count error
Hannes Reinecke <hare(a)suse.de>
scsi: lpfc: Use unsigned type for num_sge
Zhang Rui <rui.zhang(a)intel.com>
hwmon: (coretemp) Enlarge per package core count limit
Daniel Wagner <dwagner(a)suse.de>
nvmet-fc: abort command when there is no binding
Xin Long <lucien.xin(a)gmail.com>
netfilter: conntrack: check SCTP_CID_SHUTDOWN_ACK for vtag setting in sctp_new
Chen-Yu Tsai <wens(a)csie.org>
ASoC: sunxi: sun4i-spdif: Add support for Allwinner H616
Guixin Liu <kanie(a)linux.alibaba.com>
nvmet-tcp: fix nvme tcp ida memory leak
Martin Blumenstingl <martin.blumenstingl(a)googlemail.com>
regulator: pwm-regulator: Add validity checks in continuous .get_voltage
Baokun Li <libaokun1(a)huawei.com>
ext4: avoid allocating blocks from corrupted group in ext4_mb_find_by_goal()
Baokun Li <libaokun1(a)huawei.com>
ext4: avoid allocating blocks from corrupted group in ext4_mb_try_best_found()
Lennert Buytenhek <kernel(a)wantstofly.org>
ahci: add 43-bit DMA address quirk for ASMedia ASM1061 controllers
Conrad Kostecki <conikost(a)gentoo.org>
ahci: asm1166: correct count of reported ports
Fullway Wang <fullwaywang(a)outlook.com>
fbdev: sis: Error out if pixclock equals zero
Fullway Wang <fullwaywang(a)outlook.com>
fbdev: savage: Error out if pixclock equals zero
Felix Fietkau <nbd(a)nbd.name>
wifi: mac80211: fix race condition on enabling fast-xmit
Michal Kazior <michal(a)plume.com>
wifi: cfg80211: fix missing interfaces when dumping
Vinod Koul <vkoul(a)kernel.org>
dmaengine: fsl-qdma: increase size of 'irq_name'
Vinod Koul <vkoul(a)kernel.org>
dmaengine: shdma: increase size of 'dev_id'
Dmitry Bogdanov <d.bogdanov(a)yadro.com>
scsi: target: core: Add TMF to tmr_list handling
Cyril Hrubis <chrubis(a)suse.cz>
sched/rt: Disallow writing invalid values to sched_rt_period_us
Cyril Hrubis <chrubis(a)suse.cz>
sched/rt: Fix sysctl_sched_rr_timeslice intial value
Lokesh Gidra <lokeshgidra(a)google.com>
userfaultfd: fix mmap_changing checking in mfill_atomic_hugetlb
Ryusuke Konishi <konishi.ryusuke(a)gmail.com>
nilfs2: replace WARN_ONs for invalid DAT metadata block requests
GONG, Ruiqi <gongruiqi1(a)huawei.com>
memcg: add refcnt for pcpu stock to avoid UAF problem in drain_all_stock()
Cyril Hrubis <chrubis(a)suse.cz>
sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset
Jamal Hadi Salim <jhs(a)mojatatu.com>
net/sched: Retire dsmark qdisc
Jamal Hadi Salim <jhs(a)mojatatu.com>
net/sched: Retire ATM qdisc
Jamal Hadi Salim <jhs(a)mojatatu.com>
net/sched: Retire CBQ qdisc
Oliver Upton <oliver.upton(a)linux.dev>
KVM: arm64: vgic-its: Test for valid IRQ in MOVALL handler
Oliver Upton <oliver.upton(a)linux.dev>
KVM: arm64: vgic-its: Test for valid IRQ in its_sync_lpi_pending_table()
-------------
Diffstat:
Makefile | 4 +-
arch/arm/mach-ep93xx/core.c | 1 +
arch/arm64/boot/dts/qcom/msm8916.dtsi | 4 +-
arch/s390/pci/pci.c | 2 +-
arch/x86/kernel/alternative.c | 13 +
drivers/ata/ahci.c | 34 +-
drivers/ata/ahci.h | 1 +
drivers/base/dd.c | 9 +
drivers/block/virtio_blk.c | 7 +-
drivers/dma/fsl-qdma.c | 2 +-
drivers/dma/sh/shdma.h | 2 +-
drivers/firewire/core-card.c | 18 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 3 +
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 5 +-
drivers/gpu/drm/drm_syncobj.c | 16 +-
drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c | 8 +-
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 3 +-
drivers/hwmon/coretemp.c | 2 +-
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 5 +-
drivers/infiniband/hw/hfi1/pio.c | 6 +-
drivers/infiniband/hw/hfi1/sdma.c | 2 +-
drivers/infiniband/ulp/srpt/ib_srpt.c | 18 +-
drivers/md/dm-crypt.c | 6 +
drivers/md/dm-integrity.c | 11 +-
drivers/net/gtp.c | 10 +-
drivers/nvme/target/fc.c | 8 +-
drivers/nvme/target/tcp.c | 1 +
drivers/pci/controller/pci-tegra.c | 17 +-
drivers/pci/msi.c | 2 +-
drivers/pinctrl/pinctrl-rockchip.c | 23 +-
drivers/regulator/pwm-regulator.c | 3 +
drivers/s390/net/qeth_l3_main.c | 9 +-
drivers/scsi/Kconfig | 2 +-
drivers/scsi/lpfc/lpfc_scsi.c | 12 +-
drivers/soc/renesas/r8a77980-sysc.c | 3 +-
drivers/spi/spi-mt7621.c | 8 +-
drivers/target/target_core_device.c | 5 -
drivers/target/target_core_transport.c | 4 +
drivers/usb/cdns3/gadget.c | 8 +-
drivers/usb/gadget/function/f_ncm.c | 10 +-
drivers/usb/roles/class.c | 12 +-
drivers/video/fbdev/savage/savagefb_driver.c | 3 +
drivers/video/fbdev/sis/sis_main.c | 2 +
fs/afs/volume.c | 4 +-
fs/aio.c | 9 +-
fs/ext4/mballoc.c | 13 +-
fs/iomap/buffered-io.c | 3 +
fs/nilfs2/dat.c | 27 +-
include/linux/fs.h | 2 +
include/linux/lockdep.h | 5 +
include/net/tcp.h | 1 +
kernel/sched/rt.c | 10 +-
kernel/sysctl.c | 4 +
mm/memcontrol.c | 6 +
mm/userfaultfd.c | 14 +-
net/bridge/br_device.c | 2 +
net/ipv4/af_inet.c | 2 +-
net/ipv4/devinet.c | 21 +-
net/ipv4/tcp.c | 27 +-
net/ipv4/tcp_input.c | 4 +-
net/ipv6/addrconf.c | 21 +-
net/ipv6/seg6.c | 20 +-
net/l2tp/l2tp_ip6.c | 2 +-
net/mac80211/sta_info.c | 2 +
net/mac80211/tx.c | 2 +-
net/netfilter/nf_conntrack_proto_sctp.c | 2 +-
net/netfilter/nf_tables_api.c | 1 +
net/packet/af_packet.c | 4 +-
net/sched/Kconfig | 42 -
net/sched/Makefile | 3 -
net/sched/sch_atm.c | 710 --------
net/sched/sch_cbq.c | 1818 ---------------------
net/sched/sch_dsmark.c | 523 ------
net/tls/tls_sw.c | 12 +-
net/wireless/nl80211.c | 1 +
scripts/bpf_helpers_doc.py | 157 +-
sound/pci/hda/patch_realtek.c | 6 +-
sound/soc/sunxi/sun4i-spdif.c | 5 +
tools/testing/selftests/bpf/test_verifier.c | 13 +
virt/kvm/arm/vgic/vgic-its.c | 5 +
80 files changed, 572 insertions(+), 3255 deletions(-)