From: Samuel O. <sa...@so...> - 2007-12-03 01:29:09
|
Hi Herbert, Here goes a series of 5 IrDA patches against your latest net-2.6 tree. Cheers, Samuel. -- |
From: Samuel O. <sa...@so...> - 2007-12-03 01:29:08
|
The attached patch observes the stir4200 fifo size and will clear the fifo, if the size is increasing, while it should be transmitting bytes From: Olaf Hartmann <ola...@s1...> Signed-off-by: Samuel Ortiz <sa...@so...> --- drivers/net/irda/stir4200.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) Index: net-2.6/drivers/net/irda/stir4200.c =================================================================== --- net-2.6.orig/drivers/net/irda/stir4200.c 2007-11-25 05:53:43.000000000 +0100 +++ net-2.6/drivers/net/irda/stir4200.c 2007-11-26 02:16:12.000000000 +0100 @@ -142,9 +142,6 @@ }; enum StirFifoCtlMask { - FIFOCTL_EOF = 0x80, - FIFOCTL_UNDER = 0x40, - FIFOCTL_OVER = 0x20, FIFOCTL_DIR = 0x10, FIFOCTL_CLR = 0x08, FIFOCTL_EMPTY = 0x04, @@ -594,9 +591,10 @@ { int err; unsigned long count, status; + unsigned long prev_count = 0x1fff; /* Read FIFO status and count */ - for(;;) { + for (;; prev_count = count) { err = read_reg(stir, REG_FIFOCTL, stir->fifo_status, FIFO_REGS_SIZE); if (unlikely(err != FIFO_REGS_SIZE)) { @@ -629,6 +627,10 @@ if (space >= 0 && STIR_FIFO_SIZE - 4 > space + count) return 0; + /* queue confused */ + if (prev_count < count) + break; + /* estimate transfer time for remaining chars */ msleep((count * 8000) / stir->speed); } -- |
From: Samuel O. <sa...@so...> - 2007-12-03 01:29:09
|
This patch fixes: CHECK /home/kernel/src/net/irda/parameters.c /home/kernel/src/net/irda/parameters.c:466:2: warning: Using plain integer as NULL pointer /home/kernel/src/net/irda/parameters.c:520:2: warning: Using plain integer as NULL pointer /home/kernel/src/net/irda/parameters.c:573:2: warning: Using plain integer as NULL pointer Signed-off-by: Richard Knutsson <ric...@st...> Signed-off-by: Samuel Ortiz <sa...@so...> Cc: Andrew Morton <ak...@li...> --- net/irda/parameters.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: net-2.6/net/irda/parameters.c =================================================================== --- net-2.6.orig/net/irda/parameters.c 2007-11-25 05:54:02.000000000 +0100 +++ net-2.6/net/irda/parameters.c 2007-11-26 10:20:38.000000000 +0100 @@ -463,7 +463,7 @@ int n = 0; IRDA_ASSERT(buf != NULL, return ret;); - IRDA_ASSERT(info != 0, return ret;); + IRDA_ASSERT(info != NULL, return ret;); pi_minor = pi & info->pi_mask; pi_major = pi >> info->pi_major_offset; @@ -517,7 +517,7 @@ int n = 0; IRDA_ASSERT(buf != NULL, return ret;); - IRDA_ASSERT(info != 0, return ret;); + IRDA_ASSERT(info != NULL, return ret;); pi_minor = buf[n] & info->pi_mask; pi_major = buf[n] >> info->pi_major_offset; @@ -570,7 +570,7 @@ int n = 0; IRDA_ASSERT(buf != NULL, return ret;); - IRDA_ASSERT(info != 0, return ret;); + IRDA_ASSERT(info != NULL, return ret;); /* * Parse all parameters. Each parameter must be at least two bytes -- |
From: Samuel O. <sa...@so...> - 2007-12-03 01:29:09
|
While testing the mcs7780 based IrDA USB dongle I've stumbled upon memory leak in irlmp_unregister_link(). Hashbin for lsaps is created in irlmp_register_link and should probably be freed in irlmp_unregister_link(). Signed-off-by: Hinko Kocevar <hin...@ce...> Signed-off-by: Samuel Ortiz <sa...@so...> --- net/irda/irlmp.c | 1 + 1 file changed, 1 insertion(+) Index: net-2.6/net/irda/irlmp.c =================================================================== --- net-2.6.orig/net/irda/irlmp.c 2007-11-25 05:54:02.000000000 +0100 +++ net-2.6/net/irda/irlmp.c 2007-11-25 07:12:13.000000000 +0100 @@ -353,6 +353,7 @@ /* Final cleanup */ del_timer(&link->idle_timer); link->magic = 0; + hashbin_delete(link->lsaps, (FREE_FUNC) __irlmp_close_lsap); kfree(link); } } -- |
From: Samuel O. <sa...@so...> - 2007-12-03 01:29:09
|
While testing the mcs7780 based IrDA USB dongle I've stumbled upon memory leak in mcs_net_close(). Patch below fixes it. Signed-off-by: Hinko Kocevar <hin...@ce...> Signed-off-by: Samuel Ortiz <sa...@so...> --- drivers/net/irda/mcs7780.c | 2 ++ 1 file changed, 2 insertions(+) Index: net-2.6/drivers/net/irda/mcs7780.c =================================================================== --- net-2.6.orig/drivers/net/irda/mcs7780.c 2007-11-25 05:53:43.000000000 +0100 +++ net-2.6/drivers/net/irda/mcs7780.c 2007-11-25 07:12:11.000000000 +0100 @@ -677,6 +677,8 @@ /* Stop transmit processing */ netif_stop_queue(netdev); + kfree_skb(mcs->rx_buff.skb); + /* kill and free the receive and transmit URBs */ usb_kill_urb(mcs->rx_urb); usb_free_urb(mcs->rx_urb); -- |
From: Samuel O. <sa...@so...> - 2007-12-03 01:29:09
|
It seems to me that irda_usb_net_open() must set self->netopen under spinlock or disconnect() may fail to kill all URBs, if it is called while an interface is opened. Signed-off-by: Oliver Neukum <on...@su...> Signed-off-by: Samuel Ortiz <sa...@so...> --- drivers/net/irda/irda-usb.c | 5 +++++ 1 file changed, 5 insertions(+) Index: net-2.6/drivers/net/irda/irda-usb.c =================================================================== --- net-2.6.orig/drivers/net/irda/irda-usb.c 2007-11-25 05:53:43.000000000 +0100 +++ net-2.6/drivers/net/irda/irda-usb.c 2007-11-25 07:12:09.000000000 +0100 @@ -1168,6 +1168,7 @@ static int irda_usb_net_open(struct net_device *netdev) { struct irda_usb_cb *self; + unsigned long flags; char hwname[16]; int i; @@ -1177,13 +1178,16 @@ self = (struct irda_usb_cb *) netdev->priv; IRDA_ASSERT(self != NULL, return -1;); + spin_lock_irqsave(&self->lock, flags); /* Can only open the device if it's there */ if(!self->present) { + spin_unlock_irqrestore(&self->lock, flags); IRDA_WARNING("%s(), device not present!\n", __FUNCTION__); return -1; } if(self->needspatch) { + spin_unlock_irqrestore(&self->lock, flags); IRDA_WARNING("%s(), device needs patch\n", __FUNCTION__) ; return -EIO ; } @@ -1198,6 +1202,7 @@ /* To do *before* submitting Rx urbs and starting net Tx queue * Jean II */ self->netopen = 1; + spin_unlock_irqrestore(&self->lock, flags); /* * Now that everything should be initialized properly, -- |
From: Herbert Xu <he...@go...> - 2007-12-03 06:57:11
|
On Mon, Dec 03, 2007 at 10:28:31AM +0100, Samuel Ortiz wrote: > Hi Herbert, > > Here goes a series of 5 IrDA patches against your latest net-2.6 tree. I seem to be missing 3/5. Could you please resend? Thanks, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <he...@go...> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt |