X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fkey%2Faf_key.c;h=7470e367272b6059751eca446c7fc1f0d08edc13;hb=d36e311070ee3a378a54142a168ff5cfedba33d5;hp=9e7236ff6bcc029e6886b43c32416bcdaa51d252;hpb=a815752ac0ffdb910e92958d41d28f4fb28e5296;p=linux-2.6 diff --git a/net/key/af_key.c b/net/key/af_key.c index 9e7236ff6b..7470e36727 100644 --- a/net/key/af_key.c +++ b/net/key/af_key.c @@ -1251,7 +1251,7 @@ static struct xfrm_state * pfkey_msg2xfrm_state(struct sadb_msg *hdr, x->sel.prefixlen_s = addr->sadb_address_prefixlen; } - if (x->props.mode == XFRM_MODE_TRANSPORT) + if (!x->sel.family) x->sel.family = x->props.family; if (ext_hdrs[SADB_X_EXT_NAT_T_TYPE-1]) { @@ -3030,6 +3030,9 @@ static int key_notify_sa_expire(struct xfrm_state *x, struct km_event *c) static int pfkey_send_notify(struct xfrm_state *x, struct km_event *c) { + if (atomic_read(&pfkey_socks_nr) == 0) + return 0; + switch (c->event) { case XFRM_MSG_EXPIRE: return key_notify_sa_expire(x, c);