[PATCH] Fix comment for skb_pull_rcsum

2008-02-10 Thread Urs Thuermann
Fix comment for skb_pull_rcsum

Signed-off-by: Urs Thuermann [EMAIL PROTECTED]

---

Index: net-2.6/net/core/skbuff.c
===
--- net-2.6.orig/net/core/skbuff.c  2008-02-06 22:17:58.0 +0100
+++ net-2.6/net/core/skbuff.c   2008-02-08 11:05:00.0 +0100
@@ -2106,11 +2106,10 @@
 /**
  * skb_pull_rcsum - pull skb and update receive checksum
  * @skb: buffer to update
- * @start: start of data before pull
  * @len: length of data pulled
  *
  * This function performs an skb_pull on the packet and updates
- * update the CHECKSUM_COMPLETE checksum.  It should be used on
+ * the CHECKSUM_COMPLETE checksum.  It should be used on
  * receive path processing instead of skb_pull unless you know
  * that the checksum difference is zero (e.g., a valid IP header)
  * or you are setting ip_summed to CHECKSUM_NONE.
--
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


[RFC, PATCH]: Pass link level header from/to PPP interface

2008-02-10 Thread Urs Thuermann
The PPP interface strips off the PPP header from the packet before
passing it up with netif_rx().  On the xmit path, it has to add the
PPP header itself because dev-header_ops is NULL.

This means that a PF_PACKET, SOCK_RAW socket can't get the link level
header and has to use the sll_protocol field of the sockaddr_ll to
know what type of packet is received with recvfrom(2).  I consider
this a design flaw since with most (all?) other interfaces you only
need to know the sll_hatype to know what type of packet you get.

I have patched the PPP code to include the PPP header.  I tried with
IP and IPv6 over PPP and it works as expected.  This patch, however,
changes the interface to the user space in an incompatible way.  But
IMHO we could include it, since

* PF_PACKET is Linux specific and not portable anyway.  Most apps use
  libpcap instead of opening PF_PACKET sockets themselves.

* Using strace on tcpdump, it seems that libpcap on Linux uses
  PF_PACKET/SOCK_DGRAM for PPP interfaces and thus is not affected by
  my patch.

* Other apps using PF_PACKET/SOCK_RAW can easily be changed to
  PF_PACKET/SOCK_DGRAM if they don't want to see the link level
  header.  After all, this is what SOCK_DGRAM is for.

Currently SOCK_RAW and SOCK_DGRAM are the same although the packet(7)
man page states that with SOCK_RAW packets are passed without any
changes.  This makes having SOCK_RAW besides SOCK_DGRAM useless for
PPP.

So what is your opinion about this change?


Signed-off-by: Urs Thuermann [EMAIL PROTECTED]

---
 drivers/net/ppp_generic.c |   41 -
 1 file changed, 28 insertions(+), 13 deletions(-)

Index: net-2.6/drivers/net/ppp_generic.c
===
--- net-2.6.orig/drivers/net/ppp_generic.c  2008-02-08 11:09:03.0 
+0100
+++ net-2.6/drivers/net/ppp_generic.c   2008-02-08 13:27:29.0 +0100
@@ -873,12 +873,32 @@
 /*
  * Network interface unit routines.
  */
+
+/* Put the 2-byte PPP protocol number on the front of skb */
+static int ppp_header(struct sk_buff *skb, struct net_device *dev,
+ unsigned short type,
+ const void *daddr, const void *saddr, unsigned len)
+{
+   unsigned char *pp;
+   int npi, proto;
+
+   npi = ethertype_to_npindex(ntohs(skb-protocol));
+   if (npi  0)
+   return -dev-hard_header_len;
+
+   pp = skb_push(skb, 2);
+   proto = npindex_to_proto[npi];
+   pp[0] = proto  8;
+   pp[1] = proto;
+
+   return dev-hard_header_len;
+}
+
 static int
 ppp_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
struct ppp *ppp = (struct ppp *) dev-priv;
-   int npi, proto;
-   unsigned char *pp;
+   int npi;
 
npi = ethertype_to_npindex(ntohs(skb-protocol));
if (npi  0)
@@ -897,16 +917,6 @@
goto outf;
}
 
-   /* Put the 2-byte PPP protocol number on the front,
-  making sure there is room for the address and control fields. */
-   if (skb_cow_head(skb, PPP_HDRLEN))
-   goto outf;
-
-   pp = skb_push(skb, 2);
-   proto = npindex_to_proto[npi];
-   pp[0] = proto  8;
-   pp[1] = proto;
-
netif_stop_queue(dev);
skb_queue_tail(ppp-file.xq, skb);
ppp_xmit_process(ppp);
@@ -969,9 +979,14 @@
return err;
 }
 
+static const struct header_ops ppp_header_ops cacheline_aligned = {
+   .create = ppp_header,
+};
+
 static void ppp_setup(struct net_device *dev)
 {
dev-hard_header_len = PPP_HDRLEN;
+   dev-header_ops = ppp_header_ops;
dev-mtu = PPP_MTU;
dev-addr_len = 0;
dev-tx_queue_len = 3;
@@ -1677,10 +1692,10 @@
kfree_skb(skb);
} else {
/* chop off protocol */
+   skb_reset_mac_header(skb);
skb_pull_rcsum(skb, 2);
skb-dev = ppp-dev;
skb-protocol = htons(npindex_to_ethertype[npi]);
-   skb_reset_mac_header(skb);
netif_rx(skb);
ppp-dev-last_rx = jiffies;
}
--
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


[PATCH resend] qla3xxx: convert byte order of constant instead of variable

2008-02-10 Thread Marcin Slusarz
convert byte order of constant instead of variable
which can be done at compile time (vs run time)

