Am Samstag, 14. Juni 2003 01:34 schrieb Greg KH: > On Thu, Jun 12, 2003 at 09:27:38AM +0200, Oliver Neukum wrote: > > Hi Greg, > > > > this changes kaweth to use usb_buffer_alloc in the control > > and recieve paths, in which it is using fixed buffers which > > are not safe on some architectures. As a plus, it should > > get a little faster on some architectures. > > Please apply. > > I got the following trying to apply it: > > [EMAIL PROTECTED] linux-2.5-bk]$ patch -p1 -g1 --dry-run < ../u2 > drivers/usb/net/kaweth.c 1.65: 1253 lines patching file > drivers/usb/net/kaweth.c Hunk #2 succeeded at 226 (offset 2 lines). > Hunk #4 succeeded at 538 (offset 2 lines). > Hunk #6 succeeded at 673 (offset 2 lines). > Hunk #8 succeeded at 1040 (offset 2 lines). > Hunk #9 FAILED at 1074. > Hunk #10 FAILED at 1090. > Hunk #11 succeeded at 1149 (offset 4 lines). > 2 out of 11 hunks FAILED -- saving rejects to file > drivers/usb/net/kaweth.c.rej > > > And this was before applying Alan Stern's patch :) > > Can you re-diff this against the latest -bk tree?
This should hopefully work. 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], 2003-06-14 12:16:30+02:00, [EMAIL PROTECTED] - switch to usb_buffer_alloc kaweth.c | 43 ++++++++++++++++++++++++++++++++++++------- 1 files changed, 36 insertions(+), 7 deletions(-) diff -Nru a/drivers/usb/net/kaweth.c b/drivers/usb/net/kaweth.c --- a/drivers/usb/net/kaweth.c Sat Jun 14 12:18:19 2003 +++ b/drivers/usb/net/kaweth.c Sat Jun 14 12:18:19 2003 @@ -223,13 +223,16 @@ struct urb *rx_urb; struct urb *tx_urb; struct urb *irq_urb; - + + dma_addr_t intbufferhandle; + __u8 *intbuffer; + dma_addr_t rxbufferhandle; + __u8 *rx_buf; + struct sk_buff *tx_skb; __u8 *firmware_buf; __u8 scratch[KAWETH_SCRATCH_SIZE]; - __u8 rx_buf[KAWETH_BUF_SIZE]; - __u8 intbuffer[INTBUFFERSIZE]; __u16 packet_filter_bitmap; struct kaweth_ethernet_configuration configuration; @@ -522,6 +525,9 @@ KAWETH_BUF_SIZE, kaweth_usb_receive, kaweth); + kaweth->rx_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; + kaweth->rx_urb->transfer_dma = kaweth->rxbufferhandle; + if((result = usb_submit_urb(kaweth->rx_urb, mem_flags))) { if (result == -ENOMEM) @@ -530,7 +536,7 @@ } else { kaweth->suspend_lowmem = 0; } - + return result; } @@ -628,6 +634,8 @@ int_callback, kaweth, HZ/4); + kaweth->irq_urb->transfer_dma = kaweth->intbufferhandle; + kaweth->irq_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; res = usb_submit_urb(kaweth->irq_urb, GFP_KERNEL); if (res) { @@ -1030,6 +1038,18 @@ kaweth->irq_urb = usb_alloc_urb(0, GFP_KERNEL); if (!kaweth->irq_urb) goto err_tx_and_rx; + kaweth->intbuffer = usb_buffer_alloc( kaweth->dev, + INTBUFFERSIZE, + GFP_KERNEL, + &kaweth->intbufferhandle); + if (!kaweth->intbuffer) + goto err_tx_and_rx_and_irq; + kaweth->rx_buf = usb_buffer_alloc( kaweth->dev, + KAWETH_BUF_SIZE, + GFP_KERNEL, + &kaweth->rxbufferhandle); + if (!kaweth->rx_buf) + goto err_all_but_rxbuf; kaweth->net = netdev; memcpy(kaweth->net->broadcast, &bcast_addr, sizeof(bcast_addr)); @@ -1051,12 +1071,12 @@ kaweth->net->mtu = le16_to_cpu(kaweth->configuration.segment_size); memset(&kaweth->stats, 0, sizeof(kaweth->stats)); - + SET_MODULE_OWNER(netdev); if (!init_etherdev(netdev, 0)) { kaweth_err("Error calling init_etherdev."); - goto err_tx_and_rx; + goto err_all; } kaweth_info("kaweth interface created at %s", kaweth->net->name); @@ -1065,7 +1085,12 @@ usb_set_intfdata(intf, kaweth); return 0; - +err_all: + usb_buffer_free(kaweth->dev, KAWETH_BUF_SIZE, (void *)kaweth->rx_buf, kaweth->rxbufferhandle); +err_all_but_rxbuf: + usb_buffer_free(kaweth->dev, INTBUFFERSIZE, (void *)kaweth->intbuffer, kaweth->intbufferhandle); +err_tx_and_rx_and_irq: + usb_free_urb(kaweth->irq_urb); err_tx_and_rx: usb_free_urb(kaweth->rx_urb); err_only_tx: @@ -1117,6 +1142,10 @@ usb_free_urb(kaweth->rx_urb); usb_free_urb(kaweth->tx_urb); + usb_free_urb(kaweth->irq_urb); + + usb_buffer_free(kaweth->dev, KAWETH_BUF_SIZE, (void *)kaweth->rx_buf, kaweth->rxbufferhandle); + usb_buffer_free(kaweth->dev, INTBUFFERSIZE, (void *)kaweth->intbuffer, kaweth->intbufferhandle); kfree(kaweth); } =================================================================== This BitKeeper patch contains the following changesets: 1.1939 ## Wrapped with gzip_uu ## begin 664 bkpatch5353 M'XL(`&OVZCX``[U6^T_:4!3^N?>ON,N2!:?`??1>VA*,*.B(+X*:)8M)4]H+ M$A[=;EMU2?_XG;:(5D3=EJTA.<UY?M\Y7X"/^"I2VC'"V>16:?01?PFCV#'@ M?9X$:E%;J&2:S&NA'D-L$(80JX=J$2Y4O2BI7VJEHGK"!(*,OA?[-QC<D6/0 M&E]YXI_?E6,,ND=7)^T!0JT6/KCQ%F-UH6+<:J'A="](U*PVU:%WDPU+5^&4 M$4(I98)P(:E(F<6YF5))A@&\!JQACX;21F.MQGM%N1_.R^6<[EMAIL PROTECTED] M+((ZF-:HS6U,>)W(.C4Q90Z5#B?;A#F$X(+;[EMAIL PROTECTED]:QW^/^0#YN(JC MNTF^H1`GT=`=)[EMAIL PROTECTED]/4W'X2(1]#N"W`#G7&$TT7# M^M2[4S&L[A&Y26Q&4LXLRE,I94")Z0U]CXI`6J^LI]1UH>)2Y^P0)IQ"<)X* MNV'27`F;*EX6QI^C?JZ1UY$*9I.&$(*ES&Y85BX9R<N"$0[G[Q`,E[C:^%^* M*?9ZCJOZ+O^``OH;5_P':NHP)C%%O<Q(=(V,8.ZY7A!H-\:[EMAIL PROTECTED] MX;J)A3^O_,U2NKY_,5O?9YR:T+O#.,4,]00S,4=&@;JZ"PF)'E9W8^TMHHS[ M:.:-([EMAIL PROTECTED]'[;.+P^[`[9RVW=-VO_E*+>#!+?P8+D,"#"#6C&]A MKE%/<@[EMAIL PROTECTED]>K'==WLKGR;[EMAIL PROTECTED]:C;'63D3^_L M<O_J$+I>]+YU'YQ'AWWWN#LXZYX\>#YM(+`%#"8C7/FP%M^"RG$(JE0:KGOO M0KJK"P-4RS>`BO?B/6Y_[5Y^<0&S^T[$Y2.N`2[&E]#"=/#%;E[91!U*A)D= M?6FO<X^]]&2V7)M7P-=B'@<KT3+@(.,)QQ'\4E:>,L3/N>'*;3@)\.>M,M:= M#?H$:FOHWQI9/O_:P-4U=S8I>#ET[<#+P=G$3-:59S+?RL1+J8W--_.N__G6 =_OV*5O]\_!OE3Z-DWO)](GQ/<O0+85&C4',)```` ` end ------------------------------------------------------- This SF.NET email is sponsored by: eBay Great deals on office technology -- on eBay now! Click here: http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5 _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel