Loading net/packet/af_packet.c +31 −31 Original line number Diff line number Diff line Loading @@ -589,11 +589,14 @@ static int fanout_add(struct sock *sk, u16 id, u16 type_flags) break; } } err = -EINVAL; if (match && match->defrag != defrag) return -EINVAL; goto out; if (!match) { err = -ENOMEM; match = kzalloc(sizeof(*match), GFP_KERNEL); if (match) { if (!match) goto out; write_pnet(&match->net, sock_net(sk)); match->id = id; match->type = type; Loading @@ -609,9 +612,6 @@ static int fanout_add(struct sock *sk, u16 id, u16 type_flags) dev_add_pack(&match->prot_hook); list_add(&match->list, &fanout_list); } } err = -ENOMEM; if (match) { err = -EINVAL; if (match->type == type && match->prot_hook.type == po->prot_hook.type && Loading @@ -625,7 +625,7 @@ static int fanout_add(struct sock *sk, u16 id, u16 type_flags) err = 0; } } } out: mutex_unlock(&fanout_mutex); return err; } Loading Loading
net/packet/af_packet.c +31 −31 Original line number Diff line number Diff line Loading @@ -589,11 +589,14 @@ static int fanout_add(struct sock *sk, u16 id, u16 type_flags) break; } } err = -EINVAL; if (match && match->defrag != defrag) return -EINVAL; goto out; if (!match) { err = -ENOMEM; match = kzalloc(sizeof(*match), GFP_KERNEL); if (match) { if (!match) goto out; write_pnet(&match->net, sock_net(sk)); match->id = id; match->type = type; Loading @@ -609,9 +612,6 @@ static int fanout_add(struct sock *sk, u16 id, u16 type_flags) dev_add_pack(&match->prot_hook); list_add(&match->list, &fanout_list); } } err = -ENOMEM; if (match) { err = -EINVAL; if (match->type == type && match->prot_hook.type == po->prot_hook.type && Loading @@ -625,7 +625,7 @@ static int fanout_add(struct sock *sk, u16 id, u16 type_flags) err = 0; } } } out: mutex_unlock(&fanout_mutex); return err; } Loading