[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20150807.155726.1475197462744121004.davem@davemloft.net>
Date: Fri, 07 Aug 2015 15:57:26 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: tom@...bertland.com
Cc: netdev@...r.kernel.org, kernel-team@...com
Subject: Re: [PATCH net-next] net: Fix race condition in store_rps_map
From: Tom Herbert <tom@...bertland.com>
Date: Wed, 5 Aug 2015 09:39:27 -0700
> There is a race condition in store_rps_map that allows jump label
> count in rps_needed to go below zero. This can happen when
> concurrently attempting to set and a clear map.
>
> Scenario:
>
> 1. rps_needed count is zero
> 2. New map is assigned by setting thread, but rps_needed count _not_ yet
> incremented (rps_needed count still zero)
> 2. Map is cleared by second thread, old_map set to that just assigned
> 3. Second thread performs static_key_slow_dec, rps_needed count now goes
> negative
>
> Fix is to increment or decrement rps_needed under the spinlock.
>
> Signed-off-by: Tom Herbert <tom@...bertland.com>
Applied, thanks Tom.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists