Commit Graph

20789 Commits

Author SHA1 Message Date
Linus Torvalds
f52ee1410d Merge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2006-02-23 22:21:29 -08:00
Adrian Bunk
ad9f6713ae [PATCH] drivers/net/tlan.c: #ifdef CONFIG_PCI the PCI specific code
drivers/net/tlan.c compiles with CONFIG_PCI=n only with a warning and
due to the dead code elimination of gcc.

Additionally, this fixes the only compile error I found with
CONFIG_PCI=n and the gcc -Werror-implicit-function-declaration
flag on i386.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-02-24 00:20:08 -05:00
Linus Torvalds
c0eea79bd2 Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2006-02-23 20:40:17 -08:00
Linus Torvalds
adb9c9ac2e Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge 2006-02-23 20:38:50 -08:00
Jeff Garzik
22fe472cb4 Merge branch 'for-jeff' of git://electric-eye.fr.zoreil.com/home/romieu/linux-2.6 2006-02-23 21:16:07 -05:00
Michal Ostrowski
fb5c594c2a [PATCH] Fix race condition in hvc console.
tty_schedule_flip() would schedule a thread that would call flush_to_ldisc().
If tty_buffer_request_room() gets called prior to that thread running --
which is likely in this loop in hvc_poll(), it would set the active flag
in the tty buffer and consequently flush_to_ldisc() would ignore it.

The result is that input on the hvc console is not processed.

This fix calls tty_flip_buffer_push (and flags the tty as
"low_latency").  The push to the ldisc thus happens synchronously.

Signed-off-by: Michal Ostrowski <mostrows@watson.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-24 11:36:40 +11:00
Segher Boessenkool
4558f417f4 [PATCH] powerpc: Don't re-assign PCI resources on Maple
Maple firmware does not need PCI resource allocation, and in fact, it
can cause problems in some strange cases.

Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-24 11:36:39 +11:00
Segher Boessenkool
72b138198c [PATCH] powerpc: Fix some MPIC + HT APIC buglets
Do disable, not enable, the HT APIC IRQ in the function that is
supposed to.
Enable the MPIC IRQ before enabling the downstream APIC IRQ, avoids
potentially losing an interrupt.

Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-24 11:36:37 +11:00
Olof Johansson
7c375b9aba [PATCH] powerpc: Update {g5,pseries,ppc64}_defconfig
Update defconfigs for g5, pseries and generic ppc64. Default choices
for everything, with the following exceptions:

 * Enable WINDFARM_PM112 on g5 and ppc64.
 * Increase CONFIG_NR_CPUS to 4 in g5_defconfig
 * CONFIG_TIGON3=y instead of =m in g5_defconfig

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-24 11:36:35 +11:00
Anton Blanchard
f1870f772c [PATCH] powerpc64: remove broken/bitrotted HMT support
HMT support is currently broken and needs to be reworked to play nicely
with the SMT scheduler. Remove the bit rotten bits for the time being.

I also updated an incorrect comment, we enter __secondary_hold with the
physical cpu id in r3.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-24 11:36:33 +11:00
Anton Blanchard
cb2c9b2741 [PATCH] powerpc: Fix runlatch performance issues
The runlatch SPR can take a lot of time to write. My original runlatch
code would set it on every exception entry even though most of the time
this was not required. It would also continually set it in the idle
loop, which is an issue on an SMT capable processor.

Now we cache the runlatch value in a threadinfo bit, and only check for
it in decrementer and hardware interrupt exceptions as well as the idle
loop. Boot on POWER3, POWER5 and iseries, and compile tested on pmac32.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-24 11:36:31 +11:00
R Sharada
47f78a4920 [PATCH] powerpc64: fix spinlock recursion in native_hpte_clear
native_hpte_clear has a spinlock recursion problem with the native_tlbie_lock
being called twice, once in native_hpte_clear() and once within tlbie().
Fix the problem by changing the call to tlbie() in native_hpte_clear() to
__tlbie(). It still supports only 4k pages for now.

