lustre: lnet: copy the correct amountof cpts to lnet_cpts
diff mbox series

Message ID 1537846650-8490-1-git-send-email-jsimmons@infradead.org
State New
Headers show
Series
  • lustre: lnet: copy the correct amountof cpts to lnet_cpts
Related show

Commit Message

James Simmons Sept. 25, 2018, 3:37 a.m. UTC
The incorrect size was used in the memory copy of the requested
cpts to net->lnet_cpts. This lead to the following in testing
RIP: 0010:lnet_match2mt.isra.8+0x2b/0x40 [lnet]

lnet_mt_of_attach+0x72/0x1b0 [lnet]
LNetMEAttach+0x60/0x1f0 [lnet]
ptl_send_rpc+0x26f/0xbb0 [ptlrpc]
libcfs_debug_msg+0x57/0x80 [libcfs]
ptlrpc_send_new_req+0x4c9/0x860 [ptlrpc]
ptlrpc_check_set.part.21+0x855/0x18b0 [ptlrpc]
? try_to_del_timer_sync+0x4d/0x80
? del_timer_sync+0x35/0x40
ptlrpcd_check+0x3ae/0x3f0 [ptlrpc]
ptlrpcd+0x2be/0x320 [ptlrpc]
? wait_woken+0x80/0x80

Changing the size from ncpts to ncpts * sizeof(*net->net_cpts)

Signed-off-by: James Simmons <jsimmons@infradead.org>
WC-bug-id: https://jira.whamcloud.com/browse/LU-11424
Reviewed-on: https://review.whamcloud.com/33229
---
 drivers/staging/lustre/lnet/lnet/config.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

NeilBrown Sept. 25, 2018, 11:36 p.m. UTC | #1
On Mon, Sep 24 2018, James Simmons wrote:

> The incorrect size was used in the memory copy of the requested
> cpts to net->lnet_cpts. This lead to the following in testing
> RIP: 0010:lnet_match2mt.isra.8+0x2b/0x40 [lnet]
>
> lnet_mt_of_attach+0x72/0x1b0 [lnet]
> LNetMEAttach+0x60/0x1f0 [lnet]
> ptl_send_rpc+0x26f/0xbb0 [ptlrpc]
> libcfs_debug_msg+0x57/0x80 [libcfs]
> ptlrpc_send_new_req+0x4c9/0x860 [ptlrpc]
> ptlrpc_check_set.part.21+0x855/0x18b0 [ptlrpc]
> ? try_to_del_timer_sync+0x4d/0x80
> ? del_timer_sync+0x35/0x40
> ptlrpcd_check+0x3ae/0x3f0 [ptlrpc]
> ptlrpcd+0x2be/0x320 [ptlrpc]
> ? wait_woken+0x80/0x80
>
> Changing the size from ncpts to ncpts * sizeof(*net->net_cpts)
>
> Signed-off-by: James Simmons <jsimmons@infradead.org>
> WC-bug-id: https://jira.whamcloud.com/browse/LU-11424
> Reviewed-on: https://review.whamcloud.com/33229

Thanks.  Applied.

NeilBrown


> ---
>  drivers/staging/lustre/lnet/lnet/config.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/lustre/lnet/lnet/config.c b/drivers/staging/lustre/lnet/lnet/config.c
> index c11821a..4c22416 100644
> --- a/drivers/staging/lustre/lnet/lnet/config.c
> +++ b/drivers/staging/lustre/lnet/lnet/config.c
> @@ -174,7 +174,7 @@ struct lnet_text_buf {	    /* tmp struct for parsing routes */
>  					      GFP_KERNEL);
>  		if (!net->net_cpts)
>  			return -ENOMEM;
> -		memcpy(net->net_cpts, cpts, ncpts);
> +		memcpy(net->net_cpts, cpts, ncpts * sizeof(*net->net_cpts));
>  		net->net_ncpts = ncpts;
>  		return 0;
>  	}
> -- 
> 1.8.3.1

Patch
diff mbox series

diff --git a/drivers/staging/lustre/lnet/lnet/config.c b/drivers/staging/lustre/lnet/lnet/config.c
index c11821a..4c22416 100644
--- a/drivers/staging/lustre/lnet/lnet/config.c
+++ b/drivers/staging/lustre/lnet/lnet/config.c
@@ -174,7 +174,7 @@  struct lnet_text_buf {	    /* tmp struct for parsing routes */
 					      GFP_KERNEL);
 		if (!net->net_cpts)
 			return -ENOMEM;
-		memcpy(net->net_cpts, cpts, ncpts);
+		memcpy(net->net_cpts, cpts, ncpts * sizeof(*net->net_cpts));
 		net->net_ncpts = ncpts;
 		return 0;
 	}