IrDA: Oops fix for ksdazzle
Subsystems (2)
PATCH 1/1 IrDA: Oops fix for ksdazzle
Hi Dave,
This is the last remaining patch for IrDA, against net-2.6.24.
It fixes a kernel oops triggered by the ksdazzle SIR driver. We need more space for input frames, and 2048 should be plenty of it.
--- drivers/net/irda/ksdazzle-sir.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-)
drivers/net/irda/ksdazzle-sir.c +13 -3
@@ -1,7 +1,7 @@/***************************************************************************** * * Filename: ksdazzle.c -* Version: 0.1.1 +* Version: 0.1.2 * Description: Irda KingSun Dazzle USB Dongle * Status: Experimental * Author: Alex Villacís Lasso <[email protected]>
@@ -113,6 +113,7 @@#define KINGSUN_REQ_SEND 0x09#define KINGSUN_SND_FIFO_SIZE 2048/* Max packet we can send */ +#define KINGSUN_RCV_MAX 2048/* Max transfer we can receive */ struct ksdazzle_speedparams {__le32 baudrate;/* baud rate, little endian */
@@ -150,7 +151,7 @@__u8 tx_payload[8 ];struct urb *rx_urb; -__u8 rx_payload[8 ]; +__u8 *rx_buf;iobuff_t rx_unwrap_buff;struct usb_ctrlrequest *speed_setuprequest;
@@ -440,7 +441,8 @@/* Start reception. */ usb_fill_int_urb (kingsun->rx_urb, kingsun->usbdev,usb_rcvintpipe (kingsun->usbdev, kingsun->ep_in), - kingsun->rx_payload,8 , ksdazzle_rcv_irq, kingsun,1 ); + kingsun->rx_buf,KINGSUN_RCV_MAX , ksdazzle_rcv_irq, + kingsun,1 ); kingsun->rx_urb->status =0 ; err =usb_submit_urb (kingsun->rx_urb,GFP_KERNEL );if (err) {
@@ -641,6 +643,7 @@ kingsun->tx_buf_clear_sent =0 ; kingsun->rx_urb =NULL ; + kingsun->rx_buf =NULL ; kingsun->rx_unwrap_buff.in_frame = FALSE; kingsun->rx_unwrap_buff.state =OUTSIDE_FRAME ; kingsun->rx_unwrap_buff.skb =NULL ;
@@ -651,6 +654,11 @@ kingsun->speed_urb =NULL ; kingsun->speedparams.baudrate =0 ; +/* Allocate input buffer */ + kingsun->rx_buf =kmalloc (KINGSUN_RCV_MAX ,GFP_KERNEL ); +if (!kingsun->rx_buf) + goto free_mem; +/* Allocate output buffer */ kingsun->tx_buf_clear =kmalloc (KINGSUN_SND_FIFO_SIZE ,GFP_KERNEL );if (!kingsun->tx_buf_clear)
@@ -714,6 +722,7 @@ free_mem:kfree (kingsun->speed_setuprequest);kfree (kingsun->tx_buf_clear); +kfree (kingsun->rx_buf);free_netdev (net); err_out1:return ret;
@@ -746,6 +755,7 @@kfree (kingsun->speed_setuprequest);kfree (kingsun->tx_buf_clear); +kfree (kingsun->rx_buf);free_netdev (kingsun->netdev);usb_set_intfdata (intf,NULL );
A message that is not in the archive (sent off-list or not yet received): [email protected]
David Miller
AppliedFrom: Samuel Ortiz <[email protected]>
Date: Mon, 1 Oct 2007 02:21:38 +0300
Quoted 9 lines
Hi Dave,
This is the last remaining patch for IrDA, against net-2.6.24.
It fixes a kernel oops triggered by the ksdazzle SIR driver. We need more space for input frames, and 2048 should be plenty of it.
Signed-off-by Alex Villacís Lasso <[email protected]>Signed-off-by Samuel Ortiz <[email protected]>
Applied, thanks!
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/