From: Marcin Ślusarz <mslusarz(a)renau.com>
mainline inclusion
from mainline-v6.11-rc1
commit adc539784c98a7cc602cbf557debfc2e7b9be8b3
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IARYFO
CVE: CVE-2024-46760
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
Right now it's possible to hit NULL pointer dereference in
rtw_rx_fill_rx_status on hw object and/or its fields because
initialization routine can start getting USB replies before
rtw_dev is fully setup.
The stack trace looks like this:
rtw_rx_fill_rx_status
rtw8821c_query_rx_desc
rtw_usb_rx_handler
...
queue_work
rtw_usb_read_port_complete
...
usb_submit_urb
rtw_usb_rx_resubmit
rtw_usb_init_rx
rtw_usb_probe
So while we do the async stuff rtw_usb_probe continues and calls
rtw_register_hw, which does all kinds of initialization (e.g.
via ieee80211_register_hw) that rtw_rx_fill_rx_status relies on.
Fix this by moving the first usb_submit_urb after everything
is set up.
For me, this bug manifested as:
[ 8.893177] rtw_8821cu 1-1:1.2: band wrong, packet dropped
[ 8.910904] rtw_8821cu 1-1:1.2: hw->conf.chandef.chan NULL in rtw_rx_fill_rx_status
because I'm using Larry's backport of rtw88 driver with the NULL
checks in rtw_rx_fill_rx_status.
Link: https://lore.kernel.org/linux-wireless/CA+shoWQ7P49jhQasofDcTdQhiuarPTjYEDa…
Signed-off-by: Marcin Ślusarz <mslusarz(a)renau.com>
Cc: Tim K <tpkuester(a)gmail.com>
Cc: Ping-Ke Shih <pkshih(a)realtek.com>
Cc: Larry Finger <Larry.Finger(a)lwfinger.net>
Cc: Kalle Valo <kvalo(a)kernel.org>
Cc: linux-wireless(a)vger.kernel.org
Cc: linux-kernel(a)vger.kernel.org
Signed-off-by: Ping-Ke Shih <pkshih(a)realtek.com>
Link: https://patch.msgid.link/20240528110246.477321-1-marcin.slusarz@gmail.com
Signed-off-by: Chen Zhongjin <chenzhongjin(a)huawei.com>
---
drivers/net/wireless/realtek/rtw88/usb.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
index efd0c2915a05..04a64afcbf8a 100644
--- a/drivers/net/wireless/realtek/rtw88/usb.c
+++ b/drivers/net/wireless/realtek/rtw88/usb.c
@@ -742,7 +742,6 @@ static struct rtw_hci_ops rtw_usb_ops = {
static int rtw_usb_init_rx(struct rtw_dev *rtwdev)
{
struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
- int i;
rtwusb->rxwq = create_singlethread_workqueue("rtw88_usb: rx wq");
if (!rtwusb->rxwq) {
@@ -754,13 +753,19 @@ static int rtw_usb_init_rx(struct rtw_dev *rtwdev)
INIT_WORK(&rtwusb->rx_work, rtw_usb_rx_handler);
+ return 0;
+}
+
+static void rtw_usb_setup_rx(struct rtw_dev *rtwdev)
+{
+ struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
+ int i;
+
for (i = 0; i < RTW_USB_RXCB_NUM; i++) {
struct rx_usb_ctrl_block *rxcb = &rtwusb->rx_cb[i];
rtw_usb_rx_resubmit(rtwusb, rxcb);
}
-
- return 0;
}
static void rtw_usb_deinit_rx(struct rtw_dev *rtwdev)
@@ -897,6 +902,8 @@ int rtw_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
goto err_destroy_rxwq;
}
+ rtw_usb_setup_rx(rtwdev);
+
return 0;
err_destroy_rxwq:
--
2.25.1
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 2e95e7bae9486cc775ed2aa319bf323f6ba2677b
commit: c03a541494af4fb1504917412d762247b90380da [9419/14172] LoongArch: Fix callchain parse error with kernel tracepoint events
config: loongarch-randconfig-002-20240925 (https://download.01.org/0day-ci/archive/20240927/202409270442.VcOKC2UZ-lkp@…)
compiler: loongarch64-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240927/202409270442.VcOKC2UZ-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409270442.VcOKC2UZ-lkp@intel.com/
All errors (new ones prefixed by >>):
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `mm/oom_kill.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/oom_kill.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/swap.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `mm/vmscan.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/vmscan.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `mm/percpu.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/percpu.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `mm/slab_common.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/slab_common.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `mm/compaction.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/compaction.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/mmap_lock.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/mmap.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `mm/rmap.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/rmap.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/vmalloc.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/huge_memory.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `mm/khugepaged.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/khugepaged.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/page_isolation.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/cma.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `mm/damon/core.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `fs/fs-writeback.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `fs/fs-writeback.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `fs/locks.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `fs/iomap/trace.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `fs/ext4/super.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `fs/ext4/super.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `fs/ext2/trace.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `fs/jbd2/journal.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `fs/xfs/xfs_trace.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `fs/xfs/xfs_trace.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `fs/xfs/scrub/trace.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `fs/xfs/scrub/trace.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `fs/btrfs/super.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `fs/btrfs/super.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `fs/gfs2/glock.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `fs/f2fs/super.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `fs/f2fs/super.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `fs/zonefs/super.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `block/blk-core.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `block/blk-iocost.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `block/blk-wbt.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `io_uring/io_uring.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/gpio/gpiolib.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/clk/clk.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/dma/tegra20-apb-dma.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/soc/qcom/rpmh-rsc.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/regulator/core.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/iommu/iommu-traces.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/gpu/host1x/dev.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/gpu/drm/drm_trace_points.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/gpu/drm/scheduler/sched_main.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/gpu/drm/radeon/radeon_trace_points.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/gpu/drm/amd/amdgpu/amdgpu_trace_points.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/gpu/drm/v3d/v3d_trace_points.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/gpu/drm/msm/disp/dpu1/dpu_kms.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/gpu/drm/msm/msm_atomic_tracepoints.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/gpu/drm/msm/msm_gpu_tracepoints.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/gpu/drm/tegra/trace.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/gpu/drm/lima/lima_trace.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/base/regmap/regmap.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/dma-buf/dma-fence.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/dma-buf/sw_sync.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/scsi/scsi.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/scsi/sd_zbc.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/nvme/host/core.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/target/target_core_transport.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/spi/spi.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/spmi/spmi.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/usb/host/xhci-trace.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/usb/musb/musb_trace.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/input/keyboard/applespi.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/i2c/i2c-core-base.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/i2c/i2c-core-smbus.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `drivers/i2c/i2c-core-slave.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/i2c/i2c-core-slave.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/hwmon/hwmon.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `drivers/thermal/thermal_core.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/thermal/thermal_core.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/mmc/core/core.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_eval_map' from `drivers/ufs/core/ufshcd.o' being placed in section `_ftrace_eval_map'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/ufs/core/ufshcd.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/platform/chrome/cros_ec_trace.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/devfreq/devfreq.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/android/binder.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/fsi/fsi-core.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/fsi/fsi-master-aspeed.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/fsi/fsi-master-gpio.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/fsi/fsi-master-ast-cf.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `drivers/interconnect/core.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `sound/core/pcm_native.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `sound/core/pcm_lib.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: warning: orphan section `_ftrace_events' from `lib/maple_tree.o' being placed in section `_ftrace_events'
loongarch64-linux-ld: init/main.o: in function `.L199':
main.c:(.text+0x200): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: main.c:(.text+0x250): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: init/main.o: in function `perf_trace_initcall_start':
main.c:(.text+0x36c): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: init/main.o: in function `.L213':
>> main.c:(.text+0x3a0): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: init/main.o: in function `perf_trace_initcall_finish':
main.c:(.text+0x47c): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: init/main.o: in function `.L225':
main.c:(.text+0x4b4): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: init/main.o: in function `trace_event_raw_event_initcall_start':
main.c:(.text+0x590): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: main.c:(.text+0x5a0): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: init/main.o: in function `.L236':
main.c:(.text+0x5e8): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: init/main.o: in function `trace_event_raw_event_initcall_finish':
main.c:(.text+0x660): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: main.c:(.text+0x674): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: init/main.o: in function `.L247':
main.c:(.text+0x6c8): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: main.c:(.text+0x6fc): undefined reference to `trace_raw_output_prep'
loongarch64-linux-ld: init/main.o: in function `trace_raw_output_initcall_level':
main.c:(.text+0x754): undefined reference to `trace_event_printf'
loongarch64-linux-ld: main.c:(.text+0x774): undefined reference to `trace_handle_return'
loongarch64-linux-ld: init/main.o: in function `.L263':
main.c:(.text+0x79c): undefined reference to `trace_raw_output_prep'
loongarch64-linux-ld: init/main.o: in function `trace_raw_output_initcall_start':
main.c:(.text+0x7f0): undefined reference to `trace_event_printf'
loongarch64-linux-ld: main.c:(.text+0x810): undefined reference to `trace_handle_return'
loongarch64-linux-ld: main.c:(.text+0x83c): undefined reference to `trace_raw_output_prep'
loongarch64-linux-ld: init/main.o: in function `trace_raw_output_initcall_finish':
main.c:(.text+0x894): undefined reference to `trace_event_printf'
loongarch64-linux-ld: main.c:(.text+0x8b4): undefined reference to `trace_handle_return'
loongarch64-linux-ld: init/main.o: in function `trace_event_raw_event_initcall_level':
main.c:(.text+0x938): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: main.c:(.text+0x954): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: init/main.o: in function `.L312':
main.c:(.text+0x9bc): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: init/main.o: in function `.L299':
main.c:(.text+0xa08): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: init/main.o:(.ref.data+0x18): undefined reference to `trace_event_reg'
loongarch64-linux-ld: init/main.o:(.ref.data+0x40): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: init/main.o:(.ref.data+0x60): undefined reference to `trace_event_reg'
loongarch64-linux-ld: init/main.o:(.ref.data+0x88): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: init/main.o:(.ref.data+0xa8): undefined reference to `trace_event_reg'
loongarch64-linux-ld: init/main.o:(.ref.data+0xd0): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: kernel/fork.o: in function `perf_trace_task_newtask':
fork.c:(.text+0x178): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/fork.o: in function `.L34':
fork.c:(.text+0x1dc): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/fork.o: in function `.L21':
fork.c:(.text+0x258): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/fork.o: in function `trace_event_raw_event_task_newtask':
fork.c:(.text+0x2d4): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: kernel/fork.o: in function `.L39':
fork.c:(.text+0x30c): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/fork.o: in function `.L35':
fork.c:(.text+0x34c): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/fork.o: in function `.L36':
fork.c:(.text+0x384): undefined reference to `trace_raw_output_prep'
loongarch64-linux-ld: kernel/fork.o: in function `trace_raw_output_task_newtask':
fork.c:(.text+0x3dc): undefined reference to `trace_event_printf'
loongarch64-linux-ld: fork.c:(.text+0x3fc): undefined reference to `trace_handle_return'
loongarch64-linux-ld: kernel/fork.o: in function `.L52':
fork.c:(.text+0x424): undefined reference to `trace_raw_output_prep'
loongarch64-linux-ld: kernel/fork.o: in function `trace_raw_output_task_rename':
fork.c:(.text+0x47c): undefined reference to `trace_event_printf'
loongarch64-linux-ld: fork.c:(.text+0x49c): undefined reference to `trace_handle_return'
loongarch64-linux-ld: kernel/fork.o: in function `.L58':
fork.c:(.text+0x510): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/fork.o: in function `perf_trace_task_rename':
fork.c:(.text+0x580): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/fork.o: in function `.L72':
fork.c:(.text+0x5f8): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/fork.o: in function `.L71':
fork.c:(.text+0x678): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: kernel/fork.o: in function `trace_event_raw_event_task_rename':
fork.c:(.text+0x6bc): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/fork.o: in function `.L77':
fork.c:(.text+0x708): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/fork.o:(.ref.data+0x18): undefined reference to `trace_event_reg'
loongarch64-linux-ld: kernel/fork.o:(.ref.data+0x40): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: kernel/fork.o:(.ref.data+0x60): undefined reference to `trace_event_reg'
loongarch64-linux-ld: kernel/fork.o:(.ref.data+0x88): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: kernel/cpu.o: in function `perf_trace_cpuhp_enter':
cpu.c:(.text+0x2dc): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/cpu.o: in function `.L35':
cpu.c:(.text+0x31c): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/cpu.o: in function `perf_trace_cpuhp_multi_enter':
cpu.c:(.text+0x40c): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/cpu.o: in function `.L47':
cpu.c:(.text+0x44c): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/cpu.o: in function `perf_trace_cpuhp_exit':
cpu.c:(.text+0x54c): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/cpu.o: in function `.L59':
cpu.c:(.text+0x58c): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/cpu.o: in function `trace_event_raw_event_cpuhp_enter':
cpu.c:(.text+0x688): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: cpu.c:(.text+0x6a4): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/cpu.o: in function `.L70':
cpu.c:(.text+0x708): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/cpu.o: in function `trace_event_raw_event_cpuhp_multi_enter':
cpu.c:(.text+0x790): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: cpu.c:(.text+0x7ac): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/cpu.o: in function `.L81':
cpu.c:(.text+0x808): undefined reference to `__trace_trigger_soft_disabled'
--
loongarch64-linux-ld: kernel/time/alarmtimer.o:(.ref.data+0x40): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: kernel/time/alarmtimer.o:(.ref.data+0x60): undefined reference to `trace_event_reg'
loongarch64-linux-ld: kernel/time/alarmtimer.o:(.ref.data+0x88): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: kernel/smp.o: in function `perf_trace_csd_queue_cpu':
smp.c:(.text+0x224): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/smp.o: in function `.L30':
smp.c:(.text+0x264): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/smp.o: in function `perf_trace_csd_function':
smp.c:(.text+0x33c): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/smp.o: in function `.L42':
smp.c:(.text+0x374): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/smp.o: in function `trace_event_raw_event_csd_queue_cpu':
smp.c:(.text+0x468): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: smp.c:(.text+0x484): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/smp.o: in function `.L53':
smp.c:(.text+0x4e8): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/smp.o: in function `trace_event_raw_event_csd_function':
smp.c:(.text+0x560): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: smp.c:(.text+0x574): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/smp.o: in function `.L64':
smp.c:(.text+0x5c8): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/smp.o: in function `.L65':
smp.c:(.text+0x5fc): undefined reference to `trace_raw_output_prep'
loongarch64-linux-ld: kernel/smp.o: in function `trace_raw_output_csd_queue_cpu':
smp.c:(.text+0x65c): undefined reference to `trace_event_printf'
loongarch64-linux-ld: smp.c:(.text+0x67c): undefined reference to `trace_handle_return'
loongarch64-linux-ld: kernel/smp.o: in function `.L80':
smp.c:(.text+0x6a4): undefined reference to `trace_raw_output_prep'
loongarch64-linux-ld: kernel/smp.o: in function `trace_raw_output_csd_function':
smp.c:(.text+0x6f4): undefined reference to `trace_event_printf'
loongarch64-linux-ld: smp.c:(.text+0x714): undefined reference to `trace_handle_return'
loongarch64-linux-ld: kernel/smp.o:(.ref.data+0x18): undefined reference to `trace_event_reg'
loongarch64-linux-ld: kernel/smp.o:(.ref.data+0x40): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: kernel/smp.o:(.ref.data+0x60): undefined reference to `trace_event_reg'
loongarch64-linux-ld: kernel/smp.o:(.ref.data+0x88): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: kernel/kexec_core.o: in function `.L255':
kexec_core.c:(.text+0x1b10): undefined reference to `machine_kexec_cleanup'
loongarch64-linux-ld: kernel/kexec_core.o: in function `.L296':
kexec_core.c:(.text+0x1d70): undefined reference to `machine_crash_shutdown'
loongarch64-linux-ld: kexec_core.c:(.text+0x1d78): undefined reference to `machine_kexec'
loongarch64-linux-ld: kernel/kexec_core.o: in function `.L383':
kexec_core.c:(.text+0x2350): undefined reference to `machine_shutdown'
loongarch64-linux-ld: kernel/kexec_core.o: in function `.L380':
kexec_core.c:(.text+0x2360): undefined reference to `machine_kexec'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L128':
cgroup.c:(.text+0x868): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L129':
cgroup.c:(.text+0x8d4): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `perf_trace_cgroup_event':
cgroup.c:(.text+0xa40): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L147':
cgroup.c:(.text+0xab4): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L169':
cgroup.c:(.text+0xd70): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L21':
cgroup.c:(.text+0xdb4): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L193':
cgroup.c:(.text+0xe68): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L192':
cgroup.c:(.text+0xe9c): undefined reference to `trace_raw_output_prep'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L189':
cgroup.c:(.text+0xefc): undefined reference to `trace_event_printf'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L200':
cgroup.c:(.text+0xf1c): undefined reference to `trace_handle_return'
loongarch64-linux-ld: cgroup.c:(.text+0xf44): undefined reference to `trace_raw_output_prep'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L201':
cgroup.c:(.text+0xfa0): undefined reference to `trace_event_printf'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `trace_raw_output_cgroup_root':
cgroup.c:(.text+0xfc0): undefined reference to `trace_handle_return'
loongarch64-linux-ld: cgroup.c:(.text+0xfec): undefined reference to `trace_raw_output_prep'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L207':
cgroup.c:(.text+0x106c): undefined reference to `trace_event_printf'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `trace_raw_output_cgroup':
cgroup.c:(.text+0x108c): undefined reference to `trace_handle_return'
loongarch64-linux-ld: cgroup.c:(.text+0x10b4): undefined reference to `trace_raw_output_prep'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L213':
cgroup.c:(.text+0x1124): undefined reference to `trace_event_printf'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `trace_raw_output_cgroup_migrate':
cgroup.c:(.text+0x1144): undefined reference to `trace_handle_return'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L730':
cgroup.c:(.text+0x3e5c): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L15':
cgroup.c:(.text+0x3ef4): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L756':
cgroup.c:(.text+0x4050): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `css_create':
cgroup.c:(.text+0x40c0): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L769':
cgroup.c:(.text+0x4234): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: cgroup.c:(.text+0x4278): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L772':
cgroup.c:(.text+0x42d4): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L775':
cgroup.c:(.text+0x4328): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `perf_trace_cgroup_migrate':
cgroup.c:(.text+0x43c4): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L782':
cgroup.c:(.text+0x43f4): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L784':
cgroup.c:(.text+0x444c): undefined reference to `trace_event_buffer_reserve'
>> loongarch64-linux-ld: cgroup.c:(.text+0x44a8): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L788':
cgroup.c:(.text+0x4580): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `perf_trace_cgroup':
cgroup.c:(.text+0x45e8): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/cgroup/cgroup.o: in function `.L802':
cgroup.c:(.text+0x46c8): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/cgroup/cgroup.o:(.ref.data+0x18): undefined reference to `trace_event_reg'
loongarch64-linux-ld: kernel/cgroup/cgroup.o:(.ref.data+0x40): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: kernel/cgroup/cgroup.o:(.ref.data+0x60): undefined reference to `trace_event_reg'
loongarch64-linux-ld: kernel/cgroup/cgroup.o:(.ref.data+0x88): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: kernel/cgroup/cgroup.o:(.ref.data+0xa8): undefined reference to `trace_event_reg'
loongarch64-linux-ld: kernel/cgroup/cgroup.o:(.ref.data+0xd0): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: kernel/cgroup/cgroup.o:(.ref.data+0xf0): undefined reference to `trace_event_reg'
loongarch64-linux-ld: kernel/cgroup/cgroup.o:(.ref.data+0x118): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: kernel/trace/error_report-traces.o: in function `.L12':
error_report-traces.c:(.text+0xec): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: error_report-traces.c:(.text+0x124): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/trace/error_report-traces.o: in function `trace_event_raw_event_error_report_template':
error_report-traces.c:(.text+0x1f8): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: kernel/trace/error_report-traces.o: in function `.L27':
error_report-traces.c:(.text+0x20c): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/trace/error_report-traces.o: in function `.L23':
error_report-traces.c:(.text+0x248): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/trace/error_report-traces.o: in function `.L24':
error_report-traces.c:(.text+0x27c): undefined reference to `trace_raw_output_prep'
loongarch64-linux-ld: kernel/trace/error_report-traces.o: in function `trace_raw_output_error_report_template':
error_report-traces.c:(.text+0x2d0): undefined reference to `trace_print_symbols_seq'
loongarch64-linux-ld: error_report-traces.c:(.text+0x2e8): undefined reference to `trace_event_printf'
loongarch64-linux-ld: kernel/trace/error_report-traces.o: in function `.L39':
error_report-traces.c:(.text+0x308): undefined reference to `trace_handle_return'
loongarch64-linux-ld: kernel/trace/error_report-traces.o:(.ref.data+0x18): undefined reference to `trace_event_reg'
loongarch64-linux-ld: kernel/trace/error_report-traces.o:(.ref.data+0x40): undefined reference to `trace_event_raw_init'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `perf_trace_cpu':
power-traces.c:(.text+0xdb4): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L209':
power-traces.c:(.text+0xdec): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `perf_trace_cpu_idle_miss':
power-traces.c:(.text+0xec4): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L221':
power-traces.c:(.text+0xf00): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `perf_trace_pstate_sample':
power-traces.c:(.text+0x1010): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L233':
power-traces.c:(.text+0x106c): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `perf_trace_cpu_frequency_limits':
power-traces.c:(.text+0x1154): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: power-traces.c:(.text+0x119c): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `perf_trace_suspend_resume':
power-traces.c:(.text+0x1284): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: power-traces.c:(.text+0x12c0): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L267':
power-traces.c:(.text+0x1394): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `perf_trace_cpu_latency_qos_request':
power-traces.c:(.text+0x13c8): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L268':
power-traces.c:(.text+0x14a4): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `perf_trace_pm_qos_update':
power-traces.c:(.text+0x14e0): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L280':
power-traces.c:(.text+0x15c4): undefined reference to `perf_trace_buf_alloc'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `perf_trace_guest_halt_poll_ns':
power-traces.c:(.text+0x1600): undefined reference to `perf_trace_run_bpf_submit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L292':
power-traces.c:(.text+0x16d8): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: power-traces.c:(.text+0x16ec): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `trace_event_raw_event_cpu':
power-traces.c:(.text+0x1728): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L304':
power-traces.c:(.text+0x17a8): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: power-traces.c:(.text+0x17c0): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `trace_event_raw_event_cpu_idle_miss':
power-traces.c:(.text+0x1808): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L315':
power-traces.c:(.text+0x18b0): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: power-traces.c:(.text+0x18e0): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `trace_event_raw_event_pstate_sample':
power-traces.c:(.text+0x194c): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L330':
power-traces.c:(.text+0x19b8): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L326':
power-traces.c:(.text+0x19e0): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: power-traces.c:(.text+0x1a2c): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L341':
power-traces.c:(.text+0x1ab0): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: power-traces.c:(.text+0x1ac8): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L338':
power-traces.c:(.text+0x1b28): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `trace_event_raw_event_suspend_resume':
power-traces.c:(.text+0x1b98): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: power-traces.c:(.text+0x1ba8): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L348':
power-traces.c:(.text+0x1be8): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `trace_event_raw_event_cpu_latency_qos_request':
power-traces.c:(.text+0x1c68): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: power-traces.c:(.text+0x1c80): undefined reference to `trace_event_buffer_commit'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `.L359':
power-traces.c:(.text+0x1cc8): undefined reference to `__trace_trigger_soft_disabled'
loongarch64-linux-ld: kernel/trace/power-traces.o: in function `trace_event_raw_event_pm_qos_update':
power-traces.c:(.text+0x1d48): undefined reference to `trace_event_buffer_reserve'
loongarch64-linux-ld: power-traces.c:(.text+0x1d60): undefined reference to `trace_event_buffer_commit'
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for PGP_PRELOAD
Depends on [n]: CRYPTO [=y] && ASYMMETRIC_KEY_TYPE [=n]
Selected by [y]:
- PGP_PRELOAD_PUBLIC_KEYS [=y] && CRYPTO [=y]
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: b1d54e6f06c518a52f83edade0da2b959e1c9a4e
commit: 1073f9d006321689fb82bdac7b7af58e8617f128 [5053/23779] platform/x86: Add Intel AtomISP2 dummy / power-management driver
config: x86_64-buildonly-randconfig-001-20240926 (https://download.01.org/0day-ci/archive/20240927/202409270224.SJPfAkVu-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240927/202409270224.SJPfAkVu-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409270224.SJPfAkVu-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from drivers/platform/x86/intel_atomisp2_pm.c:15:
include/linux/module.h:140:14: warning: 'cleanup_module' specifies less restrictive attribute than its target 'isp_pci_driver_exit': 'cold' [-Wmissing-attributes]
140 | void cleanup_module(void) __attribute__((alias(#exitfn)));
| ^~~~~~~~~~~~~~
include/linux/device.h:1637:1: note: in expansion of macro 'module_exit'
1637 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
include/linux/pci.h:1335:9: note: in expansion of macro 'module_driver'
1335 | module_driver(__pci_driver, pci_register_driver, pci_unregister_driver)
| ^~~~~~~~~~~~~
drivers/platform/x86/intel_atomisp2_pm.c:115:1: note: in expansion of macro 'module_pci_driver'
115 | module_pci_driver(isp_pci_driver);
| ^~~~~~~~~~~~~~~~~
In file included from include/linux/pci.h:32,
from drivers/platform/x86/intel_atomisp2_pm.c:17:
drivers/platform/x86/intel_atomisp2_pm.c:115:19: note: 'cleanup_module' target declared here
115 | module_pci_driver(isp_pci_driver);
| ^~~~~~~~~~~~~~
include/linux/device.h:1633:20: note: in definition of macro 'module_driver'
1633 | static void __exit __driver##_exit(void) \
| ^~~~~~~~
drivers/platform/x86/intel_atomisp2_pm.c:115:1: note: in expansion of macro 'module_pci_driver'
115 | module_pci_driver(isp_pci_driver);
| ^~~~~~~~~~~~~~~~~
include/linux/module.h:134:13: warning: 'init_module' specifies less restrictive attribute than its target 'isp_pci_driver_init': 'cold' [-Wmissing-attributes]
134 | int init_module(void) __attribute__((alias(#initfn)));
| ^~~~~~~~~~~
include/linux/device.h:1632:1: note: in expansion of macro 'module_init'
1632 | module_init(__driver##_init); \
| ^~~~~~~~~~~
include/linux/pci.h:1335:9: note: in expansion of macro 'module_driver'
1335 | module_driver(__pci_driver, pci_register_driver, pci_unregister_driver)
| ^~~~~~~~~~~~~
drivers/platform/x86/intel_atomisp2_pm.c:115:1: note: in expansion of macro 'module_pci_driver'
115 | module_pci_driver(isp_pci_driver);
| ^~~~~~~~~~~~~~~~~
drivers/platform/x86/intel_atomisp2_pm.c:115:19: note: 'init_module' target declared here
115 | module_pci_driver(isp_pci_driver);
| ^~~~~~~~~~~~~~
include/linux/device.h:1628:19: note: in definition of macro 'module_driver'
1628 | static int __init __driver##_init(void) \
| ^~~~~~~~
drivers/platform/x86/intel_atomisp2_pm.c:115:1: note: in expansion of macro 'module_pci_driver'
115 | module_pci_driver(isp_pci_driver);
| ^~~~~~~~~~~~~~~~~
>> drivers/platform/x86/intel_atomisp2_pm.o: warning: objtool: missing symbol for section .init.text
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
From: Krishna Kumar <krishnak(a)linux.ibm.com>
stable inclusion
from stable-v4.19.322
commit 4eb4085c1346d19d4a05c55246eb93e74e671048
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IARWMF
CVE: CVE-2024-46761
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 335e35b748527f0c06ded9eebb65387f60647fda ]
The hotplug driver for powerpc (pci/hotplug/pnv_php.c) causes a kernel
crash when we try to hot-unplug/disable the PCIe switch/bridge from
the PHB.
The crash occurs because although the MSI data structure has been
released during disable/hot-unplug path and it has been assigned
with NULL, still during unregistration the code was again trying to
explicitly disable the MSI which causes the NULL pointer dereference and
kernel crash.
The patch fixes the check during unregistration path to prevent invoking
pci_disable_msi/msix() since its data structure is already freed.
Reported-by: Timothy Pearson <tpearson(a)raptorengineering.com>
Closes: https://lore.kernel.org/all/1981605666.2142272.1703742465927.JavaMail.zimbr…
Acked-by: Bjorn Helgaas <bhelgaas(a)google.com>
Tested-by: Shawn Anastasio <sanastasio(a)raptorengineering.com>
Signed-off-by: Krishna Kumar <krishnak(a)linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe(a)ellerman.id.au>
Link: https://msgid.link/20240701074513.94873-2-krishnak@linux.ibm.com
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Zeng Heng <zengheng4(a)huawei.com>
---
drivers/pci/hotplug/pnv_php.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/pci/hotplug/pnv_php.c b/drivers/pci/hotplug/pnv_php.c
index 3276a5e4c430..486fad430958 100644
--- a/drivers/pci/hotplug/pnv_php.c
+++ b/drivers/pci/hotplug/pnv_php.c
@@ -35,7 +35,6 @@ static void pnv_php_disable_irq(struct pnv_php_slot *php_slot,
bool disable_device)
{
struct pci_dev *pdev = php_slot->pdev;
- int irq = php_slot->irq;
u16 ctrl;
if (php_slot->irq > 0) {
@@ -54,7 +53,7 @@ static void pnv_php_disable_irq(struct pnv_php_slot *php_slot,
php_slot->wq = NULL;
}
- if (disable_device || irq > 0) {
+ if (disable_device) {
if (pdev->msix_enabled)
pci_disable_msix(pdev);
else if (pdev->msi_enabled)
--
2.25.1
From: Krishna Kumar <krishnak(a)linux.ibm.com>
stable inclusion
from stable-v5.10.226
commit bc1faed19db95abf0933b104910a3fb01b138f59
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IARWMF
CVE: CVE-2024-46761
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 335e35b748527f0c06ded9eebb65387f60647fda ]
The hotplug driver for powerpc (pci/hotplug/pnv_php.c) causes a kernel
crash when we try to hot-unplug/disable the PCIe switch/bridge from
the PHB.
The crash occurs because although the MSI data structure has been
released during disable/hot-unplug path and it has been assigned
with NULL, still during unregistration the code was again trying to
explicitly disable the MSI which causes the NULL pointer dereference and
kernel crash.
The patch fixes the check during unregistration path to prevent invoking
pci_disable_msi/msix() since its data structure is already freed.
Reported-by: Timothy Pearson <tpearson(a)raptorengineering.com>
Closes: https://lore.kernel.org/all/1981605666.2142272.1703742465927.JavaMail.zimbr…
Acked-by: Bjorn Helgaas <bhelgaas(a)google.com>
Tested-by: Shawn Anastasio <sanastasio(a)raptorengineering.com>
Signed-off-by: Krishna Kumar <krishnak(a)linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe(a)ellerman.id.au>
Link: https://msgid.link/20240701074513.94873-2-krishnak@linux.ibm.com
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Zeng Heng <zengheng4(a)huawei.com>
---
drivers/pci/hotplug/pnv_php.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/pci/hotplug/pnv_php.c b/drivers/pci/hotplug/pnv_php.c
index 04565162a449..cf9c0e75f0be 100644
--- a/drivers/pci/hotplug/pnv_php.c
+++ b/drivers/pci/hotplug/pnv_php.c
@@ -38,7 +38,6 @@ static void pnv_php_disable_irq(struct pnv_php_slot *php_slot,
bool disable_device)
{
struct pci_dev *pdev = php_slot->pdev;
- int irq = php_slot->irq;
u16 ctrl;
if (php_slot->irq > 0) {
@@ -57,7 +56,7 @@ static void pnv_php_disable_irq(struct pnv_php_slot *php_slot,
php_slot->wq = NULL;
}
- if (disable_device || irq > 0) {
+ if (disable_device) {
if (pdev->msix_enabled)
pci_disable_msix(pdev);
else if (pdev->msi_enabled)
--
2.25.1