Re: [patch 1/2] qeth: new qeth device driver
On Mon, Feb 11, 2008 at 08:55:41AM +0100, Frank Blaschka wrote: Paul E. McKenney schrieb: On Fri, Feb 08, 2008 at 03:10:00PM +0100, [EMAIL PROTECTED] wrote: From: Frank Blaschka [EMAIL PROTECTED] List of major changes and improvements: no manipulation of the global ARP constructor clean code split into core, layer 2 and layer 3 functionality better exploitation of the ethtool interface better representation of the various hardware capabilities fix packet socket support (tcpdump), no fake_ll required osasnmpd notification via udev events coding style and beautification One question below... Signed-off-by: Frank Blaschka [EMAIL PROTECTED] --- [ . . . ] +static void qeth_l3_vlan_rx_add_vid(struct net_device *dev, unsigned short vid) +{ + struct net_device *vlandev; + struct qeth_card *card = (struct qeth_card *) dev-priv; + struct in_device *in_dev; + + if (card-info.type == QETH_CARD_TYPE_IQD) + return; + + vlandev = vlan_group_get_device(card-vlangrp, vid); + vlandev-neigh_setup = qeth_l3_neigh_setup; + + in_dev = __in_dev_get_rcu(vlandev); Is this really in an RCU read-side critical section? Or is this just using common code? Thanx, Paul -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Hi Paul, thanks for pointing at this. Using __in_dev_get_rcu without the rcu lock is probably a bug at this place (right?). It would be a bug -unless- you are holding the update-side lock. Using in_dev_get/in_dev_put would be more appropriate. Same for qeth_l3_free_vlan_addresses4(), here we take the rcu read lock, but in_dev_get/in_dev_put would be the better choice. What do you think? Ummm... It depends. ;-) Keeping in mind that I am not an expert on this part of the kernel, I would guess that qeth_l3_free_vlan_addresses4() is not particularly performance-sensitive, so I don't see any reason in_dev_get/in_dev_put would be a problem. If it turns out that qeth_l3_free_vlan_addresses4() is in fact performance-sensitive, then rcu_read_lock()/rcu_read_unlock() would be a better choice. Thanx, Paul -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [patch 1/2] qeth: new qeth device driver
please resend on top of the ctc driver update... -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [patch 1/2] qeth: new qeth device driver
Paul E. McKenney schrieb: On Fri, Feb 08, 2008 at 03:10:00PM +0100, [EMAIL PROTECTED] wrote: From: Frank Blaschka [EMAIL PROTECTED] List of major changes and improvements: no manipulation of the global ARP constructor clean code split into core, layer 2 and layer 3 functionality better exploitation of the ethtool interface better representation of the various hardware capabilities fix packet socket support (tcpdump), no fake_ll required osasnmpd notification via udev events coding style and beautification One question below... Signed-off-by: Frank Blaschka [EMAIL PROTECTED] --- [ . . . ] +static void qeth_l3_vlan_rx_add_vid(struct net_device *dev, unsigned short vid) +{ +struct net_device *vlandev; +struct qeth_card *card = (struct qeth_card *) dev-priv; +struct in_device *in_dev; + +if (card-info.type == QETH_CARD_TYPE_IQD) +return; + +vlandev = vlan_group_get_device(card-vlangrp, vid); +vlandev-neigh_setup = qeth_l3_neigh_setup; + +in_dev = __in_dev_get_rcu(vlandev); Is this really in an RCU read-side critical section? Or is this just using common code? Thanx, Paul -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Hi Paul, thanks for pointing at this. Using __in_dev_get_rcu without the rcu lock is probably a bug at this place (right?). Using in_dev_get/in_dev_put would be more appropriate. Same for qeth_l3_free_vlan_addresses4(), here we take the rcu read lock, but in_dev_get/in_dev_put would be the better choice. What do you think? Best regards, Frank -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [patch 1/2] qeth: new qeth device driver
On Fri, Feb 08, 2008 at 03:10:00PM +0100, [EMAIL PROTECTED] wrote: From: Frank Blaschka [EMAIL PROTECTED] List of major changes and improvements: no manipulation of the global ARP constructor clean code split into core, layer 2 and layer 3 functionality better exploitation of the ethtool interface better representation of the various hardware capabilities fix packet socket support (tcpdump), no fake_ll required osasnmpd notification via udev events coding style and beautification One question below... Signed-off-by: Frank Blaschka [EMAIL PROTECTED] --- [ . . . ] +static void qeth_l3_vlan_rx_add_vid(struct net_device *dev, unsigned short vid) +{ + struct net_device *vlandev; + struct qeth_card *card = (struct qeth_card *) dev-priv; + struct in_device *in_dev; + + if (card-info.type == QETH_CARD_TYPE_IQD) + return; + + vlandev = vlan_group_get_device(card-vlangrp, vid); + vlandev-neigh_setup = qeth_l3_neigh_setup; + + in_dev = __in_dev_get_rcu(vlandev); Is this really in an RCU read-side critical section? Or is this just using common code? Thanx, Paul -- To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html