All of lore.kernel.org
 help / color / mirror / Atom feed
* [KJ] Re: linux-2.6.9: add errorcheck for  netlink
@ 2004-12-15 16:13 Domen Puncer
  2004-12-15 19:21 ` Domen Puncer
  2004-12-15 21:01 ` Jim Nelson
  0 siblings, 2 replies; 3+ messages in thread
From: Domen Puncer @ 2004-12-15 16:13 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 4765 bytes --]

On 27/11/04 17:30 +0100, walter harms wrote:
> Hi list,
> i moved the netlink patches from 2.6.7 to 2.6.9.
> it adds 2 error checks.
> 1. register_netdevice_notifier()
> 2. sock_register()
> 
> To propagate the error i changed the type from void to int.
> 
> re,
> walter
> 
> 
> Signed-off-by: walter harms <wharms@bfs.de>
> 
> --- linux-2.6.9/net/core/rtnetlink.c.bak	2004-11-26
> 22:11:15.000000000 +0100

Fix mailer not to wrap lines.

> +++ linux-2.6.9/net/core/rtnetlink.c	2004-11-26 23:22:00.000000000 +0100
> @@ -653,7 +653,7 @@
>  	.notifier_call	= rtnetlink_event,
>  };
> 
> -void __init rtnetlink_init(void)
> +int __init rtnetlink_init(void)
>  {
>  	int i;
> 
> @@ -661,17 +661,34 @@
>  	for (i = 0; i < ARRAY_SIZE(rta_max); i++)
>  		if (rta_max[i] > rtattr_max)
>  			rtattr_max = rta_max[i];
> +
>  	rta_buf = kmalloc(rtattr_max * sizeof(struct rtattr *), GFP_KERNEL);
> -	if (!rta_buf)
> -		panic("rtnetlink_init: cannot allocate rta_buf\n");
> +	if (!rta_buf) {
> +		printk(KERN_CRIT "%s: cannot allocate 
> rta_buf\n",__FUNCTION__);
> +		goto no_mem;
> +	}
> 
>  	rtnl = netlink_kernel_create(NETLINK_ROUTE, rtnetlink_rcv);
> -	if (rtnl == NULL)
> -		panic("rtnetlink_init: cannot initialize rtnetlink\n");
> +	if (rtnl == NULL) {
> +		printk(KERN_CRIT "%s: cannot initialize 
> rtnetlink\n",__FUNCTION__);
> +		goto no_netlink;
> +	}
>  	netlink_set_nonroot(NETLINK_ROUTE, NL_NONROOT_RECV);
> -	register_netdevice_notifier(&rtnetlink_dev_notifier);
> +
> +        if ( register_netdevice_notifier(&rtnetlink_dev_notifier) < 0 ) {

Whitespace damage.

> +
> +                printk(KERN_ERR "%s: cannot initialize rtnetlink 
> notifier\n",__FUNCTION__);
> +		goto no_netlink;
> +        }
> +
>  	rtnetlink_links[PF_UNSPEC] = link_rtnetlink_table;
>  	rtnetlink_links[PF_PACKET] = link_rtnetlink_table;
> +	return 0;
> +
> +no_netlink:
> +	kfree(rtnl);
> +no_mem:
> +	return -1;

How about -ENOMEM or similar?
Also: nl_table isn't freed.

>  }
> 
>  EXPORT_SYMBOL(__rta_fill);
> --- linux-2.6.9/include/linux/rtnetlink.h.bak	2004-11-26 
> 22:59:02.000000000 +0100
> +++ linux-2.6.9/include/linux/rtnetlink.h	2004-11-26 
> 23:00:09.986720520 +0100
> @@ -805,7 +805,7 @@
> 
>  extern void rtnl_lock(void);
>  extern void rtnl_unlock(void);
> -extern void rtnetlink_init(void);
> +extern int rtnetlink_init(void);
> 
>  #define ASSERT_RTNL() do { \
>  	if (unlikely(down_trylock(&rtnl_sem) == 0)) { \
> --- linux-2.6.9/net/netlink/af_netlink.c.bak	2004-11-26 
> 22:24:29.000000000 +0100
> +++ linux-2.6.9/net/netlink/af_netlink.c	2004-11-26 
> 22:44:22.000000000 +0100
> @@ -1209,29 +1209,51 @@
>  	.owner	= THIS_MODULE,	/* for consistency 8) */
>  };
> 
> -static int __init netlink_proto_init(void)
> -{
> -	struct sk_buff *dummy_skb;
> 
> -	if (sizeof(struct netlink_skb_parms) > sizeof(dummy_skb->cb)) {
> -		printk(KERN_CRIT "netlink_init: panic\n");
> -		return -1;
> -	}
> -	sock_register(&netlink_family_ops);

Moving functions instead of predeclaring?
It makes reviewing harder.

> +static void __exit netlink_proto_exit(void)
> +{
> +       sock_unregister(PF_NETLINK);
>  #ifdef CONFIG_PROC_FS
> -	proc_net_fops_create("netlink", 0, &netlink_seq_fops);
> +       proc_net_remove("netlink");
>  #endif
> -	/* The netlink device handler may be needed early. */
> -	rtnetlink_init();
> -	return 0;
>  }
> 
> -static void __exit netlink_proto_exit(void)
> +static int __init netlink_proto_init(void)
>  {
> -       sock_unregister(PF_NETLINK);
> -       proc_net_remove("netlink");
> +        struct sk_buff *dummy_skb;
> +#ifdef CONFIG_PROC_FS
> +        struct proc_dir_entry *proc;
> +#endif
> +        int err;
> +
> +        if (sizeof(struct netlink_skb_parms) > sizeof(dummy_skb->cb)) {
> +                printk(KERN_CRIT "netlink_init: panic\n");
> +                return -1;
> +        }
> +        err = sock_register(&netlink_family_ops);
> +        if (err < 0)
> +                return err;
> +
> +#ifdef CONFIG_PROC_FS
> +        proc = proc_net_fops_create("netlink", 0, &netlink_seq_fops);
> +        if (!proc) {
> +                sock_unregister(PF_NETLINK);
> +                return -ENOMEM;
> +        }
> +#endif
> +
> +        /* The netlink device handler may be needed early. */
> +        if ( rtnetlink_init() < 0) {
> +                netlink_proto_exit();

You can't call __exit function from non-__exit.
(If this is linked in kernel __exit stuff gets discarded)

> +                return -1;
> +        } ;
> +
> +        return 0;
>  }
> 
> +
> +
> +

?

>  core_initcall(netlink_proto_init);
>  module_exit(netlink_proto_exit);
> 

> _______________________________________________
> Kernel-janitors mailing list
> Kernel-janitors@lists.osdl.org
> http://lists.osdl.org/mailman/listinfo/kernel-janitors


[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [KJ] Re: linux-2.6.9: add errorcheck for  netlink
  2004-12-15 16:13 [KJ] Re: linux-2.6.9: add errorcheck for netlink Domen Puncer
@ 2004-12-15 19:21 ` Domen Puncer
  2004-12-15 21:01 ` Jim Nelson
  1 sibling, 0 replies; 3+ messages in thread
From: Domen Puncer @ 2004-12-15 19:21 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 3859 bytes --]

On 15/12/04 19:25 +0100, walter harms wrote:
> 
> >
> >Fix mailer not to wrap lines.
> >
> 
> I am unsing now mozilla-mail hope that help,
> if i have more time i will switch to something more easy.
> 
> 
> 
> 
> 
> >>	rtnetlink_links[PF_UNSPEC] = link_rtnetlink_table;
> >>	rtnetlink_links[PF_PACKET] = link_rtnetlink_table;
> >>+	return 0;
> >>+
> >>+no_netlink:
> >>+	kfree(rtnl);
> >>+no_mem:
> >>+	return -1;
> >
> >
> >How about -ENOMEM or similar?
> >Also: nl_table isn't freed.
> >
> 
> Whitespace fixed
> -ENOM instead of -1
> freeing rta_buf
> what is nl_table ? typo ? i missed something ?

Uh, mixed that up; should have been rta_buf

> 
> 
> 
> >
> >>}
> >>
> >>EXPORT_SYMBOL(__rta_fill);
> >>--- linux-2.6.9/include/linux/rtnetlink.h.bak	2004-11-26 
> >>22:59:02.000000000 +0100
> >>+++ linux-2.6.9/include/linux/rtnetlink.h	2004-11-26 
> >>23:00:09.986720520 +0100
> >>@@ -805,7 +805,7 @@
> >>
> >>extern void rtnl_lock(void);
> >>extern void rtnl_unlock(void);
> >>-extern void rtnetlink_init(void);
> >>+extern int rtnetlink_init(void);
> >>
> >>#define ASSERT_RTNL() do { \
> >>	if (unlikely(down_trylock(&rtnl_sem) == 0)) { \
> >>--- linux-2.6.9/net/netlink/af_netlink.c.bak	2004-11-26 
> >>22:24:29.000000000 +0100
> >>+++ linux-2.6.9/net/netlink/af_netlink.c	2004-11-26 
> >>22:44:22.000000000 +0100
> >>@@ -1209,29 +1209,51 @@
> >>	.owner	= THIS_MODULE,	/* for consistency 8) */
> >>};
> >>
> >>-static int __init netlink_proto_init(void)
> >>-{
> >>-	struct sk_buff *dummy_skb;
> >>
> >>-	if (sizeof(struct netlink_skb_parms) > sizeof(dummy_skb->cb)) {
> >>-		printk(KERN_CRIT "netlink_init: panic\n");
> >>-		return -1;
> >>-	}
> >>-	sock_register(&netlink_family_ops);
> >
> >
> >Moving functions instead of predeclaring?
> >It makes reviewing harder.
> >
> >
> >>+static void __exit netlink_proto_exit(void)
> >>+{
> >>+       sock_unregister(PF_NETLINK);
> >>#ifdef CONFIG_PROC_FS
> >>-	proc_net_fops_create("netlink", 0, &netlink_seq_fops);
> >>+       proc_net_remove("netlink");
> >>#endif
> >>-	/* The netlink device handler may be needed early. */
> >>-	rtnetlink_init();
> >>-	return 0;
> >>}
> >>
> >>-static void __exit netlink_proto_exit(void)
> >>+static int __init netlink_proto_init(void)
> >>{
> >>-       sock_unregister(PF_NETLINK);
> >>-       proc_net_remove("netlink");
> >>+        struct sk_buff *dummy_skb;
> >>+#ifdef CONFIG_PROC_FS
> >>+        struct proc_dir_entry *proc;
> >>+#endif
> >>+        int err;
> >>+
> >>+        if (sizeof(struct netlink_skb_parms) > sizeof(dummy_skb->cb)) {
> >>+                printk(KERN_CRIT "netlink_init: panic\n");
> >>+                return -1;
> >>+        }
> >>+        err = sock_register(&netlink_family_ops);
> >>+        if (err < 0)
> >>+                return err;
> >>+
> >>+#ifdef CONFIG_PROC_FS
> >>+        proc = proc_net_fops_create("netlink", 0, &netlink_seq_fops);
> >>+        if (!proc) {
> >>+                sock_unregister(PF_NETLINK);
> >>+                return -ENOMEM;
> >>+        }
> >>+#endif
> >>+
> >>+        /* The netlink device handler may be needed early. */
> >>+        if ( rtnetlink_init() < 0) {
> >>+                netlink_proto_exit();
> >
> >
> >You can't call __exit function from non-__exit.
> >(If this is linked in kernel __exit stuff gets discarded)
> >
> >
> >>+                return -1;
> >>+        } ;
> >>+
> >>+        return 0;
> >>}
> >>
> 
> + whitespace fixed 'if ( rtnetlink_init'
> + netlink_proto_exit is prototyped
> Will you move the function in front of _init again ?
> A prototype for a 2 liner is noise for me :)

Ah, false alarm then; looked like moving big functions, but is in fact
indentiation (in original tabs, in you version spaces).

> 
> + i removed CONFIG_PROC_FS from the exit code since i have learned
>   that proc_net_remove() will be empty in that case

Right.

> 
> re,
> walter
> 

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [KJ] Re: linux-2.6.9: add errorcheck for  netlink
  2004-12-15 16:13 [KJ] Re: linux-2.6.9: add errorcheck for netlink Domen Puncer
  2004-12-15 19:21 ` Domen Puncer
@ 2004-12-15 21:01 ` Jim Nelson
  1 sibling, 0 replies; 3+ messages in thread
From: Jim Nelson @ 2004-12-15 21:01 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 510 bytes --]

Domen Puncer wrote:
> On 15/12/04 19:25 +0100, walter harms wrote:
> 
>>>Fix mailer not to wrap lines.
>>>
>>
>>I am unsing now mozilla-mail hope that help,
>>if i have more time i will switch to something more easy.
>>
>>

Drop mozilla-mail for submitting patches.  We hashed this out on LKML a couple of 
months ago - see:

http://lkml.org/lkml/2004/10/22/488

I use the sendpatchset script written by Paul Jackson at:

http://www.speakeasy.net/~pj99/sgi/sendpatchset

It makes life much easier.

Jim Nelson

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-12-15 21:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-12-15 16:13 [KJ] Re: linux-2.6.9: add errorcheck for netlink Domen Puncer
2004-12-15 19:21 ` Domen Puncer
2004-12-15 21:01 ` Jim Nelson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.