Re: [PATCH for-rc] RDMA/siw: Fix calculation of tx_valid_cpus size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 01, 2021 at 01:29:22PM +0200, Kamal Heib wrote:
> The size of tx_valid_cpus was calculated under the assumption that the
> numa nodes identifiers are continuous, which is not the case in all
> archs as this could lead to the following panic when trying to access an
> invalid tx_valid_cpus index, avoid the following panic by using
> nr_node_ids instead of num_online_nodes() to allocate the tx_valid_cpus
> size.
> 
> Kernel attempted to read user page (8) - exploit attempt? (uid: 0)
> BUG: Kernel NULL pointer dereference on read at 0x00000008
> Faulting instruction address: 0xc0080000081b4a90
> Oops: Kernel access of bad area, sig: 11 [#1]
> LE PAGE_SIZE=64K MMU=Radix SMP NR_CPUS=2048 NUMA PowerNV
> Modules linked in: siw(+) rfkill rpcrdma ib_isert iscsi_target_mod ib_iser libiscsi scsi_transport_iscsi ib_srpt target_core_mod ib_srp scsi_transport_srp ib_ipoib rdma_ucm sunrpc ib_umad rdma_cm ib_cm iw_cm i40iw ib_uverbs ib_core i40e ses enclosure scsi_transport_sas ipmi_powernv ibmpowernv at24 ofpart ipmi_devintf regmap_i2c ipmi_msghandler powernv_flash uio_pdrv_genirq uio mtd opal_prd zram ip_tables xfs libcrc32c sd_mod t10_pi ast i2c_algo_bit drm_vram_helper drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops cec drm_ttm_helper ttm drm vmx_crypto aacraid drm_panel_orientation_quirks dm_mod
> CPU: 40 PID: 3279 Comm: modprobe Tainted: G        W      X --------- ---  5.11.0-0.rc4.129.eln108.ppc64le #2
> NIP:  c0080000081b4a90 LR: c0080000081b4a2c CTR: c0000000007ce1c0
> REGS: c000000027fa77b0 TRAP: 0300   Tainted: G        W      X --------- ---   (5.11.0-0.rc4.129.eln108.ppc64le)
> MSR:  9000000002009033 <SF,HV,VEC,EE,ME,IR,DR,RI,LE>  CR: 44224882  XER: 00000000
> CFAR: c0000000007ce200 DAR: 0000000000000008 DSISR: 40000000 IRQMASK: 0
> GPR00: c0080000081b4a2c c000000027fa7a50 c0080000081c3900 0000000000000040
> GPR04: c000000002023080 c000000012e1c300 000020072ad70000 0000000000000001
> GPR08: c000000001726068 0000000000000008 0000000000000008 c0080000081b5758
> GPR12: c0000000007ce1c0 c0000007fffc3000 00000001590b1e40 0000000000000000
> GPR16: 0000000000000000 0000000000000001 000000011ad68fc8 00007fffcc09c5c8
> GPR20: 0000000000000008 0000000000000000 00000001590b2850 00000001590b1d30
> GPR24: 0000000000043d68 000000011ad67a80 000000011ad67a80 0000000000100000
> GPR28: c000000012e1c300 c0000000020271c8 0000000000000001 c0080000081bf608
> NIP [c0080000081b4a90] siw_init_cpulist+0x194/0x214 [siw]
> LR [c0080000081b4a2c] siw_init_cpulist+0x130/0x214 [siw]
> Call Trace:
> [c000000027fa7a50] [c0080000081b4a2c] siw_init_cpulist+0x130/0x214 [siw] (unreliable)
> [c000000027fa7a90] [c0080000081b4e68] siw_init_module+0x40/0x2a0 [siw]
> [c000000027fa7b30] [c0000000000124f4] do_one_initcall+0x84/0x2e0
> [c000000027fa7c00] [c000000000267ffc] do_init_module+0x7c/0x350
> [c000000027fa7c90] [c00000000026a180] __do_sys_init_module+0x210/0x250
> [c000000027fa7db0] [c0000000000387e4] system_call_exception+0x134/0x230
> [c000000027fa7e10] [c00000000000d660] system_call_common+0xf0/0x27c
> Instruction dump:
> 40810044 3d420000 e8bf0000 e88a82d0 3d420000 e90a82c8 792a1f24 7cc4302a
> 7d2642aa 79291f24 7d25482a 7d295214 <7d4048a8> 7d4a3b78 7d4049ad 40c2fff4
> ---[ end trace 813d4c362755dcfc ]---
> 
> Fixes: bdcf26bf9b3a ("rdma/siw: network and RDMA core interface")
> Signed-off-by: Kamal Heib <kamalheib1@xxxxxxxxx>
> Reviewed-by: Bernard Metzler <bmt@xxxxxxxxxxxxxx>
> Tested-by: Yi Zhang <yi.zhang@xxxxxxxxxx>
> ---
>  drivers/infiniband/sw/siw/siw_main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Applied to for-next, I think we are done for the -rcs now

Thanks

Jason



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux