ChangeSet 1.1474.148.10, 2004/01/23 15:56:38-08:00, [EMAIL PROTECTED]
[PATCH] USB: fix dma to stack in ti driver
you cannot use usb_bulk_msg() on buffers on the stack.
drivers/usb/misc/tiglusb.c | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
diff -Nru a/drivers/usb/misc/tiglusb.c b/drivers/usb/misc/tiglusb.c
--- a/drivers/usb/misc/tiglusb.c Tue Jan 27 15:13:43 2004
+++ b/drivers/usb/misc/tiglusb.c Tue Jan 27 15:13:43 2004
@@ -161,7 +161,7 @@
int bytes_to_read = 0;
int bytes_read = 0;
int result = 0;
- char buffer[BULK_RCV_MAX];
+ char *buffer;
unsigned int pipe;
if (*f_pos)
@@ -173,6 +173,10 @@
if (!s->dev)
return -EIO;
+ buffer = kmalloc(BULK_RCV_MAX, GFP_KERNEL);
+ if (!buffer)
+ return -ENOMEM;
+
bytes_to_read = (count >= BULK_RCV_MAX) ? BULK_RCV_MAX : count;
pipe = usb_rcvbulkpipe (s->dev, 1);
@@ -203,6 +207,7 @@
}
out:
+ kfree(buffer);
return ret ? ret : bytes_read;
}
@@ -214,7 +219,7 @@
int bytes_to_write = 0;
int bytes_written = 0;
int result = 0;
- char buffer[BULK_SND_MAX];
+ char *buffer;
unsigned int pipe;
if (*f_pos)
@@ -226,6 +231,10 @@
if (!s->dev)
return -EIO;
+ buffer = kmalloc(BULK_SND_MAX, GFP_KERNEL);
+ if (!buffer)
+ return -ENOMEM;
+
bytes_to_write = (count >= BULK_SND_MAX) ? BULK_SND_MAX : count;
if (copy_from_user (buffer, buf, bytes_to_write)) {
ret = -EFAULT;
@@ -258,6 +267,7 @@
}
out:
+ kfree(buffer);
return ret ? ret : bytes_written;
}
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel