Subject: Re: [PATCH] net/802/mrp: fix possible race condition when calling mrp_pdu_queue()

From: Cong Wang <[email-masked]>
Date: Fri, 12 Apr 2013 04:18:13 -0400 (EDT)

----- Original Message -----
> (Adapted from a very similar change to net/802/garp.c by Cong Wang.)
> 
> mrp_pdu_queue() should ways be called with the applicant spin lock.
> mrp_uninit_applicant() only holds the rtnl lock which is not enough;
> a race is possible because mrp_rcv() is called in BH context:
> 
> 	mrp_rcv()
> 	  |->mrp_pdu_parse_msg()
> 	    |->mrp_pdu_parse_vecattr()
> 	      |->mrp_pdu_parse_vecattr_event()
> 	        |-> mrp_attr_event()
> 	          |-> mrp_pdu_append_vecattr_event()
> 	            |-> mrp_pdu_queue()
> 
> Cc: Cong Wang <[email-masked]>
> Cc: Eric Dumazet <[email-masked]>
> Signed-off-by: David Ward <[email-masked]>

Acked-by: Cong Wang <[email-masked]>

Thanks.