5.10.45-rc1 review
Subsystems (2)
Greg Kroah-Hartman
maintainercover 5.10.45-rc1 review
This is the start of the stable review cycle for the 5.10.45 release. There are 38 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, 18 Jun 2021 15:28:19 +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.10.45-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <[email protected]>
Linux 5.10.45-rc1
Zheng Yongjun <[email protected]>
fib: Return the correct errno code
Zheng Yongjun <[email protected]>
net: Return the correct errno code
Zheng Yongjun <[email protected]>
net/x25: Return the correct errno code
Jiapeng Chong <[email protected]>
rtnetlink: Fix missing error code in rtnl_bridge_notify()
Victor Zhao <[email protected]>
drm/amd/amdgpu:save psp ring wptr to avoid attack
Roman Li <[email protected]>
drm/amd/display: Fix potential memory leak in DMUB hw_init
Rodrigo Siqueira <[email protected]>
drm/amd/display: Fix overlay validation by considering cursors
Jiansong Chen <[email protected]>
drm/amdgpu: refine amdgpu_fru_get_product_info
Bindu Ramamurthy <[email protected]>
drm/amd/display: Allow bandwidth validation for 0 streams.
Josh Triplett <[email protected]>
net: ipconfig: Don't override command-line hostnames or domains
Hannes Reinecke <[email protected]>
nvme-loop: do not warn for deleted controllers during reset
Hannes Reinecke <[email protected]>
nvme-loop: check for NVME_LOOP_Q_LIVE in nvme_loop_destroy_admin_queue()
Hannes Reinecke <[email protected]>
nvme-loop: clear NVME_LOOP_Q_LIVE when nvme_loop_configure_admin_queue() fails
Hannes Reinecke <[email protected]>
nvme-loop: reset queue count to 1 in nvme_loop_destroy_io_queues()
Ewan D. Milne <[email protected]>
scsi: scsi_devinfo: Add blacklist entry for HPE OPEN-V
Larry Finger <[email protected]>
Bluetooth: Add a new USB ID for RTL8822CE
Daniel Wagner <[email protected]>
scsi: qedf: Do not put host in qedf_vport_create() unconditionally
Jiapeng Chong <[email protected]>
ethernet: myri10ge: Fix missing error code in myri10ge_probe()
Maurizio Lombardi <[email protected]>
scsi: target: core: Fix warning on realtime kernels
Hillf Danton <[email protected]>
gfs2: Fix use-after-free in gfs2_glock_shrink_scan
Khem Raj <[email protected]>
riscv: Use -mno-relax when using lld linker
Bixuan Cui <[email protected]>
HID: gt683r: add missing MODULE_DEVICE_TABLE
Bob Peterson <[email protected]>
gfs2: fix a deadlock on withdraw-during-mount
Andreas Gruenbacher <[email protected]>
gfs2: Prevent direct-I/O write fallback errors from getting lost
Yongqiang Liu <[email protected]>
ARM: OMAP2+: Fix build warning when mmc_omap is not built
Maciej Falkowski <[email protected]>
ARM: OMAP1: Fix use of possibly uninitialized irq variable
Thierry Reding <[email protected]>
drm/tegra: sor: Fully initialize SOR before registration
Thierry Reding <[email protected]>
gpu: host1x: Split up client initalization and registration
Pavel Machek (CIP) <[email protected]>
drm/tegra: sor: Do not leak runtime PM reference
Anirudh Rayabharam <[email protected]>
HID: usbhid: fix info leak in hid_submit_ctrl
Mark Bolhuis <[email protected]>
HID: Add BUS_VIRTUAL to hid_connect logging
Ahelenia Ziemiańska <[email protected]>
HID: multitouch: set Stylus suffix for Stylus-application devices, too
Saeed Mirzamohammadi <[email protected]>
HID: quirks: Add quirk for Lenovo optical mouse
Srinivas Pandruvada <[email protected]>
HID: hid-sensor-hub: Return error for hid_set_field() failure
Dmitry Torokhov <[email protected]>
HID: hid-input: add mapping for emoji picker key
Mateusz Jończyk <[email protected]>
HID: a4tech: use A4_2WHEEL_MOUSE_HACK_B8 for A4TECH NB-95
Nirenjan Krishnan <[email protected]>
HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for Saitek X65
Dan Robertson <[email protected]>
net: ieee802154: fix null deref in parse dev addr
-------------
Diffstat:
Makefile | 4 +-- arch/arm/mach-omap1/pm.c | 10 ++++-- arch/arm/mach-omap2/board-n8x0.c | 2 +- arch/riscv/Makefile | 9 +++++ drivers/bluetooth/btusb.c | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c | 42 ++++++++++++---------- drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 1 + drivers/gpu/drm/amd/amdgpu/psp_v11_0.c | 3 +- drivers/gpu/drm/amd/amdgpu/psp_v3_1.c | 3 +- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 14 ++++++-- .../gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 2 +- drivers/gpu/drm/tegra/sor.c | 41 +++++++++++---------- drivers/gpu/host1x/bus.c | 30 ++++++++++++---- drivers/hid/Kconfig | 4 +-- drivers/hid/hid-a4tech.c | 2 ++ drivers/hid/hid-core.c | 3 ++ drivers/hid/hid-debug.c | 1 + drivers/hid/hid-gt683r.c | 1 + drivers/hid/hid-ids.h | 3 ++ drivers/hid/hid-input.c | 3 ++ drivers/hid/hid-multitouch.c | 8 ++--- drivers/hid/hid-quirks.c | 3 ++ drivers/hid/hid-sensor-hub.c | 13 ++++--- drivers/hid/usbhid/hid-core.c | 2 +- drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 1 + drivers/nvme/target/loop.c | 11 ++++-- drivers/scsi/qedf/qedf_main.c | 20 +++++------ drivers/scsi/scsi_devinfo.c | 1 + drivers/target/target_core_transport.c | 4 +-- fs/gfs2/file.c | 5 ++- fs/gfs2/glock.c | 26 +++++++++++--- include/linux/hid.h | 3 +- include/linux/host1x.h | 30 ++++++++++++---- include/uapi/linux/input-event-codes.h | 1 + net/compat.c | 2 +- net/core/fib_rules.c | 2 +- net/core/rtnetlink.c | 4 ++- net/ieee802154/nl802154.c | 9 ++--- net/ipv4/ipconfig.c | 13 ++++--- net/x25/af_x25.c | 2 +- 40 files changed, 231 insertions(+), 109 deletions(-)
Greg Kroah-Hartman
maintainerPATCH 1/38 net: ieee802154: fix null deref in parse dev addr
From: Dan Robertson <[email protected]>
[ Upstream commit 9fdd04918a452980631ecc499317881c1d120b70 ]
Fix a logic error that could result in a null deref if the user sets the mode incorrectly for the given addr type.
--- net/ieee802154/nl802154.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
net/ieee802154/nl802154.c +5 -4
@@ -1298,19 +1298,20 @@ ieee802154_llsec_parse_dev_addr(struct nlattr *nla,if (!nla ||nla_parse_nested_deprecated (attrs,NL802154_DEV_ADDR_ATTR_MAX , nla, nl802154_dev_addr_policy,NULL ))return -EINVAL ; -if (!attrs[NL802154_DEV_ADDR_ATTR_PAN_ID ] || - !attrs[NL802154_DEV_ADDR_ATTR_MODE ] || - !(attrs[NL802154_DEV_ADDR_ATTR_SHORT ] || - attrs[NL802154_DEV_ADDR_ATTR_EXTENDED ])) +if (!attrs[NL802154_DEV_ADDR_ATTR_PAN_ID ] || !attrs[NL802154_DEV_ADDR_ATTR_MODE ])return -EINVAL ; addr->pan_id =nla_get_le16 (attrs[NL802154_DEV_ADDR_ATTR_PAN_ID ]); addr->mode =nla_get_u32 (attrs[NL802154_DEV_ADDR_ATTR_MODE ]);switch (addr->mode) {case NL802154_DEV_ADDR_SHORT : +if (!attrs[NL802154_DEV_ADDR_ATTR_SHORT ]) +return -EINVAL ; addr->short_addr =nla_get_le16 (attrs[NL802154_DEV_ADDR_ATTR_SHORT ]);break ;case NL802154_DEV_ADDR_EXTENDED : +if (!attrs[NL802154_DEV_ADDR_ATTR_EXTENDED ]) +return -EINVAL ; addr->extended_addr =nla_get_le64 (attrs[NL802154_DEV_ADDR_ATTR_EXTENDED ]);break ;default :
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 2/38 HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for Saitek X65
In reply to Greg Kroah-HartmanFrom: Nirenjan Krishnan <[email protected]>
[ Upstream commit 25bdbfbb2d8331a67824dd03d0087e9c98835f3a ]
The Saitek X65 joystick has a pair of axes that were used as mouse pointer controls by the Windows driver. The corresponding usage page is the Game Controls page, which is not recognized by the generic HID driver, and therefore, both axes get mapped to ABS_MISC. The quirk makes the second axis get mapped to ABS_MISC+1, and therefore made available separately.
--- drivers/hid/hid-ids.h | 1 + drivers/hid/hid-quirks.c | 1 + 2 files changed, 2 insertions(+)
drivers/hid/hid-ids.h +1 -0
@@ -1034,6 +1034,7 @@#define USB_DEVICE_ID_SAITEK_X52 0x075c#define USB_DEVICE_ID_SAITEK_X52_2 0x0255#define USB_DEVICE_ID_SAITEK_X52_PRO 0x0762 +#define USB_DEVICE_ID_SAITEK_X65 0x0b6a#define USB_VENDOR_ID_SAMSUNG 0x0419#define USB_DEVICE_ID_SAMSUNG_IR_REMOTE 0x0001
drivers/hid/hid-quirks.c +1 -0
@@ -158,6 +158,7 @@ static const struct hid_device_id hid_quirks[] = { { HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X52), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, { HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X52_2), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, { HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X52_PRO), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, + { HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X65), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, { HID_USB_DEVICE(USB_VENDOR_ID_SEMICO, USB_DEVICE_ID_SEMICO_USB_KEYKOARD2), HID_QUIRK_NO_INIT_REPORTS }, { HID_USB_DEVICE(USB_VENDOR_ID_SEMICO, USB_DEVICE_ID_SEMICO_USB_KEYKOARD), HID_QUIRK_NO_INIT_REPORTS }, { HID_USB_DEVICE(USB_VENDOR_ID_SENNHEISER, USB_DEVICE_ID_SENNHEISER_BTD500USB), HID_QUIRK_NOGET },
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 3/38 HID: a4tech: use A4_2WHEEL_MOUSE_HACK_B8 for A4TECH NB-95
In reply to Greg Kroah-HartmanFrom: Mateusz Jończyk <[email protected]>
[ Upstream commit 9858c74c29e12be5886280725e781cb735b2aca6 ]
This mouse has a horizontal wheel that requires special handling. Without this patch, the horizontal wheel acts like a vertical wheel.
In the output of hidrd-convert for this mouse, there is a Usage (B8h) field. It corresponds to a byte in packets sent by the device that specifies which wheel generated an input event.
The name "A4TECH" is spelled in all capitals on the company website.
--- drivers/hid/Kconfig | 4 ++-- drivers/hid/hid-a4tech.c | 2 ++ drivers/hid/hid-ids.h | 1 + drivers/hid/hid-quirks.c | 1 + 4 files changed, 6 insertions(+), 2 deletions(-)
drivers/hid/Kconfig +2 -2
@@ -93,11 +93,11 @@ menu "Special HID drivers" depends on HID config HID_A4TECH - tristate "A4 tech mice" + tristate "A4TECH mice" depends on HID default !EXPERT help - Support for A4 tech X5 and WOP-35 / Trust 450L mice. + Support for some A4TECH mice with two scroll wheels. config HID_ACCUTOUCH tristate "Accutouch touch device"
drivers/hid/hid-a4tech.c +2 -0
@@ -147,6 +147,8 @@ static const struct hid_device_id a4_devices[] = { .driver_data = A4_2WHEEL_MOUSE_HACK_B8 }, { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_RP_649), .driver_data = A4_2WHEEL_MOUSE_HACK_B8 }, + { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_NB_95), + .driver_data = A4_2WHEEL_MOUSE_HACK_B8 }, { } };MODULE_DEVICE_TABLE (hid, a4_devices);
drivers/hid/hid-ids.h +1 -0
@@ -26,6 +26,7 @@#define USB_DEVICE_ID_A4TECH_WCP32PU 0x0006#define USB_DEVICE_ID_A4TECH_X5_005D 0x000a#define USB_DEVICE_ID_A4TECH_RP_649 0x001a +#define USB_DEVICE_ID_A4TECH_NB_95 0x022b#define USB_VENDOR_ID_AASHIMA 0x06d6#define USB_DEVICE_ID_AASHIMA_GAMEPAD 0x0025
drivers/hid/hid-quirks.c +1 -0
@@ -213,6 +213,7 @@ static const struct hid_device_id hid_have_special_driver[] = { { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_WCP32PU) }, { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_X5_005D) }, { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_RP_649) }, + { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_NB_95) }, #endif #if IS_ENABLED(CONFIG_HID_ACCUTOUCH) { HID_USB_DEVICE(USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_ACCUTOUCH_2216) },
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 4/38 HID: hid-input: add mapping for emoji picker key
In reply to Greg Kroah-HartmanFrom: Dmitry Torokhov <[email protected]>
[ Upstream commit 7b229b13d78d112e2c5d4a60a3c6f602289959fa ]
HUTRR101 added a new usage code for a key that is supposed to invoke and dismiss an emoji picker widget to assist users to locate and enter emojis.
This patch adds a new key definition KEY_EMOJI_PICKER and maps 0x0c/0x0d9 usage code to this new keycode. Additionally hid-debug is adjusted to recognize this new usage code as well.
--- drivers/hid/hid-debug.c | 1 + drivers/hid/hid-input.c | 3 +++ include/uapi/linux/input-event-codes.h | 1 + 3 files changed, 5 insertions(+)
drivers/hid/hid-debug.c +1 -0
@@ -929,6 +929,7 @@ static const char *keys[KEY_MAX + 1] = { [KEY_APPSELECT] = "AppSelect", [KEY_SCREENSAVER] = "ScreenSaver", [KEY_VOICECOMMAND] = "VoiceCommand", + [KEY_EMOJI_PICKER] = "EmojiPicker", [KEY_BRIGHTNESS_MIN] = "BrightnessMin", [KEY_BRIGHTNESS_MAX] = "BrightnessMax", [KEY_BRIGHTNESS_AUTO] = "BrightnessAuto",
drivers/hid/hid-input.c +3 -0
@@ -957,6 +957,9 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fielcase 0x0cd :map_key_clear (KEY_PLAYPAUSE );break ;case 0x0cf :map_key_clear (KEY_VOICECOMMAND );break ; + +case 0x0d9 :map_key_clear (KEY_EMOJI_PICKER );break ; +case 0x0e0 :map_abs_clear (ABS_VOLUME );break ;case 0x0e2 :map_key_clear (KEY_MUTE );break ;case 0x0e5 :map_key_clear (KEY_BASSBOOST );break ;
include/uapi/linux/input-event-codes.h +1 -0
@@ -611,6 +611,7 @@#define KEY_VOICECOMMAND 0x246/* Listening Voice Command */ #define KEY_ASSISTANT 0x247/* AL Context-aware desktop assistant */ #define KEY_KBD_LAYOUT_NEXT 0x248/* AC Next Keyboard Layout Select */ +#define KEY_EMOJI_PICKER 0x249/* Show/hide emoji picker (HUTRR101) */ #define KEY_BRIGHTNESS_MIN 0x250/* Set Brightness to Minimum */ #define KEY_BRIGHTNESS_MAX 0x251/* Set Brightness to Maximum */
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 5/38 HID: hid-sensor-hub: Return error for hid_set_field() failure
In reply to Greg Kroah-HartmanFrom: Srinivas Pandruvada <[email protected]>
[ Upstream commit edb032033da0dc850f6e7740fa1023c73195bc89 ]
In the function sensor_hub_set_feature(), return error when hid_set_field() fails.
--- drivers/hid/hid-sensor-hub.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-)
drivers/hid/hid-sensor-hub.c +9 -4
@@ -210,16 +210,21 @@ int sensor_hub_set_feature(struct hid_sensor_hub_device *hsdev, u32 report_id, buffer_size = buffer_size /sizeof (__s32);if (buffer_size) {for (i =0 ; i < buffer_size; ++i) { -hid_set_field (report->field[field_index], i, - (__force __s32 )cpu_to_le32 (*buf32)); + ret =hid_set_field (report->field[field_index], i, + (__force __s32 )cpu_to_le32 (*buf32)); +if (ret) + goto done_proc; + ++buf32; } }if (remaining_bytes) { value =0 ;memcpy (&value, (u8 *)buf32, remaining_bytes); -hid_set_field (report->field[field_index], i, - (__force __s32 )cpu_to_le32 (value)); + ret =hid_set_field (report->field[field_index], i, + (__force __s32 )cpu_to_le32 (value)); +if (ret) + goto done_proc; }hid_hw_request (hsdev->hdev, report,HID_REQ_SET_REPORT );hid_hw_wait (hsdev->hdev);
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 6/38 HID: quirks: Add quirk for Lenovo optical mouse
In reply to Greg Kroah-HartmanFrom: Saeed Mirzamohammadi <[email protected]>
[ Upstream commit 3b2520076822f15621509a6da3bc4a8636cd33b4 ]
The Lenovo optical mouse with vendor id of 0x17ef and product id of 0x600e experiences disconnecting issues every 55 seconds:
[38565.706242] usb 1-1.4: Product: Lenovo Optical Mouse [38565.728603] input: Lenovo Optical Mouse as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:17EF:600E.029A/input/input665 [38565.755949] hid-generic 0003:17EF:600E.029A: input,hidraw1: USB HID v1.11 Mouse [Lenovo Optical Mouse] on usb-0000:01:00.0-1.4/input0 [38619.360692] usb 1-1.4: USB disconnect, device number 48 [38620.864990] usb 1-1.4: new low-speed USB device number 49 using xhci_hcd [38620.984011] usb 1-1.4: New USB device found, idVendor=17ef,idProduct=600e, bcdDevice= 1.00 [38620.998117] usb 1-1.4: New USB device strings: Mfr=0, Product=2,SerialNumber=0
This adds HID_QUIRK_ALWAYS_POLL for this device in order to work properly.
--- drivers/hid/hid-ids.h | 1 + drivers/hid/hid-quirks.c | 1 + 2 files changed, 2 insertions(+)
drivers/hid/hid-ids.h +1 -0
@@ -742,6 +742,7 @@#define USB_DEVICE_ID_LENOVO_X1_COVER 0x6085#define USB_DEVICE_ID_LENOVO_X1_TAB 0x60a3#define USB_DEVICE_ID_LENOVO_X1_TAB3 0x60b5 +#define USB_DEVICE_ID_LENOVO_OPTICAL_USB_MOUSE_600E 0x600e#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_608D 0x608d#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6019 0x6019#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_602E 0x602e
drivers/hid/hid-quirks.c +1 -0
@@ -110,6 +110,7 @@ static const struct hid_device_id hid_quirks[] = { { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_PENSKETCH_M912), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_M406XE), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE_ID2), HID_QUIRK_ALWAYS_POLL }, + { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_OPTICAL_USB_MOUSE_600E), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_608D), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6019), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_602E), HID_QUIRK_ALWAYS_POLL },
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 7/38 HID: multitouch: set Stylus suffix for Stylus-application devices, too
In reply to Greg Kroah-HartmanFrom: Ahelenia Ziemiańska <[email protected]>
[ Upstream commit bc8b796f618c3ccb0a2a8ed1e96c00a1a7849415 ]
This re-adds the suffix to Win8 stylus-on-touchscreen devices, now that they aren't erroneously marked as MT
--- drivers/hid/hid-multitouch.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/hid/hid-multitouch.c +4 -4
@@ -1580,13 +1580,13 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)/* we do not set suffix = "Touchscreen" */ hi->input->name = hdev->name;break ; -case HID_DG_STYLUS : -/* force BTN_STYLUS to allow tablet matching in udev */ -__set_bit (BTN_STYLUS , hi->input->keybit); -break ;case HID_VD_ASUS_CUSTOM_MEDIA_KEYS : suffix ="Custom Media Keys" ;break ; +case HID_DG_STYLUS : +/* force BTN_STYLUS to allow tablet matching in udev */ +__set_bit (BTN_STYLUS , hi->input->keybit); + fallthrough;case HID_DG_PEN : suffix ="Stylus" ;break ;
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 8/38 HID: Add BUS_VIRTUAL to hid_connect logging
In reply to Greg Kroah-HartmanFrom: Mark Bolhuis <[email protected]>
[ Upstream commit 48e33befe61a7d407753c53d1a06fc8d6b5dab80 ]
Add BUS_VIRTUAL to hid_connect logging since it's a valid hid bus type and it should not print <UNKNOWN>
--- drivers/hid/hid-core.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/hid/hid-core.c +3 -0
@@ -2005,6 +2005,9 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask)case BUS_I2C : bus ="I2C" ;break ; +case BUS_VIRTUAL : + bus ="VIRTUAL" ; +break ;default : bus ="<UNKNOWN>" ; }
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 9/38 HID: usbhid: fix info leak in hid_submit_ctrl
In reply to Greg Kroah-HartmanFrom: Anirudh Rayabharam <[email protected]>
[ Upstream commit 6be388f4a35d2ce5ef7dbf635a8964a5da7f799f ]
In hid_submit_ctrl(), the way of calculating the report length doesn't take into account that report->size can be zero. When running the syzkaller reproducer, a report of size 0 causes hid_submit_ctrl) to calculate transfer_buffer_length as 16384. When this urb is passed to the usb core layer, KMSAN reports an info leak of 16384 bytes.
To fix this, first modify hid_report_len() to account for the zero report size case by using DIV_ROUND_UP for the division. Then, call it from hid_submit_ctrl().
--- drivers/hid/usbhid/hid-core.c | 2 +- include/linux/hid.h | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-)
drivers/hid/usbhid/hid-core.c +1 -1
@@ -374,7 +374,7 @@ static int hid_submit_ctrl(struct hid_device *hid) raw_report = usbhid->ctrl[usbhid->ctrltail].raw_report; dir = usbhid->ctrl[usbhid->ctrltail].dir; - len = ((report->size -1 ) >>3 ) +1 + (report->id >0 ); + len =hid_report_len (report);if (dir ==USB_DIR_OUT ) { usbhid->urbctrl->pipe =usb_sndctrlpipe (hid_to_usb_dev (hid),0 ); usbhid->urbctrl->transfer_buffer_length = len;
include/linux/hid.h +1 -2
@@ -1156,8 +1156,7 @@ static inline void hid_hw_wait(struct hid_device *hdev)*/ static inline u32 hid_report_len (struct hid_report *report) { -/* equivalent to DIV_ROUND_UP(report->size, 8) + !!(report->id > 0) */ -return ((report->size -1 ) >>3 ) +1 + (report->id >0 ); +return DIV_ROUND_UP (report->size,8 ) + (report->id >0 ); } int hid_report_raw_event(struct hid_device *hid, int type, u8 *data, u32 size,
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 10/38 drm/tegra: sor: Do not leak runtime PM reference
In reply to Greg Kroah-HartmanFrom: Pavel Machek (CIP) <[email protected]>
[ Upstream commit 73a395c46704304b96bc5e2ee19be31124025c0c ]
It's theoretically possible for the runtime PM reference to leak if the code fails anywhere between the pm_runtime_resume_and_get() and pm_runtime_put() calls, so make sure to release the runtime PM reference in that case.
Practically this will never happen because none of the functions will fail on Tegra, but it's better for the code to be pedantic in case these assumptions will ever become wrong.
--- drivers/gpu/drm/tegra/sor.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-)
drivers/gpu/drm/tegra/sor.c +10 -4
@@ -3125,21 +3125,21 @@ static int tegra_sor_init(struct host1x_client *client)if (err <0 ) {dev_err (sor->dev,"failed to acquire SOR reset: %d\n" , err); -return err; + goto rpm_put; } err =reset_control_assert (sor->rst);if (err <0 ) {dev_err (sor->dev,"failed to assert SOR reset: %d\n" , err); -return err; + goto rpm_put; } } err =clk_prepare_enable (sor->clk);if (err <0 ) {dev_err (sor->dev,"failed to enable clock: %d\n" , err); -return err; + goto rpm_put; }usleep_range (1000 ,3000 );
@@ -3150,7 +3150,7 @@ static int tegra_sor_init(struct host1x_client *client)dev_err (sor->dev,"failed to deassert SOR reset: %d\n" , err);clk_disable_unprepare (sor->clk); -return err; + goto rpm_put; }reset_control_release (sor->rst);
@@ -3171,6 +3171,12 @@ static int tegra_sor_init(struct host1x_client *client) }return 0 ; + +rpm_put: +if (sor->rst) +pm_runtime_put (sor->dev); + +return err; }static int tegra_sor_exit (struct host1x_client *client)
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 11/38 gpu: host1x: Split up client initalization and registration
In reply to Greg Kroah-HartmanFrom: Thierry Reding <[email protected]>
[ Upstream commit 0cfe5a6e758fb20be8ad3e8f10cb087cc8033eeb ]
In some cases we may need to initialize the host1x client first before registering it. This commit adds a new helper that will do nothing but the initialization of the data structure.
At the same time, the initialization is removed from the registration function. Note, however, that for simplicity we explicitly initialize the client when the host1x_client_register() function is called, as opposed to the low-level __host1x_client_register() function. This allows existing callers to remain unchanged.
--- drivers/gpu/host1x/bus.c | 30 ++++++++++++++++++++++++------ include/linux/host1x.h | 30 ++++++++++++++++++++++++------ 2 files changed, 48 insertions(+), 12 deletions(-)
drivers/gpu/host1x/bus.c +24 -6
@@ -703,6 +703,29 @@ void host1x_driver_unregister(struct host1x_driver *driver) }EXPORT_SYMBOL (host1x_driver_unregister); +/** +* __host1x_client_init() - initialize a host1x client +* @client: host1x client +* @key: lock class key for the client-specific mutex +*/ +void __host1x_client_init (struct host1x_client *client,struct lock_class_key *key) +{ +INIT_LIST_HEAD (&client->list); +__mutex_init (&client->lock,"host1x client lock" , key); + client->usecount =0 ; +} +EXPORT_SYMBOL (__host1x_client_init); + +/** +* host1x_client_exit() - uninitialize a host1x client +* @client: host1x client +*/ +void host1x_client_exit (struct host1x_client *client) +{ +mutex_destroy (&client->lock); +} +EXPORT_SYMBOL (host1x_client_exit); +/** * __host1x_client_register() - register a host1x client * @client: host1x client
@@ -715,16 +738,11 @@ EXPORT_SYMBOL(host1x_driver_unregister);* device and call host1x_device_init(), which will in turn call each client's * &host1x_client_ops.init implementation. */ -int __host1x_client_register (struct host1x_client *client, -struct lock_class_key *key) +int __host1x_client_register (struct host1x_client *client) {struct host1x *host1x;int err; -INIT_LIST_HEAD (&client->list); -__mutex_init (&client->lock,"host1x client lock" , key); - client->usecount =0 ; -mutex_lock (&devices_lock);list_for_each_entry (host1x, &devices, list) {
include/linux/host1x.h +24 -6
@@ -320,12 +320,30 @@ static inline struct host1x_device *to_host1x_device(struct device *dev)int host1x_device_init (struct host1x_device *device);int host1x_device_exit (struct host1x_device *device); -int __host1x_client_register (struct host1x_client *client, -struct lock_class_key *key); -#define host1x_client_register (class) \ - ({ \ - static struct lock_class_key __key; \ - __host1x_client_register(class, &__key); \ +void __host1x_client_init (struct host1x_client *client,struct lock_class_key *key); +void host1x_client_exit (struct host1x_client *client); + +#define host1x_client_init (client) \ + ({ \ + static struct lock_class_key __key; \ + __host1x_client_init(client, &__key); \ + }) + +int __host1x_client_register (struct host1x_client *client); + +/* +* Note that this wrapper calls __host1x_client_init() for compatibility +* with existing callers. Callers that want to separately initialize and +* register a host1x client must first initialize using either of the +* __host1x_client_init() or host1x_client_init() functions and then use +* the low-level __host1x_client_register() function to avoid the client +* getting reinitialized. +*/ +#define host1x_client_register (client) \ + ({ \ + static struct lock_class_key __key; \ + __host1x_client_init(client, &__key); \ + __host1x_client_register(client); \ })int host1x_client_unregister (struct host1x_client *client);
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 12/38 drm/tegra: sor: Fully initialize SOR before registration
In reply to Greg Kroah-HartmanFrom: Thierry Reding <[email protected]>
[ Upstream commit 5dea42759bcef74b0802ea64b904409bc37f9045 ]
Before registering the SOR host1x client, make sure that it is fully initialized. This avoids a potential race condition between the SOR's probe and the host1x device initialization in cases where the SOR is the final sub-device to register to a host1x instance.
--- drivers/gpu/drm/tegra/sor.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-)
drivers/gpu/drm/tegra/sor.c +13 -14
@@ -3922,17 +3922,10 @@ static int tegra_sor_probe(struct platform_device *pdev)platform_set_drvdata (pdev, sor);pm_runtime_enable (&pdev->dev); -INIT_LIST_HEAD (&sor->client.list); +host1x_client_init (&sor->client); sor->client.ops = &sor_client_ops; sor->client.dev = &pdev->dev; - err =host1x_client_register (&sor->client); -if (err <0 ) { -dev_err (&pdev->dev,"failed to register host1x client: %d\n" , - err); - goto rpm_disable; - } -/* * On Tegra210 and earlier, provide our own implementation for the * pad output clock.
@@ -3944,13 +3937,13 @@ static int tegra_sor_probe(struct platform_device *pdev) sor->index);if (!name) { err = -ENOMEM ; - goto unregister; + goto uninit; } err =host1x_client_resume (&sor->client);if (err <0 ) {dev_err (sor->dev,"failed to resume: %d\n" , err); - goto unregister; + goto uninit; } sor->clk_pad =tegra_clk_sor_pad_register (sor, name);
@@ -3961,14 +3954,20 @@ static int tegra_sor_probe(struct platform_device *pdev) err =PTR_ERR (sor->clk_pad);dev_err (sor->dev,"failed to register SOR pad clock: %d\n" , err); - goto unregister; + goto uninit; + } + + err =__host1x_client_register (&sor->client); +if (err <0 ) { +dev_err (&pdev->dev,"failed to register host1x client: %d\n" , + err); + goto uninit; }return 0 ; -unregister: -host1x_client_unregister (&sor->client); -rpm_disable: +uninit: +host1x_client_exit (&sor->client);pm_runtime_disable (&pdev->dev); remove:tegra_output_remove (&sor->output);
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 13/38 ARM: OMAP1: Fix use of possibly uninitialized irq variable
In reply to Greg Kroah-HartmanFrom: Maciej Falkowski <[email protected]>
[ Upstream commit 3c4e0147c269738a19c7d70cd32395600bcc0714 ]
The current control flow of IRQ number assignment to irq variable allows a request of IRQ of unspecified value,
generating a warning under Clang compilation with omap1_defconfig on linux-next:
arch/arm/mach-omap1/pm.c:656:11: warning: variable 'irq' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
else if (cpu_is_omap16xx())
^~~~~~~~~~~~~~~~~
./arch/arm/mach-omap1/include/mach/soc.h:123:30: note: expanded from macro
'cpu_is_omap16xx'
^~~~~~~~~~~~~arch/arm/mach-omap1/pm.c:658:18: note: uninitialized use occurs here
if (request_irq(irq, omap_wakeup_interrupt, 0, "peripheral wakeup",
^~~arch/arm/mach-omap1/pm.c:656:7: note: remove the 'if' if its condition is always true
else if (cpu_is_omap16xx())
^~~~~~~~~~~~~~~~~~~~~~
arch/arm/mach-omap1/pm.c:611:9: note: initialize the variable 'irq' to
silence this warning
int irq;
^
= 01 warning generated.
The patch provides a default value to the irq variable along with a validity check.
--- arch/arm/mach-omap1/pm.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
arch/arm/mach-omap1/pm.c +7 -3
@@ -655,9 +655,13 @@ static int __init omap_pm_init(void) irq =INT_7XX_WAKE_UP_REQ ; else if (cpu_is_omap16xx()) irq =INT_1610_WAKE_UP_REQ ; -if (request_irq (irq, omap_wakeup_interrupt,0 ,"peripheral wakeup" , -NULL )) -pr_err ("Failed to request irq %d (peripheral wakeup)\n" , irq); + else + irq =-1 ; + +if (irq >=0 ) { +if (request_irq (irq, omap_wakeup_interrupt,0 ,"peripheral wakeup" ,NULL )) +pr_err ("Failed to request irq %d (peripheral wakeup)\n" , irq); + }/* Program new power ramp-up time * (0 for most boards since we don't lower voltage when in deep sleep)
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 14/38 ARM: OMAP2+: Fix build warning when mmc_omap is not built
In reply to Greg Kroah-HartmanFrom: Yongqiang Liu <[email protected]>
[ Upstream commit 040ab72ee10ea88e1883ad143b3e2b77596abc31 ]
GCC reports the following warning with W=1:
arch/arm/mach-omap2/board-n8x0.c:325:19: warning:
variable 'index' set but not used [-Wunused-but-set-variable] 325 | int bit, *openp, index;
| ^~~~~
Fix this by moving CONFIG_MMC_OMAP to cover the rest codes in the n8x0_mmc_callback().
--- arch/arm/mach-omap2/board-n8x0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mach-omap2/board-n8x0.c +1 -1
@@ -322,6 +322,7 @@ static int n8x0_mmc_get_cover_state(struct device *dev, int slot)static void n8x0_mmc_callback (void *data,u8 card_mask) { +#ifdef CONFIG_MMC_OMAP int bit, *openp, index;if (board_is_n800 ()) {
@@ -339,7 +340,6 @@ static void n8x0_mmc_callback(void *data, u8 card_mask) else *openp =0 ; -#ifdef CONFIG_MMC_OMAP omap_mmc_notify_cover_event (mmc_device, index, *openp);#else pr_warn ("MMC: notify cover event not available\n" );
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 15/38 gfs2: Prevent direct-I/O write fallback errors from getting lost
In reply to Greg Kroah-HartmanFrom: Andreas Gruenbacher <[email protected]>
[ Upstream commit 43a511c44e58e357a687d61a20cf5ef1dc9e5a7c ]
When a direct I/O write falls entirely and falls back to buffered I/O and the buffered I/O fails, the write failed with return value 0 instead of the error number reported by the buffered I/O. Fix that.
--- fs/gfs2/file.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
fs/gfs2/file.c +4 -1
@@ -938,8 +938,11 @@ static ssize_t gfs2_file_write_iter(struct kiocb *iocb, struct iov_iter *from) current->backing_dev_info =inode_to_bdi (inode); buffered =iomap_file_buffered_write (iocb, from, &gfs2_iomap_ops); current->backing_dev_info =NULL ; -if (unlikely (buffered <=0 )) +if (unlikely (buffered <=0 )) { +if (!ret) + ret = buffered; goto out_unlock; + }/* * We need to ensure that the page cache pages are written to
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 16/38 gfs2: fix a deadlock on withdraw-during-mount
In reply to Greg Kroah-HartmanFrom: Bob Peterson <[email protected]>
[ Upstream commit 865cc3e9cc0b1d4b81c10d53174bced76decf888 ]
Before this patch, gfs2 would deadlock because of the following sequence during mount:
mount
gfs2_fill_super
gfs2_make_fs_rw <--- Detects IO error with glock
kthread_stop(sdp->sd_quotad_process);
<--- Blocked waiting for quotad to finish
logd
Detects IO error and the need to withdraw
calls gfs2_withdraw
gfs2_make_fs_ro
kthread_stop(sdp->sd_quotad_process);
<--- Blocked waiting for quotad to finishgfs2_quotad
gfs2_statfs_sync
gfs2_glock_wait <---- Blocked waiting for statfs glock to be granted
glock_work_func
do_xmote <---Detects IO error, can't release glock: blocked on withdraw
glops->go_inval
glock_blocked_by_withdraw
requeue glock work & exit <--- work requeued, blocked by withdraw
This patch makes a special exception for the statfs system inode glock, which allows the statfs glock UNLOCK to proceed normally. That allows the quotad daemon to exit during the withdraw, which allows the logd daemon to exit during the withdraw, which allows the mount to exit.
--- fs/gfs2/glock.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-)
fs/gfs2/glock.c +21 -3
@@ -569,6 +569,16 @@ out_locked:spin_unlock (&gl->gl_lockref.lock); } +static bool is_system_glock (struct gfs2_glock *gl) +{ +struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; +struct gfs2_inode *m_ip =GFS2_I (sdp->sd_statfs_inode); + +if (gl == m_ip->i_gl) +return true; +return false; +} +/** * do_xmote - Calls the DLM to change the state of a lock * @gl: The lock state
@@ -658,17 +668,25 @@ skip_inval:* to see sd_log_error and withdraw, and in the meantime, requeue the * work for later. * +* We make a special exception for some system glocks, such as the +* system statfs inode glock, which needs to be granted before the +* gfs2_quotad daemon can exit, and that exit needs to finish before +* we can unmount the withdrawn file system. +* * However, if we're just unlocking the lock (say, for unmount, when * gfs2_gl_hash_clear calls clear_glock) and recovery is complete * then it's okay to tell dlm to unlock it. */ if (unlikely (sdp->sd_log_error && !gfs2_withdrawn (sdp)))gfs2_withdraw_delayed (sdp); -if (glock_blocked_by_withdraw (gl)) { -if (target !=LM_ST_UNLOCKED || -test_bit (SDF_WITHDRAW_RECOVERY , &sdp->sd_flags)) { +if (glock_blocked_by_withdraw (gl) && + (target !=LM_ST_UNLOCKED || +test_bit (SDF_WITHDRAW_RECOVERY , &sdp->sd_flags))) { +if (!is_system_glock (gl)) {gfs2_glock_queue_work (gl,GL_GLOCK_DFT_HOLD ); goto out; + }else { +clear_bit (GLF_INVALIDATE_IN_PROGRESS , &gl->gl_flags); } }
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 17/38 HID: gt683r: add missing MODULE_DEVICE_TABLE
In reply to Greg Kroah-HartmanFrom: Bixuan Cui <[email protected]>
[ Upstream commit a4b494099ad657f1cb85436d333cf38870ee95bc ]
This patch adds missing MODULE_DEVICE_TABLE definition which generates correct modalias for automatic loading of this driver when it is built as an external module.
--- drivers/hid/hid-gt683r.c | 1 + 1 file changed, 1 insertion(+)
drivers/hid/hid-gt683r.c +1 -0
@@ -54,6 +54,7 @@ static const struct hid_device_id gt683r_led_id[] = { { HID_USB_DEVICE(USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GT683R_LED_PANEL) }, { } }; +MODULE_DEVICE_TABLE (hid, gt683r_led_id);static void gt683r_brightness_set (struct led_classdev *led_cdev,enum led_brightness brightness)
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 18/38 riscv: Use -mno-relax when using lld linker
In reply to Greg Kroah-HartmanFrom: Khem Raj <[email protected]>
[ Upstream commit ec3a5cb61146c91f0f7dcec8b7e7157a4879a9ee ]
lld does not implement the RISCV relaxation optimizations like GNU ld therefore disable it when building with lld, Also pass it to assembler when using external GNU assembler ( LLVM_IAS != 1 ), this ensures that relevant assembler option is also enabled along. if these options are not used then we see following relocations in objects
0000000000000000 R_RISCV_ALIGN *ABS*+0x0000000000000002
These are then rejected by lld
ld.lld: error: capability.c:(.fixup+0x0): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax but the .o is already compiled with -mno-relax
--- arch/riscv/Makefile | 9 +++++++++ 1 file changed, 9 insertions(+)
arch/riscv/Makefile +9 -0
@@ -36,6 +36,15 @@ else KBUILD_LDFLAGS += -melf32lriscv endif +ifeq ($(CONFIG_LD_IS_LLD),y) + KBUILD_CFLAGS += -mno-relax + KBUILD_AFLAGS += -mno-relax +ifneq ($(LLVM_IAS),1) + KBUILD_CFLAGS += -Wa,-mno-relax + KBUILD_AFLAGS += -Wa,-mno-relax +endif +endif + # ISA string setting riscv-march-$(CONFIG_ARCH_RV32I) := rv32ima riscv-march-$(CONFIG_ARCH_RV64I) := rv64ima
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 19/38 gfs2: Fix use-after-free in gfs2_glock_shrink_scan
In reply to Greg Kroah-HartmanFrom: Hillf Danton <[email protected]>
[ Upstream commit 1ab19c5de4c537ec0d9b21020395a5b5a6c059b2 ]
The GLF_LRU flag is checked under lru_lock in gfs2_glock_remove_from_lru() to remove the glock from the lru list in __gfs2_glock_put().
On the shrink scan path, the same flag is cleared under lru_lock but because of cond_resched_lock(&lru_lock) in gfs2_dispose_glock_lru(), progress on the put side can be made without deleting the glock from the lru list.
Keep GLF_LRU across the race window opened by cond_resched_lock(&lru_lock) to ensure correct behavior on both sides - clear GLF_LRU after list_del under lru_lock.
--- fs/gfs2/glock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
fs/gfs2/glock.c +1 -1
@@ -1784,6 +1784,7 @@ __acquires(&lru_lock)while (!list_empty (list)) { gl = list_first_entry(list, struct gfs2_glock, gl_lru);list_del_init (&gl->gl_lru); +clear_bit (GLF_LRU , &gl->gl_flags);if (!spin_trylock (&gl->gl_lockref.lock)) { add_back_to_lru:list_add (&gl->gl_lru, &lru_list);
@@ -1829,7 +1830,6 @@ static long gfs2_scan_glock_lru(int nr)if (!test_bit (GLF_LOCK , &gl->gl_flags)) {list_move (&gl->gl_lru, &dispose);atomic_dec (&lru_count); -clear_bit (GLF_LRU , &gl->gl_flags); freed++;continue ; }
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 20/38 scsi: target: core: Fix warning on realtime kernels
In reply to Greg Kroah-HartmanFrom: Maurizio Lombardi <[email protected]>
[ Upstream commit 515da6f4295c2c42b8c54572cce3d2dd1167c41e ]
On realtime kernels, spin_lock_irq*(spinlock_t) do not disable the interrupts, a call to irqs_disabled() will return false thus firing a warning in __transport_wait_for_tasks().
Remove the warning and also replace assert_spin_locked() with lockdep_assert_held()
--- drivers/target/target_core_transport.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/target/target_core_transport.c +1 -3
@@ -3038,9 +3038,7 @@ __transport_wait_for_tasks(struct se_cmd *cmd, bool fabric_stop, __releases(&cmd->t_state_lock) __acquires(&cmd->t_state_lock) { - -assert_spin_locked (&cmd->t_state_lock); -WARN_ON_ONCE (!irqs_disabled ()); +lockdep_assert_held (&cmd->t_state_lock);if (fabric_stop) cmd->transport_state |=CMD_T_FABRIC_STOP ;
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 21/38 ethernet: myri10ge: Fix missing error code in myri10ge_probe()
In reply to Greg Kroah-HartmanFrom: Jiapeng Chong <[email protected]>
[ Upstream commit f336d0b93ae978f12c5e27199f828da89b91e56a ]
The error code is missing in this code scenario, add the error code '-EINVAL' to the return value 'status'.
Eliminate the follow smatch warning:
drivers/net/ethernet/myricom/myri10ge/myri10ge.c:3818 myri10ge_probe()
warn: missing error code 'status'.
--- drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 1 + 1 file changed, 1 insertion(+)
drivers/net/ethernet/myricom/myri10ge/myri10ge.c +1 -0
@@ -3815,6 +3815,7 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent)dev_err (&pdev->dev,"invalid sram_size %dB or board span %ldB\n" , mgp->sram_size, mgp->board_span); + status = -EINVAL ; goto abort_with_ioremap; } memcpy_fromio(mgp->eeprom_strings,
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 22/38 scsi: qedf: Do not put host in qedf_vport_create() unconditionally
In reply to Greg Kroah-HartmanFrom: Daniel Wagner <[email protected]>
[ Upstream commit 79c932cd6af9829432888c4a0001d01793a09f12 ]
Do not drop reference count on vn_port->host in qedf_vport_create() unconditionally. Instead drop the reference count in qedf_vport_destroy().
--- drivers/scsi/qedf/qedf_main.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-)
drivers/scsi/qedf/qedf_main.c +9 -11
@@ -1827,22 +1827,20 @@ static int qedf_vport_create(struct fc_vport *vport, bool disabled)fcoe_wwn_to_str (vport->port_name, buf,sizeof (buf));QEDF_WARN (&(base_qedf->dbg_ctx),"Failed to create vport, " "WWPN (0x%s) already exists.\n" , buf); - goto err1; +return rc; }if (atomic_read (&base_qedf->link_state) !=QEDF_LINK_UP ) {QEDF_WARN (&(base_qedf->dbg_ctx),"Cannot create vport " "because link is not up.\n" ); - rc = -EIO ; - goto err1; +return -EIO ; } vn_port =libfc_vport_create (vport,sizeof (struct qedf_ctx ));if (!vn_port) {QEDF_WARN (&(base_qedf->dbg_ctx),"Could not create lport " "for vport.\n" ); - rc = -ENOMEM ; - goto err1; +return -ENOMEM ; }fcoe_wwn_to_str (vport->port_name, buf,sizeof (buf));
@@ -1866,7 +1864,7 @@ static int qedf_vport_create(struct fc_vport *vport, bool disabled)if (rc) {QEDF_ERR (&(base_qedf->dbg_ctx),"Could not allocate memory " "for lport stats.\n" ); - goto err2; + goto err; }fc_set_wwnn (vn_port, vport->node_name);
@@ -1884,7 +1882,7 @@ static int qedf_vport_create(struct fc_vport *vport, bool disabled)if (rc) {QEDF_WARN (&base_qedf->dbg_ctx,"Error adding Scsi_Host rc=0x%x.\n" , rc); - goto err2; + goto err; }/* Set default dev_loss_tmo based on module parameter */
@@ -1925,9 +1923,10 @@ static int qedf_vport_create(struct fc_vport *vport, bool disabled) vport_qedf->dbg_ctx.host_no = vn_port->host->host_no; vport_qedf->dbg_ctx.pdev = base_qedf->pdev; -err2: +return 0 ; + +err:scsi_host_put (vn_port->host); -err1:return rc; }
@@ -1968,8 +1967,7 @@ static int qedf_vport_destroy(struct fc_vport *vport)fc_lport_free_stats (vn_port);/* Release Scsi_Host */ -if (vn_port->host) -scsi_host_put (vn_port->host); +scsi_host_put (vn_port->host); out:return 0 ;
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 23/38 Bluetooth: Add a new USB ID for RTL8822CE
In reply to Greg Kroah-HartmanFrom: Larry Finger <[email protected]>
[ Upstream commit 4d96d3b0efee6416ef0d61b76aaac6f4a2e15b12 ]
Some models of the RTL8822ce utilize a different USB ID. Add this new one to the Bluetooth driver.
--- drivers/bluetooth/btusb.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/bluetooth/btusb.c +2 -0
@@ -385,6 +385,8 @@ static const struct usb_device_id blacklist_table[] = {/* Realtek 8822CE Bluetooth devices */ { USB_DEVICE(0x0bda, 0xb00c), .driver_info = BTUSB_REALTEK | BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0bda, 0xc822), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH },/* Realtek Bluetooth devices */ { USB_VENDOR_AND_INTERFACE_INFO(0x0bda, 0xe0, 0x01, 0x01),
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 24/38 scsi: scsi_devinfo: Add blacklist entry for HPE OPEN-V
In reply to Greg Kroah-HartmanFrom: Ewan D. Milne <[email protected]>
[ Upstream commit e57f5cd99ca60cddf40201b0f4ced9f1938e299c ]
Apparently some arrays are now returning "HPE" as the vendor.
--- drivers/scsi/scsi_devinfo.c | 1 + 1 file changed, 1 insertion(+)
drivers/scsi/scsi_devinfo.c +1 -0
@@ -184,6 +184,7 @@ static struct { {"HP", "C3323-300", "4269", BLIST_NOTQ}, {"HP", "C5713A", NULL, BLIST_NOREPORTLUN}, {"HP", "DISK-SUBSYSTEM", "*", BLIST_REPORTLUN2}, + {"HPE", "OPEN-", "*", BLIST_REPORTLUN2 | BLIST_TRY_VPD_PAGES}, {"IBM", "AuSaV1S2", NULL, BLIST_FORCELUN}, {"IBM", "ProFibre 4000R", "*", BLIST_SPARSELUN | BLIST_LARGELUN}, {"IBM", "2105", NULL, BLIST_RETRY_HWERROR},
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 25/38 nvme-loop: reset queue count to 1 in nvme_loop_destroy_io_queues()
In reply to Greg Kroah-HartmanFrom: Hannes Reinecke <[email protected]>
[ Upstream commit a6c144f3d2e230f2b3ac5ed8c51e0f0391556197 ]
The queue count is increased in nvme_loop_init_io_queues(), so we need to reset it to 1 at the end of nvme_loop_destroy_io_queues(). Otherwise the function is not re-entrant safe, and crash will happen during concurrent reset and remove calls.
--- drivers/nvme/target/loop.c | 1 + 1 file changed, 1 insertion(+)
drivers/nvme/target/loop.c +1 -0
@@ -287,6 +287,7 @@ static void nvme_loop_destroy_io_queues(struct nvme_loop_ctrl *ctrl)clear_bit (NVME_LOOP_Q_LIVE , &ctrl->queues[i].flags);nvmet_sq_destroy (&ctrl->queues[i].nvme_sq); } + ctrl->ctrl.queue_count =1 ; }static int nvme_loop_init_io_queues (struct nvme_loop_ctrl *ctrl)
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 26/38 nvme-loop: clear NVME_LOOP_Q_LIVE when nvme_loop_configure_admin_queue() fails
In reply to Greg Kroah-HartmanFrom: Hannes Reinecke <[email protected]>
[ Upstream commit 1c5f8e882a05de5c011e8c3fbeceb0d1c590eb53 ]
When the call to nvme_enable_ctrl() in nvme_loop_configure_admin_queue() fails the NVME_LOOP_Q_LIVE flag is not cleared.
--- drivers/nvme/target/loop.c | 1 + 1 file changed, 1 insertion(+)
drivers/nvme/target/loop.c +1 -0
@@ -394,6 +394,7 @@ static int nvme_loop_configure_admin_queue(struct nvme_loop_ctrl *ctrl)return 0 ; out_cleanup_queue: +clear_bit (NVME_LOOP_Q_LIVE , &ctrl->queues[0 ].flags);blk_cleanup_queue (ctrl->ctrl.admin_q); out_cleanup_fabrics_q:blk_cleanup_queue (ctrl->ctrl.fabrics_q);
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 27/38 nvme-loop: check for NVME_LOOP_Q_LIVE in nvme_loop_destroy_admin_queue()
In reply to Greg Kroah-HartmanFrom: Hannes Reinecke <[email protected]>
[ Upstream commit 4237de2f73a669e4f89ac0aa2b44fb1a1d9ec583 ]
We need to check the NVME_LOOP_Q_LIVE flag in nvme_loop_destroy_admin_queue() to protect against duplicate invocations eg during concurrent reset and remove calls.
--- drivers/nvme/target/loop.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/nvme/target/loop.c +2 -1
@@ -251,7 +251,8 @@ static const struct blk_mq_ops nvme_loop_admin_mq_ops = {static void nvme_loop_destroy_admin_queue (struct nvme_loop_ctrl *ctrl) { -clear_bit (NVME_LOOP_Q_LIVE , &ctrl->queues[0 ].flags); +if (!test_and_clear_bit (NVME_LOOP_Q_LIVE , &ctrl->queues[0 ].flags)) +return ;nvmet_sq_destroy (&ctrl->queues[0 ].nvme_sq);blk_cleanup_queue (ctrl->ctrl.admin_q);blk_cleanup_queue (ctrl->ctrl.fabrics_q);
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 28/38 nvme-loop: do not warn for deleted controllers during reset
In reply to Greg Kroah-HartmanFrom: Hannes Reinecke <[email protected]>
[ Upstream commit 6622f9acd29cd4f6272720e827e6406f5a970cb0 ]
During concurrent reset and delete calls the reset workqueue is flushed, causing nvme_loop_reset_ctrl_work() to be executed when the controller is in state DELETING or DELETING_NOIO. But this is expected, so we shouldn't issue a WARN_ON here.
--- drivers/nvme/target/loop.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/nvme/target/loop.c +4 -2
@@ -453,8 +453,10 @@ static void nvme_loop_reset_ctrl_work(struct work_struct *work)nvme_loop_shutdown_ctrl (ctrl);if (!nvme_change_ctrl_state (&ctrl->ctrl,NVME_CTRL_CONNECTING )) { -/* state change failure should never happen */ -WARN_ON_ONCE (1 ); +if (ctrl->ctrl.state !=NVME_CTRL_DELETING && + ctrl->ctrl.state !=NVME_CTRL_DELETING_NOIO ) +/* state change failure for non-deleted ctrl? */ +WARN_ON_ONCE (1 );return ; }
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 29/38 net: ipconfig: Dont override command-line hostnames or domains
In reply to Greg Kroah-HartmanFrom: Josh Triplett <[email protected]>
[ Upstream commit b508d5fb69c2211a1b860fc058aafbefc3b3c3cd ]
If the user specifies a hostname or domain name as part of the ip= command-line option, preserve it and don't overwrite it with one supplied by DHCP/BOOTP.
For instance, ip=::::myhostname::dhcp will use "myhostname" rather than ignoring and overwriting it.
Fix the comment on ic_bootp_string that suggests it only copies a string "if not already set"; it doesn't have any such logic.
--- net/ipv4/ipconfig.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
net/ipv4/ipconfig.c +8 -5
@@ -870,7 +870,7 @@ static void __init ic_bootp_send_if(struct ic_device *d, unsigned long jiffies_d/* -* Copy BOOTP-supplied string if not already set. +* Copy BOOTP-supplied string */ static int __init ic_bootp_string (char *dest,char *src,int len,int max) {
@@ -919,12 +919,15 @@ static void __init ic_do_bootp_ext(u8 *ext) }break ;case 12 :/* Host name */ -ic_bootp_string (utsname ()->nodename, ext+1 , *ext, - __NEW_UTS_LEN); - ic_host_name_set =1 ; +if (!ic_host_name_set) { +ic_bootp_string (utsname ()->nodename, ext+1 , *ext, + __NEW_UTS_LEN); + ic_host_name_set =1 ; + }break ;case 15 :/* Domain name (DNS) */ -ic_bootp_string (ic_domain, ext+1 , *ext,sizeof (ic_domain)); +if (!ic_domain[0 ]) +ic_bootp_string (ic_domain, ext+1 , *ext,sizeof (ic_domain));break ;case 17 :/* Root path */ if (!root_server_path[0 ])
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 30/38 drm/amd/display: Allow bandwidth validation for 0 streams.
In reply to Greg Kroah-HartmanFrom: Bindu Ramamurthy <[email protected]>
[ Upstream commit ba8e59773ae59818695d1e20b8939282da80ec8c ]
[Why]
Bandwidth calculations are triggered for non zero streams, and in case of 0 streams, these calculations were skipped with pstate status not being updated.
[How]
As the pstate status is applicable for non zero streams, check added for allowing 0 streams inline with dcn internal bandwidth validations.
--- drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +1 -1
@@ -3232,7 +3232,7 @@ static noinline bool dcn20_validate_bandwidth_fp(struct dc *dc, voltage_supported =dcn20_validate_bandwidth_internal (dc, context, false); dummy_pstate_supported = context->bw_ctx.bw.dcn.clk.p_state_change_support; -if (voltage_supported && dummy_pstate_supported) { +if (voltage_supported && (dummy_pstate_supported || !(context->stream_count))) { context->bw_ctx.bw.dcn.clk.p_state_change_support = false; goto restore_dml_state; }
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 31/38 drm/amdgpu: refine amdgpu_fru_get_product_info
In reply to Greg Kroah-HartmanFrom: Jiansong Chen <[email protected]>
[ Upstream commit 5cfc912582e13b05d71fb7acc4ec69ddfa9af320 ]
1. eliminate potential array index out of bounds.
2. return meaningful value for failure.
--- .../gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-)
drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c +23 -19
@@ -101,7 +101,8 @@ static int amdgpu_fru_read_eeprom(struct amdgpu_device *adev, uint32_t addrptr,int amdgpu_fru_get_product_info (struct amdgpu_device *adev) {unsigned char buff[34 ]; -int addrptr =0 , size =0 ; +int addrptr, size; +int len;if (!is_fru_eeprom_supported (adev))return 0 ;
@@ -109,7 +110,7 @@ int amdgpu_fru_get_product_info(struct amdgpu_device *adev)/* If algo exists, it means that the i2c_adapter's initialized */ if (!adev->pm.smu_i2c.algo) {DRM_WARN ("Cannot access FRU, EEPROM accessor not initialized" ); -return 0 ; +return -ENODEV ; }/* There's a lot of repetition here. This is due to the FRU having
@@ -128,7 +129,7 @@ int amdgpu_fru_get_product_info(struct amdgpu_device *adev) size =amdgpu_fru_read_eeprom (adev, addrptr, buff);if (size <1 ) {DRM_ERROR ("Failed to read FRU Manufacturer, ret:%d" , size); -return size; +return -EINVAL ; }/* Increment the addrptr by the size of the field, and 1 due to the
@@ -138,43 +139,45 @@ int amdgpu_fru_get_product_info(struct amdgpu_device *adev) size =amdgpu_fru_read_eeprom (adev, addrptr, buff);if (size <1 ) {DRM_ERROR ("Failed to read FRU product name, ret:%d" , size); -return size; +return -EINVAL ; } + len = size;/* Product name should only be 32 characters. Any more, * and something could be wrong. Cap it at 32 to be safe */ -if (size >32 ) { +if (len >=sizeof (adev->product_name)) {DRM_WARN ("FRU Product Number is larger than 32 characters. This is likely a mistake" ); - size =32 ; + len =sizeof (adev->product_name) -1 ; }/* Start at 2 due to buff using fields 0 and 1 for the address */ -memcpy (adev->product_name, &buff[2 ], size); - adev->product_name[size] ='\0' ; +memcpy (adev->product_name, &buff[2 ], len); + adev->product_name[len] ='\0' ; addrptr += size +1 ; size =amdgpu_fru_read_eeprom (adev, addrptr, buff);if (size <1 ) {DRM_ERROR ("Failed to read FRU product number, ret:%d" , size); -return size; +return -EINVAL ; } + len = size;/* Product number should only be 16 characters. Any more, * and something could be wrong. Cap it at 16 to be safe */ -if (size >16 ) { +if (len >=sizeof (adev->product_number)) {DRM_WARN ("FRU Product Number is larger than 16 characters. This is likely a mistake" ); - size =16 ; + len =sizeof (adev->product_number) -1 ; } -memcpy (adev->product_number, &buff[2 ], size); - adev->product_number[size] ='\0' ; +memcpy (adev->product_number, &buff[2 ], len); + adev->product_number[len] ='\0' ; addrptr += size +1 ; size =amdgpu_fru_read_eeprom (adev, addrptr, buff);if (size <1 ) {DRM_ERROR ("Failed to read FRU product version, ret:%d" , size); -return size; +return -EINVAL ; } addrptr += size +1 ;
@@ -182,18 +185,19 @@ int amdgpu_fru_get_product_info(struct amdgpu_device *adev)if (size <1 ) {DRM_ERROR ("Failed to read FRU serial number, ret:%d" , size); -return size; +return -EINVAL ; } + len = size;/* Serial number should only be 16 characters. Any more, * and something could be wrong. Cap it at 16 to be safe */ -if (size >16 ) { +if (len >=sizeof (adev->serial)) {DRM_WARN ("FRU Serial Number is larger than 16 characters. This is likely a mistake" ); - size =16 ; + len =sizeof (adev->serial) -1 ; } -memcpy (adev->serial, &buff[2 ], size); - adev->serial[size] ='\0' ; +memcpy (adev->serial, &buff[2 ], len); + adev->serial[len] ='\0' ;return 0 ; }
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 32/38 drm/amd/display: Fix overlay validation by considering cursors
In reply to Greg Kroah-HartmanFrom: Rodrigo Siqueira <[email protected]>
[ Upstream commit 33f409e60eb0c59a4d0d06a62ab4642a988e17f7 ]
A few weeks ago, we saw a two cursor issue in a ChromeOS system. We fixed it in the commit:
drm/amd/display: Fix two cursor duplication when using overlay (read the commit message for more details)
After this change, we noticed that some IGT subtests related to kms_plane and kms_plane_scaling started to fail. After investigating this issue, we noticed that all subtests that fail have a primary plane covering the overlay plane, which is currently rejected by amdgpu dm. Fail those IGT tests highlight that our verification was too broad and compromises the overlay usage in our drive. This patch fixes this issue by ensuring that we only reject commits where the primary plane is not fully covered by the overlay when the cursor hardware is enabled. With this fix, all IGT tests start to pass again, which means our overlay support works as expected.
--- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +9 -1
@@ -8616,7 +8616,7 @@ static int validate_overlay(struct drm_atomic_state *state)int i;struct drm_plane *plane;struct drm_plane_state *old_plane_state, *new_plane_state; -struct drm_plane_state *primary_state, *overlay_state =NULL ; +struct drm_plane_state *primary_state, *cursor_state, *overlay_state =NULL ;/* Check if primary plane is contained inside overlay */ for_each_oldnew_plane_in_state_reverse (state, plane, old_plane_state, new_plane_state, i) {
@@ -8646,6 +8646,14 @@ static int validate_overlay(struct drm_atomic_state *state)if (!primary_state->crtc)return 0 ; +/* check if cursor plane is enabled */ + cursor_state =drm_atomic_get_plane_state (state, overlay_state->crtc->cursor); +if (IS_ERR (cursor_state)) +return PTR_ERR (cursor_state); + +if (drm_atomic_plane_disabling (plane->state, cursor_state)) +return 0 ; +/* Perform the bounds check to ensure the overlay plane covers the primary */ if (primary_state->crtc_x < overlay_state->crtc_x || primary_state->crtc_y < overlay_state->crtc_y ||
Signature · 1 line
2.30.2
Re: [PATCH 5.10 32/38] drm/amd/display: Fix overlay validation by considering cursors
Hi Greg
Please drop this from 5.4, 5.10, or 5.12 stable kernels as it's apt to break any userspace that is using the legacy cursor IOCTL, which is most userspace.
We are in the process of reverting this on amd-staging-drm-next. Siqueira will send a patch.
Thanks,
Harry
Quoted 66 lines · Greg Kroah-Hartman
From: Rodrigo Siqueira <[email protected]>
[ Upstream commit
33f409e60eb0c59a4d0d06a62ab4642a988e17f7]A few weeks ago, we saw a two cursor issue in a ChromeOS system. We fixed it in the commit:
drm/amd/display: Fix two cursor duplication when using overlay (read the commit message for more details)
After this change, we noticed that some IGT subtests related to
kms_planeandkms_plane_scalingstarted to fail. After investigating this issue, we noticed that all subtests that fail have a primary plane covering the overlay plane, which is currently rejected by amdgpu dm. Fail those IGT tests highlight that our verification was too broad and compromises the overlay usage in our drive. This patch fixes this issue by ensuring that we only reject commits where the primary plane is not fully covered by the overlay when the cursor hardware is enabled. With this fix, all IGT tests start to pass again, which means our overlay support works as expected.Cc Tianci.Yin <[email protected]>Cc Harry Wentland <[email protected]>Cc Nicholas Choi <[email protected]>Cc Bhawanpreet Lakha <[email protected]>Cc Nicholas Kazlauskas <[email protected]>Cc Mark Yacoub <[email protected]>Cc Daniel Wheeler <[email protected]>Tested-by Daniel Wheeler <[email protected]>Signed-off-by Rodrigo Siqueira <[email protected]>Signed-off-by Alex Deucher <[email protected]>Signed-off-by Sasha Levin <[email protected]>--- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +9
-1@@ -8616,7 +8616,7 @@ static int validate_overlay(struct drm_atomic_state *state)int i;struct drm_plane *plane;struct drm_plane_state *old_plane_state, *new_plane_state; -struct drm_plane_state *primary_state, *overlay_state =NULL ; +struct drm_plane_state *primary_state, *cursor_state, *overlay_state =NULL ;/* Check if primary plane is contained inside overlay */ for_each_oldnew_plane_in_state_reverse (state, plane, old_plane_state, new_plane_state, i) {@@ -8646,6 +8646,14 @@ static int validate_overlay(struct drm_atomic_state *state)if (!primary_state->crtc)return 0 ; +/* check if cursor plane is enabled */ + cursor_state =drm_atomic_get_plane_state (state, overlay_state->crtc->cursor); +if (IS_ERR (cursor_state)) +return PTR_ERR (cursor_state); + +if (drm_atomic_plane_disabling (plane->state, cursor_state)) +return 0 ; +/* Perform the bounds check to ensure the overlay plane covers the primary */ if (primary_state->crtc_x < overlay_state->crtc_x || primary_state->crtc_y < overlay_state->crtc_y ||
Greg Kroah-Hartman
maintainerPATCH 33/38 drm/amd/display: Fix potential memory leak in DMUB hw_init
In reply to Greg Kroah-HartmanFrom: Roman Li <[email protected]>
[ Upstream commit c5699e2d863f58221044efdc3fa712dd32d55cde ]
[Why]
On resume we perform DMUB hw_init which allocates memory:dm_resume->dm_dmub_hw_init->dc_dmub_srv_create->kzalloc That results in memory leak in suspend/resume scenarios.
[How]
Allocate memory for the DC wrapper to DMUB only if it was not allocated before.
No need to reallocate it on suspend/resume.
--- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +2 -2
@@ -870,7 +870,8 @@ static int dm_dmub_hw_init(struct amdgpu_device *adev) abm->dmcu_is_running = dmcu->funcs->is_dmcu_initialized (dmcu); } - adev->dm.dc->ctx->dmub_srv =dc_dmub_srv_create (adev->dm.dc, dmub_srv); +if (!adev->dm.dc->ctx->dmub_srv) + adev->dm.dc->ctx->dmub_srv =dc_dmub_srv_create (adev->dm.dc, dmub_srv);if (!adev->dm.dc->ctx->dmub_srv) {DRM_ERROR ("Couldn't allocate DC DMUB server!\n" );return -ENOMEM ;
@@ -1755,7 +1756,6 @@ static int dm_suspend(void *handle)amdgpu_dm_irq_suspend (adev); -dc_set_power_state (dm->dc,DC_ACPI_CM_POWER_STATE_D3 );return 0 ;
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 34/38 drm/amd/amdgpu:save psp ring wptr to avoid attack
In reply to Greg Kroah-HartmanFrom: Victor Zhao <[email protected]>
[ Upstream commit 2370eba9f552eaae3d8aa1f70b8e9eec5c560f9e ]
[Why]
When some tools performing psp mailbox attack, the readback value of register can be a random value which may break psp.
[How]
Use a psp wptr cache machanism to aovid the change made by attack.
v2: unify change and add detailed reason
--- drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 1 + drivers/gpu/drm/amd/amdgpu/psp_v11_0.c | 3 ++- drivers/gpu/drm/amd/amdgpu/psp_v3_1.c | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-)
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h +1 -0
@@ -73,6 +73,7 @@ struct psp_ringuint64_t ring_mem_mc_addr;void *ring_mem_handle;uint32_t ring_size; +uint32_t ring_wptr; };/* More registers may will be supported */
drivers/gpu/drm/amd/amdgpu/psp_v11_0.c +2 -1
@@ -732,7 +732,7 @@ static uint32_t psp_v11_0_ring_get_wptr(struct psp_context *psp)struct amdgpu_device *adev = psp->adev;if (amdgpu_sriov_vf (adev)) - data =RREG32_SOC15 (MP0 ,0 , mmMP0_SMN_C2PMSG_102); + data = psp->km_ring.ring_wptr;else data =RREG32_SOC15 (MP0 ,0 , mmMP0_SMN_C2PMSG_67);
@@ -746,6 +746,7 @@ static void psp_v11_0_ring_set_wptr(struct psp_context *psp, uint32_t value)if (amdgpu_sriov_vf (adev)) {WREG32_SOC15 (MP0 ,0 , mmMP0_SMN_C2PMSG_102, value);WREG32_SOC15 (MP0 ,0 , mmMP0_SMN_C2PMSG_101,GFX_CTRL_CMD_ID_CONSUME_CMD ); + psp->km_ring.ring_wptr = value; }else WREG32_SOC15 (MP0 ,0 , mmMP0_SMN_C2PMSG_67, value); }
drivers/gpu/drm/amd/amdgpu/psp_v3_1.c +2 -1
@@ -379,7 +379,7 @@ static uint32_t psp_v3_1_ring_get_wptr(struct psp_context *psp)struct amdgpu_device *adev = psp->adev;if (amdgpu_sriov_vf (adev)) - data =RREG32_SOC15 (MP0 ,0 , mmMP0_SMN_C2PMSG_102); + data = psp->km_ring.ring_wptr;else data =RREG32_SOC15 (MP0 ,0 , mmMP0_SMN_C2PMSG_67);return data;
@@ -394,6 +394,7 @@ static void psp_v3_1_ring_set_wptr(struct psp_context *psp, uint32_t value)/* send interrupt to PSP for SRIOV ring write pointer update */ WREG32_SOC15 (MP0 ,0 , mmMP0_SMN_C2PMSG_101,GFX_CTRL_CMD_ID_CONSUME_CMD ); + psp->km_ring.ring_wptr = value; }else WREG32_SOC15 (MP0 ,0 , mmMP0_SMN_C2PMSG_67, value); }
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 35/38 rtnetlink: Fix missing error code in rtnl_bridge_notify()
In reply to Greg Kroah-HartmanFrom: Jiapeng Chong <[email protected]>
[ Upstream commit a8db57c1d285c758adc7fb43d6e2bad2554106e1 ]
The error code is missing in this code scenario, add the error code '-EINVAL' to the return value 'err'.
Eliminate the follow smatch warning:
net/core/rtnetlink.c:4834 rtnl_bridge_notify() warn: missing error code 'err'.
--- net/core/rtnetlink.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
net/core/rtnetlink.c +3 -1
@@ -4842,8 +4842,10 @@ static int rtnl_bridge_notify(struct net_device *dev)if (err <0 ) goto errout; -if (!skb->len) +if (!skb->len) { + err = -EINVAL ; goto errout; + }rtnl_notify (skb, net,0 ,RTNLGRP_LINK ,NULL ,GFP_ATOMIC );return 0 ;
Signature · 1 line
2.30.2
Re: [PATCH 5.10 35/38] rtnetlink: Fix missing error code in rtnl_bridge_notify()
В Ср, 16/06/2021 в 17:33 +0200, Greg Kroah-Hartman пишет:
Quoted 11 lines
From: Jiapeng Chong <[email protected]>
[ Upstream commit
a8db57c1d285c758adc7fb43d6e2bad2554106e1]The error code is missing in this code scenario, add the error code '
-EINVAL' to the return value 'err'.Eliminate the follow smatch warning:
net/core/rtnetlink.c:4834rtnl_bridge_notify()warn: missing error code 'err'.
This patch breaks systemd-resolved. It is 100% reproducible on two of my systems, but there are also systems where I cannot reproduce it. The problem manifests itself as SERVFAIL on every DNS query.
Just reverting this patch from 5.10.45 fixes the problem for me.
Quoted 26 lines
Reported-by Abaci Robot <[email protected]>Signed-off-by Jiapeng Chong <[email protected]>Signed-off-by David S. Miller <[email protected]>Signed-off-by Sasha Levin <[email protected]>---
net/core/rtnetlink.c | 4 +++-1 file changed, 3 insertions(+), 1 deletion(-)net/core/rtnetlink.c +0
-0@@ -4842,8 +4842,10 @@ static int rtnl_bridge_notify(struct net_device *dev) if (err < 0) goto errout;
- if (!skb->len)
+ if (!skb->len) {
+ err =-EINVAL;
goto errout;
+ }
rtnl_notify(skb, net, 0,RTNLGRP_LINK, NULL,GFP_ATOMIC); return 0;
Greg Kroah-Hartman
maintainerRe: [PATCH 5.10 35/38] rtnetlink: Fix missing error code in rtnl_bridge_notify()
Quoted 10 lines · Alexander Tsoy
В Ср, 16/06/2021 в 17:33 +0200, Greg Kroah-Hartman пишет:
Quoted 9 lines
From: Jiapeng Chong <[email protected]>
[ Upstream commit
a8db57c1d285c758adc7fb43d6e2bad2554106e1]The error code is missing in this code scenario, add the error code '
-EINVAL' to the return value 'err'.Eliminate the follow smatch warning:
Quoted 8 lines
Quoted 2 lines
net/core/rtnetlink.c:4834rtnl_bridge_notify()warn: missing error code 'err'.This patch breaks systemd-resolved. It is 100% reproducible on two of my systems, but there are also systems where I cannot reproduce it. The problem manifests itself as SERVFAIL on every DNS query.
Just reverting this patch from 5.10.45 fixes the problem for me.
Is Linus's tree also broken for you? It should be reverted there first.
thanks,
greg k-h
Re: [PATCH 5.10 35/38] rtnetlink: Fix missing error code in rtnl_bridge_notify()
В Сб, 19/06/2021 в 08:45 +0200, Greg Kroah-Hartman пишет:
Quoted 20 lines · Alexander Tsoy
Quoted 19 lines
В Ср, 16/06/2021 в 17:33 +0200, Greg Kroah-Hartman пишет:
Quoted 4 lines
From: Jiapeng Chong <[email protected]>
[ Upstream commit
a8db57c1d285c758adc7fb43d6e2bad2554106e1]Quoted 8 lines
The error code is missing in this code scenario, add the error code '
-EINVAL' to the return value 'err'.Eliminate the follow smatch warning:
net/core/rtnetlink.c:4834rtnl_bridge_notify()warn: missing error code
'err'.This patch breaks systemd-resolved. It is 100% reproducible on two of my systems, but there are also systems where I cannot reproduce it. The
problem manifests itself as SERVFAIL on every DNS query.
Quoted 4 lines
Quoted 1 line
Just reverting this patch from 5.10.45 fixes the problem for me.
Is Linus's tree also broken for you? It should be reverted there first.
Looks like this patch was reverted in Linus's tree:d2e381c4963663bca6f30c3b996fa4dbafe8fcb5 (rtnetlink: Fix regression in bridge VLAN configuration)
Also after some investigation I think my problem was actually with NetworkManager as systemd-networkd + systemd-resolved works fine.
$ grep ^dns /etc/NetworkManager/NetworkManager.conf dns=systemd-resolved
with this patch:
$ resolvectl
...
Link 4 (eno1)
Current Scopes: none
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS
DNSSEC=no/unsupported
DNS Servers: 192.168.1.1 fd9f:5696:250c::1
DNS Domain: lanwith this patch reverted:
$ resolvectl
...
Link 4 (eno1)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS
DNSSEC=no/unsupported
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1 fd9f:5696:250c::1
DNS Domain: lanGreg Kroah-Hartman
maintainerPATCH 36/38 net/x25: Return the correct errno code
In reply to Greg Kroah-HartmanFrom: Zheng Yongjun <[email protected]>
[ Upstream commit d7736958668c4facc15f421e622ffd718f5be80a ]
When kalloc or kmemdup failed, should return ENOMEM rather than ENOBUF.
--- net/x25/af_x25.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/x25/af_x25.c +1 -1
@@ -546,7 +546,7 @@ static int x25_create(struct net *net, struct socket *sock, int protocol,if (protocol) goto out; - rc = -ENOBUFS ; + rc = -ENOMEM ;if ((sk =x25_alloc_socket (net, kern)) ==NULL ) goto out;
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 37/38 net: Return the correct errno code
In reply to Greg Kroah-HartmanFrom: Zheng Yongjun <[email protected]>
[ Upstream commit 49251cd00228a3c983651f6bb2f33f6a0b8f152e ]
When kalloc or kmemdup failed, should return ENOMEM rather than ENOBUF.
--- net/compat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/compat.c +1 -1
@@ -177,7 +177,7 @@ int cmsghdr_from_user_compat_to_kern(struct msghdr *kmsg, struct sock *sk,if (kcmlen > stackbuf_size) kcmsg_base = kcmsg =sock_kmalloc (sk, kcmlen,GFP_KERNEL );if (kcmsg ==NULL ) -return -ENOBUFS ; +return -ENOMEM ;/* Now copy them over neatly. */ memset (kcmsg,0 , kcmlen);
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 38/38 fib: Return the correct errno code
In reply to Greg Kroah-HartmanFrom: Zheng Yongjun <[email protected]>
[ Upstream commit 59607863c54e9eb3f69afc5257dfe71c38bb751e ]
When kalloc or kmemdup failed, should return ENOMEM rather than ENOBUF.
--- net/core/fib_rules.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/core/fib_rules.c +1 -1
@@ -1168,7 +1168,7 @@ static void notify_rule_change(int event, struct fib_rule *rule, {struct net *net;struct sk_buff *skb; -int err = -ENOBUFS ; +int err = -ENOMEM ; net = ops->fro_net; skb =nlmsg_new (fib_rule_nlmsg_size (ops, rule),GFP_KERNEL );
Signature · 1 line
2.30.2
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.45 release. There are 38 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, 18 Jun 2021 15:28:19 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.45-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
All tests passing for Tegra ...
Test results for stable-v5.10:
12 builds: 12 pass, 0 fail
28 boots: 28 pass, 0 fail
70 tests: 70 pass, 0 failLinux version: 5.10.45-rc1-gaba9bf2d6e40
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,
tegra194-p2972-0000, tegra194-p3509-0000+p3668-0000,
tegra20-ventana, tegra210-p2371-2180,
tegra210-p3450-0000, tegra30-cardhu-a04Jon
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.45 release. There are 38 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, 18 Jun 2021 15:28:19 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 9 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.45-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
5.10.45-rc1 Successfully Compiled and booted on my Raspberry PI 4b (8g) (bcm2711)
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.45 release. There are 38 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, 18 Jun 2021 15:28:19 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.45-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
On ARCH_BRCMSTB using 32-bit and 64-bit ARM kernels:
Signature · 1 line
Florian
Hi!
Quoted 4 lines
This is the start of the stable review cycle for the 5.10.45 release. There are 38 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.
CIP testing did not find any problems here:
https://gitlab.com/cip-project/cip-testing/linux-stable-rc-ci/-/tree/linux-5.10.y
Best regards,
Pavel
Signature · 2 lines
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Quoted 10 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.45 release. There are 38 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, 18 Jun 2021 15:28:19 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.45-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
Results from Linaro’s test farm.
No regressions on arm64, arm, x86_64, and i386.
## Build
* kernel: 5.10.45-rc1
* git: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
* git branch: linux-5.10.y
* git commit: aba9bf2d6e4093d75b06b37d11ebebd7f637636d
* git describe: v5.10.44-39-gaba9bf2d6e40
* test details:
https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.10.y/build/v5.10.44-39-gaba9bf2d6e40
## No regressions (compared to v5.10.43-131-g3f05ff8b3370)
## No fixes (compared to v5.10.43-131-g3f05ff8b3370)
## Test result summary
total: 80674, pass: 65924, fail: 2590, skip: 11497, xfail: 663,
## Build Summary
* arc: 10 total, 10 passed, 0 failed
* arm: 193 total, 193 passed, 0 failed
* arm64: 27 total, 27 passed, 0 failed
* dragonboard-410c: 1 total, 1 passed, 0 failed
* hi6220-hikey: 1 total, 1 passed, 0 failed
* i386: 26 total, 26 passed, 0 failed
* juno-r2: 1 total, 1 passed, 0 failed
* mips: 45 total, 45 passed, 0 failed
* parisc: 9 total, 9 passed, 0 failed
* powerpc: 27 total, 27 passed, 0 failed
* riscv: 21 total, 21 passed, 0 failed
* s390: 18 total, 18 passed, 0 failed
* sh: 18 total, 18 passed, 0 failed
* sparc: 9 total, 9 passed, 0 failed
* x15: 1 total, 1 passed, 0 failed
* x86: 1 total, 1 passed, 0 failed
* x86_64: 27 total, 27 passed, 0 failed
## Test suites summary
* fwts
* install-android-platform-tools-r2600
* kselftest-
* kselftest-android
* kselftest-bpf
* kselftest-breakpoints
* kselftest-capabilities
* kselftest-cgroup
* kselftest-clone3
* kselftest-core
* kselftest-cpu-hotplug
* kselftest-cpufreq
* kselftest-drivers
* kselftest-efivarfs
* kselftest-filesystems
* kselftest-firmware
* kselftest-fpu
* kselftest-futex
* kselftest-gpio
* kselftest-intel_pstate
* kselftest-ipc
* kselftest-ir
* kselftest-kcmp
* kselftest-kexec
* kselftest-kvm
* kselftest-lib
* kselftest-livepatch
* kselftest-lkdtm
* kselftest-membarrier
* kselftest-memfd
* kselftest-memory-hotplug
* kselftest-mincore
* kselftest-mount
* kselftest-mqueue
* kselftest-net
* kselftest-netfilter
* kselftest-nsfs
* kselftest-openat2
* kselftest-pid_namespace
* kselftest-pidfd
* kselftest-proc
* kselftest-pstore
* kselftest-ptrace
* kselftest-rseq
* kselftest-rtc
* kselftest-seccomp
* kselftest-sigaltstack
* kselftest-size
* kselftest-splice
* kselftest-static_keys
* kselftest-sync
* kselftest-sysctl
* kselftest-tc-testing
* kselftest-timens
* kselftest-timers
* kselftest-tmpfs
* kselftest-tpm2
* kselftest-user
* kselftest-vm
* kselftest-vsyscall-mode-native-
* kselftest-vsyscall-mode-none-
* kselftest-x86
* kselftest-zram
* kunit
* kvm-unit-tests
* libhugetlbfs
* linux-log-parser
* ltp-cap_bounds-tests
* ltp-commands-tests
* ltp-containers-tests
* ltp-controllers-tests
* ltp-cpuhotplug-tests
* ltp-crypto-tests
* ltp-cve-tests
* ltp-dio-tests
* ltp-fcntl-locktests-tests
* ltp-filecaps-tests
* ltp-fs-tests
* ltp-fs_bind-tests
* ltp-fs_perms_simple-tests
* ltp-fsx-tests
* ltp-hugetlb-tests
* ltp-io-tests
* ltp-ipc-tests
* ltp-math-tests
* ltp-mm-tests
* ltp-nptl-tests
* ltp-open-posix-tests
* ltp-pty-tests
* ltp-sched-tests
* ltp-securebits-tests
* ltp-syscalls-tests
* ltp-tracing-tests
* network-basic-tests
* packetdrill
* perf
* rcutorture
* ssuite
* v4l2-compliance
--
Linaro LKFT
https://lkft.linaro.org
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.45 release. There are 38 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, 18 Jun 2021 15:28:19 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 9 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.45-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
Tested on arm64 and x86 for 5.10.45-rc1,
Kernel repo:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Branch: linux-5.10.y
Version: 5.10.45-rc1
Commit: aba9bf2d6e4093d75b06b37d11ebebd7f637636d
Compiler: gcc version 7.3.0 (GCC)
arm64:
--------------------------------------------------------------------
Testcase Result Summary:
total: 8906
passed: 8906
failed: 0
timeout: 0
--------------------------------------------------------------------
x86:
--------------------------------------------------------------------
Testcase Result Summary:
total: 8906
passed: 8906
failed: 0
timeout: 0
--------------------------------------------------------------------
Hi Greg,
Quoted 7 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.45 release. There are 38 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, 18 Jun 2021 15:28:19 +0000. Anything received after that time might be too late.
Build test:
mips (gcc version 11.1.1 20210615): 63 configs -> no failure arm (gcc version 11.1.1 20210615): 105 configs -> no new failure arm64 (gcc version 11.1.1 20210615): 2 configs -> no failure x86_64 (gcc version 10.2.1 20210110): 2 configs -> no failure
Boot test:x86_64: Booted on my test laptop. No regression.x86_64: Booted on qemu. No regression.
arm64: Booted on rpi4b (4GB model). No regression.
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.45 release. There are 38 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, 18 Jun 2021 15:28:19 +0000. Anything received after that time might be too late.
Build results:
total: 156 pass: 156 fail: 0 Qemu test results: total: 455 pass: 455 fail: 0
Guenter