The DCP trusted key type uses the wrong helper function to store
the blob's payload length which can lead to the wrong byte order
being used in case this would ever run on big endian architectures.
Fix by using correct helper function.
Cc: stable(a)vger.kernel.org # v6.10+
Fixes: 2e8a0f40a39c ("KEYS: trusted: Introduce NXP DCP-backed trusted keys")
Suggested-by: Richard Weinberger <richard(a)nod.at>
Reported-by: kernel test robot <lkp(a)intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202405240610.fj53EK0q-lkp@intel.com/
Signed-off-by: David Gstir <david(a)sigma-star.at>
Signed-off-by: Jarkko Sakkinen <jarkko(a)kernel.org>
---
v1 -> v2: fix ordering of commit tags, add s-o-b from Jarkko Sakkinen
security/keys/trusted-keys/trusted_dcp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/security/keys/trusted-keys/trusted_dcp.c b/security/keys/trusted-keys/trusted_dcp.c
index b5f81a05be36..b0947f072a98 100644
--- a/security/keys/trusted-keys/trusted_dcp.c
+++ b/security/keys/trusted-keys/trusted_dcp.c
@@ -222,7 +222,7 @@ static int trusted_dcp_seal(struct trusted_key_payload *p, char *datablob)
return ret;
}
- b->payload_len = get_unaligned_le32(&p->key_len);
+ put_unaligned_le32(p->key_len, &b->payload_len);
p->blob_len = blen;
return 0;
}
--
2.35.3
Calling ioctl TIOCSSERIAL with an invalid baud_base can
result in uartclk being zero, which will result in a
divide by zero error in uart_get_divisor(). The check for
uartclk being zero in uart_set_info() needs to be done
before other settings are made as subsequent calls to
ioctl TIOCSSERIAL for the same port would be impacted if
the uartclk check was done where uartclk gets set.
Oops: divide error: 0000 PREEMPT SMP KASAN PTI
RIP: 0010:uart_get_divisor (drivers/tty/serial/serial_core.c:580)
Call Trace:
<TASK>
serial8250_get_divisor (drivers/tty/serial/8250/8250_port.c:2576
drivers/tty/serial/8250/8250_port.c:2589)
serial8250_do_set_termios (drivers/tty/serial/8250/8250_port.c:502
drivers/tty/serial/8250/8250_port.c:2741)
serial8250_set_termios (drivers/tty/serial/8250/8250_port.c:2862)
uart_change_line_settings (./include/linux/spinlock.h:376
./include/linux/serial_core.h:608 drivers/tty/serial/serial_core.c:222)
uart_port_startup (drivers/tty/serial/serial_core.c:342)
uart_startup (drivers/tty/serial/serial_core.c:368)
uart_set_info (drivers/tty/serial/serial_core.c:1034)
uart_set_info_user (drivers/tty/serial/serial_core.c:1059)
tty_set_serial (drivers/tty/tty_io.c:2637)
tty_ioctl (drivers/tty/tty_io.c:2647 drivers/tty/tty_io.c:2791)
__x64_sys_ioctl (fs/ioctl.c:52 fs/ioctl.c:907
fs/ioctl.c:893 fs/ioctl.c:893)
do_syscall_64 (arch/x86/entry/common.c:52
(discriminator 1) arch/x86/entry/common.c:83 (discriminator 1))
entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130)
Reported-by: syzkaller <syzkaller(a)googlegroups.com>
Cc: stable(a)vger.kernel.org
Signed-off-by: George Kennedy <george.kennedy(a)oracle.com>
---
serial_struct baud_base=0x30000000 will cause the crash.
drivers/tty/serial/serial_core.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index 2a8006e3d687..9967444eae10 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -881,6 +881,14 @@ static int uart_set_info(struct tty_struct *tty, struct tty_port *port,
new_flags = (__force upf_t)new_info->flags;
old_custom_divisor = uport->custom_divisor;
+ if (!(uport->flags & UPF_FIXED_PORT)) {
+ unsigned int uartclk = new_info->baud_base * 16;
+ /* check needs to be done here before other settings made */
+ if (uartclk == 0) {
+ retval = -EINVAL;
+ goto exit;
+ }
+ }
if (!capable(CAP_SYS_ADMIN)) {
retval = -EPERM;
if (change_irq || change_port ||
--
2.39.3
tpm_buf_append_name() has the following snippet in the beginning:
if (!tpm2_chip_auth(chip)) {
tpm_buf_append_u32(buf, handle);
/* count the number of handles in the upper bits of flags */
buf->handles++;
return;
}
The claim in the comment is wrong, and the comment is in the wrong place
as alignment in this case should not anyway be a concern of the call
site. In essence the comment is lying about the code, and thus needs to
be adressed.
Further, 'handles' was incorrectly place to struct tpm_buf, as tpm-buf.c
does manage its state. It is easy to grep that only piece of code that
actually uses the field is tpm2-sessions.c.
Address the issues by moving the variable to struct tpm_chip.
Cc: stable(a)vger.kernel.org # v6.10+
Fixes: 699e3efd6c64 ("tpm: Add HMAC session start and end functions")
Signed-off-by: Jarkko Sakkinen <jarkko(a)kernel.org>
v3:
* Reset chip->handles in the beginning of tpm2_start_auth_session()
so that it shows correct value, when TCG_TPM2_HMAC is enabled but
tpm2_sessions_init() has never been called.
v2:
* Was a bit more broken than I first thought, as 'handles' is only
useful for tpm2-sessions.c and has zero relation to tpm-buf.c.
---
drivers/char/tpm/tpm-buf.c | 1 -
drivers/char/tpm/tpm2-cmd.c | 2 +-
drivers/char/tpm/tpm2-sessions.c | 7 ++++---
include/linux/tpm.h | 8 ++++----
4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/char/tpm/tpm-buf.c b/drivers/char/tpm/tpm-buf.c
index cad0048bcc3c..d06e8e063151 100644
--- a/drivers/char/tpm/tpm-buf.c
+++ b/drivers/char/tpm/tpm-buf.c
@@ -44,7 +44,6 @@ void tpm_buf_reset(struct tpm_buf *buf, u16 tag, u32 ordinal)
head->tag = cpu_to_be16(tag);
head->length = cpu_to_be32(sizeof(*head));
head->ordinal = cpu_to_be32(ordinal);
- buf->handles = 0;
}
EXPORT_SYMBOL_GPL(tpm_buf_reset);
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index 1e856259219e..b781e4406fc2 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -776,7 +776,7 @@ int tpm2_auto_startup(struct tpm_chip *chip)
if (rc)
goto out;
- rc = tpm2_sessions_init(chip);
+ /* rc = tpm2_sessions_init(chip); */
out:
/*
diff --git a/drivers/char/tpm/tpm2-sessions.c b/drivers/char/tpm/tpm2-sessions.c
index d3521aadd43e..5e7c12d64ba8 100644
--- a/drivers/char/tpm/tpm2-sessions.c
+++ b/drivers/char/tpm/tpm2-sessions.c
@@ -238,8 +238,7 @@ void tpm_buf_append_name(struct tpm_chip *chip, struct tpm_buf *buf,
if (!tpm2_chip_auth(chip)) {
tpm_buf_append_u32(buf, handle);
- /* count the number of handles in the upper bits of flags */
- buf->handles++;
+ chip->handles++;
return;
}
@@ -310,7 +309,7 @@ void tpm_buf_append_hmac_session(struct tpm_chip *chip, struct tpm_buf *buf,
if (!tpm2_chip_auth(chip)) {
/* offset tells us where the sessions area begins */
- int offset = buf->handles * 4 + TPM_HEADER_SIZE;
+ int offset = chip->handles * 4 + TPM_HEADER_SIZE;
u32 len = 9 + passphrase_len;
if (tpm_buf_length(buf) != offset) {
@@ -963,6 +962,8 @@ int tpm2_start_auth_session(struct tpm_chip *chip)
int rc;
u32 null_key;
+ chip->handles = 0;
+
if (!auth) {
dev_warn_once(&chip->dev, "auth session is not active\n");
return 0;
diff --git a/include/linux/tpm.h b/include/linux/tpm.h
index e93ee8d936a9..b664f7556494 100644
--- a/include/linux/tpm.h
+++ b/include/linux/tpm.h
@@ -202,9 +202,9 @@ struct tpm_chip {
/* active locality */
int locality;
+ /* handle count for session: */
+ u8 handles;
#ifdef CONFIG_TCG_TPM2_HMAC
- /* details for communication security via sessions */
-
/* saved context for NULL seed */
u8 null_key_context[TPM2_MAX_CONTEXT_SIZE];
/* name of NULL seed */
@@ -377,7 +377,6 @@ struct tpm_buf {
u32 flags;
u32 length;
u8 *data;
- u8 handles;
};
enum tpm2_object_attributes {
@@ -517,7 +516,7 @@ static inline void tpm_buf_append_hmac_session_opt(struct tpm_chip *chip,
if (tpm2_chip_auth(chip)) {
tpm_buf_append_hmac_session(chip, buf, attributes, passphrase, passphraselen);
} else {
- offset = buf->handles * 4 + TPM_HEADER_SIZE;
+ offset = chip->handles * 4 + TPM_HEADER_SIZE;
head = (struct tpm_header *)buf->data;
/*
@@ -541,6 +540,7 @@ void tpm2_end_auth_session(struct tpm_chip *chip);
static inline int tpm2_start_auth_session(struct tpm_chip *chip)
{
+ chip->handles = 0;
return 0;
}
static inline void tpm2_end_auth_session(struct tpm_chip *chip)
--
2.45.2
v2:
- Updates commits with Johan's Review/Reported tags
- Adds Closes: https://lore.kernel.org/lkml/ZoVNHOTI0PKMNt4_@hovoldconsulting.com
- Cc's stable
- Adds in suggested kernel log to allow others to more easily match kernel
log to fixes
- Link to v1: https://lore.kernel.org/r/20240714-linux-next-24-07-13-camss-fixes-v1-0-8f8…
V1:
Dogfooding with SoftISP has uncovered two bugs in this series which I'm
posting fixes for.
- The first error:
A simple race condition which to be honest I'm surprised I haven't found
earlier nor has anybody else. Simply stated the order we typically
end up loading CAMSS on boot has masked out the pm_runtime_enable() race
condition that has been present in CAMSS for a long time.
If you blacklist qcom-camss in modules.d and then modprobe after boot,
the race condition shows up easily.
Moving the pm_runtime_enable prior to subdevice registration fixes the
problem.
The second error:
Nomenclature:
- CSIPHY: CSI Physical layer analogue to digital domain serialiser
- CSID: CSI Decoder
- VFE: Video Front End
- RDI: Raw Data Interface
- VC: Virtual Channel
In order to support streaming multiple virtual-channels on the same RDI a
V4L2 provided use_count variable is used to decide whether or not to actually
terminate streaming and release buffers for 'msm_vfe_rdiX'.
Unfortunately use_count indicates the number of times msm_vfe_rdiX has
been opened by user-space not the number of concurrent streams on
msm_vfe_rdiX.
Simply stated use_count and stream_count are two different things.
The silicon enabling code to select between VCs is valid but, a different
solution needs to be found to support _concurrent_ VC streams.
Right now the upstream use_count as-is is breaking the non concurrent VC
case and I don't believe there are upstream users of concurrent VCs on
CAMSS.
This series implements a revert for the invalid use_count check,
retaining the ability to select which VC is active on the RDI.
Dogfooding with libcamera's SoftISP in Hangouts, Zoom and multiple runs
of libcamera's "qcam" application is a very different test-case to the
simple capture of frames we previously did when validating the
'use_count' change.
A partial revert in expectation of a renewed push to fixup that
concurrent VC issue is included.
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue(a)linaro.org>
---
Bryan O'Donoghue (2):
media: qcom: camss: Remove use_count guard in stop_streaming
media: qcom: camss: Fix ordering of pm_runtime_enable
drivers/media/platform/qcom/camss/camss-video.c | 6 ------
drivers/media/platform/qcom/camss/camss.c | 5 +++--
2 files changed, 3 insertions(+), 8 deletions(-)
---
base-commit: c6ce8f9ab92edc9726996a0130bfc1c408132d47
change-id: 20240713-linux-next-24-07-13-camss-fixes-fa98c0965a5d
Best regards,
--
Bryan O'Donoghue <bryan.odonoghue(a)linaro.org>
This is the start of the stable review cycle for the 4.19.318 release.
There are 65 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 Fri, 19 Jul 2024 06:37:32 +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/v4.x/stable-review/patch-4.19.318-r…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.19.318-rc2
Wolfram Sang <wsa+renesas(a)sang-engineering.com>
i2c: rcar: bring hardware to known state when probing
Ryusuke Konishi <konishi.ryusuke(a)gmail.com>
nilfs2: fix kernel bug on rename operation of broken directory
felix <fuzhen5(a)huawei.com>
SUNRPC: Fix RPC client cleaned up the freed pipefs dentries
Eric Dumazet <edumazet(a)google.com>
tcp: avoid too many retransmit packets
Eric Dumazet <edumazet(a)google.com>
tcp: use signed arithmetic in tcp_rtx_probe0_timed_out()
Menglong Dong <imagedong(a)tencent.com>
net: tcp: fix unexcepted socket die when snd_wnd is 0
Eric Dumazet <edumazet(a)google.com>
tcp: refactor tcp_retransmit_timer()
Ilya Dryomov <idryomov(a)gmail.com>
libceph: fix race between delayed_work() and ceph_monc_stop()
He Zhe <zhe.he(a)windriver.com>
hpet: Support 32-bit userspace
Alan Stern <stern(a)rowland.harvard.edu>
USB: core: Fix duplicate endpoint bug by clearing reserved bits in the descriptor
Lee Jones <lee(a)kernel.org>
usb: gadget: configfs: Prevent OOB read/write in usb_string_copy()
WangYuli <wangyuli(a)uniontech.com>
USB: Add USB_QUIRK_NO_SET_INTF quirk for START BP-850k
Vanillan Wang <vanillanwang(a)163.com>
USB: serial: option: add Rolling RW350-GL variants
Mank Wang <mank.wang(a)netprisma.us>
USB: serial: option: add Netprisma LCUK54 series modules
Slark Xiao <slark_xiao(a)163.com>
USB: serial: option: add support for Foxconn T99W651
Bjørn Mork <bjorn(a)mork.no>
USB: serial: option: add Fibocom FM350-GL
Daniele Palmas <dnlplm(a)gmail.com>
USB: serial: option: add Telit FN912 rmnet compositions
Daniele Palmas <dnlplm(a)gmail.com>
USB: serial: option: add Telit generic core-dump composition
Chen Ni <nichen(a)iscas.ac.cn>
ARM: davinci: Convert comma to semicolon
Dmitry Antipov <dmantipov(a)yandex.ru>
ppp: reject claimed-as-LCP but actually malformed packets
Aleksander Jan Bajkowski <olek2(a)wp.pl>
net: ethernet: lantiq_etop: fix double free in detach
Aleksander Jan Bajkowski <olek2(a)wp.pl>
net: lantiq_etop: add blank line after declaration
Neal Cardwell <ncardwell(a)google.com>
tcp: fix incorrect undo caused by DSACK of TLP retransmit
Daniele Ceraolo Spurio <daniele.ceraolospurio(a)intel.com>
drm/i915: make find_fw_domain work on intel_uncore
Ryusuke Konishi <konishi.ryusuke(a)gmail.com>
nilfs2: fix incorrect inode allocation from reserved inodes
Piotr Wojtaszczyk <piotr.wojtaszczyk(a)timesys.com>
i2c: pnx: Fix potential deadlock warning from del_timer_sync() call in isr
Mauro Carvalho Chehab <mchehab(a)kernel.org>
media: dw2102: fix a potential buffer overflow
Ghadi Elie Rahme <ghadi.rahme(a)canonical.com>
bnx2x: Fix multiple UBSAN array-index-out-of-bounds
Alex Deucher <alexander.deucher(a)amd.com>
drm/amdgpu/atomfirmware: silence UBSAN warning
Ma Ke <make24(a)iscas.ac.cn>
drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
Jan Kara <jack(a)suse.cz>
Revert "mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again"
Jan Kara <jack(a)suse.cz>
fsnotify: Do not generate events for O_PATH file descriptors
Jimmy Assarsson <extja(a)kvaser.com>
can: kvaser_usb: Explicitly initialize family in leafimx driver_info struct
Jaganath Kanakkassery <jaganath.k.os(a)gmail.com>
Bluetooth: Fix incorrect pointer arithmatic in ext_adv_report_evt
Jinliang Zheng <alexjlzheng(a)tencent.com>
mm: optimize the redundant loop of mm_update_owner_next()
Ryusuke Konishi <konishi.ryusuke(a)gmail.com>
nilfs2: add missing check for inode numbers on directory entries
Ryusuke Konishi <konishi.ryusuke(a)gmail.com>
nilfs2: fix inode number range checks
Shigeru Yoshida <syoshida(a)redhat.com>
inet_diag: Initialize pad field in struct inet_diag_req_v2
Zijian Zhang <zijianzhang(a)bytedance.com>
selftests: make order checking verbose in msg_zerocopy selftest
Zijian Zhang <zijianzhang(a)bytedance.com>
selftests: fix OOM in msg_zerocopy selftest
Sam Sun <samsun1006219(a)gmail.com>
bonding: Fix out-of-bounds read in bond_option_arp_ip_targets_set()
Jakub Kicinski <kuba(a)kernel.org>
tcp_metrics: validate source addr length
Neal Cardwell <ncardwell(a)google.com>
UPSTREAM: tcp: fix DSACK undo in fast recovery to call tcp_try_to_open()
Yuchung Cheng <ycheng(a)google.com>
net: tcp better handling of reordering then loss cases
Yousuk Seung <ysseung(a)google.com>
tcp: add ece_ack flag to reno sack functions
zhang kai <zhangkaiheb(a)126.com>
tcp: tcp_mark_head_lost is only valid for sack-tcp
Eric Dumazet <edumazet(a)google.com>
tcp: take care of compressed acks in tcp_add_reno_sack()
Holger Dengler <dengler(a)linux.ibm.com>
s390/pkey: Wipe sensitive data on failure
Wang Yong <wang.yong12(a)zte.com.cn>
jffs2: Fix potential illegal address access in jffs2_free_inode
Greg Kurz <groug(a)kaod.org>
powerpc/xmon: Check cpu id in commands "c#", "dp#" and "dx#"
Mike Marshall <hubcap(a)omnibond.com>
orangefs: fix out-of-bounds fsid access
Michael Ellerman <mpe(a)ellerman.id.au>
powerpc/64: Set _IO_BASE to POISON_POINTER_DELTA not 0 for CONFIG_PCI=n
Heiner Kallweit <hkallweit1(a)gmail.com>
i2c: i801: Annotate apanel_addr as __ro_after_init
Ricardo Ribalda <ribalda(a)chromium.org>
media: dvb-frontends: tda10048: Fix integer overflow
Ricardo Ribalda <ribalda(a)chromium.org>
media: s2255: Use refcount_t instead of atomic_t for num_channels
Ricardo Ribalda <ribalda(a)chromium.org>
media: dvb-frontends: tda18271c2dd: Remove casting during div
Simon Horman <horms(a)kernel.org>
net: dsa: mv88e6xxx: Correct check for empty list
Erick Archer <erick.archer(a)outlook.com>
Input: ff-core - prefer struct_size over open coded arithmetic
Jean Delvare <jdelvare(a)suse.de>
firmware: dmi: Stop decoding on broken entry
Erick Archer <erick.archer(a)outlook.com>
sctp: prefer struct_size over open coded arithmetic
Michael Bunk <micha(a)freedict.org>
media: dw2102: Don't translate i2c read into write
Alex Hung <alex.hung(a)amd.com>
drm/amd/display: Skip finding free audio for unknown engine_id
Michael Guralnik <michaelgur(a)nvidia.com>
IB/core: Implement a limit on UMAD receive List
Ricardo Ribalda <ribalda(a)chromium.org>
media: dvb-usb: dib0700_devices: Add missing release_firmware()
Ricardo Ribalda <ribalda(a)chromium.org>
media: dvb: as102-fe: Fix as10x_register_addr packing
-------------
Diffstat:
Makefile | 4 +-
arch/arm/mach-davinci/pm.c | 2 +-
arch/powerpc/include/asm/io.h | 2 +-
arch/powerpc/xmon/xmon.c | 6 +-
drivers/char/hpet.c | 34 ++++-
drivers/firmware/dmi_scan.c | 11 ++
drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 3 +
drivers/gpu/drm/amd/include/atomfirmware.h | 2 +-
drivers/gpu/drm/i915/intel_uncore.c | 20 +--
drivers/gpu/drm/nouveau/nouveau_connector.c | 3 +
drivers/i2c/busses/i2c-i801.c | 2 +-
drivers/i2c/busses/i2c-pnx.c | 48 ++-----
drivers/i2c/busses/i2c-rcar.c | 17 ++-
drivers/infiniband/core/user_mad.c | 21 ++-
drivers/input/ff-core.c | 7 +-
drivers/media/dvb-frontends/as102_fe_types.h | 2 +-
drivers/media/dvb-frontends/tda10048.c | 9 +-
drivers/media/dvb-frontends/tda18271c2dd.c | 4 +-
drivers/media/usb/dvb-usb/dib0700_devices.c | 18 ++-
drivers/media/usb/dvb-usb/dw2102.c | 120 +++++++++-------
drivers/media/usb/s2255/s2255drv.c | 20 +--
drivers/net/bonding/bond_options.c | 6 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c | 1 +
drivers/net/dsa/mv88e6xxx/chip.c | 4 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 2 +-
drivers/net/ethernet/lantiq_etop.c | 5 +-
drivers/net/ppp/ppp_generic.c | 15 ++
drivers/s390/crypto/pkey_api.c | 4 +-
drivers/usb/core/config.c | 18 ++-
drivers/usb/core/quirks.c | 3 +
drivers/usb/gadget/configfs.c | 3 +
drivers/usb/serial/option.c | 38 ++++++
fs/jffs2/super.c | 1 +
fs/nilfs2/alloc.c | 18 ++-
fs/nilfs2/alloc.h | 4 +-
fs/nilfs2/dat.c | 2 +-
fs/nilfs2/dir.c | 38 +++++-
fs/nilfs2/ifile.c | 7 +-
fs/nilfs2/nilfs.h | 10 +-
fs/nilfs2/the_nilfs.c | 6 +
fs/nilfs2/the_nilfs.h | 2 +-
fs/orangefs/super.c | 3 +-
include/linux/fsnotify.h | 8 +-
include/linux/sunrpc/clnt.h | 1 +
kernel/exit.c | 2 +
mm/page-writeback.c | 2 +-
net/bluetooth/hci_event.c | 2 +-
net/ceph/mon_client.c | 14 +-
net/ipv4/inet_diag.c | 2 +
net/ipv4/tcp_input.c | 158 ++++++++++++----------
net/ipv4/tcp_metrics.c | 1 +
net/ipv4/tcp_timer.c | 45 +++++-
net/sctp/socket.c | 7 +-
net/sunrpc/clnt.c | 5 +-
tools/testing/selftests/net/msg_zerocopy.c | 14 +-
55 files changed, 543 insertions(+), 263 deletions(-)