Hi,

this driver does DMA to the stack via usb_bulk_msg(). The patch is against
Linus' BK tree and compiles.

        Regards
                Oliver

You can import this changeset into BK by piping this whole message to:
'| bk receive [path to repository]' or apply the patch as usual.

===================================================================


[EMAIL PROTECTED], 2004-01-31 21:56:45+01:00, [EMAIL PROTECTED]
   - fix DMA to stack


 ttusb_dec.c |   25 +++++++++++++++++++++----
 1 files changed, 21 insertions(+), 4 deletions(-)


diff -Nru a/drivers/media/dvb/ttusb-dec/ttusb_dec.c 
b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
--- a/drivers/media/dvb/ttusb-dec/ttusb_dec.c   Sat Jan 31 22:00:53 2004
+++ b/drivers/media/dvb/ttusb-dec/ttusb_dec.c   Sat Jan 31 22:00:53 2004
@@ -204,12 +204,23 @@
                                  int *result_length, u8 cmd_result[])
 {
        int result, actual_len, i;
-       u8 b[COMMAND_PACKET_SIZE + 4];
-       u8 c[COMMAND_PACKET_SIZE + 4];
+       u8 *b;
+       u8 *c;
+       
+       b = kmalloc(COMMAND_PACKET_SIZE + 4, GFP_KERNEL);
+       if (!b)
+               return -ENOMEM;
+       c = kmalloc(COMMAND_PACKET_SIZE + 4, GFP_KERNEL);
+       if (!c) {
+               kfree(b);
+               return -ENOMEM;
+       }
 
        dprintk("%s\n", __FUNCTION__);
 
        if ((result = down_interruptible(&dec->usb_sem))) {
+               kfree(b);
+               kfree(c);
                printk("%s: Failed to down usb semaphore.\n", __FUNCTION__);
                return result;
        }
@@ -230,22 +241,26 @@
        }
 
        result = usb_bulk_msg(dec->udev, dec->command_pipe, b,
-                             sizeof(b), &actual_len, HZ);
+                             COMMAND_PACKET_SIZE + 4, &actual_len, HZ);
 
        if (result) {
                printk("%s: command bulk message failed: error %d\n",
                       __FUNCTION__, result);
                up(&dec->usb_sem);
+               kfree(b);
+               kfree(c);
                return result;
        }
 
        result = usb_bulk_msg(dec->udev, dec->result_pipe, c,
-                             sizeof(c), &actual_len, HZ);
+                             COMMAND_PACKET_SIZE + 4, &actual_len, HZ);
 
        if (result) {
                printk("%s: result bulk message failed: error %d\n",
                       __FUNCTION__, result);
                up(&dec->usb_sem);
+               kfree(b);
+               kfree(c);
                return result;
        } else {
                if (debug) {
@@ -262,6 +277,8 @@
 
                up(&dec->usb_sem);
 
+               kfree(b);
+               kfree(c);
                return 0;
        }
 }

===================================================================


This BitKeeper patch contains the following changesets:
1.1159
## Wrapped with gzip_uu ##


begin 664 bkpatch14405
M'XL(`(47'$```[U5;4_;,!#^'/^*FY`F&#3Q^25M.G6B:[EMAIL PROTECTED]&&:JL1Q
M:=6\3'EAFY;]][F-QL0&%2`V.Y)/OO-S?NX>.5MP6>B\:V7QXD;G9`L.LZ+L
M6L9.JDBG=JJK997867YM?),L,SYGGB7::0XX%[G6A1,OTJIH,5L2$S4.2C4'
MXRRZ%MK\=J?\]EEWK8E_<'G2GQ#2Z\%@'J37^ER7T.N1,[EMAIL PROTECTED]@J]H-R'F>I
M7>9!6B2Z#&R5)?5M:,TH969*;',JW1I=*MJUP@@[EMAIL PROTECTED]'%:2YWOX]/.Y"
M"8H<T6-MCK5@'N5D"&@[EMAIL PROTECTED]<"@Z'(%A5[I=(7<I=BF%AZ%A%Z%%R7MX62X#
[EMAIL PROTECTED]:,%M\A>&H;\"A*`.U),<@&.^X9/R[D*3UQ$$(#2AY!_,JS>)H7V6IX76M
M4Z7M2'_\Q>-3'>4KTH63Z&@1.-%-Z)1E582M2*O&FAK+5BM&G+9Q-2GMU.A1
M26L9MCWT...1DHIQL:&$3TFT[IVIGLMES;$CVFM1/1)@);G_2OHELZV84W29
M,*I%Z7JR4:WX4[/\,9IE1K3BGXCV7LTVG3J#5OYE_1D-CA_;M&?(>\AH&[EMAIL PROTECTED]
M8K0#B,2J.O`F?-NLRJS$"J$'RR2(XTQM#\Y&H_[I<#KN#X[]B^GYT94/NR#V
MX.##>'KL3T[]DQUS:#&#[5?A#K&L7)=5GD++/ST;^2/C4L]$4SOPW>`M9^9!
MW0Y7VW]C_S`TD!DV=^,:6QE[R#@'-%'KQ;(L6(\'[_$Z4&45Q--8IWMP>&40
LS-'[EMAIL PROTECTED]">GT!L2G#$7+'!??LS47.MED65]*B<T4B:5_`GVS'DM<H&````
`
end



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

Reply via email to