- 18 10月, 2006 1 次提交
-
-
由 Duncan Sands 提交于
If usbatm_do_heavy_init finishes before usbatm_heavy_init writes the pid, the disconnect method could shoot down the wrong process if the pid has been recycled. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 05 10月, 2006 1 次提交
-
-
由 David Howells 提交于
Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: NDavid Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
-
- 22 6月, 2006 1 次提交
-
-
由 Duncan Sands 提交于
Remove pointless inline. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 09 5月, 2006 1 次提交
-
-
由 Duncan Sands 提交于
Because of the way stringify works, using an expression like 64 * 1024 for UDSL_MAX_BUF_SIZE results in 64 * 1024 turning up in the modinfo output instead of 65536. So use 65536 directly (this was the only way I found of fixing this). Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 01 2月, 2006 12 次提交
-
-
由 Arjan van de Ven 提交于
This is the usbatm part of the Arjan, Jes and Ingo mass semaphore to mutex conversion, reworked to apply on top of the patches I just sent to you. This time, with correct attribution and signed-off lines. Signed-off-by: NArjan van de Ven <arjan@infradead.org> Signed-off-by: NIngo Molnar <mingo@elte.hu> Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
Don't throttle on -EILSEQ urb status if requested by a minidriver. It seems the ueagle modems are buggy, giving -EILSEQ when they have no data to send. The ueagle change will be sent separately by the ueagle guys. Patch by Matthieu Castet. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
The receive logic has always assumed that urbs contain an integral number of ATM cells, which is a bit naughty, though it never caused any problems with bulk transfers. Isochronous urbs spank us soundly for this. Fixed thanks to this patch, mostly by Stanislaw Gruszka. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
While the usbatm core has had some support for using isoc urbs for some time, there was no way for users to turn it on. While use of isoc transfer should still be considered experimental, it now works well enough to let users turn it on. Minidrivers signal to the core that they want to use isoc transfer by setting the new UDSL_USE_ISOC flag. The speedtch minidriver gets a new module parameter enable_isoc (defaults to false), plus some logic that checks for the existence of an isoc receive endpoint (not all speedtouch modems have one). Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
Change the module parameters rcv_buf_size and snd_buf_size to specify buffer sizes in bytes rather than ATM cells. Since there is some danger that users may not notice this change, the parameters are renamed to rcv_buf_bytes etc. The transmit buffer needs to be a multiple of the ATM cell size in length, while the receive buffer should be a multiple of the endpoint maxpacket size (this wasn't enforced before, which causes trouble with isochronous transfers), so enforce these restrictions. Now that the usbatm probe method inspects the endpoint maxpacket size, minidriver bind routines need to set the correct alternate setting for the interface in their bind routine. This is the reason for the speedtch changes. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
In one spot (usbatm_cancel_send) we were calling dev_kfree_skb with irqs disabled. This mistake is just too easy to make, so systematically use dev_kfree_skb_any rather than dev_kfree_skb. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
We weren't always returning -ENOMEM. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
This patch causes vcc_release_async to be applied to any open vcc's when the modem is disconnected. This signals a socket shutdown, letting the socket user know that the game is up. I wrote this patch because of reports that pppd would keep connections open forever when the modem is disconnected. This patch does not fix that problem, but it's a step in the right direction. It doesn't help because the pppoatm module doesn't yet monitor state changes on the ATM socket, so simply never realises that the ATM connection has gone down (meaning it doesn't tell the ppp layer). But at least there is a socket state change now. Unfortunately this patch may create problems for those rare users like me who use routed IP or some other non-ppp connection method that goes via the ATM ARP daemon: the daemon is buggy, and with this patch will crash when the modem is disconnected. Users with a buggy atmarpd can simply restart it after disconnecting the modem. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
Convert kmalloc + memset to kzalloc. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
Have minidrivers and the core signal special requirements using a flags field in struct usbatm_data. For the moment this is only used to replace the need_heavy_init bind parameter, but there'll be new flags in later patches. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
Formatting, changes to variable names, comments, log level changes, printk rate limiting. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 15 1月, 2006 1 次提交
-
-
由 Arjan van de Ven 提交于
Remove the "inline" keyword from a bunch of big functions in the kernel with the goal of shrinking it by 30kb to 40kb Signed-off-by: NArjan van de Ven <arjan@infradead.org> Signed-off-by: NIngo Molnar <mingo@elte.hu> Acked-by: NJeff Garzik <jgarzik@pobox.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 05 1月, 2006 1 次提交
-
-
由 Adrian Bunk 提交于
This patch contains the following cleanups: - make needlessly global functions static - every file should #include the headers containing the prototypes for it's global functions Signed-off-by: NAdrian Bunk <bunk@stusta.de> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 30 11月, 2005 1 次提交
-
-
由 Stanislaw Gruszka 提交于
atm_dev_deregister() removes device from atm_dev list immediately to prevent operations on a phantom device. Decision to free device based only on ->refcnt now. Remove shutdown_atm_dev() use atm_dev_deregister() instead. atm_dev_deregister() also asynchronously releases all vccs related to device. Signed-off-by: NStanislaw Gruszka <stf_xl@wp.pl> Signed-off-by: NChas Williams <chas@cmf.nrl.navy.mil> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 08 9月, 2005 1 次提交
-
-
由 Pekka Enberg 提交于
This patch converts kcalloc(1, ...) calls to use the new kzalloc() function. Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi> Cc: Greg KH <greg@kroah.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 28 6月, 2005 4 次提交
-
-
由 Duncan Sands 提交于
you seem to have applied the original, not the new improved one with whiter teeth that uses kcalloc instead of kmalloc + memset. Here's a patch that goes on top of the one you applied. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
Zero the entire instance, not just the struct usbatm_data head. Make sure the just allocated urb is freed if we fail to allocate a buffer. Based on a patch by Stanislaw W. Gruszka. Signed-off-by: NDuncan Sands <baldrick@free.fr> Acked-by: NPete Zaitcev <zaitcev@redhat.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
Reduce the number of "unknown vpi/vci" debug messages to (usually) at most one per-urb, rather than one per-cell. This is only an issue when (a) many packets come in but no connection is open; and (b) CONFIG_USB_DEBUG is set. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Duncan Sands 提交于
Rework the core usbatm code: minidrivers (i.e. drivers for particular modems) now register themselves with the usbatm core, supplying methods for binding/unbinding etc. The design was inspired by usb-serial and usbnet. At the same time, more common code from the speedtch and cxacru (patch 3/5) drivers was generalized and moved into the core. The transmission and reception parts have been unified and simplified. Since this is a major change and I don't like underscores in file names, usb_atm.[ch] has been renamed usbatm.[ch]. Many thanks to Roman Kagan, who did a lot of the coding. Signed-off-by: NDuncan Sands <baldrick@free.fr> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-