Signed-off-by: R Sharada <sharada@in.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-24 11:36:29 +11:00
Kelly Daly
611ae59c62 [PATCH] powerpc: disable OProfile for iSeries
Disable OProfile in Kconfig for iSeries to prevent hangs.  OProfile
was not originally intended to work with legacy iSeries.

Signed-off-by: Kelly Daly <kelly@au.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-24 11:36:27 +11:00
Kumar Gala
1775dbbcd0 [PATCH] powerpc: Enable coherency for all pages on 83xx to fix PCI data corruption
On the 83xx platform to ensure the PCI inbound memory is handled properly we
have to turn on coherency for all pages in the MMU.  Otherwise we see
corruption if inbound "prefetching/streaming" is enabled on the PCI controller.

Signed-off-by: Randy Vinson <rvinson@mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-24 11:36:25 +11:00
Alan Curry
f1434a4854 [PATCH] powerpc: fix altivec_unavailable_exception Oopses
altivec_unavailable_exception is called without setting r3... it looks like
the r3 that actually gets passed in as struct pt_regs *regs is the
undisturbed value of r3 at the time the altivec instruction was encountered.
The user actually gets to choose the pt_regs printed in the Oops!

This fixes the oops by passing the correct pt_regs pointer to
altivec_unavailable_exception.

Signed-off-by: Alan Curry <pacman@TheWorld.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-24 11:36:23 +11:00
Haren Myneni
01aaed9d43 [PATCH] powerpc: Trivial fix to set the proper timeout value for kdump
The panic CPU is waiting forever due to some large timeout value if some
CPU is not responding to an IPI.
This patch fixes the problem - the maximum waiting period will be
10 seconds and then the kdump boot will go ahead.

Signed-off-by: Haren Myneni <haren@us.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-24 11:36:21 +11:00
Olaf Hering
c57914a4f2 [PATCH] ppc: fix adb breakage in xmon
Fix up xmon compilation after the last change.
Remove lots of dead code, all the pmac and chrp support is in arch/powerpc

Signed-off-by: Olaf Hering <olh@suse.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-24 11:36:20 +11:00
Michael Ellerman
337a7128db [PATCH] powerpc: Only calculate htab_size in one place for kexec
For kexec we need to know the size of the MMU hash table.

Currently we calculate the size once in the htab code, and then twice more in
the kexec code, once using htab_hash_mask and once using ppc64_pft_size.
On some machines the ppc64_pft_size calculation is broken because
ppc64_pft_size is not set.

So we need to fix the second calculation, but better still we should just
calculate the size once and use it everywhere else.

Tested on Power5 LPAR, Power4 non-LPAR and Power3.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-24 11:36:18 +11:00
Richard Lucassen
35eaa31e5d [NET]: Increase default IFB device count.
The most usable number of ifb devices is 2. Change the default to 2.

Signed-off-by: Richard Lucassen <spamtrap@lucassen.org>
Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-02-23 16:23:51 -08:00
Herbert Xu
4da3089f2b [IPSEC]: Use TOS when doing tunnel lookups
We should use the TOS because it's one of the routing keys.  It also
means that we update the correct routing cache entry when PMTU occurs.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-02-23 16:19:26 -08:00
Jamal Hadi Salim
f8d0e3f115 [NET] ethernet: Fix first packet goes out with MAC 00:00:00:00:00:00
When you turn off ARP on a netdevice then the first packet always goes
out with a dstMAC of all zeroes. This is because the first packet is
used to resolve ARP entries. Even though the ARP entry may be resolved
(I tried by setting a static ARP entry for a host i was pinging from),
it gets overwritten by virtue of having the netdevice disabling ARP.

Subsequent packets go out fine with correct dstMAC address (which may
be why people have ignored reporting this issue).

To cut the story short: 

the culprit code is in net/ethernet/eth.c::eth_header()

