netdev
[Top] [All Lists]

Re: take 2 WAS(Re: PATCH: IPSEC xfrm events

To: hadi@xxxxxxxxxx
Subject: Re: take 2 WAS(Re: PATCH: IPSEC xfrm events
From: Patrick McHardy <kaber@xxxxxxxxx>
Date: Sun, 03 Apr 2005 17:47:51 +0200
Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>, Masahide NAKAMURA <nakam@xxxxxxxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxxxxx>, netdev <netdev@xxxxxxxxxxx>
In-reply-to: <1112538718.1096.394.camel@xxxxxxxxxxxxxxxx>
References: <1112319441.1089.83.camel@xxxxxxxxxxxxxxxx> <20050401042106.GA27762@xxxxxxxxxxxxxxxxxxx> <1112353398.1096.116.camel@xxxxxxxxxxxxxxxx> <20050401114258.GA2932@xxxxxxxxxxxxxxxxxxx> <1112358278.1096.160.camel@xxxxxxxxxxxxxxxx> <20050401123554.GA3468@xxxxxxxxxxxxxxxxxxx> <1112403845.1088.14.camel@xxxxxxxxxxxxxxxx> <20050402012813.GA24575@xxxxxxxxxxxxxxxxxxx> <1112406164.1088.54.camel@xxxxxxxxxxxxxxxx> <20050402014619.GB24861@xxxxxxxxxxxxxxxxxxx> <1112469601.1088.173.camel@xxxxxxxxxxxxxxxx> <1112538718.1096.394.camel@xxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.7.6) Gecko/20050324 Debian/1.7.6-1
jamal wrote:
+void km_policy_notify(struct xfrm_policy *xp, int dir, struct km_event *c)
{
+       struct xfrm_mgr *km;
+
+       read_lock(&xfrm_km_lock);
+       list_for_each_entry(km, &xfrm_km_list, list)
+               if (km->notify_policy)
+                       km->notify_policy(xp, dir, c);
+       read_unlock(&xfrm_km_lock);
+}
+
+void km_state_notify(struct xfrm_state *x, struct km_event *c)
+{
+       struct xfrm_mgr *km;
+       read_lock(&xfrm_km_lock);
+       list_for_each_entry(km, &xfrm_km_list, list)
+               km->notify(x, c);
+       read_unlock(&xfrm_km_lock);
+}

You call these functions from both softirq- and user-context, so you
need to protect against BHs.

Regards
Patrick

<Prev in Thread] Current Thread [Next in Thread>