Signed-off-by: Marcin Slusarz [EMAIL PROTECTED]
---
 drivers/net/qla3xxx.c |6 ++
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index a6aeb9d..b7f7b22 100644
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -2472,8 +2472,7 @@ static int ql_send_map(struct ql3_adapter *qdev,
 
if (seg_cnt == 1) {
/* Terminate the last segment. */
-   oal_entry-len =
-   cpu_to_le32(le32_to_cpu(oal_entry-len) | OAL_LAST_ENTRY);
+   oal_entry-len |= cpu_to_le32(OAL_LAST_ENTRY);
} else {
oal = tx_cb-oal;
for (completed_segs=0; completed_segsfrag_cnt; 
completed_segs++,seg++) {
@@ -2530,8 +2529,7 @@ static int ql_send_map(struct ql3_adapter *qdev,
  frag-size);
}
/* Terminate the last segment. */
-   oal_entry-len =
-   cpu_to_le32(le32_to_cpu(oal_entry-len) | OAL_LAST_ENTRY);
+   oal_entry-len |= cpu_to_le32(OAL_LAST_ENTRY);
}
 
return NETDEV_TX_OK;
-- 
1.5.3.7

--
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: [RFC] ipvs: Cleanup sync daemon code

2008-02-10 Thread Sven Wegener

On Sat, 9 Feb 2008, Christoph Hellwig wrote:


On Sun, Feb 10, 2008 at 12:38:11AM +0100, Sven Wegener wrote:

 struct ip_vs_sync_thread_data {
-   struct completion *startup;
+   struct completion *startup; /* set to NULL once completed */


This is not needed anmore.  kthread_run guarantees that the newly
creates thread is run before returning to the caller.


The completion is currently used to return an error code for errors that 
happen during initialization in the threads (open socket, allocate 
memory). We could move the setup code out of the threads and have them 
only run an error-safe loop.



+/* wait queue for master sync daemon */
+static DECLARE_WAIT_QUEUE_HEAD(sync_master_wait);


I don't think you need this one either.  You can use wake_up_process
on the task_struct pointer instead.


Thanks, now using schedule_timeout with wake_up_process.


spin_lock(ip_vs_sync_lock);
list_add_tail(sb-list, ip_vs_sync_queue);
+   if (++ip_vs_sync_count == 10)
+   wake_up_interruptible(sync_master_wait);
spin_unlock(ip_vs_sync_lock);
 }



-static int sync_thread(void *startup)
+static int sync_thread(void *data)


Btw, it might make sense to remove sync_thread and just call the
master and backup threads directly.


When the setup code has been moved out of the threads, the code gets much 
simpler.



+void __init ip_vs_sync_init(void)
+{
+   /* set up multicast address */
+   mcast_addr.sin_family = AF_INET;
+   mcast_addr.sin_port = htons(IP_VS_SYNC_PORT);
+   mcast_addr.sin_addr.s_addr = htonl(IP_VS_SYNC_GROUP);
 }


Why can't this be initialized at compile time by:

static struct sockaddr_in mcast_addr = {
.sin_family = AF_INET,
.sin_port   = htons(IP_VS_SYNC_PORT),
.sin_addr.s_addr= htonl(IP_VS_SYNC_GROUP),
}

(the hton* might need __constant_hton* also I'm not sure without trying)


Thanks.
--
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


[PATCH v2][AX25] af_ax25: remove sock lock in ax25_info_show()

2008-02-10 Thread Jarek Poplawski
Hi,

Here is a little bit better version, I hope.

Regards,
Jarek P.

-- (take 2)

Subject: [AX25] af_ax25: remove sock lock in ax25_info_show()
 
This lockdep warning:

 ===
 [ INFO: possible circular locking dependency detected ]
 2.6.24 #3
 ---
 swapper/0 is trying to acquire lock:
  (ax25_list_lock){-+..}, at: [f91dd3b1] ax25_destroy_socket+0x171/0x1f0 
 [ax25]
 
 but task is already holding lock:
  (slock-AF_AX25){-+..}, at: [f91dbabc] ax25_std_heartbeat_expiry+0x1c/0xe0 
 [ax25]
 
 which lock already depends on the new lock.
...

shows that ax25_list_lock and slock-AF_AX25 are taken in different
order: ax25_info_show() takes slock (bh_lock_sock(ax25-sk)) while
ax25_list_lock is held, so reversely to other functions. To fix this
the sock lock should be moved to ax25_info_start(), and there would
be still problem with breaking ax25_list_lock (it seems this proper
order isn't optimal yet). But, since it's only for reading proc info
it seems this is not necessary (e.g.  ax25_send_to_raw() does similar
reading without this lock too).

So, this patch removes sock lock to avoid deadlock possibility; there
is also used sock_i_ino() function, which reads sk_socket under proper
read lock. Additionally printf format of this i_ino is changed to %lu.


Reported-by: Bernard Pidoux F6BVP [EMAIL PROTECTED]
Signed-off-by: Jarek Poplawski [EMAIL PROTECTED]

---

 net/ax25/af_ax25.c |6 ++
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
index 94b2b1b..48bfcc7 100644
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -1924,12 +1924,10 @@ static int ax25_info_show(struct seq_file *seq, void *v)
   ax25-paclen);
 
if (ax25-sk != NULL) {
-   bh_lock_sock(ax25-sk);
-   seq_printf(seq, %d %d %ld\n,
+   seq_printf(seq,  %d %d %lu\n,
   atomic_read(ax25-sk-sk_wmem_alloc),
   atomic_read(ax25-sk-sk_rmem_alloc),
-  ax25-sk-sk_socket != NULL ? 
SOCK_INODE(ax25-sk-sk_socket)-i_ino : 0L);
-   bh_unlock_sock(ax25-sk);
+  sock_i_ino(ax25-sk));
} else {
seq_puts(seq,  * * *\n);
}
--
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


[PATCH] [IPV6] Minor cleanup: remove unused method declaration (net/ndisc.h).

2008-02-10 Thread Rami Rosen
Hi,

This patch removes unused declaration of dflt_rt_lookup() method in
include/net/ndisc.h


Regards,
Rami Rosen


Signed-off-by: Rami Rosen [EMAIL PROTECTED]
diff --git a/include/net/ndisc.h b/include/net/ndisc.h
index 6684f7e..59b7062 100644
--- a/include/net/ndisc.h
+++ b/include/net/ndisc.h
@@ -103,7 +103,6 @@ extern void ndisc_send_redirect(struct 
sk_buff *skb,
 extern int ndisc_mc_map(struct in6_addr *addr, char *buf, 
struct net_device *dev, int dir);
 
 
-struct rt6_info *  dflt_rt_lookup(void);
 
 /*
  * IGMP


Re: [patch 2.6.24-git] net/enc28j60: low power mode

2008-02-10 Thread David Brownell
Keep enc28j60 chips in low-power mode when they're not in use.
At typically 120 mA, these chips run hot even when idle; this
low power mode cuts that power usage by a factor of around 100.

This version provides a generic routine to poll a register until
its masked value equals some value ... e.g. bit set or cleared.
It's basically what the previous wait_phy_ready() did, but this
version is generalized to support the handshaking needed to
enter and exit low power mode.

Signed-off-by: David Brownell [EMAIL PROTECTED]
---
 drivers/net/enc28j60.c |   81 ++---
 1 files changed, 57 insertions(+), 24 deletions(-)

--- a/drivers/net/enc28j60.c
+++ b/drivers/net/enc28j60.c
@@ -400,26 +400,31 @@ enc28j60_packet_write(struct enc28j60_ne
mutex_unlock(priv-lock);
 }
 
-/*
- * Wait until the PHY operation is complete.
- */
-static int wait_phy_ready(struct enc28j60_net *priv)
+static unsigned long msec20_to_jiffies;
+
+static int poll_ready(struct enc28j60_net *priv, u8 reg, u8 mask, u8 val)
 {
-   unsigned long timeout = jiffies + 20 * HZ / 1000;
-   int ret = 1;
+   unsigned long timeout = jiffies + msec20_to_jiffies;
 
/* 20 msec timeout read */
-   while (nolock_regb_read(priv, MISTAT)  MISTAT_BUSY) {
+   while ((nolock_regb_read(priv, reg)  mask) != val) {
if (time_after(jiffies, timeout)) {
if (netif_msg_drv(priv))
-   printk(KERN_DEBUG DRV_NAME
-   : PHY ready timeout!\n);
-   ret = 0;
-   break;
+   dev_dbg(priv-spi-dev,
+   reg %02x ready timeout!\n, reg);
+   return -ETIMEDOUT;
}
cpu_relax();
}
-   return ret;
+   return 0;
+}
+
+/*
+ * Wait until the PHY operation is complete.
+ */
+static int wait_phy_ready(struct enc28j60_net *priv)
+{
+   return poll_ready(priv, MISTAT, MISTAT_BUSY, 0) ? 0 : 1;
 }
 
 /*
@@ -594,6 +599,32 @@ static void nolock_txfifo_init(struct en
nolock_regw_write(priv, ETXNDL, end);
 }
 
+/*
+ * Low power mode shrinks power consumption about 100x, so we'd like
+ * the chip to be in that mode whenever it's inactive.  (However, we
+ * can't stay in lowpower mode during suspend with WOL active.)
+ */
+static void enc28j60_lowpower(struct enc28j60_net *priv, bool is_low)
+{
+   if (netif_msg_drv(priv))
+   dev_dbg(priv-spi-dev, %s power...\n,
+   is_low ? low : high);
+
+   mutex_lock(priv-lock);
+   if (is_low) {
+   nolock_reg_bfclr(priv, ECON1, ECON1_RXEN);
+   poll_ready(priv, ESTAT, ESTAT_RXBUSY, 0);
+   poll_ready(priv, ECON1, ECON1_TXRTS, 0);
+   /* ECON2_VRPS was set during initialization */
+   nolock_reg_bfset(priv, ECON2, ECON2_PWRSV);
+   } else {
+   nolock_reg_bfclr(priv, ECON2, ECON2_PWRSV);
+   poll_ready(priv, ESTAT, ESTAT_CLKRDY, ESTAT_CLKRDY);
+   /* caller sets ECON1_RXEN */
+   }
+   mutex_unlock(priv-lock);
+}
+
 static int enc28j60_hw_init(struct enc28j60_net *priv)
 {
u8 reg;
@@ -612,8 +643,8 @@ static int enc28j60_hw_init(struct enc28
priv-tx_retry_count = 0;
priv-max_pk_counter = 0;
priv-rxfilter = RXFILTER_NORMAL;
-   /* enable address auto increment */
-   nolock_regb_write(priv, ECON2, ECON2_AUTOINC);
+   /* enable address auto increment and voltage regulator powersave */
+   nolock_regb_write(priv, ECON2, ECON2_AUTOINC | ECON2_VRPS);
 
nolock_rxfifo_init(priv, RXSTART_INIT, RXEND_INIT);
nolock_txfifo_init(priv, TXSTART_INIT, TXEND_INIT);
@@ -690,7 +721,7 @@ static int enc28j60_hw_init(struct enc28
 
 static void enc28j60_hw_enable(struct enc28j60_net *priv)
 {
-   /* enable interrutps */
+   /* enable interrupts */
if (netif_msg_hw(priv))
printk(KERN_DEBUG DRV_NAME : %s() enabling interrupts.\n,
__FUNCTION__);
@@ -726,15 +757,12 @@ enc28j60_setlink(struct net_device *ndev
int ret = 0;
 
if (!priv-hw_enable) {
-   if (autoneg == AUTONEG_DISABLE  speed == SPEED_10) {
+   /* link is in low power mode now; duplex setting
+* will take effect on next enc28j60_hw_init().
+*/
+   if (autoneg == AUTONEG_DISABLE  speed == SPEED_10)
priv-full_duplex = (duplex == DUPLEX_FULL);
-   if (!enc28j60_hw_init(priv)) {
-   if (netif_msg_drv(priv))
-   dev_err(ndev-dev,
-   hw_reset() failed\n);
-   ret = -EINVAL;
-   }
-   } else {
+   else 

Re: [patch 2.6.24-git] net/enc28j60: low power mode

2008-02-10 Thread David Brownell
On Thursday 07 February 2008, Claudio Lanconelli wrote:
 Sorry,
 let me repeat what I said in previous mail.
 I propose you to add set_lowpower(true) in the enc28j60_probe() 

As the current patch does...


 and in  the enc28j60_net_close() after enc28j60_hw_disable().
 Probably we don't need to set_lowpower(false) in enc28j60_net_open() since
 it performs a soft reset with enc28j60_hw_init() (not sure).

The current patch sets the device in low power mode in hw_disable(),
and takes it out of that mode in hw_enable().  I can move them; and
the only soft thing about this chip's reset is when it starts from
a protocol command not the reset command.


 Furthermore, as you suggested, we also need to remove hw_init() from the 
 setlink()
 because hw_init() is called when we bring link up.
 
 --- enc28j60.c 20 Dec 2007 10:47:01 - 1.22
 +++ enc28j60.c 7 Feb 2008 11:07:20 -
 @@ -740,12 +740,6 @@
 if (!priv-hw_enable) {
 if (autoneg == AUTONEG_DISABLE  speed == SPEED_10) {
 priv-full_duplex = (duplex == DUPLEX_FULL);
 - if (!enc28j60_hw_init(priv)) {
 - if (netif_msg_drv(priv))
 - dev_err(ndev-dev,
 - hw_reset() failed\n);
 - ret = -EINVAL;
 - }

Right.  Without the patch mangling presumably done by your mailer.  ;)


 } else {
 if (netif_msg_link(priv))
 dev_warn(ndev-dev,
 
 Can you update your low power patch with these modifications?
 

Done -- see my next patch.

--
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 2.6.24-git] net/enc28j60: oops fix, low power mode

2008-02-10 Thread David Brownell
On Thursday 07 February 2008, Claudio Lanconelli wrote:
 David Brownell wrote:
  How long did that take?  I did about four dozen
 
  ifconfig eth1 up
  sleep 3
  ifconfig eth1 down
 
  cycles ... it worked fine.  The sleep was to let the link
  negotiation complete.
 

 After a couple of :
 
 ifconfig eth0 down
 (wait just 1 second)
 ifconfig eth0 up
 
 the network is frozen.
 
 If I do another
 ifconfig eth0 down
 (wait just 1 second)
 ifconfig eth0 up
 
 restarts.
 It's random, no rule.

I write a shell loop to do that, and added a ping -c2 too.
If that was done before the sleep 1 no packets flowed.
Afterwards, no problem -- ever. 

(And outside the loop, ethool -s eth1 duplex full.)
--
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][AX25] ax25_ds_timer: use mod_timer instead of add_timer

2008-02-10 Thread Bernard Pidoux F6BVP

Hi Jarek,

Sorry, I should have been more explicit about the patches I applied.

My CPU is an Intel Core 2 duo and I compiled 2.6.24 with SMP option.

I applied 3 patches you have submitted for ax25 before I observed the 
possible locking.


That is :

mkiss patch
diff --git a/drivers/net/hamradio/mkiss.c b/drivers/net/hamradio/mkiss.c
index cfcd15a..30c9b3b 100644

[AX25] ax25_timer: use mod_timer instead of add_timer

[AX25] ax25_ds_timer: use mod_timer instead of add_timer

I also applied 4 patches for rose.ko I sent to the list a while ago.
But for this report I did not installed any ROSE driver nor application.

I will try your new patch version 2 and report any possible change.


Regards,


Bernard Pidoux,
F6BVP


Jarek Poplawski wrote:

On Sat, Feb 09, 2008 at 07:44:50PM +0100, Bernard Pidoux F6BVP wrote:

Hi,

With AX25 patches applied I still get this possible circular locking  
message.


Hi Bernard,

Could you confirm which exactly patches did you try? Is this vanilla
2.6.24 plus these two: ax25_timer and ax25_ds_timer or something more?
And I'm not sure what do you mean by still: the warning came back
just after these last patches? At least these timer patches don't seem
to change anything around locking?

Thanks for testing this,
Jarek P.



--
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][AX25] ax25_ds_timer: use mod_timer instead of add_timer

2008-02-10 Thread Jann Traschewski
Patches from Jarek applied (incl. both testing patches). Machine is stable
since 2 days now.
Regards,
Jann

 -Ursprüngliche Nachricht-
 Von: Jarek Poplawski [mailto:[EMAIL PROTECTED] 
 Gesendet: Mittwoch, 6. Februar 2008 10:14
 An: netdev@vger.kernel.org
 Cc: Ralf Baechle; Jann Traschewski; David Miller
 Betreff: [PATCH][AX25] ax25_ds_timer: use mod_timer instead 
 of add_timer
 
 On Wed, Feb 06, 2008 at 08:15:09AM +, Jarek Poplawski wrote:
  On Wed, Feb 06, 2008 at 07:45:29AM +, Jarek Poplawski wrote:
  ...
   From: Jann Traschewski [EMAIL PROTECTED]
   Subject: SMP with AX.25
 ...
 
 
 [AX25] ax25_ds_timer: use mod_timer instead of add_timer
 
 This patch changes current use of: init_timer(), add_timer() 
 and del_timer() to setup_timer() with mod_timer(), which 
 should be safer anyway.
 
 
 Reported-by: Jann Traschewski [EMAIL PROTECTED]
 Signed-off-by: Jarek Poplawski [EMAIL PROTECTED]
 
 ---
 
  include/net/ax25.h   |1 +
  net/ax25/ax25_dev.c  |2 +-
  net/ax25/ax25_ds_timer.c |   12 
  3 files changed, 6 insertions(+), 9 deletions(-)
 
 diff --git a/include/net/ax25.h b/include/net/ax25.h index 
 3f0236f..717e219 100644
 --- a/include/net/ax25.h
 +++ b/include/net/ax25.h
 @@ -324,6 +324,7 @@ extern void ax25_dama_on(ax25_cb *);  
 extern void ax25_dama_off(ax25_cb *);
  
  /* ax25_ds_timer.c */
 +extern void ax25_ds_setup_timer(ax25_dev *);
  extern void ax25_ds_set_timer(ax25_dev *);  extern void 
 ax25_ds_del_timer(ax25_dev *);  extern void 
 ax25_ds_timer(ax25_cb *); diff --git a/net/ax25/ax25_dev.c 
 b/net/ax25/ax25_dev.c index 528c874..a7a0e0c 100644
 --- a/net/ax25/ax25_dev.c
 +++ b/net/ax25/ax25_dev.c
 @@ -82,7 +82,7 @@ void ax25_dev_device_up(struct net_device *dev)
   ax25_dev-values[AX25_VALUES_DS_TIMEOUT]= AX25_DEF_DS_TIMEOUT;
  
  #if defined(CONFIG_AX25_DAMA_SLAVE) || 
 defined(CONFIG_AX25_DAMA_MASTER)
 - init_timer(ax25_dev-dama.slave_timer);
 + ax25_ds_setup_timer(ax25_dev);
  #endif
  
   spin_lock_bh(ax25_dev_lock);
 diff --git a/net/ax25/ax25_ds_timer.c 
 b/net/ax25/ax25_ds_timer.c index c4e3b02..2ce79df 100644
 --- a/net/ax25/ax25_ds_timer.c
 +++ b/net/ax25/ax25_ds_timer.c
 @@ -40,13 +40,10 @@ static void ax25_ds_timeout(unsigned long);
   *   1/10th of a second.
   */
  
 -static void ax25_ds_add_timer(ax25_dev *ax25_dev)
 +void ax25_ds_setup_timer(ax25_dev *ax25_dev)
  {
 - struct timer_list *t = ax25_dev-dama.slave_timer;
 - t-data = (unsigned long) ax25_dev;
 - t-function = ax25_ds_timeout;
 - t-expires  = jiffies + HZ;
 - add_timer(t);
 + setup_timer(ax25_dev-dama.slave_timer, ax25_ds_timeout,
 + (unsigned long)ax25_dev);
  }
  
  void ax25_ds_del_timer(ax25_dev *ax25_dev) @@ -60,10 +57,9 
 @@ void ax25_ds_set_timer(ax25_dev *ax25_dev)
   if (ax25_dev == NULL)   /* paranoia */
   return;
  
 - del_timer(ax25_dev-dama.slave_timer);
   ax25_dev-dama.slave_timeout =
   
 msecs_to_jiffies(ax25_dev-values[AX25_VALUES_DS_TIMEOUT]) / 10;
 - ax25_ds_add_timer(ax25_dev);
 + mod_timer(ax25_dev-dama.slave_timer, jiffies + HZ);
  }
  
  /*

--
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] New device for DM9601 usb net driver

2008-02-10 Thread Peter Korsgaard
 Robert == Robert Brockway [EMAIL PROTECTED] writes:

 Robert Hi Peter.  I've verified that the Hirose USB-100 (0x0a47,
 Robert 0x9601) is a clone of the DAVICOM DM9601.  I patched dm9601.c
 Robert to identify this device and now have these in production.
 Robert Unified diff against 2.6.24 attached.

Thanks!

Acked-by: Peter Korsgaard [EMAIL PROTECTED]

 Robert Cheers,

 Robert Rob

 Robert -- 
 Robert With sufficient thrust, pigs fly just fine...
 Robert-- RFC 1925 The Twelve Networking Truths

 Robert --- drivers/net/usb/dm9601.c.old   2008-01-27 00:51:50.0 
-0500
 Robert +++ drivers/net/usb/dm9601.c   2008-02-07 10:27:40.0 -0500
 Robert @@ -590,6 +590,10 @@ static const struct usb_device_id produc
 Robert USB_DEVICE(0x0a46, 0x8515),/* ADMtek ADM8515 USB NIC */
 Robert .driver_info = (unsigned long)dm9601_info,
 Robert },
 Robert +  {
 Robert +  USB_DEVICE(0x0a47, 0x9601),/* Hirose USB-100 */
 Robert +  .driver_info = (unsigned long)dm9601_info,
 Robert +  },
 Robert{}, // END
 Robert  };
 

-- 
Bye, Peter Korsgaard
--
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


[PATCH] 3c509: convert to isa_driver and pnp_driver v5

2008-02-10 Thread Ondrej Zary
Hello,
this patch converts 3c509 driver to isa_driver and pnp_driver. The result is 
that autoloading using udev and hibernation works with ISA PnP cards. It also 
adds hibernation support for non-PnP ISA cards.

xcvr module parameter was removed as its value was not used.

Tested using 3 ISA cards in various combinations of PnP and non-PnP modes. 
EISA and MCA only compile-tested.

Signed-off-by: Ondrej Zary [EMAIL PROTECTED]

--- linux-2.6.24-orig/drivers/net/3c509.c   2008-01-27 19:48:19.0 
+0100
+++ linux-2.6.24-pentium/drivers/net/3c509.c2008-02-10 21:52:04.0 
+0100
@@ -54,25 +54,24 @@
v1.19a 28Oct2002 Davud Ruggiero [EMAIL PROTECTED]
- Increase *read_eeprom udelay to workaround oops with 
2 cards.
v1.19b 08Nov2002 Marc Zyngier [EMAIL PROTECTED]
-   - Introduce driver model for EISA cards.
+   - Introduce driver model for EISA cards.
+   v1.20  04Feb2008 Ondrej Zary [EMAIL PROTECTED]
+   - convert to isa_driver and pnp_driver and some cleanups
 */
 
 #define DRV_NAME   3c509
-#define DRV_VERSION1.19b
-#define DRV_RELDATE08Nov2002
+#define DRV_VERSION1.20
+#define DRV_RELDATE04Feb2008
 
 /* A few values that may be tweaked. */
 
 /* Time in jiffies before concluding the transmitter is hung. */
 #define TX_TIMEOUT  (400*HZ/1000)
-/* Maximum events (Rx packets, etc.) to handle at each interrupt. */
-static int max_interrupt_work = 10;
 
 #include linux/module.h
-#ifdef CONFIG_MCA
 #include linux/mca.h
-#endif
-#include linux/isapnp.h
+#include linux/isa.h
+#include linux/pnp.h
 #include linux/string.h
 #include linux/interrupt.h
 #include linux/errno.h
@@ -97,10 +96,6 @@
 
 static char version[] __initdata = DRV_NAME .c: DRV_VERSION   DRV_RELDATE 
 [EMAIL PROTECTED];
 
-#if defined(CONFIG_PM)  (defined(CONFIG_MCA) || defined(CONFIG_EISA))
-#define EL3_SUSPEND
-#endif
-
 #ifdef EL3_DEBUG
 static int el3_debug = EL3_DEBUG;
 #else
@@ -111,6 +106,7 @@
  * a global variable so that the mca/eisa probe routines can increment
  * it */
 static int el3_cards = 0;
+#define EL3_MAX_CARDS 8
 
 /* To minimize the size of the driver source I only define operating
constants if they are used several times.  You'll need the manual
@@ -119,7 +115,7 @@
 #define EL3_DATA 0x00
 #define EL3_CMD 0x0e
 #define EL3_STATUS 0x0e
-#define EEPROM_READ 0x80
+#defineEEPROM_READ 0x80
 
 #define EL3_IO_EXTENT  16
 
@@ -168,23 +164,31 @@
  */
 #define SKB_QUEUE_SIZE 64
 
+enum el3_cardtype { EL3_ISA, EL3_PNP, EL3_MCA, EL3_EISA };
+
 struct el3_private {
struct net_device_stats stats;
-   struct net_device *next_dev;
spinlock_t lock;
/* skb send-queue */
int head, size;
struct sk_buff *queue[SKB_QUEUE_SIZE];
-   enum {
-   EL3_MCA,
-   EL3_PNP,
-   EL3_EISA,
-   } type; /* type of device */
-   struct device *dev;
+   enum el3_cardtype type;
 };
-static int id_port __initdata = 0x110; /* Start with 0x110 to avoid new sound 
cards.*/
-static struct net_device *el3_root_dev;
+static int id_port;
+static int current_tag;
+static struct net_device *el3_devs[EL3_MAX_CARDS];
+
+/* Parameters that may be passed into the module. */
+static int debug = -1;
+static int irq[] = {-1, -1, -1, -1, -1, -1, -1, -1};
+/* Maximum events (Rx packets, etc.) to handle at each interrupt. */
+static int max_interrupt_work = 10;
+#ifdef CONFIG_PNP
+static int nopnp;
+#endif
 
+static int __init el3_common_init(struct net_device *dev);
+static void el3_common_remove(struct net_device *dev);
 static ushort id_read_eeprom(int index);
 static ushort read_eeprom(int ioaddr, int index);
 static int el3_open(struct net_device *dev);
@@ -199,23 +203,279 @@
 static void el3_down(struct net_device *dev);
 static void el3_up(struct net_device *dev);
 static const struct ethtool_ops ethtool_ops;
-#ifdef EL3_SUSPEND
+#ifdef CONFIG_PM
 static int el3_suspend(struct device *, pm_message_t);
 static int el3_resume(struct device *);
-#else
-#define el3_suspend NULL
-#define el3_resume NULL
 #endif
 
 
 /* generic device remove for all device types */
-#if defined(CONFIG_EISA) || defined(CONFIG_MCA)
 static int el3_device_remove (struct device *device);
-#endif
 #ifdef CONFIG_NET_POLL_CONTROLLER
 static void el3_poll_controller(struct net_device *dev);
 #endif
 
+/* Return 0 on success, 1 on error, 2 when found already detected PnP card */
+static int el3_isa_id_sequence(__be16 *phys_addr)
+{
+   short lrs_state = 0xff;
+   int i;
+
+   /* ISA boards are detected by sending the ID sequence to the
+  ID_PORT.  We find cards past the first by setting the 'current_tag'
+  on cards as they are found.  Cards with their tag set will not
+  respond to subsequent ID sequences. */
+
+   outb(0x00, id_port);
+   outb(0x00, 

Netfilter fixes to 2.6.24-git

2008-02-10 Thread Jan Engelhardt
Hi to everyone,


I have been unable to reach the netfilter and net maintainers the past 
week regarding inclusion of patches, but most importantly a group of 
fixes at [0]-[3]. I am kind of at a loss here but to turn up the volume 
and write to more people on how to proceed.

thanks,
Jan

[0] http://marc.info/?l=netfilter-develm=120230633916142w=2 (Overview)
[1] http://marc.info/?l=netfilter-develm=120230634016145w=2
[2] http://marc.info/?l=netfilter-develm=120230634216156w=2
[3] http://marc.info/?l=netfilter-develm=120230634616162w=2
--
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


[PATCH] drivers/net/sis190: fix section mismatch warning in sis190_get_mac_addr

2008-02-10 Thread Sergio Luis
Fix following warnings:
WARNING: drivers/net/sis190.o(.text+0x103): Section mismatch in reference from 
the function sis190_get_mac_addr() to the function 
.devinit.text:sis190_get_mac_addr_from_apc()
WARNING: drivers/net/sis190.o(.text+0x10e): Section mismatch in reference from 
the function sis190_get_mac_addr() to the function 
.devinit.text:sis190_get_mac_addr_from_eeprom()

Annotate sis190_get_mac_addr() with __devinit.

Signed-off-by: Sergio Luis [EMAIL PROTECTED]

 sis190.c |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff -urN linux-2.6.24-git22.orig/drivers/net/sis190.c 
linux-2.6.24-git22/drivers/net/sis190.c
--- linux-2.6.24-git22.orig/drivers/net/sis190.c2008-02-10 
16:56:37.0 -0300
+++ linux-2.6.24-git22/drivers/net/sis190.c 2008-02-10 17:38:36.0 
-0300
@@ -1630,7 +1630,8 @@
SIS_PCI_COMMIT();
 }
 
-static int sis190_get_mac_addr(struct pci_dev *pdev, struct net_device *dev)
+static int __devinit sis190_get_mac_addr(struct pci_dev *pdev, 
+struct net_device *dev)
 {
u8 from;
 

--
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


HTB(?) softlockup, vanilla 2.6.24

2008-02-10 Thread Denys Fedoryshchenko
It is very difficult to reproduce, happened after running about 1month. No 
changes done in classes at that time

Feb 10 15:53:22 SHAPER [ 8271.778915] BUG: NMI Watchdog detected LOCKUP
Feb 10 15:53:22 SHAPER on CPU1, eip c01f0e5d, registers:
Feb 10 15:53:22 SHAPER [ 8271.778952] Modules linked in:
Feb 10 15:53:22 SHAPER netconsole
Feb 10 15:53:22 SHAPER configfs
Feb 10 15:53:22 SHAPER softdog
Feb 10 15:53:22 SHAPER nf_nat_pptp
Feb 10 15:53:22 SHAPER nf_conntrack_pptp
Feb 10 15:53:22 SHAPER nf_conntrack_proto_gre
Feb 10 15:53:22 SHAPER nf_nat_proto_gre
Feb 10 15:53:22 SHAPER xt_tcpudp
Feb 10 15:53:22 SHAPER ipt_TTL
Feb 10 15:53:22 SHAPER ipt_ttl
Feb 10 15:53:22 SHAPER xt_NOTRACK
Feb 10 15:53:22 SHAPER iptable_raw
Feb 10 15:53:22 SHAPER iptable_mangle
Feb 10 15:53:22 SHAPER ifb
Feb 10 15:53:22 SHAPER e1000e
Feb 10 15:53:22 SHAPER em_nbyte
Feb 10 15:53:22 SHAPER cls_tcindex
Feb 10 15:53:22 SHAPER act_gact
Feb 10 15:53:22 SHAPER cls_rsvp
Feb 10 15:53:22 SHAPER sch_htb
Feb 10 15:53:22 SHAPER cls_fw
Feb 10 15:53:22 SHAPER act_mirred
Feb 10 15:53:22 SHAPER em_u32
Feb 10 15:53:22 SHAPER sch_red
Feb 10 15:53:22 SHAPER sch_sfq
Feb 10 15:53:22 SHAPER sch_tbf
Feb 10 15:53:22 SHAPER sch_teql
Feb 10 15:53:22 SHAPER cls_basic
Feb 10 15:53:22 SHAPER act_police
Feb 10 15:53:22 SHAPER sch_gred
Feb 10 15:53:22 SHAPER act_pedit
Feb 10 15:53:22 SHAPER sch_hfsc
Feb 10 15:53:22 SHAPER cls_rsvp6
Feb 10 15:53:22 SHAPER sch_ingress
Feb 10 15:53:22 SHAPER em_meta
Feb 10 15:53:22 SHAPER em_text
Feb 10 15:53:22 SHAPER act_ipt
Feb 10 15:53:22 SHAPER sch_dsmark
Feb 10 15:53:22 SHAPER sch_prio
Feb 10 15:53:22 SHAPER sch_netem
Feb 10 15:53:22 SHAPER act_simple
Feb 10 15:53:22 SHAPER cls_u32
Feb 10 15:53:22 SHAPER em_cmp
Feb 10 15:53:22 SHAPER sch_cbq
Feb 10 15:53:22 SHAPER cls_route
Feb 10 15:53:22 SHAPER xt_TCPMSS
Feb 10 15:53:22 SHAPER iptable_nat
Feb 10 15:53:22 SHAPER nf_conntrack_ipv4
Feb 10 15:53:22 SHAPER ipt_LOG
Feb 10 15:53:22 SHAPER ipt_MASQUERADE
Feb 10 15:53:22 SHAPER ipt_REDIRECT
Feb 10 15:53:22 SHAPER nf_nat
Feb 10 15:53:22 SHAPER nf_conntrack
Feb 10 15:53:22 SHAPER nfnetlink
Feb 10 15:53:22 SHAPER iptable_filter
Feb 10 15:53:22 SHAPER ip_tables
Feb 10 15:53:22 SHAPER x_tables
Feb 10 15:53:22 SHAPER 8021q
Feb 10 15:53:22 SHAPER tun
Feb 10 15:53:22 SHAPER tulip
Feb 10 15:53:22 SHAPER r8169
Feb 10 15:53:22 SHAPER sky2
Feb 10 15:53:22 SHAPER via_velocity
Feb 10 15:53:22 SHAPER via_rhine
Feb 10 15:53:22 SHAPER sis900
Feb 10 15:53:22 SHAPER ne2k_pci
Feb 10 15:53:22 SHAPER 8390
Feb 10 15:53:22 SHAPER skge
Feb 10 15:53:22 SHAPER tg3
Feb 10 15:53:22 SHAPER 8139too
Feb 10 15:53:22 SHAPER e1000
Feb 10 15:53:22 SHAPER e100
Feb 10 15:53:22 SHAPER usb_storage
Feb 10 15:53:22 SHAPER mtdblock
Feb 10 15:53:22 SHAPER mtd_blkdevs
Feb 10 15:53:22 SHAPER usbhid
Feb 10 15:53:22 SHAPER uhci_hcd
Feb 10 15:53:22 SHAPER ehci_hcd
Feb 10 15:53:22 SHAPER ohci_hcd
Feb 10 15:53:22 SHAPER usbcore
Feb 10 15:53:22 SHAPER
Feb 10 15:53:22 SHAPER [ 8271.779291]
Feb 10 15:53:22 SHAPER [ 8271.779307] Pid: 0, comm: swapper Not tainted 
(2.6.24-build-0021 #26)
Feb 10 15:53:22 SHAPER [ 8271.779327] EIP: 0060:[c01f0e5d] EFLAGS: 0082 
CPU: 1
Feb 10 15:53:22 SHAPER [ 8271.779349] EIP is at __rb_rotate_right+0x5/0x50
Feb 10 15:53:22 SHAPER [ 8271.779366] EAX: f76494a4 EBX: f76494a4 ECX: 
f76494a4 EDX: c1ff5f80
Feb 10 15:53:22 SHAPER [ 8271.779386] ESI: f76494a4 EDI: c1ff5f80 EBP: 
 ESP: f7c29c70
Feb 10 15:53:22 SHAPER [ 8271.779406]  DS: 007b ES: 007b FS: 00d8 GS:  
SS: 0068
Feb 10 15:53:22 SHAPER [ 8271.779425] Process swapper (pid: 0, ti=f7c28000 
task=f7c20a60 task.ti=f7c28000)
Feb 10 15:53:22 SHAPER
Feb 10 15:53:22 SHAPER [ 8271.779446] Stack:
Feb 10 15:53:22 SHAPER f76494a4
Feb 10 15:53:22 SHAPER f76494a4
Feb 10 15:53:22 SHAPER f76494a4
Feb 10 15:53:22 SHAPER c01f0ef4
Feb 10 15:53:22 SHAPER c1ff5f80
Feb 10 15:53:22 SHAPER f76494a4
Feb 10 15:53:22 SHAPER f76494a8
Feb 10 15:53:22 SHAPER c1ff5f78
Feb 10 15:53:22 SHAPER
Feb 10 15:53:22 SHAPER [ 8271.779493]
Feb 10 15:53:22 SHAPER [ 8271.779307] Pid: 0, comm: swapper Not tainted 
(2.6.24-build-0021 #26)
Feb 10 15:53:22 SHAPER [ 8271.779327] EIP: 0060:[c01f0e5d] EFLAGS: 0082 
CPU: 1
Feb 10 15:53:22 SHAPER [ 8271.779349] EIP is at __rb_rotate_right+0x5/0x50
Feb 10 15:53:22 SHAPER [ 8271.779366] EAX: f76494a4 EBX: f76494a4 ECX: 
f76494a4 EDX: c1ff5f80
Feb 10 15:53:22 SHAPER [ 8271.779386] ESI: f76494a4 EDI: c1ff5f80 EBP: 
 ESP: f7c29c70
Feb 10 15:53:22 SHAPER [ 8271.779406]  DS: 007b ES: 007b FS: 00d8 GS:  
SS: 0068
Feb 10 15:53:22 SHAPER [ 8271.779425] Process swapper (pid: 0, ti=f7c28000 
task=f7c20a60 task.ti=f7c28000)
Feb 10 15:53:22 SHAPER
Feb 10 15:53:22 SHAPER [ 8271.779446] Stack:
Feb 10 15:53:22 SHAPER f76494a4
Feb 10 15:53:22 SHAPER f76494a4
Feb 10 15:53:22 SHAPER f76494a4
Feb 10 15:53:22 SHAPER c01f0ef4
Feb 10 15:53:22 SHAPER c1ff5f80
Feb 10 15:53:22 SHAPER f76494a4
Feb 10 15:53:22 SHAPER f76494a8
Feb 10 15:53:22 SHAPER c1ff5f78
Feb 10 15:53:22 SHAPER
Feb 10 15:53:22 SHAPER [ 

[PATCH 5/8] drivers/net/mv643xx_eth.c: Use FIELD_SIZEOF

2008-02-10 Thread Julia Lawall
From: Julia Lawall [EMAIL PROTECTED]

Robert P.J. Day proposed to use the macro FIELD_SIZEOF in replace of code
that matches its definition.

The modification was made using the following semantic patch
(http://www.emn.fr/x-info/coccinelle/)

// smpl
@haskernel@
@@

#include linux/kernel.h

@depends on haskernel@
type t;
identifier f;
@@

- (sizeof(((t*)0)-f))
+ FIELD_SIZEOF(t, f)

@depends on haskernel@
type t;
identifier f;
@@

- sizeof(((t*)0)-f)
+ FIELD_SIZEOF(t, f)
// /smpl

Signed-off-by: Julia Lawall [EMAIL PROTECTED]

---

diff -u -p a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
--- a/drivers/net/mv643xx_eth.c 2008-02-08 08:58:12.0 +0100
+++ b/drivers/net/mv643xx_eth.c 2008-02-10 18:00:09.0 +0100
@@ -3155,7 +3155,7 @@ struct mv643xx_stats {
int stat_offset;
 };
 
-#define MV643XX_STAT(m) sizeof(((struct mv643xx_private *)0)-m), \
+#define MV643XX_STAT(m) FIELD_SIZEOF(struct mv643xx_private, m), \
offsetof(struct mv643xx_private, m)
 
 static const struct mv643xx_stats mv643xx_gstrings_stats[] = {
--
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: Pull request for 'r6040' branch

2008-02-10 Thread Florian Fainelli
Hi Francois, Jeff,

Le mardi 5 février 2008, Francois Romieu a écrit :
 Please pull from branch 'r6040' in repository

 git://git.kernel.org/pub/scm/linux/kernel/git/romieu/netdev-2.6.git r6040

 to get the changes below.

 I have simply rebased the r6040 branch from december on top of
 Linus's latest head and given each patch a compile test.
 The content is identical to Florian's initial work (minus the
 removal of the unused TIMER_WUT and a duplicate update of an
 error counter).

Thank you very much Francois. Jeff, any news on this ?
-- 
Cordialement, Florian Fainelli
--
--
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


[2.6.25-rc1] Locks in udp_recvmsg()?

2008-02-10 Thread Tetsuo Handa
Hello.

I found that udp_recvmsg() in net/ipv4/udp.c for 2.6.25-rc1 calls
lock_sock() only when it releases the datagram (i.e. out_free: and 
csum_copy_err:).
Is it correct to call __skb_recv_datagram() without calling lock_sock()
when it acquires the datagram (i.e. try_again:)?

Regards.
--
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: Netfilter fixes to 2.6.24-git

2008-02-10 Thread David Miller
From: Jan Engelhardt [EMAIL PROTECTED]
Date: Sun, 10 Feb 2008 22:02:35 +0100 (CET)

 I have been unable to reach the netfilter and net maintainers the past 
 week regarding inclusion of patches, but most importantly a group of 
 fixes at [0]-[3]. I am kind of at a loss here but to turn up the volume 
 and write to more people on how to proceed.

You just need to be patient and wait for Patrick to get to your
patches, it's as simple as that :-)

Patrick is normally very responsive, so whatever it is it has to be a
temporary issue.

Because of LCA08 etc. I myself wasn't even able to get any networking
bug fix submissions into 2.6.24.1

Big deal, we'll just get it into the next 2.6.24.x release.

Thanks for your patience.
--
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: Netfilter fixes to 2.6.24-git

2008-02-10 Thread Patrick McHardy

David Miller wrote:

From: Jan Engelhardt [EMAIL PROTECTED]
Date: Sun, 10 Feb 2008 22:02:35 +0100 (CET)

I have been unable to reach the netfilter and net maintainers the past 
week regarding inclusion of patches, but most importantly a group of 
fixes at [0]-[3]. I am kind of at a loss here but to turn up the volume 
and write to more people on how to proceed.


You just need to be patient and wait for Patrick to get to your
patches, it's as simple as that :-)

Patrick is normally very responsive, so whatever it is it has to be a
temporary issue.



Indeed, I'm currently ill and not really up for much working,
but this will hopefully get better soon.
--
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

2008-02-10 Thread Frank Blaschka
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