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`FQ^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