----
        /*
         *      Anyway, the loopback-device should never use this
function...
         */

        if (dev->flags & (IFF_LOOPBACK|IFF_NOARP))
        {
                memset(eth->h_dest, 0, dev->addr_len);
                return ETH_HLEN;
        }

	if(daddr)
        {
                memcpy(eth->h_dest,daddr,dev->addr_len);
                return ETH_HLEN;
        }

----

Note how the h_dest is being reset when device has IFF_NOARP.

As a note:
All devices including loopback pass a daddr. loopback in fact passes
a 0 all the time ;-> 
This means i can delete the check totaly or i can remove the IFF_NOARP

Alexey says:
--------------------
I think, it was me who did this crap. It was so long ago I do not remember
why it was made.

I remember some troubles with dummy device. It tried to resolve
addresses, apparently, without success and generated errors instead of
blackholing. I think the problem was eventually solved at neighbour
level.

After some thinking I suspect the deletion of this chunk could change
behaviour of some parts which do not use neighbour cache f.e. packet
socket.

I think safer approach would be to move this chunk after if (daddr).
And the possibility to remove this completely could be analyzed later.
--------------------

Patch updated with Alexey's safer suggestions.

Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Acked-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-02-23 16:18:01 -08:00
Herbert Xu
21380b81ef [XFRM]: Eliminate refcounting confusion by creating __xfrm_state_put().
We often just do an atomic_dec(&x->refcnt) on an xfrm_state object
because we know there is more than 1 reference remaining and thus
we can elide the heavier xfrm_state_put() call.

Do this behind an inline function called __xfrm_state_put() so that is
more obvious and also to allow us to more cleanly add refcount
debugging later.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-02-23 16:10:53 -08:00
Suresh Bhogavilli
8525987849 [IPV4]: Fix garbage collection of multipath route entries
When garbage collecting route cache entries of multipath routes
in rt_garbage_collect(), entries were deleted from the hash bucket
'i' while holding a spin lock on bucket 'k' resulting in a system
hang.  Delete entries, if any, from bucket 'k' instead.

Signed-off-by: Suresh Bhogavilli <sbhogavilli@verisign.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-02-23 16:10:52 -08:00
Patrick McHardy
42cf93cd46 [NETFILTER]: Fix bridge netfilter related in xfrm_lookup
The bridge-netfilter code attaches a fake dst_entry with dst->ops == NULL
to purely bridged packets. When these packets are SNATed and a policy
lookup is done, xfrm_lookup crashes because it tries to dereference
dst->ops.

Change xfrm_lookup not to dereference dst->ops before checking for the
DST_NOXFRM flag and set this flag in the fake dst_entry.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-02-23 16:10:51 -08:00
Stephen Hemminger
80dd857dac skge: protect interrupt mask
There is a race between updating the irq mask and setting it
which can be triggered on SMP with a bad cable.
Similar patch from Ingo Molnar and Thomas Gleixner

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-02-23 23:07:08 +01:00
Stephen Hemminger
0781191cf6 skge: genesis phy initialzation
The SysKonnect Genesis based board would fail on initialization
with phy_read errors caused by not waiting for last phy write.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-02-23 23:07:07 +01:00
Stephen Hemminger
a9cdab869e skge: NAPI/irq race fix
Fix a race in the receive NAPI, irq handling. The interrupt clear and the
start need to be separated.  Otherwise there is a window between the last
frame received and the NAPI done level handling.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-02-23 23:07:07 +01:00
Francois Romieu
61a4dcc2f9 r8169: enable wake on lan
Similar to 8139cp code but more inspired/lucky.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
2006-02-23 23:06:48 +01:00
Francois Romieu
5d06a99f54 r8169: fix broken ring index handling in suspend/resume
rtl8169_hw_start() requires that the descriptor ring indexes be
set to zero. Let a deferred invocation of rtl8169_reset_task()
handle it. Enabling a few power management bits will not hurt
either.

