* [PATCH 1/4] ipmr: use goto to common label instead of opencoding @ 2009-02-07 0:21 Ilpo Järvinen 2009-02-07 0:21 ` [PATCH 2/4] ax25: more common return path joining Ilpo Järvinen 2009-02-07 7:49 ` [PATCH 1/4] ipmr: use goto to common label instead of opencoding David Miller 0 siblings, 2 replies; 9+ messages in thread From: Ilpo Järvinen @ 2009-02-07 0:21 UTC (permalink / raw) To: David Miller; +Cc: netdev, Ilpo J�rvinen Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> --- net/ipv4/ipmr.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index 21a6dc7..13e9dd3 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c @@ -1243,8 +1243,7 @@ static void ipmr_queue_xmit(struct sk_buff *skb, struct mfc_cache *c, int vifi) vif->dev->stats.tx_bytes += skb->len; vif->dev->stats.tx_packets++; ipmr_cache_report(net, skb, vifi, IGMPMSG_WHOLEPKT); - kfree_skb(skb); - return; + goto out_free; } #endif -- 1.5.6.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/4] ax25: more common return path joining 2009-02-07 0:21 [PATCH 1/4] ipmr: use goto to common label instead of opencoding Ilpo Järvinen @ 2009-02-07 0:21 ` Ilpo Järvinen 2009-02-07 0:21 ` [PATCH 3/4] ipv6/ndisc: join error paths Ilpo Järvinen 2009-02-07 0:28 ` [PATCH 2/4] ax25: more common return path joining Ralf Baechle 2009-02-07 7:49 ` [PATCH 1/4] ipmr: use goto to common label instead of opencoding David Miller 1 sibling, 2 replies; 9+ messages in thread From: Ilpo Järvinen @ 2009-02-07 0:21 UTC (permalink / raw) To: David Miller; +Cc: netdev, Ilpo J�rvinen, Ralf Baechle Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Cc: Ralf Baechle <ralf@linux-mips.org> --- net/ax25/ax25_iface.c | 13 +++++-------- 1 files changed, 5 insertions(+), 8 deletions(-) diff --git a/net/ax25/ax25_iface.c b/net/ax25/ax25_iface.c index 8443af5..71338f1 100644 --- a/net/ax25/ax25_iface.c +++ b/net/ax25/ax25_iface.c @@ -61,27 +61,24 @@ void ax25_protocol_release(unsigned int pid) write_lock_bh(&protocol_list_lock); protocol = protocol_list; - if (protocol == NULL) { - write_unlock_bh(&protocol_list_lock); - return; - } + if (protocol == NULL) + goto out; if (protocol->pid == pid) { protocol_list = protocol->next; - write_unlock_bh(&protocol_list_lock); - return; + goto out; } while (protocol != NULL && protocol->next != NULL) { if (protocol->next->pid == pid) { s = protocol->next; protocol->next = protocol->next->next; - write_unlock_bh(&protocol_list_lock); - return; + goto out; } protocol = protocol->next; } +out: write_unlock_bh(&protocol_list_lock); } -- 1.5.6.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/4] ipv6/ndisc: join error paths 2009-02-07 0:21 ` [PATCH 2/4] ax25: more common return path joining Ilpo Järvinen @ 2009-02-07 0:21 ` Ilpo Järvinen 2009-02-07 0:21 ` [PATCH 4/4] ipv6/addrconf: common code located Ilpo Järvinen 2009-02-07 7:49 ` [PATCH 3/4] ipv6/ndisc: join error paths David Miller 2009-02-07 0:28 ` [PATCH 2/4] ax25: more common return path joining Ralf Baechle 1 sibling, 2 replies; 9+ messages in thread From: Ilpo Järvinen @ 2009-02-07 0:21 UTC (permalink / raw) To: David Miller; +Cc: netdev, Ilpo J�rvinen Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> --- net/ipv6/ndisc.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 3e29708..3cd83b8 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -1538,13 +1538,10 @@ void ndisc_send_redirect(struct sk_buff *skb, struct neighbour *neigh, if (rt->rt6i_flags & RTF_GATEWAY) { ND_PRINTK2(KERN_WARNING "ICMPv6 Redirect: destination is not a neighbour.\n"); - dst_release(dst); - return; - } - if (!xrlim_allow(dst, 1*HZ)) { - dst_release(dst); - return; + goto release; } + if (!xrlim_allow(dst, 1*HZ)) + goto release; if (dev->addr_len) { read_lock_bh(&neigh->lock); @@ -1570,8 +1567,7 @@ void ndisc_send_redirect(struct sk_buff *skb, struct neighbour *neigh, ND_PRINTK0(KERN_ERR "ICMPv6 Redirect: %s() failed to allocate an skb.\n", __func__); - dst_release(dst); - return; + goto release; } skb_reserve(buff, LL_RESERVED_SPACE(dev)); @@ -1631,6 +1627,10 @@ void ndisc_send_redirect(struct sk_buff *skb, struct neighbour *neigh, if (likely(idev != NULL)) in6_dev_put(idev); + return; + +release: + dst_release(dst); } static void pndisc_redo(struct sk_buff *skb) -- 1.5.6.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 4/4] ipv6/addrconf: common code located 2009-02-07 0:21 ` [PATCH 3/4] ipv6/ndisc: join error paths Ilpo Järvinen @ 2009-02-07 0:21 ` Ilpo Järvinen 2009-02-07 7:49 ` David Miller 2009-02-07 7:49 ` [PATCH 3/4] ipv6/ndisc: join error paths David Miller 1 sibling, 1 reply; 9+ messages in thread From: Ilpo Järvinen @ 2009-02-07 0:21 UTC (permalink / raw) To: David Miller; +Cc: netdev, Ilpo J�rvinen $ codiff net/ipv6/addrconf.o net/ipv6/addrconf.o.new net/ipv6/addrconf.c: addrconf_notify | -267 1 function changed, 267 bytes removed net/ipv6/addrconf.c: add_addr | +86 1 function changed, 86 bytes added net/ipv6/addrconf.o.new: 2 functions changed, 86 bytes added, 267 bytes removed, diff: -181 Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> --- If somebody has idea about better name for the function I'm open to suggestions... I've some doubts that the name as is the best possible :-). net/ipv6/addrconf.c | 45 ++++++++++++++++++--------------------------- 1 files changed, 18 insertions(+), 27 deletions(-) diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index f9afb45..03e2a1a 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -2224,10 +2224,24 @@ int addrconf_del_ifaddr(struct net *net, void __user *arg) return err; } +static void add_addr(struct inet6_dev *idev, const struct in6_addr *addr, + int plen, int scope) +{ + struct inet6_ifaddr *ifp; + + ifp = ipv6_add_addr(idev, addr, plen, scope, IFA_F_PERMANENT); + if (!IS_ERR(ifp)) { + spin_lock_bh(&ifp->lock); + ifp->flags &= ~IFA_F_TENTATIVE; + spin_unlock_bh(&ifp->lock); + ipv6_ifa_notify(RTM_NEWADDR, ifp); + in6_ifa_put(ifp); + } +} + #if defined(CONFIG_IPV6_SIT) || defined(CONFIG_IPV6_SIT_MODULE) static void sit_add_v4_addrs(struct inet6_dev *idev) { - struct inet6_ifaddr * ifp; struct in6_addr addr; struct net_device *dev; struct net *net = dev_net(idev->dev); @@ -2246,14 +2260,7 @@ static void sit_add_v4_addrs(struct inet6_dev *idev) } if (addr.s6_addr32[3]) { - ifp = ipv6_add_addr(idev, &addr, 128, scope, IFA_F_PERMANENT); - if (!IS_ERR(ifp)) { - spin_lock_bh(&ifp->lock); - ifp->flags &= ~IFA_F_TENTATIVE; - spin_unlock_bh(&ifp->lock); - ipv6_ifa_notify(RTM_NEWADDR, ifp); - in6_ifa_put(ifp); - } + add_addr(idev, &addr, 128, scope); return; } @@ -2281,15 +2288,7 @@ static void sit_add_v4_addrs(struct inet6_dev *idev) else plen = 96; - ifp = ipv6_add_addr(idev, &addr, plen, flag, - IFA_F_PERMANENT); - if (!IS_ERR(ifp)) { - spin_lock_bh(&ifp->lock); - ifp->flags &= ~IFA_F_TENTATIVE; - spin_unlock_bh(&ifp->lock); - ipv6_ifa_notify(RTM_NEWADDR, ifp); - in6_ifa_put(ifp); - } + add_addr(idev, &addr, plen, flag); } } } @@ -2299,7 +2298,6 @@ static void sit_add_v4_addrs(struct inet6_dev *idev) static void init_loopback(struct net_device *dev) { struct inet6_dev *idev; - struct inet6_ifaddr * ifp; /* ::1 */ @@ -2310,14 +2308,7 @@ static void init_loopback(struct net_device *dev) return; } - ifp = ipv6_add_addr(idev, &in6addr_loopback, 128, IFA_HOST, IFA_F_PERMANENT); - if (!IS_ERR(ifp)) { - spin_lock_bh(&ifp->lock); - ifp->flags &= ~IFA_F_TENTATIVE; - spin_unlock_bh(&ifp->lock); - ipv6_ifa_notify(RTM_NEWADDR, ifp); - in6_ifa_put(ifp); - } + add_addr(idev, &in6addr_loopback, 128, IFA_HOST); } static void addrconf_add_linklocal(struct inet6_dev *idev, struct in6_addr *addr) -- 1.5.6.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] ipv6/addrconf: common code located 2009-02-07 0:21 ` [PATCH 4/4] ipv6/addrconf: common code located Ilpo Järvinen @ 2009-02-07 7:49 ` David Miller 0 siblings, 0 replies; 9+ messages in thread From: David Miller @ 2009-02-07 7:49 UTC (permalink / raw) To: ilpo.jarvinen; +Cc: netdev From: "Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi> Date: Sat, 7 Feb 2009 02:21:03 +0200 > $ codiff net/ipv6/addrconf.o net/ipv6/addrconf.o.new > net/ipv6/addrconf.c: > addrconf_notify | -267 > 1 function changed, 267 bytes removed > > net/ipv6/addrconf.c: > add_addr | +86 > 1 function changed, 86 bytes added > > net/ipv6/addrconf.o.new: > 2 functions changed, 86 bytes added, 267 bytes removed, diff: -181 > > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Applied. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/4] ipv6/ndisc: join error paths 2009-02-07 0:21 ` [PATCH 3/4] ipv6/ndisc: join error paths Ilpo Järvinen 2009-02-07 0:21 ` [PATCH 4/4] ipv6/addrconf: common code located Ilpo Järvinen @ 2009-02-07 7:49 ` David Miller 1 sibling, 0 replies; 9+ messages in thread From: David Miller @ 2009-02-07 7:49 UTC (permalink / raw) To: ilpo.jarvinen; +Cc: netdev From: "Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi> Date: Sat, 7 Feb 2009 02:21:02 +0200 > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Applied. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/4] ax25: more common return path joining 2009-02-07 0:21 ` [PATCH 2/4] ax25: more common return path joining Ilpo Järvinen 2009-02-07 0:21 ` [PATCH 3/4] ipv6/ndisc: join error paths Ilpo Järvinen @ 2009-02-07 0:28 ` Ralf Baechle 2009-02-07 7:49 ` David Miller 1 sibling, 1 reply; 9+ messages in thread From: Ralf Baechle @ 2009-02-07 0:28 UTC (permalink / raw) To: Ilpo Järvinen; +Cc: David Miller, netdev On Sat, Feb 07, 2009 at 02:21:01AM +0200, Ilpo Järvinen wrote: > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> > Cc: Ralf Baechle <ralf@linux-mips.org> Looks good, thus Acked-by: Ralf Baechle <ralf@linux-mips.org> Ralf ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/4] ax25: more common return path joining 2009-02-07 0:28 ` [PATCH 2/4] ax25: more common return path joining Ralf Baechle @ 2009-02-07 7:49 ` David Miller 0 siblings, 0 replies; 9+ messages in thread From: David Miller @ 2009-02-07 7:49 UTC (permalink / raw) To: ralf; +Cc: ilpo.jarvinen, netdev From: Ralf Baechle <ralf@linux-mips.org> Date: Sat, 7 Feb 2009 00:28:33 +0000 > On Sat, Feb 07, 2009 at 02:21:01AM +0200, Ilpo Järvinen wrote: > > > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> > > Cc: Ralf Baechle <ralf@linux-mips.org> > > Looks good, thus > > Acked-by: Ralf Baechle <ralf@linux-mips.org> Applied. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/4] ipmr: use goto to common label instead of opencoding 2009-02-07 0:21 [PATCH 1/4] ipmr: use goto to common label instead of opencoding Ilpo Järvinen 2009-02-07 0:21 ` [PATCH 2/4] ax25: more common return path joining Ilpo Järvinen @ 2009-02-07 7:49 ` David Miller 1 sibling, 0 replies; 9+ messages in thread From: David Miller @ 2009-02-07 7:49 UTC (permalink / raw) To: ilpo.jarvinen; +Cc: netdev From: "Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi> Date: Sat, 7 Feb 2009 02:21:00 +0200 > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Applied. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-02-07 7:49 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-02-07 0:21 [PATCH 1/4] ipmr: use goto to common label instead of opencoding Ilpo Järvinen 2009-02-07 0:21 ` [PATCH 2/4] ax25: more common return path joining Ilpo Järvinen 2009-02-07 0:21 ` [PATCH 3/4] ipv6/ndisc: join error paths Ilpo Järvinen 2009-02-07 0:21 ` [PATCH 4/4] ipv6/addrconf: common code located Ilpo Järvinen 2009-02-07 7:49 ` David Miller 2009-02-07 7:49 ` [PATCH 3/4] ipv6/ndisc: join error paths David Miller 2009-02-07 0:28 ` [PATCH 2/4] ax25: more common return path joining Ralf Baechle 2009-02-07 7:49 ` David Miller 2009-02-07 7:49 ` [PATCH 1/4] ipmr: use goto to common label instead of opencoding David Miller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).