X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fkey%2Faf_key.c;h=7470e367272b6059751eca446c7fc1f0d08edc13;hb=952f4a0a9b27e6dbd5d32e330b3f609ebfa0b061;hp=9e7236ff6bcc029e6886b43c32416bcdaa51d252;hpb=2c4aabcca847ac4c92aa5e960c3f6053e1051b62;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);