suspend/resume is issued with irq on: the spinlock do not need
to save the irq flag.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
2006-02-23 23:06:07 +01:00
Michael Ellerman
bd6ef57e08 [PATCH] powerpc: Initialise hvlpevent_queue.lock correctly
When I changed the hvlpevent_queue code to use a spinlock instead of a
custom atomic (719d1cd867) I didn't
initialise the lock anywhere, oops.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-23 21:44:19 +11:00
Russell King
d856c66618 [SERIAL] Add comment about early_serial_setup()
early_serial_setup() must not be called after console initialisation.
Add a comment prior to the function explicitly stating this.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-02-23 10:22:13 +00:00
Michal Janusz Miroslaw
85edae14e4 [SERIAL] Trivial comment fix: include/linux/serial_reg.h
Trivial comment fix for include/linux/serial_reg.h

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-02-23 09:49:35 +00:00
Stefan Richter
a80614d1ad sbp2: update 36byte inquiry workaround (fix compatibility regression)
Since about Linux 2.6.14, sbp2's inquiry workaround did not work anymore
due to changes in the SCSI layer. Update it to become effective again.
Testing one of the two known affected bridges has shown that skip_ms_page_8
is required as well.

Also, make force_inquiry_hack tunable via /sys/module/sbp2/parameters.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jody McIntyre <scjody@modernduck.com>
(cherry picked from 99496037c6744fd938ffb8ccfc8fc91762322ff8 commit)
2006-02-23 00:29:31 -05:00
Stefan Richter
35bdddb83f sbp2: variable status FIFO address (fix login timeout)
Let the ieee1394 core select a suitable 1394 address range for sbp2's
status FIFO instead of using a fixed range. Since the core only selects
addresses which are guaranteed to be out of the "physical range" as per
OHCI 1.1, this patch also fixes an old bug:

OHCI controllers which implement a writeable PhysicalUpperBound register
included sbp2's status FIFO in the physical range. That way sbp2 was
never notified of a succesful login and always failed after timeout.
Affected OHCI host adapters include ALi and Fujitsu controllers.

As another side effect of this patch, the status FIFO is no longer
located in a range for which OHCI chips perform "posted writes". Each
status write now requires a response subaction. But since large data
transfers involve only few status writes, there is no measurable
decrease of I/O throughput. What's more, the status FIFO is now safe
from potential host bus errors. Nevertheless, posted writes could be
re-enabled by extensions to the ARM features of the 1394 stack.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jody McIntyre <scjody@modernduck.com>
(cherry picked from b2d38cccad4ef80d6b672b8f89aae5fe2907b113 commit)
2006-02-23 00:28:52 -05:00
Stefan Richter
bf637ec3ef sbp2: fix another deadlock after disconnection
If there were commands enqueued but not completed before an SBP-2 unit
was unplugged (or an attempt to reconnect failed), knodemgrd or any
process which tried to remove the device would sleep uninterruptibly
in blk_execute_rq().  Therefore make sure that all commands are
completed when sbp2 retreats.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jody McIntyre <scjody@modernduck.com>
(cherry picked from 61daa34c132c5d4ed8630e2c46e9bf2f0c7b3428 commit)
2006-02-23 00:25:08 -05:00
Stephen Hemminger
791917deb6 [PATCH] sky2: close race on IRQ mask update.
Need to avoid race in updating IRQ mask.  This can probably be replaced
smarter use of the interrupt control registers (if/when chipset
docs are available).

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-02-23 01:25:26 +01:00
Stephen Hemminger
56a645cc1b [PATCH] sky2: use device iomem to access PCI config
To avoid problems with PCI config access without ACPI (or busted ACPI tables),
use the device's window into PCI config space.

I know this probably will upset the purists, but I would rather have users
than ACPI testers. It also generates less code.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-02-23 01:25:23 +01:00
Stephen Hemminger
9a6d343188 [PATCH] sky2: force early transmit status
Need to force a transmit coalesce timer restart after processing
transmit packets. Otherwise, can get transmit status after last
update and chip doesn't send the next one.

Can go with the chip defaults for coalescing timers, except for
Tx timer which needs to be bigger.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-02-23 01:25:03 +01:00
Stephen Hemminger
a8fd6266da [PATCH] sky2: poke coalescing timer to fix hang
Need to restart the interrupt coalescing timer after clearing the interrupt,
to avoid races with interrupt timer and processing.

Patch from Carl-Daniel Halfinger

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-02-23 01:24:04 +01:00
Stephen Hemminger
ff81fbbe32 [PATCH] sky2: limit coalescing values to ring size
Don't allow coalescing values to be bigger than the transmit ring.
Since if you set them that big, the interrupt never happens and driver
livelocks.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-02-23 01:23:40 +01:00
Stephen Hemminger
977bdf06ca [PATCH] sky2: yukon-ec-u chipset initialization
Add more complete setup code for Yukon EC_U chipset.
Based on matching code in 8.31 code in SysKonnect vendor driver.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-02-23 01:23:36 +01:00
Linus Torvalds
9e956c2dac Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2006-02-22 15:23:05 -08:00
Linus Torvalds
1a6a35894f Merge master.kernel.org:/home/rmk/linux-2.6-arm 2006-02-22 15:21:57 -08:00
Linus Torvalds
245599f573 Merge master.kernel.org:/home/rmk/linux-2.6-mmc 2006-02-22 15:21:22 -08:00
Steve French
6cec2aed86 [PATCH] CIFS: CIFSSMBRead was returning an invalid pointer in buf on socket error
Thanks to Adrian Bunk for debugging the problem and to Shaggy for
helping find the solution.

Also added a fix for 64K pages we found in loosely-related testing

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-22 15:20:33 -08:00
Christoph Hellwig
a6ceda7457 [SCSI] esp: fix eh locking
esp_reset didn't get fixed when the EH locking changed.
->eh_bus_reset_handler is now called without the host lock held.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-02-22 14:35:52 -08:00
Mårten Wikström
06e4479bd0 [ARM] 3347/1: Bugfix for ixp4xx_set_irq_type()
Patch from Mårten Wikström

This patch fixes a bug in ixp4xx_set_irq_type() which leads to
GPIO being incorrectly set to both edge triggered for raising
as well as falling edge interrupt types. See the previous
discussion on patch 3312/1.

Signed-off-by: Mårten Wikström <marten.wikstrom@passito.se>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-02-22 22:27:23 +00:00
Andrew Victor
df666b9c51 [ARM] 3325/2: GPIO function to control multi-drive (open collector) capability
Patch from Andrew Victor

This patch adds the at91_set_multi_drive() function to enable/disable
the multi-drive (open collector) pin capability on the AT91RM9200
processor.

This is necessary to fix the UDC (USB Gadget) driver for the AT91RM9200
board as it will not allow the board reset line to be pulled low if the
pullup is not driven as an open collector output as the boards are wired
to the USB connector on both the DK/EK.

This version of the patch updates it to 2.6.16-rc4.
Orignal patch by Jeff Warren.

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-02-22 21:23:35 +00:00
Russell King
43cc19816b [ARM] CONFIG_CPU_MPCORE -> CONFIG_CPU_32v6K
CONFIG_CPU_MPCORE has never been a configuration symbol - it should
be CONFIG_CPU_32v6K.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-02-22 21:13:28 +00:00
Uli Luckas
75d2f18088 [ARM] 3345/1: Fix interday RTC alarms
Patch from Uli Luckas

This is a bugfix.

The comment in arch/arm/common/rtctime.c explains it:
* FIXME: for now, we just copy the alarm time because we're lazy (and
* is therefore buggy - setting a 10am alarm at 8pm will not result in
* the alarm triggering.)

This patch adds one day to the alarm iff the alarm wrapped beyond midnight and therefore appears to be in the past.

Signed-off-by: Uli Luckas <u.luckas@road-gmbh.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-02-22 21:12:07 +00:00