RE: [PATCHv1] IB/mthca: Zero out QP during allocation time

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

 



Hi Doug, Jason,

> -----Original Message-----
> From: Parav Pandit <parav@xxxxxxxxxxxx>
> Sent: Wednesday, January 2, 2019 10:12 PM
> To: linux-rdma@xxxxxxxxxxxxxxx
> Cc: Parav Pandit <parav@xxxxxxxxxxxx>
> Subject: [PATCHv1] IB/mthca: Zero out QP during allocation time
> 
> With mtcha driver a following [1] crash is observed.
> 
> ib_destroy_qp() attempts to free the non zero sgid attr of a QP.
> mtcha driver allocates QP using kmalloc() that sometime leads to
> uninitialized non zero sgid attr.
> Due to that, destroy qp crashes on accessing such garbage sgid attr of QP.
> Therefore, zero out QP during allocation.
> 
> [1]
> CPU: 3 PID: 74 Comm: kworker/u16:1 Not tainted 4.19.10-300.fc29.x86_64
> Workqueue: ipoib_wq ipoib_cm_tx_reap [ib_ipoib]
> RIP: 0010:rdma_put_gid_attr+0x9/0x30 [ib_core]
> RSP: 0018:ffffb7ad819dbde8 EFLAGS: 00010202
> RAX: 0000000000000000 RBX: ffff8d1bdf5a2e00 RCX: 0000000000002699
> RDX: 206c656e72656af8 RSI: ffff8d1bf7ae6160 RDI: 206c656e72656b20
> RBP: 0000000000000000 R08: 0000000000026160 R09: ffffffffc06b45bf
> R10: ffffe849887da000 R11: 0000000000000002 R12: ffff8d1be30cb400
> R13: ffff8d1bdf681800 R14: ffff8d1be2272400 R15: ffff8d1be30ca000
> FS:  0000000000000000(0000) GS:ffff8d1bf7ac0000(0000)
> knlGS:0000000000000000
> Trace:
>  ib_destroy_qp+0xc9/0x240 [ib_core]
>  ipoib_cm_tx_reap+0x1f9/0x4e0 [ib_ipoib]
>  process_one_work+0x1a1/0x3a0
>  worker_thread+0x30/0x380
>  ? pwq_unbound_release_workfn+0xd0/0xd0
>  kthread+0x112/0x130
>  ? kthread_create_worker_on_cpu+0x70/0x70
>  ret_from_fork+0x22/0x40
> 
> Reported-by: Alexander Murashkin <AlexanderMurashkin@xxxxxxx>
> Tested-by: Alexander Murashkin <AlexanderMurashkin@xxxxxxx>
> Fixes: 1a1f460ff151 ("RDMA: Hold the sgid_attr inside the struct ib_ah/qp")
> Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>
> Signed-off-by: Parav Pandit <parav@xxxxxxxxxxxx>
> ---
>  drivers/infiniband/hw/mthca/mthca_provider.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/mthca/mthca_provider.c
> b/drivers/infiniband/hw/mthca/mthca_provider.c
> index 61f5c89..bb57f6f 100644
> --- a/drivers/infiniband/hw/mthca/mthca_provider.c
> +++ b/drivers/infiniband/hw/mthca/mthca_provider.c
> @@ -533,7 +533,7 @@ static struct ib_qp *mthca_create_qp(struct ib_pd
> *pd,
>  	{
>  		struct mthca_ucontext *context;
> 
> -		qp = kmalloc(sizeof *qp, GFP_KERNEL);
> +		qp = kzalloc(sizeof(*qp), GFP_KERNEL);
>  		if (!qp)
>  			return ERR_PTR(-ENOMEM);
> 
> @@ -599,7 +599,7 @@ static struct ib_qp *mthca_create_qp(struct ib_pd
> *pd,
>  		if (pd->uobject)
>  			return ERR_PTR(-EINVAL);
> 
> -		qp = kmalloc(sizeof (struct mthca_sqp), GFP_KERNEL);
> +		qp = kzalloc(sizeof(struct mthca_sqp), GFP_KERNEL);
>  		if (!qp)
>  			return ERR_PTR(-ENOMEM);
> 
> --
> 1.8.3.1

I don't see this patch in patchwork [1].
Not sure if I need to do anything special?

[1] https://patchwork.kernel.org/project/linux-rdma/list/




[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