Message ID | 26709175.701327480995351.JavaMail.root@5-MeO-DMT.ynet.sk |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
From: Stefan Gula <steweg@ynet.sk> Date: Wed, 25 Jan 2012 09:43:15 +0100 (CET) > From: Stefan Gula <steweg@gmail.com> > > This patch extends the rtnetlink.c. The problem is that calcit, which > returns the value min_ifinfo_dump_size, is called without ability to > get device info as well (struct net_device *dev is not accessible from > it). This create a problem if required size of struct sk_buff *skb is > not enough big to comply with all data returned by fill_info function > for the interface that required size can vary over time, e.g. some > dynamic structures will be putted to skb like hlists or lists. To do > this patch extends the do_setlink function with recalculating of > min_ifinfo_dump_size accordingly to device type and get_size > functions. > > Signed-off-by: Stefan Gula <steweg@gmail.com> This commit message is terrible, and the reason I know it's terrible is because even after reading it I still had to go read the code in order to understand what your change even does or why it's even necessary. How about this: Setting link parameters on a netdevice changes the value of if_nlmsg_size(), therefore it is necessary to recalculate min_ifinfo_dump_size. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
2012/1/26 David Miller <davem@davemloft.net>: > From: Stefan Gula <steweg@ynet.sk> > Date: Wed, 25 Jan 2012 09:43:15 +0100 (CET) > >> From: Stefan Gula <steweg@gmail.com> >> >> This patch extends the rtnetlink.c. The problem is that calcit, which >> returns the value min_ifinfo_dump_size, is called without ability to >> get device info as well (struct net_device *dev is not accessible from >> it). This create a problem if required size of struct sk_buff *skb is >> not enough big to comply with all data returned by fill_info function 0>> for the interface that required size can vary over time, e.g. some >> dynamic structures will be putted to skb like hlists or lists. To do >> this patch extends the do_setlink function with recalculating of >> min_ifinfo_dump_size accordingly to device type and get_size >> functions. >> >> Signed-off-by: Stefan Gula <steweg@gmail.com> > > This commit message is terrible, and the reason I know it's terrible > is because even after reading it I still had to go read the code > in order to understand what your change even does or why it's even > necessary. > > How about this: > > Setting link parameters on a netdevice changes the value > of if_nlmsg_size(), therefore it is necessary to recalculate > min_ifinfo_dump_size. > Sound good... do I have to resubmit the patch with the correct description? -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Štefan Gula <steweg@ynet.sk> Date: Thu, 26 Jan 2012 12:01:44 +0100 > 2012/1/26 David Miller <davem@davemloft.net>: >> From: Stefan Gula <steweg@ynet.sk> >> Date: Wed, 25 Jan 2012 09:43:15 +0100 (CET) >> >>> From: Stefan Gula <steweg@gmail.com> >>> >>> This patch extends the rtnetlink.c. The problem is that calcit, which >>> returns the value min_ifinfo_dump_size, is called without ability to >>> get device info as well (struct net_device *dev is not accessible from >>> it). This create a problem if required size of struct sk_buff *skb is >>> not enough big to comply with all data returned by fill_info function > 0>> for the interface that required size can vary over time, e.g. some >>> dynamic structures will be putted to skb like hlists or lists. To do >>> this patch extends the do_setlink function with recalculating of >>> min_ifinfo_dump_size accordingly to device type and get_size >>> functions. >>> >>> Signed-off-by: Stefan Gula <steweg@gmail.com> >> >> This commit message is terrible, and the reason I know it's terrible >> is because even after reading it I still had to go read the code >> in order to understand what your change even does or why it's even >> necessary. >> >> How about this: >> >> Setting link parameters on a netdevice changes the value >> of if_nlmsg_size(), therefore it is necessary to recalculate >> min_ifinfo_dump_size. >> > Sound good... do I have to resubmit the patch with the correct description? Yes. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
--- linux-3.2.1-orig/net/core/rtnetlink.c 2012-01-12 20:42:45.000000000 +0100 +++ linux/net/core/rtnetlink.c 2012-01-24 14:26:58.083219352 +0100 @@ -1506,6 +1506,9 @@ errout: if (send_addr_notify) call_netdevice_notifiers(NETDEV_CHANGEADDR, dev); + min_ifinfo_dump_size = max_t(u16, if_nlmsg_size(dev), + min_ifinfo_dump_size); + return err; } -- To unsubscribe from this list: send the line "unsubscribe netdev" in