aboutsummaryrefslogtreecommitdiff
path: root/SOURCES/patch-6.7-redhat.patch
diff options
context:
space:
mode:
Diffstat (limited to 'SOURCES/patch-6.7-redhat.patch')
-rw-r--r--SOURCES/patch-6.7-redhat.patch256
1 files changed, 44 insertions, 212 deletions
diff --git a/SOURCES/patch-6.7-redhat.patch b/SOURCES/patch-6.7-redhat.patch
index 1b4f19b..5e62197 100644
--- a/SOURCES/patch-6.7-redhat.patch
+++ b/SOURCES/patch-6.7-redhat.patch
@@ -14,16 +14,17 @@
drivers/firmware/efi/efi.c | 124 +++++++++++----
drivers/firmware/efi/secureboot.c | 38 +++++
drivers/firmware/sysfb.c | 18 ++-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 +
drivers/hid/hid-rmi.c | 66 --------
drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 +++
drivers/input/keyboard/atkbd.c | 3 +-
drivers/input/rmi4/rmi_driver.c | 124 +++++++++------
drivers/iommu/iommu.c | 22 +++
- drivers/net/wireless/ath/ath10k/wmi-tlv.c | 4 +
drivers/pci/quirks.c | 24 +++
drivers/platform/x86/thinkpad_acpi.c | 20 ++-
drivers/scsi/sd.c | 10 ++
drivers/usb/core/hub.c | 7 +
+ fs/xfs/xfs_iomap.c | 4 +-
include/linux/efi.h | 22 ++-
include/linux/lsm_hook_defs.h | 2 +
include/linux/module.h | 1 +
@@ -32,7 +33,6 @@
include/linux/security.h | 5 +
kernel/module/main.c | 2 +
kernel/module/signing.c | 9 +-
- net/bluetooth/rfcomm/core.c | 2 +-
scripts/mod/modpost.c | 8 +
scripts/tags.sh | 2 +
security/integrity/platform_certs/load_uefi.c | 6 +-
@@ -40,9 +40,7 @@
security/lockdown/lockdown.c | 1 +
security/security.c | 12 ++
tools/power/cpupower/Makefile | 2 +-
- .../selftests/net/openvswitch/openvswitch.sh | 13 ++
- .../testing/selftests/net/openvswitch/ovs-dpctl.py | 71 +++++++--
- 44 files changed, 771 insertions(+), 195 deletions(-)
+ 42 files changed, 701 insertions(+), 181 deletions(-)
diff --git a/Documentation/admin-guide/laptops/thinkpad-acpi.rst b/Documentation/admin-guide/laptops/thinkpad-acpi.rst
index 98d304010170..7f674a6cfa8a 100644
@@ -70,7 +68,7 @@ index 98d304010170..7f674a6cfa8a 100644
0x1020 0x1F unknown
diff --git a/Makefile b/Makefile
-index 00c159535dab..c4fed2e416db 100644
+index 6e3182cdf016..9cc543a90f97 100644
--- a/Makefile
+++ b/Makefile
@@ -22,6 +22,18 @@ $(if $(filter __%, $(MAKECMDGOALS)), \
@@ -264,10 +262,10 @@ index 1687483ff319..390b67f19181 100644
return ctx.rc;
}
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
-index 02bb2cce423f..4a6287d7a22d 100644
+index 35ad5781f0a5..63245639aecf 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
-@@ -1757,6 +1757,15 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
+@@ -1753,6 +1753,15 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
if (!acpi_match_device_ids(device, ignore_serial_bus_ids))
return false;
@@ -610,6 +608,19 @@ index 3c197db42c9d..16e4a2e90fae 100644
pd = sysfb_create_simplefb(si, &mode);
if (!IS_ERR(pd))
goto unlock_mutex;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index 7f48c7ec4136..c8ce83be5376 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -4451,6 +4451,8 @@ int amdgpu_device_prepare(struct drm_device *dev)
+ if (r)
+ goto unprepare;
+
++ flush_delayed_work(&adev->gfx.gfx_off_delay_work);
++
+ for (i = 0; i < adev->num_ip_blocks; i++) {
+ if (!adev->ip_blocks[i].status.valid)
+ continue;
diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
index d4af17fdba46..154f0403cbf4 100644
--- a/drivers/hid/hid-rmi.c
@@ -713,7 +724,7 @@ index d4af17fdba46..154f0403cbf4 100644
data->xport.ops = &hid_rmi_ops;
diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c
-index 34aee59dd147..7c5a7f7c11bd 100644
+index 18c4544f6045..4c37cdc40426 100644
--- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
+++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
@@ -10,6 +10,7 @@
@@ -1016,23 +1027,8 @@ index 33e2a9b5d339..6ae1abc3f11c 100644
/**
* iommu_setup_default_domain - Set the default_domain for the group
* @group: Group to change
-diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.c b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
-index 6b6aa3c36744..0ce08e9a0a3d 100644
---- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
-+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
-@@ -851,6 +851,10 @@ ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev(struct ath10k *ar, struct sk_buff *skb,
- }
-
- ev = tb[WMI_TLV_TAG_STRUCT_MGMT_TX_COMPL_EVENT];
-+ if (!ev) {
-+ kfree(tb);
-+ return -EPROTO;
-+ }
-
- arg->desc_id = ev->desc_id;
- arg->status = ev->status;
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index a2bf6de11462..692a9e777d72 100644
+index 528044237bf9..c50375d40fa0 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -4426,6 +4426,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9000,
@@ -1157,6 +1153,28 @@ index 4854d883e601..e1ee781ca985 100644
/* Lock the device, then check to see if we were
* disconnected while waiting for the lock to succeed. */
usb_lock_device(hdev);
+diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c
+index 18c8f168b153..055cdec2e9ad 100644
+--- a/fs/xfs/xfs_iomap.c
++++ b/fs/xfs/xfs_iomap.c
+@@ -1323,7 +1323,7 @@ xfs_seek_iomap_begin(
+ if (cow_fsb != NULLFILEOFF && cow_fsb <= offset_fsb) {
+ if (data_fsb < cow_fsb + cmap.br_blockcount)
+ end_fsb = min(end_fsb, data_fsb);
+- xfs_trim_extent(&cmap, offset_fsb, end_fsb);
++ xfs_trim_extent(&cmap, offset_fsb, end_fsb - offset_fsb);
+ seq = xfs_iomap_inode_sequence(ip, IOMAP_F_SHARED);
+ error = xfs_bmbt_to_iomap(ip, iomap, &cmap, flags,
+ IOMAP_F_SHARED, seq);
+@@ -1348,7 +1348,7 @@ xfs_seek_iomap_begin(
+ imap.br_state = XFS_EXT_NORM;
+ done:
+ seq = xfs_iomap_inode_sequence(ip, 0);
+- xfs_trim_extent(&imap, offset_fsb, end_fsb);
++ xfs_trim_extent(&imap, offset_fsb, end_fsb - offset_fsb);
+ error = xfs_bmbt_to_iomap(ip, iomap, &imap, flags, 0, seq);
+ out_unlock:
+ xfs_iunlock(ip, lockmode);
diff --git a/include/linux/efi.h b/include/linux/efi.h
index 9cc5bf32f6f2..7462fb1fc99e 100644
--- a/include/linux/efi.h
@@ -1464,7 +1482,7 @@ index 9d3138c6364c..7089843865bf 100644
#if defined(CONFIG_SECURITY) && defined(CONFIG_WATCH_QUEUE)
diff --git a/kernel/module/main.c b/kernel/module/main.c
-index 98fedfdb8db5..a21921f880e1 100644
+index 34d9e718c2c7..1c8b40b19014 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -528,6 +528,7 @@ static struct module_attribute modinfo_##field = { \
@@ -1506,19 +1524,6 @@ index a2ff4242e623..f0d2be1ee4f1 100644
}
int module_sig_check(struct load_info *info, int flags)
-diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
-index 053ef8f25fae..1d34d8497033 100644
---- a/net/bluetooth/rfcomm/core.c
-+++ b/net/bluetooth/rfcomm/core.c
-@@ -1941,7 +1941,7 @@ static struct rfcomm_session *rfcomm_process_rx(struct rfcomm_session *s)
- /* Get data directly from socket receive queue without copying it. */
- while ((skb = skb_dequeue(&sk->sk_receive_queue))) {
- skb_orphan(skb);
-- if (!skb_linearize(skb)) {
-+ if (!skb_linearize(skb) && sk->sk_state != BT_CLOSED) {
- s = rfcomm_recv_frame(s, skb);
- if (!s)
- break;
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index f7c4d3fe4381..7fd1ef7930c6 100644
--- a/scripts/mod/modpost.c
@@ -1661,176 +1666,3 @@ index b53753dee02f..90701fc65aa2 100644
PACKAGE = cpupower
PACKAGE_BUGREPORT = linux-pm@vger.kernel.org
-diff --git a/tools/testing/selftests/net/openvswitch/openvswitch.sh b/tools/testing/selftests/net/openvswitch/openvswitch.sh
-index f8499d4c87f3..36e40256ab92 100755
---- a/tools/testing/selftests/net/openvswitch/openvswitch.sh
-+++ b/tools/testing/selftests/net/openvswitch/openvswitch.sh
-@@ -502,7 +502,20 @@ test_netlink_checks () {
- wc -l) == 2 ] || \
- return 1
-
-+ info "Checking clone depth"
- ERR_MSG="Flow actions may not be safe on all matching packets"
-+ PRE_TEST=$(dmesg | grep -c "${ERR_MSG}")
-+ ovs_add_flow "test_netlink_checks" nv0 \
-+ 'in_port(1),eth(),eth_type(0x800),ipv4()' \
-+ 'clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(drop)))))))))))))))))' \
-+ >/dev/null 2>&1 && return 1
-+ POST_TEST=$(dmesg | grep -c "${ERR_MSG}")
-+
-+ if [ "$PRE_TEST" == "$POST_TEST" ]; then
-+ info "failed - clone depth too large"
-+ return 1
-+ fi
-+
- PRE_TEST=$(dmesg | grep -c "${ERR_MSG}")
- ovs_add_flow "test_netlink_checks" nv0 \
- 'in_port(1),eth(),eth_type(0x0806),arp()' 'drop(0),2' \
-diff --git a/tools/testing/selftests/net/openvswitch/ovs-dpctl.py b/tools/testing/selftests/net/openvswitch/ovs-dpctl.py
-index b97e621face9..5e0e539a323d 100644
---- a/tools/testing/selftests/net/openvswitch/ovs-dpctl.py
-+++ b/tools/testing/selftests/net/openvswitch/ovs-dpctl.py
-@@ -299,7 +299,7 @@ class ovsactions(nla):
- ("OVS_ACTION_ATTR_PUSH_NSH", "none"),
- ("OVS_ACTION_ATTR_POP_NSH", "flag"),
- ("OVS_ACTION_ATTR_METER", "none"),
-- ("OVS_ACTION_ATTR_CLONE", "none"),
-+ ("OVS_ACTION_ATTR_CLONE", "recursive"),
- ("OVS_ACTION_ATTR_CHECK_PKT_LEN", "none"),
- ("OVS_ACTION_ATTR_ADD_MPLS", "none"),
- ("OVS_ACTION_ATTR_DEC_TTL", "none"),
-@@ -465,29 +465,42 @@ class ovsactions(nla):
- print_str += "pop_mpls"
- else:
- datum = self.get_attr(field[0])
-- print_str += datum.dpstr(more)
-+ if field[0] == "OVS_ACTION_ATTR_CLONE":
-+ print_str += "clone("
-+ print_str += datum.dpstr(more)
-+ print_str += ")"
-+ else:
-+ print_str += datum.dpstr(more)
-
- return print_str
-
- def parse(self, actstr):
-+ totallen = len(actstr)
- while len(actstr) != 0:
- parsed = False
-+ parencount = 0
- if actstr.startswith("drop"):
- # If no reason is provided, the implicit drop is used (i.e no
- # action). If some reason is given, an explicit action is used.
-- actstr, reason = parse_extract_field(
-- actstr,
-- "drop(",
-- "([0-9]+)",
-- lambda x: int(x, 0),
-- False,
-- None,
-- )
-+ reason = None
-+ if actstr.startswith("drop("):
-+ parencount += 1
-+
-+ actstr, reason = parse_extract_field(
-+ actstr,
-+ "drop(",
-+ "([0-9]+)",
-+ lambda x: int(x, 0),
-+ False,
-+ None,
-+ )
-+
- if reason is not None:
- self["attrs"].append(["OVS_ACTION_ATTR_DROP", reason])
- parsed = True
- else:
-- return
-+ actstr = actstr[len("drop"): ]
-+ return (totallen - len(actstr))
-
- elif parse_starts_block(actstr, "^(\d+)", False, True):
- actstr, output = parse_extract_field(
-@@ -504,6 +517,7 @@ class ovsactions(nla):
- False,
- 0,
- )
-+ parencount += 1
- self["attrs"].append(["OVS_ACTION_ATTR_RECIRC", recircid])
- parsed = True
-
-@@ -516,12 +530,22 @@ class ovsactions(nla):
-
- for flat_act in parse_flat_map:
- if parse_starts_block(actstr, flat_act[0], False):
-- actstr += len(flat_act[0])
-+ actstr = actstr[len(flat_act[0]):]
- self["attrs"].append([flat_act[1]])
- actstr = actstr[strspn(actstr, ", ") :]
- parsed = True
-
-- if parse_starts_block(actstr, "ct(", False):
-+ if parse_starts_block(actstr, "clone(", False):
-+ parencount += 1
-+ subacts = ovsactions()
-+ actstr = actstr[len("clone("):]
-+ parsedLen = subacts.parse(actstr)
-+ lst = []
-+ self["attrs"].append(("OVS_ACTION_ATTR_CLONE", subacts))
-+ actstr = actstr[parsedLen:]
-+ parsed = True
-+ elif parse_starts_block(actstr, "ct(", False):
-+ parencount += 1
- actstr = actstr[len("ct(") :]
- ctact = ovsactions.ctact()
-
-@@ -553,6 +577,7 @@ class ovsactions(nla):
- natact = ovsactions.ctact.natattr()
-
- if actstr.startswith("("):
-+ parencount += 1
- t = None
- actstr = actstr[1:]
- if actstr.startswith("src"):
-@@ -607,15 +632,29 @@ class ovsactions(nla):
- actstr = actstr[strspn(actstr, ", ") :]
-
- ctact["attrs"].append(["OVS_CT_ATTR_NAT", natact])
-- actstr = actstr[strspn(actstr, ",) ") :]
-+ actstr = actstr[strspn(actstr, ", ") :]
-
- self["attrs"].append(["OVS_ACTION_ATTR_CT", ctact])
- parsed = True
-
-- actstr = actstr[strspn(actstr, "), ") :]
-+ actstr = actstr[strspn(actstr, ", ") :]
-+ while parencount > 0:
-+ parencount -= 1
-+ actstr = actstr[strspn(actstr, " "):]
-+ if len(actstr) and actstr[0] != ")":
-+ raise ValueError("Action str: '%s' unbalanced" % actstr)
-+ actstr = actstr[1:]
-+
-+ if len(actstr) and actstr[0] == ")":
-+ return (totallen - len(actstr))
-+
-+ actstr = actstr[strspn(actstr, ", ") :]
-+
- if not parsed:
- raise ValueError("Action str: '%s' not supported" % actstr)
-
-+ return (totallen - len(actstr))
-+
-
- class ovskey(nla):
- nla_flags = NLA_F_NESTED
-@@ -2111,6 +2150,8 @@ def main(argv):
- ovsflow = OvsFlow()
- ndb = NDB()
-
-+ sys.setrecursionlimit(100000)
-+
- if hasattr(args, "showdp"):
- found = False
- for iface in ndb.interfaces: