Re: xfrm_state locking regression...
From: Timo Teräs <hidden>
Date: 2008-09-23 13:46:36
Herbert Xu wrote:
On Tue, Sep 23, 2008 at 04:30:06PM +0300, Timo Teräs wrote:quoted
I have no strong opinion either way. So what ever you want, I'm happy to provide a patch for.Let's just leave it as it is for now.
Well, 1 is an improvement over the current implementation, so I think it'd be better than not doing anything.
quoted
quoted
What about xfrm_cfg_mutex?It's used only in xfrm_state_gc_task. xfrm_state_walk_{init,done} touch xfrm_state_walks list without locking properly. At least in the version I'm looking (= net-next-2.6 via git web interface).Their callers should be holding it.
Ah, the other layers take it at least on _walk_init paths. But _walk_done can be called from recv() syscalls. The af_key implementation does not take xfrm_cfg_mutex there. I don't think xfrm_user does that either as it does not pass cb_mutex to netlink_kernel_create. So at least the _state_walk_done path is unsafe as-is, I think. - Timo