- 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)
-
- 26 9月, 2006 1 次提交
-
-
由 Jesper Juhl 提交于
There seems to be a possible NULL pointer deref bug in drivers/net/forcedeth.c::nv_loopback_test(). If dev_alloc_skb() fails, the next line will call skb_put() with a NULL first argument which it'll then try to deref - kaboom: a NULL pointer deref. Found by coverity (#1337). Signed-off-by: NJesper Juhl <jesper.juhl@gmail.com> Cc: Ayaz Abdulla <aabdulla@nvidia.com> Cc: Manfred Spraul <manfred@colorfullife.com> Cc: Stephen Hemminger <shemminger@osdl.org> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 23 9月, 2006 1 次提交
-
-
由 Patrick McHardy 提交于
Replace CHECKSUM_HW by CHECKSUM_PARTIAL (for outgoing packets, whose checksum still needs to be completed) and CHECKSUM_COMPLETE (for incoming packets, device supplied full checksum). Patch originally from Herbert Xu, updated by myself for 2.6.18-rc3. Signed-off-by: NPatrick McHardy <kaber@trash.net> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 14 9月, 2006 1 次提交
-
-
由 Jeff Garzik 提交于
Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 11 9月, 2006 1 次提交
-
-
由 Andy Gospodarek 提交于
This removes unnecessary messages that show up every time I put my ethernet card in promiscuous mode. I'm already getting notification from the networking layer, I don't need notification from the driver as well. There are probably other drivers that do this as well -- I'll look around and see what I can find. Signed-off-by: NAndy Gospodarek <andy@greyhouse.net> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 06 9月, 2006 2 次提交
-
-
由 Ayaz Abdulla 提交于
This patch decouples the dependency between the rx checksum feature and vlan feature. This is done by ignoring the checksum information if the user has disabled rx checksum when vlan is enabled. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch addresses an errata found on certain marvell phys concerning the reset of the BMCR phy register during phy reset. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 20 8月, 2006 1 次提交
-
-
由 Jeff Garzik 提交于
From: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> Signed-off-by: NMichal Piotrowski <michal.k.k.piotrowski@gmail.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 09 8月, 2006 3 次提交
-
-
由 Stephen Hemminger 提交于
Revised version of the forcedeth NAPI support. This version is based against netdev-2.6#upstream (after the MAC patches from Ayaz today). Can't use nv_disable_hw_interrupts because NAPI only wants to mask off receive irq's and leave the others alone. Signed-off-by: NStephen Hemminger <shemminger@osdl.org> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch will correct the mac address and set a flag to indicate that it is already corrected in case nv_probe is called again. For example, when you use kexec to restart the kernel. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch moves the mac address setup/teardown to the nv_probe/nv_remove functions. This fixes WOL wakeup since on nv_close we would reverse the mac address. Also, bonding driver will reset address after nv_close is called. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 29 7月, 2006 2 次提交
-
-
由 Stephen Hemminger 提交于
Use __le32 to indicate byte order of hardware ring elements Signed-off-by: NStephen Hemminger <shemminger@osdl.org> drivers/net/forcedeth.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Stephen Hemminger 提交于
Fix the coding style of the nForce Ethernet driver. - typedef's should not be used - variable names should not be capitialized - structure tags should be lower case - add whitespace near keywords - don't add paren's to switch cases - remove paren's from return - don't use __constant_ntohs unless necessary. Signed-off-by: NStephen Hemminger <shemminger@osdl.org> drivers/net/forcedeth.c | 246 ++++++++++++++++++++++++------------------------ 1 file changed, 123 insertions(+), 123 deletions(-) Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 13 7月, 2006 2 次提交
-
-
由 Ayaz Abdulla 提交于
This patch defines the watermark registers and fixes up the use of this register. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch adds the definition for the deferral registers and fixes up the use of these registers. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 09 7月, 2006 1 次提交
-
-
由 Herbert Xu 提交于
This patch adds the wrapper function skb_is_gso which can be used instead of directly testing skb_shinfo(skb)->gso_size. This makes things a little nicer and allows us to change the primary key for indicating whether an skb is GSO (if we ever want to do that). Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 04 7月, 2006 2 次提交
-
-
由 Ingo Molnar 提交于
nv_do_nic_poll() is called from timer softirqs, which has interrupts enabled, but np->lock might also be taken by some other interrupt context. The driver does disable_irq() to get around this problem, so annotate the disable_irq()/enable_irq() calls for lockdep. Has no effect on non-lockdep kernels. Signed-off-by: NIngo Molnar <mingo@elte.hu> Signed-off-by: NArjan van de Ven <arjan@linux.intel.com> Cc: Ayaz Abdulla <aabdulla@nvidia.com> Cc: Manfred Spraul <manfred@colorfullife.com> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Andrew Morton 提交于
Someone went nuts in there. Cc: Ayaz Abdulla <aabdulla@nvidia.com> Cc: Manfred Spraul <manfred@colorfullife.com> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 03 7月, 2006 1 次提交
-
-
由 Thomas Gleixner 提交于
Signed-off-by: NThomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: "David S. Miller" <davem@davemloft.net> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 23 6月, 2006 2 次提交
-
-
由 Herbert Xu 提交于
Having separate fields in sk_buff for TSO/UFO (tso_size/ufo_size) is not going to scale if we add any more segmentation methods (e.g., DCCP). So let's merge them. They were used to tell the protocol of a packet. This function has been subsumed by the new gso_type field. This is essentially a set of netdev feature bits (shifted by 16 bits) that are required to process a specific skb. As such it's easy to tell whether a given device can process a GSO skb: you just have to and the gso_type field and the netdev's features field. I've made gso_type a conjunction. The idea is that you have a base type (e.g., SKB_GSO_TCPV4) that can be modified further to support new features. For example, if we add a hardware TSO type that supports ECN, they would declare NETIF_F_TSO | NETIF_F_TSO_ECN. All TSO packets with CWR set would have a gso_type of SKB_GSO_TCPV4 | SKB_GSO_TCPV4_ECN while all other TSO packets would be SKB_GSO_TCPV4. This means that only the CWR packets need to be emulated in software. Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Adrian Bunk 提交于
This patch makes the needlessly global nv_update_pause() static. Signed-off-by: NAdrian Bunk <bunk@stusta.de> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 21 6月, 2006 1 次提交
-
-
由 Herbert Xu 提交于
There has been an update to the forcedeth driver that added a few new uses of xmit_lock which is no longer meant to be used directly. This patch replaces them with netif_tx_lock_bh. Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 18 6月, 2006 1 次提交
-
-
由 Herbert Xu 提交于
Various drivers use xmit_lock internally to synchronise with their transmission routines. They do so without setting xmit_lock_owner. This is fine as long as netpoll is not in use. With netpoll it is possible for deadlocks to occur if xmit_lock_owner isn't set. This is because if a printk occurs while xmit_lock is held and xmit_lock_owner is not set can cause netpoll to attempt to take xmit_lock recursively. While it is possible to resolve this by getting netpoll to use trylock, it is suboptimal because netpoll's sole objective is to maximise the chance of getting the printk out on the wire. So delaying or dropping the message is to be avoided as much as possible. So the only alternative is to always set xmit_lock_owner. The following patch does this by introducing the netif_tx_lock family of functions that take care of setting/unsetting xmit_lock_owner. I renamed xmit_lock to _xmit_lock to indicate that it should not be used directly. I didn't provide irq versions of the netif_tx_lock functions since xmit_lock is meant to be a BH-disabling lock. This is pretty much a straight text substitution except for a small bug fix in winbond. It currently uses netif_stop_queue/spin_unlock_wait to stop transmission. This is unsafe as an IRQ can potentially wake up the queue. So it is safer to use netif_tx_disable. The hamradio bits used spin_lock_irq but it is unnecessary as xmit_lock must never be taken in an IRQ handler. Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 11 6月, 2006 12 次提交
-
-
由 Ayaz Abdulla 提交于
This patch contains new device ids for forcedeth ethernet. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch bumps up the version number for config support. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch adds (and modifies) module parameter support. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch adds support for diagnostic tests through ethtool support. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch moves a few functions (no logic change) so that the next patch has these functions defined. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch exposes hardware statistic counters through ethtool support. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch allows for configurable rx and tx checksum offloads through ethtool support. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch fixes configuration bugs when modifying wol settings. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch fixes configuration bugs when modifying phy settings. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch allows for configurable flow control through ethtool support. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
This patch allows for configurable ring size through ethtool support. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Ayaz Abdulla 提交于
There are a series of patches for configuration support in forcedeth and one patch for device ids. This patch is a cleanup of the a previous TSO patch. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 06 6月, 2006 1 次提交
-
-
由 Zachary Amsden 提交于
From: Zachary Amsden <zach@vmware.com> Signed-off-by: NZachary Amsden <zach@vmware.com> Cc: Ayaz Abdulla <aabdulla@nvidia.com> Cc: Manfred Spraul <manfred@colorfullife.com> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 27 5月, 2006 2 次提交
-
-
由 Jeff Garzik 提交于
-
由 Ayaz Abdulla 提交于
This patch adds flow control support for tx and rx pause frames in forcedeth. Signed-Off-By: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
- 22 5月, 2006 1 次提交
-
-
由 Ayaz Abdulla 提交于
With Manfred Spraul <manfred@colorfullife.com> and Andrew Morton <akpm@osdl.org> Bring back this recently-reverted patch, only fixed. Original changelog: From: Ayaz Abdulla <aabdulla@nvidia.com> This patch fixes the issues with multiple irqs. I am resending based on feedback. I decoupled the dma mask for consistent memory and fixed leak with multiple irq in error path. Thanks to Manfred for catching the spin lock problem. Fix it: From: Manfred Spraul <manfred@colorfullife.com> Fix bug introduced by ebf34c9b, covered in http://bugzilla.kernel.org/show_bug.cgi?id=6568. Remove second instance of the request_irq() calls: they were moved from nv_open into nv_request_irq. Thanks to Alistair Strachan <alistair@devzero.co.uk> for reporting and persisting. Signed-off-by: NAyaz Abdulla <aabdulla@nvidia.com> Signed-off-by: NManfred Spraul <manfred@colorfullife.com> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 20 5月, 2006 1 次提交
-
-
由 Andrew Morton 提交于
Revert ebf34c9b. Maybe. Due to crashes at shutdown - see http://bugzilla.kernel.org/show_bug.cgi?id=6568. Cc: Ayaz Abdulla <aabdulla@nvidia.com> Cc: Manfred Spraul <manfred@colorfullife.com> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: NAndrew Morton <akpm@osdl.org> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-