Use netdev_priv in NETROM and ROSE
Subsystems (2)
PATCH 1/9 Use netdev_priv in NETROM and ROSE
Convert the NETROM and ROSE protocol stacks to use netdev_priv().
netrom/nr_dev.c | 8 ++++---- rose/rose_dev.c | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-)
net/netrom/nr_dev.c +4 -4
@@ -46,7 +46,7 @@int nr_rx_ip (struct sk_buff *skb,struct net_device *dev) { -struct net_device_stats *stats = (struct net_device_stats *)dev->priv; +struct net_device_stats *stats =netdev_priv (dev);if (!netif_running (dev)) { stats->rx_errors++;
@@ -73,7 +73,7 @@static int nr_rebuild_header (struct sk_buff *skb) {struct net_device *dev = skb->dev; -struct net_device_stats *stats = (struct net_device_stats *)dev->priv; +struct net_device_stats *stats =netdev_priv (dev);struct sk_buff *skbn;unsigned char *bp = skb->data;int len;
@@ -186,7 +186,7 @@static int nr_xmit (struct sk_buff *skb,struct net_device *dev) { -struct net_device_stats *stats = (struct net_device_stats *)dev->priv; +struct net_device_stats *stats =netdev_priv (dev);dev_kfree_skb (skb); stats->tx_errors++;return 0 ;
@@ -194,7 +194,7 @@static struct net_device_stats *nr_get_stats (struct net_device *dev) { -return (struct net_device_stats *)dev->priv; +return netdev_priv (dev); }void nr_setup (struct net_device *dev)
net/rose/rose_dev.c +3 -3
@@ -57,7 +57,7 @@static int rose_rebuild_header (struct sk_buff *skb) {struct net_device *dev = skb->dev; -struct net_device_stats *stats = (struct net_device_stats *)dev->priv; +struct net_device_stats *stats =netdev_priv (dev);unsigned char *bp = (unsigned char *)skb->data;struct sk_buff *skbn;
@@ -117,7 +117,7 @@static int rose_xmit (struct sk_buff *skb,struct net_device *dev) { -struct net_device_stats *stats = (struct net_device_stats *)dev->priv; +struct net_device_stats *stats =netdev_priv (dev);if (!netif_running (dev)) {printk (KERN_ERR "ROSE: rose_xmit - called when iface is down\n" );
@@ -130,7 +130,7 @@static struct net_device_stats *rose_get_stats (struct net_device *dev) { -return (struct net_device_stats *)dev->priv; +return netdev_priv (dev); }void rose_setup (struct net_device *dev)
A message that is not in the archive (sent off-list or not yet received): [email protected]
NETROM locking, was: Re: [PATCH 1/9] Use netdev_priv in NETROM and ROSE
Quoted 1 line · Kevin
Message-Id: <[email protected]>
Your mailer seems to be sending out mails without message ID. Seems like time to fix it ;-)
Quoted 5 lines
Will this fix this?
kernel:net/netrom/nr_in.c:77:spin_lock(net/core/sock.c:ca9f2860)already locked bynet/netrom/af_netrom.c/176
kernel:net/netrom/af_netrom.c:914:spin_unlock(net/core/sock.c:ca9f2860)not locked
No. Try below patch from Alan Cox which should solve your issue and a minor security hole in AF_ROSE.
73 de DL5RB op Ralf
netrom/nr_in.c | 11 +---------- rose/rose_route.c | 3 ++- 2 files changed, 3 insertions(+), 11 deletions(-)
net/netrom/nr_in.c +1 -10
@@ -74,7 +74,6 @@static int nr_state1_machine (struct sock *sk,struct sk_buff *skb,int frametype) { -bh_lock_sock (sk);switch (frametype) {case NR_CONNACK : {nr_cb *nr =nr_sk (sk);
@@ -103,8 +102,6 @@default :break ; } -bh_unlock_sock (sk); -return 0 ; }
@@ -116,7 +113,6 @@static int nr_state2_machine (struct sock *sk,struct sk_buff *skb,int frametype) { -bh_lock_sock (sk);switch (frametype) {case NR_CONNACK |NR_CHOKE_FLAG :nr_disconnect (sk,ECONNRESET );
@@ -132,8 +128,6 @@default :break ; } -bh_unlock_sock (sk); -return 0 ; }
@@ -154,7 +148,6 @@ nr = skb->data[18 ]; ns = skb->data[17 ]; -bh_lock_sock (sk);switch (frametype) {case NR_CONNREQ :nr_write_internal (sk,NR_CONNACK );
@@ -265,12 +258,10 @@default :break ; } -bh_unlock_sock (sk); -return queued; } -/* Higher level upcall for a LAPB frame */ +/* Higher level upcall for a LAPB frame - called with sk locked */ int nr_process_rx_frame (struct sock *sk,struct sk_buff *skb) {nr_cb *nr =nr_sk (sk);
net/rose/rose_route.c +2 -1
@@ -727,7 +727,8 @@ }if (rose_route.mask >10 )/* Mask can't be more than 10 digits */ return -EINVAL ; - +if (rose_route.ndigis >8 )/* No more than 8 digipeats */ +return -EINVAL ; err =rose_add_node (&rose_route, dev);dev_put (dev);return err;
Quoted 1 line · On Sun, 30 Jan 2005 21:21:47 +0000 Ralf Baechle DL5RB <[email protected]>…
Convert the NETROM and ROSE protocol stacks to use
netdev_priv().
Applied, thanks Ralf.