]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 6.1
authorSasha Levin <sashal@kernel.org>
Thu, 14 Nov 2024 18:07:18 +0000 (13:07 -0500)
committerSasha Levin <sashal@kernel.org>
Thu, 14 Nov 2024 18:07:18 +0000 (13:07 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-6.1/bpf-fix-mismatched-rcu-unlock-flavour-in-bpf_out_nei.patch [new file with mode: 0644]
queue-6.1/fs-fix-uninitialized-value-issue-in-from_kuid-and-fr.patch [new file with mode: 0644]
queue-6.1/hid-lenovo-add-support-for-thinkpad-x1-tablet-gen-3-.patch [new file with mode: 0644]
queue-6.1/hid-multitouch-add-quirk-for-logitech-bolt-receiver-.patch [new file with mode: 0644]
queue-6.1/loongarch-use-exception-return-address-to-comment-er.patch [new file with mode: 0644]
queue-6.1/net-usb-qmi_wwan-add-fibocom-fg132-0x0112-compositio.patch [new file with mode: 0644]
queue-6.1/series
queue-6.1/vdpa-ifcvf-fix-pci_read_config_byte-return-code-hand.patch [new file with mode: 0644]

diff --git a/queue-6.1/bpf-fix-mismatched-rcu-unlock-flavour-in-bpf_out_nei.patch b/queue-6.1/bpf-fix-mismatched-rcu-unlock-flavour-in-bpf_out_nei.patch
new file mode 100644 (file)
index 0000000..a48e8f2
--- /dev/null
@@ -0,0 +1,50 @@
+From d269d6f81cb265146b5921f6c7eb3289866a1eae Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 8 Nov 2024 08:18:52 +0000
+Subject: bpf: Fix mismatched RCU unlock flavour in bpf_out_neigh_v6
+
+From: Jiawei Ye <jiawei.ye@foxmail.com>
+
+[ Upstream commit fb86c42a2a5d44e849ddfbc98b8d2f4f40d36ee3 ]
+
+In the bpf_out_neigh_v6 function, rcu_read_lock() is used to begin an RCU
+read-side critical section. However, when unlocking, one branch
+incorrectly uses a different RCU unlock flavour rcu_read_unlock_bh()
+instead of rcu_read_unlock(). This mismatch in RCU locking flavours can
+lead to unexpected behavior and potential concurrency issues.
+
+This possible bug was identified using a static analysis tool developed
+by myself, specifically designed to detect RCU-related issues.
+
+This patch corrects the mismatched unlock flavour by replacing the
+incorrect rcu_read_unlock_bh() with the appropriate rcu_read_unlock(),
+ensuring that the RCU critical section is properly exited. This change
+prevents potential synchronization issues and aligns with proper RCU
+usage patterns.
+
+Fixes: 09eed1192cec ("neighbour: switch to standard rcu, instead of rcu_bh")
+Signed-off-by: Jiawei Ye <jiawei.ye@foxmail.com>
+Acked-by: Yonghong Song <yonghong.song@linux.dev>
+Link: https://lore.kernel.org/r/tencent_CFD3D1C3D68B45EA9F52D8EC76D2C4134306@qq.com
+Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/core/filter.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/net/core/filter.c b/net/core/filter.c
+index 3f3286cf438e7..2f6fef5f5864f 100644
+--- a/net/core/filter.c
++++ b/net/core/filter.c
+@@ -2226,7 +2226,7 @@ static int bpf_out_neigh_v6(struct net *net, struct sk_buff *skb,
+               rcu_read_unlock();
+               return ret;
+       }
+-      rcu_read_unlock_bh();
++      rcu_read_unlock();
+       if (dst)
+               IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTNOROUTES);
+ out_drop:
+-- 
+2.43.0
+
diff --git a/queue-6.1/fs-fix-uninitialized-value-issue-in-from_kuid-and-fr.patch b/queue-6.1/fs-fix-uninitialized-value-issue-in-from_kuid-and-fr.patch
new file mode 100644 (file)
index 0000000..9e9d268
--- /dev/null
@@ -0,0 +1,49 @@
+From ae999f133c5b3660830a93ada32e4f8978f7a397 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 17 Oct 2024 14:05:51 +0200
+Subject: fs: Fix uninitialized value issue in from_kuid and from_kgid
+
+From: Alessandro Zanni <alessandro.zanni87@gmail.com>
+
+[ Upstream commit 15f34347481648a567db67fb473c23befb796af5 ]
+
+ocfs2_setattr() uses attr->ia_mode, attr->ia_uid and attr->ia_gid in
+a trace point even though ATTR_MODE, ATTR_UID and ATTR_GID aren't set.
+
+Initialize all fields of newattrs to avoid uninitialized variables, by
+checking if ATTR_MODE, ATTR_UID, ATTR_GID are initialized, otherwise 0.
+
+Reported-by: syzbot+6c55f725d1bdc8c52058@syzkaller.appspotmail.com
+Closes: https://syzkaller.appspot.com/bug?extid=6c55f725d1bdc8c52058
+Signed-off-by: Alessandro Zanni <alessandro.zanni87@gmail.com>
+Link: https://lore.kernel.org/r/20241017120553.55331-1-alessandro.zanni87@gmail.com
+Reviewed-by: Jan Kara <jack@suse.cz>
+Signed-off-by: Christian Brauner <brauner@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/ocfs2/file.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
+index ea7c79e8ce429..e96b947c3f5dd 100644
+--- a/fs/ocfs2/file.c
++++ b/fs/ocfs2/file.c
+@@ -1129,9 +1129,12 @@ int ocfs2_setattr(struct user_namespace *mnt_userns, struct dentry *dentry,
+       trace_ocfs2_setattr(inode, dentry,
+                           (unsigned long long)OCFS2_I(inode)->ip_blkno,
+                           dentry->d_name.len, dentry->d_name.name,
+-                          attr->ia_valid, attr->ia_mode,
+-                          from_kuid(&init_user_ns, attr->ia_uid),
+-                          from_kgid(&init_user_ns, attr->ia_gid));
++                          attr->ia_valid,
++                              attr->ia_valid & ATTR_MODE ? attr->ia_mode : 0,
++                              attr->ia_valid & ATTR_UID ?
++                                      from_kuid(&init_user_ns, attr->ia_uid) : 0,
++                              attr->ia_valid & ATTR_GID ?
++                                      from_kgid(&init_user_ns, attr->ia_gid) : 0);
+       /* ensuring we don't even attempt to truncate a symlink */
+       if (S_ISLNK(inode->i_mode))
+-- 
+2.43.0
+
diff --git a/queue-6.1/hid-lenovo-add-support-for-thinkpad-x1-tablet-gen-3-.patch b/queue-6.1/hid-lenovo-add-support-for-thinkpad-x1-tablet-gen-3-.patch
new file mode 100644 (file)
index 0000000..90150a0
--- /dev/null
@@ -0,0 +1,88 @@
+From 1d44458c0e1f733d81d39387335c716de9051be9 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 10 Oct 2024 11:45:12 +0200
+Subject: HID: lenovo: Add support for Thinkpad X1 Tablet Gen 3 keyboard
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+[ Upstream commit 51268879eb2bfc563a91cdce69362d9dbf707e7e ]
+
+The Thinkpad X1 Tablet Gen 3 keyboard has the same Lenovo specific quirks
+as the original  Thinkpad X1 Tablet keyboard.
+
+Add the PID for the "Thinkpad X1 Tablet Gen 3 keyboard" to the hid-lenovo
+driver to fix the FnLock, Mute and media buttons not working.
+
+Suggested-by: Izhar Firdaus <izhar@fedoraproject.org>
+Closes https://bugzilla.redhat.com/show_bug.cgi?id=2315395
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/hid/hid-lenovo.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c
+index f86c1ea83a037..a4062f617ba20 100644
+--- a/drivers/hid/hid-lenovo.c
++++ b/drivers/hid/hid-lenovo.c
+@@ -473,6 +473,7 @@ static int lenovo_input_mapping(struct hid_device *hdev,
+               return lenovo_input_mapping_tp10_ultrabook_kbd(hdev, hi, field,
+                                                              usage, bit, max);
+       case USB_DEVICE_ID_LENOVO_X1_TAB:
++      case USB_DEVICE_ID_LENOVO_X1_TAB3:
+               return lenovo_input_mapping_x1_tab_kbd(hdev, hi, field, usage, bit, max);
+       default:
+               return 0;
+@@ -583,6 +584,7 @@ static ssize_t attr_fn_lock_store(struct device *dev,
+               break;
+       case USB_DEVICE_ID_LENOVO_TP10UBKBD:
+       case USB_DEVICE_ID_LENOVO_X1_TAB:
++      case USB_DEVICE_ID_LENOVO_X1_TAB3:
+               ret = lenovo_led_set_tp10ubkbd(hdev, TP10UBKBD_FN_LOCK_LED, value);
+               if (ret)
+                       return ret;
+@@ -777,6 +779,7 @@ static int lenovo_event(struct hid_device *hdev, struct hid_field *field,
+               return lenovo_event_cptkbd(hdev, field, usage, value);
+       case USB_DEVICE_ID_LENOVO_TP10UBKBD:
+       case USB_DEVICE_ID_LENOVO_X1_TAB:
++      case USB_DEVICE_ID_LENOVO_X1_TAB3:
+               return lenovo_event_tp10ubkbd(hdev, field, usage, value);
+       default:
+               return 0;
+@@ -1059,6 +1062,7 @@ static int lenovo_led_brightness_set(struct led_classdev *led_cdev,
+               break;
+       case USB_DEVICE_ID_LENOVO_TP10UBKBD:
+       case USB_DEVICE_ID_LENOVO_X1_TAB:
++      case USB_DEVICE_ID_LENOVO_X1_TAB3:
+               ret = lenovo_led_set_tp10ubkbd(hdev, tp10ubkbd_led[led_nr], value);
+               break;
+       }
+@@ -1289,6 +1293,7 @@ static int lenovo_probe(struct hid_device *hdev,
+               break;
+       case USB_DEVICE_ID_LENOVO_TP10UBKBD:
+       case USB_DEVICE_ID_LENOVO_X1_TAB:
++      case USB_DEVICE_ID_LENOVO_X1_TAB3:
+               ret = lenovo_probe_tp10ubkbd(hdev);
+               break;
+       default:
+@@ -1375,6 +1380,7 @@ static void lenovo_remove(struct hid_device *hdev)
+               break;
+       case USB_DEVICE_ID_LENOVO_TP10UBKBD:
+       case USB_DEVICE_ID_LENOVO_X1_TAB:
++      case USB_DEVICE_ID_LENOVO_X1_TAB3:
+               lenovo_remove_tp10ubkbd(hdev);
+               break;
+       }
+@@ -1424,6 +1430,8 @@ static const struct hid_device_id lenovo_devices[] = {
+        */
+       { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+                    USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_TAB) },
++      { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
++                   USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_TAB3) },
+       { }
+ };
+-- 
+2.43.0
+
diff --git a/queue-6.1/hid-multitouch-add-quirk-for-logitech-bolt-receiver-.patch b/queue-6.1/hid-multitouch-add-quirk-for-logitech-bolt-receiver-.patch
new file mode 100644 (file)
index 0000000..f012845
--- /dev/null
@@ -0,0 +1,58 @@
+From 2bf257b90cae0f47227f5aa4f3eb53df3e489cc4 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 4 Oct 2024 10:24:29 -0700
+Subject: HID: multitouch: Add quirk for Logitech Bolt receiver w/ Casa
+ touchpad
+
+From: Kenneth Albanowski <kenalba@chromium.org>
+
+[ Upstream commit 526748b925185e95f1415900ee13c2469d4b64cc ]
+
+The Logitech Casa Touchpad does not reliably send touch release signals
+when communicating through the Logitech Bolt wireless-to-USB receiver.
+
+Adjusting the device class to add MT_QUIRK_NOT_SEEN_MEANS_UP to make
+sure that no touches become stuck, MT_QUIRK_FORCE_MULTI_INPUT is not
+needed, but harmless.
+
+Linux does not have information on which devices are connected to the
+Bolt receiver, so we have to enable this for the entire device.
+
+Signed-off-by: Kenneth Albanowski <kenalba@chromium.org>
+Signed-off-by: Jiri Kosina <jkosina@suse.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/hid/hid-ids.h        | 1 +
+ drivers/hid/hid-multitouch.c | 4 ++++
+ 2 files changed, 5 insertions(+)
+
+diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
+index f3b183a7b7fa4..f1c106f5e90b9 100644
+--- a/drivers/hid/hid-ids.h
++++ b/drivers/hid/hid-ids.h
+@@ -859,6 +859,7 @@
+ #define USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1     0xc539
+ #define USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1_1   0xc53f
+ #define USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_POWERPLAY        0xc53a
++#define USB_DEVICE_ID_LOGITECH_BOLT_RECEIVER  0xc548
+ #define USB_DEVICE_ID_SPACETRAVELLER  0xc623
+ #define USB_DEVICE_ID_SPACENAVIGATOR  0xc626
+ #define USB_DEVICE_ID_DINOVO_DESKTOP  0xc704
+diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
+index c2d79b2d6cdd2..bf9cad7112592 100644
+--- a/drivers/hid/hid-multitouch.c
++++ b/drivers/hid/hid-multitouch.c
+@@ -2140,6 +2140,10 @@ static const struct hid_device_id mt_devices[] = {
+               HID_DEVICE(BUS_BLUETOOTH, HID_GROUP_MULTITOUCH_WIN_8,
+                       USB_VENDOR_ID_LOGITECH,
+                       USB_DEVICE_ID_LOGITECH_CASA_TOUCHPAD) },
++      { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT_NSMU,
++              HID_DEVICE(BUS_USB, HID_GROUP_MULTITOUCH_WIN_8,
++                      USB_VENDOR_ID_LOGITECH,
++                      USB_DEVICE_ID_LOGITECH_BOLT_RECEIVER) },
+       /* MosArt panels */
+       { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
+-- 
+2.43.0
+
diff --git a/queue-6.1/loongarch-use-exception-return-address-to-comment-er.patch b/queue-6.1/loongarch-use-exception-return-address-to-comment-er.patch
new file mode 100644 (file)
index 0000000..7d3707d
--- /dev/null
@@ -0,0 +1,36 @@
+From 9bb30672486ebdebe8162e2be3c7d61f7aa3d965 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 21 Oct 2024 22:11:18 +0800
+Subject: LoongArch: Use "Exception return address" to comment ERA
+
+From: Yanteng Si <siyanteng@cqsoftware.com.cn>
+
+[ Upstream commit b69269c870ece1bc7d2e3e39ca76f4602f2cb0dd ]
+
+The information contained in the comment for LOONGARCH_CSR_ERA is even
+less informative than the macro itself, which can cause confusion for
+junior developers. Let's use the full English term.
+
+Signed-off-by: Yanteng Si <siyanteng@cqsoftware.com.cn>
+Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/loongarch/include/asm/loongarch.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/loongarch/include/asm/loongarch.h b/arch/loongarch/include/asm/loongarch.h
+index 3d15fa5bef37d..710b005fc8a69 100644
+--- a/arch/loongarch/include/asm/loongarch.h
++++ b/arch/loongarch/include/asm/loongarch.h
+@@ -325,7 +325,7 @@ static __always_inline void iocsr_write64(u64 val, u32 reg)
+ #define  CSR_ESTAT_IS_WIDTH           15
+ #define  CSR_ESTAT_IS                 (_ULCAST_(0x7fff) << CSR_ESTAT_IS_SHIFT)
+-#define LOONGARCH_CSR_ERA             0x6     /* ERA */
++#define LOONGARCH_CSR_ERA             0x6     /* Exception return address */
+ #define LOONGARCH_CSR_BADV            0x7     /* Bad virtual address */
+-- 
+2.43.0
+
diff --git a/queue-6.1/net-usb-qmi_wwan-add-fibocom-fg132-0x0112-compositio.patch b/queue-6.1/net-usb-qmi_wwan-add-fibocom-fg132-0x0112-compositio.patch
new file mode 100644 (file)
index 0000000..1fbc747
--- /dev/null
@@ -0,0 +1,57 @@
+From f19c9299ed9c510de5252e463e91fe1122585ab4 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 18 Oct 2024 22:52:55 +0200
+Subject: net: usb: qmi_wwan: add Fibocom FG132 0x0112 composition
+
+From: Reinhard Speyerer <rspmn@arcor.de>
+
+[ Upstream commit 64761c980cbf71fb7a532a8c7299907ea972a88c ]
+
+Add Fibocom FG132 0x0112 composition:
+
+T:  Bus=03 Lev=02 Prnt=06 Port=01 Cnt=02 Dev#= 10 Spd=12   MxCh= 0
+D:  Ver= 2.01 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
+P:  Vendor=2cb7 ProdID=0112 Rev= 5.15
+S:  Manufacturer=Fibocom Wireless Inc.
+S:  Product=Fibocom Module
+S:  SerialNumber=xxxxxxxx
+C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
+I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan
+E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
+E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
+E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+E:  Ad=83(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
+E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
+E:  Ad=84(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+E:  Ad=03(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
+E:  Ad=86(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
+
+Signed-off-by: Reinhard Speyerer <rspmn@arcor.de>
+
+Link: https://patch.msgid.link/ZxLKp5YZDy-OM0-e@arcor.de
+Signed-off-by: Paolo Abeni <pabeni@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/usb/qmi_wwan.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
+index 72a2c41b9dbf8..fe9abc4ea3afe 100644
+--- a/drivers/net/usb/qmi_wwan.c
++++ b/drivers/net/usb/qmi_wwan.c
+@@ -1431,6 +1431,7 @@ static const struct usb_device_id products[] = {
+       {QMI_FIXED_INTF(0x2c7c, 0x0296, 4)},    /* Quectel BG96 */
+       {QMI_QUIRK_SET_DTR(0x2c7c, 0x030e, 4)}, /* Quectel EM05GV2 */
+       {QMI_QUIRK_SET_DTR(0x2cb7, 0x0104, 4)}, /* Fibocom NL678 series */
++      {QMI_QUIRK_SET_DTR(0x2cb7, 0x0112, 0)}, /* Fibocom FG132 */
+       {QMI_FIXED_INTF(0x0489, 0xe0b4, 0)},    /* Foxconn T77W968 LTE */
+       {QMI_FIXED_INTF(0x0489, 0xe0b5, 0)},    /* Foxconn T77W968 LTE with eSIM support*/
+       {QMI_FIXED_INTF(0x2692, 0x9025, 4)},    /* Cellient MPL200 (rebranded Qualcomm 05c6:9025) */
+-- 
+2.43.0
+
index 12b76205aa45f0180b6bf461365894ee1aab1793..cc3f120e95889ab751fd603ec0495200e48a7cea 100644 (file)
@@ -19,3 +19,10 @@ kasan-disable-software-tag-based-kasan-with-gcc.patch
 nvme-multipath-defer-partition-scanning.patch
 powerpc-powernv-free-name-on-error-in-opal_event_ini.patch
 nvme-make-keep-alive-synchronous-operation.patch
+vdpa-ifcvf-fix-pci_read_config_byte-return-code-hand.patch
+bpf-fix-mismatched-rcu-unlock-flavour-in-bpf_out_nei.patch
+fs-fix-uninitialized-value-issue-in-from_kuid-and-fr.patch
+hid-multitouch-add-quirk-for-logitech-bolt-receiver-.patch
+hid-lenovo-add-support-for-thinkpad-x1-tablet-gen-3-.patch
+loongarch-use-exception-return-address-to-comment-er.patch
+net-usb-qmi_wwan-add-fibocom-fg132-0x0112-compositio.patch
diff --git a/queue-6.1/vdpa-ifcvf-fix-pci_read_config_byte-return-code-hand.patch b/queue-6.1/vdpa-ifcvf-fix-pci_read_config_byte-return-code-hand.patch
new file mode 100644 (file)
index 0000000..1700674
--- /dev/null
@@ -0,0 +1,41 @@
+From 6f31a732f8fca7c55f18990a8ccaa5e5e7be328d Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 17 Oct 2024 09:38:12 +0800
+Subject: vDPA/ifcvf: Fix pci_read_config_byte() return code handling
+
+From: Yuan Can <yuancan@huawei.com>
+
+[ Upstream commit 7f8825b2a78ac392d3fbb3a2e65e56d9e39d75e9 ]
+
+ifcvf_init_hw() uses pci_read_config_byte() that returns
+PCIBIOS_* codes. The error handling, however, assumes the codes are
+normal errnos because it checks for < 0.
+Convert the error check to plain non-zero check.
+
+Fixes: 5a2414bc454e ("virtio: Intel IFC VF driver for VDPA")
+Signed-off-by: Yuan Can <yuancan@huawei.com>
+Message-Id: <20241017013812.129952-1-yuancan@huawei.com>
+Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
+Acked-by: Jason Wang <jasowang@redhat.com>
+Acked-by: Zhu Lingshan <lingshan.zhu@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/vdpa/ifcvf/ifcvf_base.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/vdpa/ifcvf/ifcvf_base.c b/drivers/vdpa/ifcvf/ifcvf_base.c
+index 3ec5ca3aefe1d..c80cb72b06491 100644
+--- a/drivers/vdpa/ifcvf/ifcvf_base.c
++++ b/drivers/vdpa/ifcvf/ifcvf_base.c
+@@ -78,7 +78,7 @@ int ifcvf_init_hw(struct ifcvf_hw *hw, struct pci_dev *pdev)
+       u32 i;
+       ret = pci_read_config_byte(pdev, PCI_CAPABILITY_LIST, &pos);
+-      if (ret < 0) {
++      if (ret) {
+               IFCVF_ERR(pdev, "Failed to read PCI capability list\n");
+               return -EIO;
+       }
+-- 
+2.43.0
+