14 years ago[SPARC64]: Consolidate common PCI IOMMU init code.
David S. Miller [Fri, 14 Oct 2005 04:10:08 +0000]
[SPARC64]: Consolidate common PCI IOMMU init code.

All the PCI controller drivers were doing the same thing
setting up the IOMMU software state, put it all in one spot.

Signed-off-by: David S. Miller <davem@davemloft.net>

14 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Thu, 13 Oct 2005 16:59:32 +0000]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

14 years ago[ARM] 3006/1: S3C2410 - arch/arm/mach-s3c2410 sparse fixes
Ben Dooks [Thu, 13 Oct 2005 15:46:35 +0000]
[ARM] 3006/1: S3C2410 - arch/arm/mach-s3c2410 sparse fixes

Patch from Ben Dooks

Remove an unused variable from s3c2410.c and
ensure that items not needed to be exported from
s3c2440.c are declared static.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 3005/1: S3C2440 - add definition for s3c2440_set_dsc() call in hardware.h
Ben Dooks [Thu, 13 Oct 2005 15:46:35 +0000]
[ARM] 3005/1: S3C2440 - add definition for s3c2440_set_dsc() call in hardware.h

Patch from Ben Dooks

include/asm-arm/arch-s3c2410/hardware.h was missing
the definition for s3c2440_set_dsc()

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Thu, 13 Oct 2005 02:08:10 +0000]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

14 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Thu, 13 Oct 2005 02:07:59 +0000]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

14 years agoMerge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Thu, 13 Oct 2005 02:07:38 +0000]
Merge branch 'upstream-fixes' of /linux/kernel/git/jgarzik/libata-dev

14 years agoMerge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Thu, 13 Oct 2005 02:07:19 +0000]
Merge branch 'upstream-fixes' of /linux/kernel/git/jgarzik/netdev-2.6

14 years ago[TCP]: Add code to help track down "BUG at net/ipv4/tcp_output.c:438!"
Herbert Xu [Wed, 12 Oct 2005 22:59:39 +0000]
[TCP]: Add code to help track down "BUG at net/ipv4/tcp_output.c:438!"

This is the second report of this bug.  Unfortunately the first
reporter hasn't been able to reproduce it since to provide more
debugging info.

So let's apply this patch for 2.6.14 to

1) Make this non-fatal.
2) Provide the info we need to track it down.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NETPOLL]: wrong return for null netpoll_poll_lock()
Ben Dooks [Wed, 12 Oct 2005 22:12:21 +0000]
[NETPOLL]: wrong return for null netpoll_poll_lock()

When netpoll is not being used, the macro that
defines the removed routing netpoll_poll_lock
defines the return as zero, but the real
routine returns a `void *`

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[BRIDGE]: fix race on bridge del if
Stephen Hemminger [Wed, 12 Oct 2005 22:10:01 +0000]
[BRIDGE]: fix race on bridge del if

This fixes the RCU race on bridge delete interface.  Basically,
the network device has to be detached from the bridge in the first
step (pre-RCU), rather than later. At that point, no more bridge traffic
will come in, and the other code will not think that network device
is part of a bridge.

This should also fix the XEN test problems.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[SPARC64]: Fix boot failures on SunBlade-150
David S. Miller [Wed, 12 Oct 2005 19:22:46 +0000]
[SPARC64]: Fix boot failures on SunBlade-150

The sequence to move over to the Linux trap tables from
the firmware ones needs to be more air tight.  It turns
out that to be %100 safe we do need to be able to translate
OBP mappings in our TLB miss handlers early.

In order not to eat up a lot of kernel image memory with
static page tables, just use the translations array in
the OBP TLB miss handlers.  That solves the bulk of the
problem.

Furthermore, to make sure the OBP TLB miss path will work
even before the fixed MMU globals are loaded, explicitly
load %g1 to TLB_SFSR at the beginning of the i-TLB and
d-TLB miss handlers.

To ease the OBP TLB miss walking of the prom_trans[] array,
we sort it then delete all of the non-OBP entries in there
(for example, there are entries for the kernel image itself
which we're not interested in at all).

We also save about 32K of kernel image size with this change.
Not a bad side effect :-)

There are still some reasons why trampoline.S can't use the
setup_trap_table() yet.  The most noteworthy are:

1) OBP boots secondary processors with non-bias'd stack for
   some reason.  This is easily fixed by using a small bootup
   stack in the kernel image explicitly for this purpose.

2) Doing a firmware call via the normal C call prom_set_trap_table()
   goes through the whole OBP enter/exit sequence that saves and
   restores OBP and Linux kernel state in the MMUs.  This path
   unfortunately does a "flush %g6" while loading up the OBP locked
   TLB entries for the firmware call.

   If we setup the %g6 in the trampoline.S code properly, that
   is in the PAGE_OFFSET linear mapping, but we're not on the
   kernel trap table yet so those addresses won't translate properly.

   One idea is to do a by-hand firmware call like we do in the
   early bootup code and elsewhere here in trampoline.S  But this
   fails as well, as aparently the secondary processors are not
   booted with OBP's special locked TLB entries loaded.  These
   are necessary for the firwmare to processes TLB misses correctly
   up until the point where we take over the trap table.

This does need to be resolved at some point.

Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[ARM] 3003/1: SSP channel map register updates for pxa2xx
Liam Girdwood [Wed, 12 Oct 2005 18:58:12 +0000]
[ARM] 3003/1: SSP channel map register updates for pxa2xx

Patch from Liam Girdwood

This patch updates the pxa2xx channel map registers definitions in
pxa-regs.h

Changes:-
  o Added description for SSP2 registers
  o Added definitions for SSP3 registers

Signed-off-by:Liam Girdwood <liam.girdwood@wolfsonmicro.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 3002/1: Wrong parameter to uart_update_timeout() in drivers/serial/pxa.c
Lothar Wassmann [Wed, 12 Oct 2005 18:58:11 +0000]
[ARM] 3002/1: Wrong parameter to uart_update_timeout() in drivers/serial/pxa.c

Patch from Lothar Wassmann

The function serial_pxa_set_termios() is calling uart_update_timeout()
with the baud rate divisor as third parameter, while
uart_update_timeout() expects the baud rate in this place.
This results in a bogus port->timeout which is proportional to the
baud rate.

Signed-off-by: Lothar Wassmann <LW@KARO-electronics.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2978/1: nwfpe - clean up sparse errors
Ben Dooks [Wed, 12 Oct 2005 18:58:10 +0000]
[ARM] 2978/1: nwfpe - clean up sparse errors

Patch from Ben Dooks

The NWFPE is producing a number of errors from sparse
due to not defining a number of functions in the
header files.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2969/1: miscellaneous whitespace cleanup
George G. Davis [Wed, 12 Oct 2005 18:58:10 +0000]
[ARM] 2969/1: miscellaneous whitespace cleanup

Patch from George G. Davis

Fix leading, trailing and other miscellaneous whitespace issues
in arch/arm/kernel/alignment.c.

Signed-off-by: George G. Davis <gdavis@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2970/1: Use -mtune=arm1136j-s when building for CPU_V6 targets
George G. Davis [Wed, 12 Oct 2005 18:58:09 +0000]
[ARM] 2970/1: Use -mtune=arm1136j-s when building for CPU_V6 targets

Patch from George G. Davis

When building for CPU_V6 targets, we should use -mtune=arm1136j-s rather
than -mtune=strongarm but fall back to the later in case someone is
using an older toolchain (although they should really upgrade instead).

Signed-off-by: George G. Davis <gdavis@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2971/1: i.MX uart handle rts irq
Sascha Hauer [Wed, 12 Oct 2005 18:58:08 +0000]
[ARM] 2971/1: i.MX uart handle rts irq

Patch from Sascha Hauer

handle rts interrupt

Signed-off-by: Giancarlo Formicuccia <giancarlo.formicuccia@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2979/2: S3C2410 - add static to non-exported machine items
Ben Dooks [Wed, 12 Oct 2005 18:58:07 +0000]
[ARM] 2979/2: S3C2410 - add static to non-exported machine items

Patch from Ben Dooks

Do not export items that are not needed by symbol name
elsewhere

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2977/1: armksyms.c - make items in export table static
Ben Dooks [Wed, 12 Oct 2005 18:58:07 +0000]
[ARM] 2977/1: armksyms.c - make items in export table static

Patch from Ben Dooks

The items in the export table do not need to be
exported elsehwere, so quash the sparse warning
by making the symbol for the table entry static.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2976/1: S3C2410: add static to functions in serial driver
Ben Dooks [Wed, 12 Oct 2005 18:58:06 +0000]
[ARM] 2976/1: S3C2410: add static to functions in serial driver

Patch from Ben Dooks

The s3c2410 serial driver is missing static declerations
on several functions that are not exported, and have no
need of being exported outside the driver

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2975/1: S3C2410: time.c missing include of cpu.h
Ben Dooks [Wed, 12 Oct 2005 18:58:05 +0000]
[ARM] 2975/1: S3C2410: time.c missing include of cpu.h

Patch from Ben Dooks

arch/arm/mach-s3c2410/time.c is missing include
of cpu.h, causing the declaration of the timer
struct (s3c24xx_timer) to be flagged as missing
the declaration.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2974/1: fix ARM710 swi bug workaround
Nicolas Pitre [Wed, 12 Oct 2005 18:51:24 +0000]
[ARM] 2974/1: fix ARM710 swi bug workaround

Patch from Nicolas Pitre

Either no one is using an ARM710 with recent kernels, or all ARM710s
still in use are not afflicted by this swi bug.  Nevertheless, the code
to work around the ARM710 swi bug is itself currently buggy since it
uses r8 as a pointer to S_PC while in fact it holds the spsr content
these days. Fix that, and simplify the code as well.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[PATCH] ppc32: Tell userland about lack of standard TB
Benjamin Herrenschmidt [Wed, 12 Oct 2005 04:22:50 +0000]
[PATCH] ppc32: Tell userland about lack of standard TB

Glibc is about to get some new high precision timer stuff that relies on
the standard timebase of the PPC architecture.

However, some (rare & old) CPUs do not have such timebase and it is a
bit annoying to have your stuff just crash because you are running on
the wrong CPU...

This exposes to userland a CPU feature bit that tells that the current
processor doesn't have a standard timebase.  It's negative logic so that
glibc will still "just work" on older kernels (it will just be unhappy
on those old CPUs but that doesn't really matter as distro tend to
update glibc & kernel at the same time).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] ppc32: Fix timekeeping
Benjamin Herrenschmidt [Wed, 12 Oct 2005 01:39:33 +0000]
[PATCH] ppc32: Fix timekeeping

Interestingly enough, ppc32 had broken timekeeping for ages...  It
worked, but probably drifted a bit more than could be explained by the
actual bad precision of the timebase calibration.  We discovered that
recently when somebody figured out that the common code was using
CLOCK_TICK_RATE to correct the timekeeing, and ppc32 had a completely
bogus value for it.

This patch turns it into something saner.  Probably not as good as doing
something based on the actual timebase frequency precision but I'll
leave that sort of math to others.  This at least makes it better for
the common HZ values.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] uml: compile-time fix recent patch
Paolo 'Blaisorblade' Giarrusso [Tue, 11 Oct 2005 19:01:01 +0000]
[PATCH] uml: compile-time fix recent patch

Give an empty definition for clear_can_do_skas() when it is not needed.
Thanks to Junichi Uekawa <dancer@netfort.gr.jp> for reporting the
breakage and providing a fix (I re-fixed it in an IMHO cleaner way).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] uml: revert block driver use of host AIO
Jeff Dike [Tue, 11 Oct 2005 03:10:32 +0000]
[PATCH] uml: revert block driver use of host AIO

The patch to use host AIO support that I submitted early after 2.6.13 exposed
some problems in the block driver.  I have fixes for these, but am not
comfortable putting them into 2.6.14 at this late date.  So, this patch reverts
the use of host AIO.

I will resubmit the original patch, plus fixes to the driver after 2.6.14
in order to get a reasonable amount of testing before they're exposed to
the general public.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Tue, 11 Oct 2005 23:39:24 +0000]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

14 years ago[SPARC64]: Fix net booting on Ultra5
David S. Miller [Tue, 11 Oct 2005 22:45:16 +0000]
[SPARC64]: Fix net booting on Ultra5

We were not doing alignment properly when remapping the kernel image.

What we want is a 4MB aligned physical address to map at KERNBASE.
Mistakedly we were 4MB aligning the virtual address where the kernel
initially sits, that's wrong.

Instead, we should PAGE align the virtual address, then 4MB align the
physical address result the prom gives to us.

Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[PATCH] Don't map the same page too much
Hugh Dickins [Tue, 11 Oct 2005 18:16:26 +0000]
[PATCH] Don't map the same page too much

Refuse to install a page into a mapping if the mapping count is already
ridiculously large.

You probably cannot trigger this on 32-bit architectures, but on a
64-bit setup we should protect against it.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] ppc64: Add R_PPC64_TOC16 module reloc
Peter Bergner [Tue, 11 Oct 2005 16:28:24 +0000]
[PATCH] ppc64: Add R_PPC64_TOC16 module reloc

Newer gcc's are generating this relocation, so the module loader needs to
handle it.

Signed-off-by: Peter Bergner <bergner@vnet.ibm.com>
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] V4L: Enable s-video input on DViCO FusionHDTV5 Lite
Michael Krufky [Tue, 11 Oct 2005 16:28:24 +0000]
[PATCH] V4L: Enable s-video input on DViCO FusionHDTV5 Lite

* bttv-cards.c:
- Enable S-Video input on DViCO FusionHDTV5 Lite

Signed-off-by: Michael Krufky <mkrufky@m1k.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] m32r: trap handler code for illegal traps
Hirokazu Takata [Tue, 11 Oct 2005 15:29:09 +0000]
[PATCH] m32r: trap handler code for illegal traps

This patch prevents illegal traps from causing m32r kernel's infinite loop
execution.

Signed-off-by: Naoto Sugai <sugai@isl.melco.co.jp>
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] binfmt_elf bss padding fix
akpm@osdl.org [Tue, 11 Oct 2005 15:29:08 +0000]
[PATCH] binfmt_elf bss padding fix

Nir Tzachar <tzachar@cs.bgu.ac.il> points out that if an ELF file specifies a
zero-length bss at a whacky address, we cannot load that binary because
padzero() tries to zero out the end of the page at the whacky address, and
that may not be writeable.

See also http://bugzilla.kernel.org/show_bug.cgi?id=5411

So teach load_elf_binary() to skip the bss settng altogether if the elf file
has a zero-length bss segment.

Cc: Roland McGrath <roland@redhat.com>
Cc: Daniel Jacobowitz <dan@debian.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] ppc highmem fix
Paolo Galtieri [Tue, 11 Oct 2005 15:29:07 +0000]
[PATCH] ppc highmem fix

I've noticed that the calculations for seg_size and nr_segs in
__dma_sync_page_highmem() (arch/ppc/kernel/dma-mapping.c) are wrong.  The
incorrect calculations can result in either an oops or a panic when running
fsck depending on the size of the partition.

The problem with the seg_size calculation is that it can result in a
negative number if size is offset > size.  The problem with the nr_segs
caculation is returns the wrong number of segments, e.g.  it returns 1 when
size is 200 and offset is 4095, when it should return 2 or more.

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] madvise: Avoid returning error code -EBADF for anonymous mappings
Suzuki [Tue, 11 Oct 2005 15:29:06 +0000]
[PATCH] madvise: Avoid returning error code -EBADF for anonymous mappings

Revert this recent correctness change: Douglas Crosher <dcrosher@scieneer.com>
reported that it broke an existing application, and that madvise() works
without error on anonymous mappings on Solaris.

This means that madvise() will remain non-standards-compliant: we should
return -EBADF for all requests against non-file-backed vma's, but Linux only
does this for MADV_WILLNEED requests.

Signed-off-by: Suzuki K P <suzuki@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] nfsacl: Solaris VxFS compatibility fix
Andreas Gruenbacher [Tue, 11 Oct 2005 15:29:05 +0000]
[PATCH] nfsacl: Solaris VxFS compatibility fix

Here is a compatibility fix between Linux and Solaris when used with VxFS
filesystems: Solaris usually accepts acl entries in any order, but with
VxFS it replies with NFSERR_INVAL when it sees a four-entry acl that is not
in canonical form.  It may also fail with other non-canonical acls -- I
can't tell, because that case never triggers: We only send non-canonical
acls when we fake up an ACL_MASK entry.

Instead of adding fake ACL_MASK entries at the end, inserting them in the
correct position makes Solaris+VxFS happy.  The Linux client and server
sides don't care about entry order.  The three-entry-acl special case in
which we need a fake ACL_MASK entry was handled in xdr_nfsace_encode.  The
patch moves this into nfsacl_encode.

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Acked-by: Trond Myklebust <trond.myklebust@fys.uio.no>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] v9fs: remove additional buffer allocation from v9fs_file_read and v9fs_file_write
Latchesar Ionkov [Tue, 11 Oct 2005 15:29:03 +0000]
[PATCH] v9fs: remove additional buffer allocation from v9fs_file_read and v9fs_file_write

v9fs_file_read and v9fs_file_write use kmalloc to allocate buffers as big
as the data buffer received as parameter.  kmalloc cannot be used to
allocate buffers bigger than 128K, so reading/writing data in chunks bigger
than 128k fails.

This patch reorganizes v9fs_file_read and v9fs_file_write to allocate only
buffers as big as the maximum data that can be sent in one 9P message.

Signed-off-by: Latchesar Ionkov <lucho@ionkov.net>
Cc: Eric Van Hensbergen <ericvh@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] dell_rbu: changes in packet update mechanism
Abhay Salunke [Tue, 11 Oct 2005 15:29:02 +0000]
[PATCH] dell_rbu: changes in packet update mechanism

In the current dell_rbu code ver 2.0 the packet update mechanism makes the
user app dump every individual packet in to the driver.

This adds in efficiency as every packet update makes the
/sys/class/firmware/dell_rbu/loading and data files to disappear and reappear
again.  Thus the user app needs to wait for the files to reappear to dump
another packet.  This slows down the packet update tremendously in case of
large number of packets.  I am submitting a new patch for dell_rbu which will
change the way we do packet updates;

In the new method the user app will create a new single file which has already
packetized the rbu image and all the packets are now staged in this file.

This driver also creates a new entry in
/sys/devices/platform/dell_rbu/packet_size ; the user needs to echo the packet
size here before downloading the packet file.

The user should do the following:

 create one single file which has all the packets stacked together.
 echo the packet size in to /sys/devices/platform/dell_rbu/packet_size.
 echo 1 > /sys/class/firmware/dell_rbu/loading
 cat the packetfile > /sys/class/firmware/dell_rbu/data
 echo 0 > /sys/class/firmware/dell_rbu/loading

The driver takes the file which came through /sys/class/firmware/dell_rbu/data
and takes chunks of paket_size data from it and place in contiguous memory.

This makes packet update process very efficient and fast.  As all the packet
update happens in one single operation.  The user can still read back the
downloaded file from /sys/devices/platform/dell_rbu/data.

Signed-off-by: Abhay Salunke <abhay_salunke@dell.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] ppc64: Fix PCI hotplug
Anton Blanchard [Tue, 11 Oct 2005 15:29:00 +0000]
[PATCH] ppc64: Fix PCI hotplug

pSeries_irq_bus_setup is marked __devinit but references s7a_workaround
which is marked __initdata.

Depending on who got the memory for s7a_workaround (and if the value was
now positive), it was possible for PCI hotplugged devices to have 3
subtracted from their interrupt number.  This would happen randomly and
caused me much confusion :)

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] s390: ccw device reconnect oops.
Cornelia Huck [Tue, 11 Oct 2005 15:28:59 +0000]
[PATCH] s390: ccw device reconnect oops.

Search for a disconnect ccw_device on the ccw bus rather than on the css
bus (was a typo in patch I did for the klist conversion).  A cast to an
embedding ccw_device from an embedded device in a struct subchannel will
lead us to oopses.

Signed-off-by: Cornelia Huck <cohuck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years agosata_nv: Fixed bug introduced by 0.08's MCP51 and MCP55 support.
Jeff Garzik [Tue, 11 Oct 2005 05:52:39 +0000]
sata_nv: Fixed bug introduced by 0.08's MCP51 and MCP55 support.

14 years agoe100: revert CPU cycle saver microcode, it causes severe problems
Jeff Garzik [Tue, 11 Oct 2005 05:38:35 +0000]
e100: revert CPU cycle saver microcode, it causes severe problems
for certain NICs

Reverting 685fac63f5ca6c5ca06bab641e1a32bbf9287e89:
> [PATCH] e100: CPU cycle saver microcode
>
>
> Add cpu cycle saver microcode to 8086:{1209/1229} other than ICH devices.
>
> Signed-off-by: Mallikarjuna R Chilakala <mallikarjuna.chilakala@intel.com>
> Signed-off-by: Ganesh Venkatesan <ganesh.venkatesan@intel.com>
> Signed-off-by: John Ronciak <john.ronciak@intel.com>
> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

14 years ago[TWSK]: Grab the module refcount for timewait sockets
Arnaldo Carvalho de Melo [Tue, 11 Oct 2005 04:25:23 +0000]
[TWSK]: Grab the module refcount for timewait sockets

This is required to avoid unloading a module that has active timewait
sockets, such as DCCP.

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[DCCP]: Transition from PARTOPEN to OPEN when receiving DATA packets
Arnaldo Carvalho de Melo [Tue, 11 Oct 2005 04:25:00 +0000]
[DCCP]: Transition from PARTOPEN to OPEN when receiving DATA packets

Noticed by Andrea Bittau, that provided a patch that was modified to
not transition from RESPOND to OPEN when receiving DATA packets.

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[CCID]: Check if ccid is NULL in the hc_[tr]x_exit functions
Arnaldo Carvalho de Melo [Tue, 11 Oct 2005 04:24:20 +0000]
[CCID]: Check if ccid is NULL in the hc_[tr]x_exit functions

For consistency with ccid_exit and to fix a bug when
IP_DCCP_UNLOAD_HACK is enabled as the control sock is not associated
to any CCID.

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NETFILTER] ctnetlink: add support to change protocol info
Pablo Neira Ayuso [Tue, 11 Oct 2005 04:23:46 +0000]
[NETFILTER] ctnetlink: add support to change protocol info

This patch add support to change the state of the private protocol
information via conntrack_netlink.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NETFILTER] ctnetlink: allow userspace to change TCP state
Pablo Neira Ayuso [Tue, 11 Oct 2005 04:23:28 +0000]
[NETFILTER] ctnetlink: allow userspace to change TCP state

This patch adds the ability of changing the state a TCP connection. I know
that this must be used with care but it's required to provide a complete
conntrack creation via conntrack_netlink. So I'll document this aspect on
the upcoming docs.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NETFILTER]: Use only 32bit counters for CONNTRACK_ACCT
Harald Welte [Tue, 11 Oct 2005 04:21:10 +0000]
[NETFILTER]: Use only 32bit counters for CONNTRACK_ACCT

Initially we used 64bit counters for conntrack-based accounting, since we
had no event mechanism to tell userspace that our counters are about to
overflow.  With nfnetlink_conntrack, we now have such a event mechanism and
thus can save 16bytes per connection.

Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPSEC] Fix block size/MTU bugs in ESP
Herbert Xu [Tue, 11 Oct 2005 04:11:34 +0000]
[IPSEC] Fix block size/MTU bugs in ESP

This patch fixes the following bugs in ESP:

* Fix transport mode MTU overestimate.  This means that the inner MTU
  is smaller than it needs be.  Worse yet, given an input MTU which
  is a multiple of 4 it will always produce an estimate which is not
  a multiple of 4.

  For example, given a standard ESP/3DES/MD5 transform and an MTU of
  1500, the resulting MTU for transport mode is 1462 when it should
  be 1464.

  The reason for this is because IP header lengths are always a multiple
  of 4 for IPv4 and 8 for IPv6.

* Ensure that the block size is at least 4.  This is required by RFC2406
  and corresponds to what the esp_output function does.  At the moment
  this only affects crypto_null as its block size is 1.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPSEC]: Use ALIGN macro in ESP
Herbert Xu [Tue, 11 Oct 2005 04:11:08 +0000]
[IPSEC]: Use ALIGN macro in ESP

This patch uses the macro ALIGN in all the applicable spots for ESP.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[SPARC32]: Revert IOMAP change eb98129eec7fa605f0407dfd92d40ee8ddf5cd9a
David S. Miller [Tue, 11 Oct 2005 04:02:26 +0000]
[SPARC32]: Revert IOMAP change eb98129eec7fa605f0407dfd92d40ee8ddf5cd9a

Breakage noted by Al Viro.

It breaks non-PCI builds, it's probably better to have a more
direct implementation on sparc32, and which driver actually
needs this is still questionable.

We can resolve this in 2.6.15

Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NETFILTER] ctnetlink: add one nesting level for TCP state
Pablo Neira Ayuso [Tue, 11 Oct 2005 03:55:49 +0000]
[NETFILTER] ctnetlink: add one nesting level for TCP state

To keep consistency, the TCP private protocol information is nested
attributes under CTA_PROTOINFO_TCP. This way the sequence of attributes to
access the TCP state information looks like here below:

CTA_PROTOINFO
CTA_PROTOINFO_TCP
CTA_PROTOINFO_TCP_STATE

instead of:

CTA_PROTOINFO
CTA_PROTOINFO_TCP_STATE

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NETFILTER]: Add missing include to ip_conntrack_tuple.h
Harald Welte [Tue, 11 Oct 2005 03:54:01 +0000]
[NETFILTER]: Add missing include to ip_conntrack_tuple.h

Without this #include, __be16 is not defined and userspace programs
will break.

Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NETFILTER] ctnetlink: ICMP ID is not mandatory
Pablo Neira Ayuso [Tue, 11 Oct 2005 03:53:16 +0000]
[NETFILTER] ctnetlink: ICMP ID is not mandatory

The ID is only required by ICMP type 8 (echo), so it's not
mandatory for all sort of ICMP connections. This patch makes
mandatory only the type and the code for ICMP netlink messages.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NETFILTER] conntrack_netlink: Fix endian issue with status from userspace
Harald Welte [Tue, 11 Oct 2005 03:52:51 +0000]
[NETFILTER] conntrack_netlink: Fix endian issue with status from userspace

When we send "status" from userspace, we forget to convert the endianness.
This patch adds the reqired conversion.  Thanks to Pablo Neira for
discovering this.

Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NETFILTER] nat: remove bogus structure member
Harald Welte [Tue, 11 Oct 2005 03:52:36 +0000]
[NETFILTER] nat: remove bogus structure member

When 'rustynat' was merged in 2.6.12, the use of the "helper" pointer of
struct ipt_nat_info was obsoleted, but the pointer not removed from the
struct.

This patch removes the pointer, thereby yet again shrinking struct
ip_conntrack.

Discovered-by: Rusty Russell <rusty@netfilter.org>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NETFILTER] nfnetlink: use highest bit of nfa_type to indicate nested TLV
Harald Welte [Tue, 11 Oct 2005 03:52:19 +0000]
[NETFILTER] nfnetlink: use highest bit of nfa_type to indicate nested TLV

As Henrik Nordstrom pointed out, all our efforts with "split endian" (i.e.
host byte order tags, net byte order values) are useless, unless a parser
can determine whether an attribute is nested or not.

This patch steals the highest bit of nfattr.nfa_type to indicate whether
the data payload contains a nested nfattr (1) or not (0).

This will break userspace compatibility, but luckily no kernel with
nfnetlink was released so far.

Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NETFILTER] ipt_ULOG: Mark ipt_ULOG as OBSOLETE
Harald Welte [Tue, 11 Oct 2005 03:51:53 +0000]
[NETFILTER] ipt_ULOG: Mark ipt_ULOG as OBSOLETE

Similar to nfnetlink_queue and ip_queue, we mark ipt_ULOG as obsolete.
This should have been part of the original nfnetlink_log merge, but
I somehow missed it.

Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NETFILTER] PPTP helper: Add missing Kconfig dependency
Harald Welte [Tue, 11 Oct 2005 03:47:42 +0000]
[NETFILTER] PPTP helper: Add missing Kconfig dependency

PPTP should not be selectable without conntrack enabled

Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[SPARC64]: Fix oops on runlevel change with serial console.
David S. Miller [Tue, 11 Oct 2005 03:43:22 +0000]
[SPARC64]: Fix oops on runlevel change with serial console.

Incorrect uart_write_wakeup() calls cause reference to a
NULL tty pointer in sunsab and sunzilog serial drivers.

Signed-off-by: David S. Miller <davem@davemloft.net>

14 years agoLinux v2.6.14-rc4
Linus Torvalds [Tue, 11 Oct 2005 01:19:19 +0000]
Linux v2.6.14-rc4

14 years ago[PATCH] i386: Don't discard upper 32bits of HWCR on K8
Andi Kleen [Mon, 10 Oct 2005 23:28:33 +0000]
[PATCH] i386: Don't discard upper 32bits of HWCR on K8

Need to use long long, not long when RMWing a MSR. I think
it's harmless right now, but still should be better fixed
if AMD adds any bits in the upper 32bit of HWCR.

Bug was introduced with the TLB flush filter fix for i386

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] x86_64: Allocate cpu local data for all possible CPUs
Andi Kleen [Mon, 10 Oct 2005 20:32:45 +0000]
[PATCH] x86_64: Allocate cpu local data for all possible CPUs

CPU hotplug fills up the possible map to NR_CPUs, but it did that after
setting up per CPU data. This lead to CPU data not getting allocated
for all possible CPUs, which lead to various side effects.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Mon, 10 Oct 2005 23:32:32 +0000]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

14 years agoUse the new "kill_proc_info_as_uid()" for USB disconnect too
Linus Torvalds [Mon, 10 Oct 2005 23:31:30 +0000]
Use the new "kill_proc_info_as_uid()" for USB disconnect too

All the same issues - we can't just save the pointer to the thread, we
must save the pid/uid/euid combination.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] Fix signal sending in usbdevio on async URB completion
Harald Welte [Mon, 10 Oct 2005 17:44:29 +0000]
[PATCH] Fix signal sending in usbdevio on async URB completion

If a process issues an URB from userspace and (starts to) terminate
before the URB comes back, we run into the issue described above.  This
is because the urb saves a pointer to "current" when it is posted to the
device, but there's no guarantee that this pointer is still valid
afterwards.

In fact, there are three separate issues:

1) the pointer to "current" can become invalid, since the task could be
   completely gone when the URB completion comes back from the device.

2) Even if the saved task pointer is still pointing to a valid task_struct,
   task_struct->sighand could have gone meanwhile.

3) Even if the process is perfectly fine, permissions may have changed,
   and we can no longer send it a signal.

So what we do instead, is to save the PID and uid's of the process, and
introduce a new kill_proc_info_as_uid() function.

Signed-off-by: Harald Welte <laforge@gnumonks.org>
[ Fixed up types and added symbol exports ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[SPARC64]: Fix Ultra5, Ultra60, et al. boot failures.
David S. Miller [Mon, 10 Oct 2005 23:12:13 +0000]
[SPARC64]: Fix Ultra5, Ultra60, et al. boot failures.

On the boot processor, we need to do the move onto the Linux trap
table a little bit differently else we'll take unhandlable faults in
the firmware address space.

Previously we would do the following:

1) Disable PSTATE_IE in %pstate.
2) Set %tba by hand to sparc64_ttable_tl0
3) Initialize alternate, mmu, and interrupt global
   trap registers.
4) Call prom_set_traptable()

That doesn't work very well actually with the way we boot the kernel
VM these days.  It worked by luck on many systems because the firmware
accesses for the prom_set_traptable() call happened to be loaded into
the TLB already, something we cannot assume.

So the new scheme is this:

1) Clear PSTATE_IE in %pstate and set %pil to 15
2) Call prom_set_traptable()
3) Initialize alternate, mmu, and interrupt global
   trap registers.

and this works quite well.  This sequence has been moved into a
callable function in assembler named setup-trap_table().  The idea is
that eventually trampoline.S can use this code as well.  That isn't
possible currently due to some complications, but eventually we should
be able to do it.

Thanks to Meelis Roos for the Ultra5 boot failure report.

Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[PATCH] x86_64: Fix change_page_attr cache flushing
Andi Kleen [Mon, 10 Oct 2005 23:03:39 +0000]
[PATCH] x86_64: Fix change_page_attr cache flushing

Noticed by Terence Ripperda

Undo wrong change in global_flush_tlb. We need to flush the caches in all
cases, not just when pages were reverted. This was a bogus optimization
added earlier, but it was wrong.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years agoMerge master.kernel.org:/home/rmk/linux-2.6-ucb
Linus Torvalds [Mon, 10 Oct 2005 17:39:26 +0000]
Merge master.kernel.org:/home/rmk/linux-2.6-ucb

14 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Mon, 10 Oct 2005 17:39:14 +0000]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

14 years ago[ARM] 2968/1: defconfig for the ARM Collie platform
Vincent Sanders [Mon, 10 Oct 2005 17:24:09 +0000]
[ARM] 2968/1: defconfig for the ARM Collie platform

Patch from Vincent Sanders

Add a defconfig for the ARM Collie platform

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Vincent Sanders <vince@arm.linux.org.uk>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2967/1: defconfig for the ARM Corgi platform
Vincent Sanders [Mon, 10 Oct 2005 17:24:08 +0000]
[ARM] 2967/1: defconfig for the ARM Corgi platform

Patch from Vincent Sanders

Add a defconfig for the ARM Corgi Zarus platform

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Vincent Sanders <vince@arm.linux.org.uk>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2966/1: defconfig for the ARM Poodle platform
Vincent Sanders [Mon, 10 Oct 2005 17:24:07 +0000]
[ARM] 2966/1: defconfig for the ARM Poodle platform

Patch from Vincent Sanders

Add a defconfig for the ARM Poodle Zarus platform

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Vincent Sanders <vince@arm.linux.org.uk>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2965/1: defconfig for the ARM Spitz platform
Vincent Sanders [Mon, 10 Oct 2005 17:24:06 +0000]
[ARM] 2965/1: defconfig for the ARM Spitz platform

Patch from Vincent Sanders

Add a defconfig for the ARM Spitz Zarus platform

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Vincent Sanders <vince@arm.linux.org.uk>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2956/1: fix the "Fix gcc4 build errors in ucb1x00-core.c"
Nicolas Pitre [Mon, 10 Oct 2005 17:22:17 +0000]
[ARM] 2956/1: fix the "Fix gcc4 build errors in ucb1x00-core.c"

Patch from Nicolas Pitre

drivers/mfd/ucb1x00-core.c: In function 'ucb1x00_probe':
drivers/mfd/ucb1x00-core.c:482: error: 'ucb1x00_class' undeclared (first use in this function)

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[PATCH] i386: fix stack alignment for signal handlers
Markus F.X.J. Oberhumer [Sun, 9 Oct 2005 16:54:23 +0000]
[PATCH] i386: fix stack alignment for signal handlers

This fixes the setup of the alignment of the signal frame, so that all
signal handlers are run with a properly aligned stack frame.

The current code "over-aligns" the stack pointer so that the stack frame
is effectively always mis-aligned by 4 bytes.  But what we really want
is that on function entry ((sp + 4) & 15) == 0, which matches what would
happen if the stack were aligned before a "call" instruction.

Signed-off-by: Markus F.X.J. Oberhumer <markus@oberhumer.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] ide: Workaround PM problem
Benjamin Herrenschmidt [Sun, 9 Oct 2005 00:37:47 +0000]
[PATCH] ide: Workaround PM problem

The logic in ide_do_request() doesn't guarantee that both drives will be
serviced after a call.  It may "forget" to service one in some
circumstances, including when one of the drive is suspended (it will
eventually fail to service the slave when the master is suspended for
example).  This prevents the wakeup requests that gets queued on wakeup
from sleep from beeing serviced in some cases when 2 drives are sharing
an IDE bus.

The problem is deep enough in the way this code works (and there are
probably a few other problematic but rare corner cases) and fixing it
would require some major rethinking of the way IDE decides which channel
to service.  This is not 2.6.14 material.  However, in the meantime,
Bart has accepted this simple workaround that will fix the crash on
wakeup from sleep since this specific corner case is actually hitting
users to get into 2.6.14.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] relayfs: fix bogus param value in call to vmap
Tom Zanussi [Sun, 9 Oct 2005 15:41:32 +0000]
[PATCH] relayfs: fix bogus param value in call to vmap

The third param in this call to vmap shouldn't be GFP_KERNEL, which
makes no sense, but rather VM_MAP.  Thanks to Al Viro for spotting
this.

Signed-off-by: Tom Zanussi <zanussi@us.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Mon, 10 Oct 2005 15:38:52 +0000]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

14 years ago[PATCH] uml: fix x86_64 with !CONFIG_FRAME_POINTER
Jeff Dike [Sun, 9 Oct 2005 20:11:44 +0000]
[PATCH] uml: fix x86_64 with !CONFIG_FRAME_POINTER

UML/x86_64 doesn't run when built with frame pointers disabled.  There
was an implicit frame pointer assumption in the stub segfault handler.
With frame pointers disabled, UML dies on handling its first page fault.

The container-of part of this is from Paolo Giarrusso <blaisorblade@yahoo.it>.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] x86_64: Set up safe page tables during resume
Rafael J. Wysocki [Sun, 9 Oct 2005 19:19:40 +0000]
[PATCH] x86_64: Set up safe page tables during resume

The following patch makes swsusp avoid the possible temporary corruption
of page translation tables during resume on x86-64.  This is achieved by
creating a copy of the relevant page tables that will not be modified by
swsusp and can be safely used by it on resume.

The problem is that during resume on x86-64 swsusp may temporarily
corrupt the page tables used for the direct mapping of RAM.  If that
happens, a page fault occurs and cannot be handled properly, which leads
to the solid hang of the affected system.  This leads to the loss of the
system's state from before suspend and may result in the loss of data or
the corruption of filesystems, so it is a serious issue.  Also, it
appears to happen quite often (for me, as often as 50% of the time).

The problem is related to the fact that (at least) one of the PMD
entries used in the direct memory mapping (starting at PAGE_OFFSET)
points to a page table the physical address of which is much greater
than the physical address of the PMD entry itself.  Moreover,
unfortunately, the physical address of the page table before suspend
(i.e.  the one stored in the suspend image) happens to be different to
the physical address of the corresponding page table used during resume
(i.e.  the one that is valid right before swsusp_arch_resume() in
arch/x86_64/kernel/suspend_asm.S is executed).  Thus while the image is
restored, the "offending" PMD entry gets overwritten, so it does not
point to the right physical address any more (i.e.  there's no page
table at the address pointed to by it, because it points to the address
the page table has been at during suspend).  Consequently, if the PMD
entry is used later on, and it _is_ used in the process of copying the
image pages, a page fault occurs, but it cannot be handled in the normal
way and the system hangs.

In principle we can call create_resume_mapping() from
swsusp_arch_resume() (ie.  from suspend_asm.S), but then the memory
allocations in create_resume_mapping(), resume_pud_mapping(), and
resume_pmd_mapping() must be made carefully so that we use _only_
NosaveFree pages in them (the other pages are overwritten by the loop in
swsusp_arch_resume()).  Additionally, we are in atomic context at that
time, so we cannot use GFP_KERNEL.  Moreover, if one of the allocations
fails, we should free all of the allocated pages, so we need to trace
them somehow.

All of this is done in the appended patch, except that the functions
populating the page tables are located in arch/x86_64/kernel/suspend.c
rather than in init.c.  It may be done in a more elegan way in the
future, with the help of some swsusp patches that are in the works now.

[AK: move some externs into headers, renamed a function]

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] uml: cleanup whitespace for COW driver
Paolo 'Blaisorblade' Giarrusso [Sun, 9 Oct 2005 19:37:53 +0000]
[PATCH] uml: cleanup whitespace for COW driver

Fix whitespace - I split this off the previous patch for easier review.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] uml: cleanup byte order macros for COW driver
Paolo 'Blaisorblade' Giarrusso [Sun, 9 Oct 2005 19:37:45 +0000]
[PATCH] uml: cleanup byte order macros for COW driver

After restoring the existing code, make it work also when included in
kernelspace code (which isn't currently the case, but at least this will prevent
people from "fixing" it as just happened).
Whitespace is fixed in next patch - it cluttered the diff too much.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] uml: restore include breakage, breaking binary format of COW driver
Paolo 'Blaisorblade' Giarrusso [Sun, 9 Oct 2005 19:37:35 +0000]
[PATCH] uml: restore include breakage, breaking binary format of COW driver

Commit 44456d37b59d8e541936ed26d8b6e08d27e88ac1, between 2.6.13-rc3 and -rc4,
was a "nice cleanup" which broke something. Revert the offending part.

It broke because:
a) because this part doesn't fall under the description
b) the author didn't know what he was doing here
c) the author didn't try to compile the existing code and see that it worked
   perfectly.
d) the author didn't ask us what was happening
e) you didn't either, and somebody there should have learned that UML is a bit
   different.

In fact, UML is special in linking to host libc and using its includes.

In particular, since host includes always define both __BIG_ENDIAN and
__LITTLE_ENDIAN, ntohll() macros started thinking to be in a big-endian world;
and on-disk compatibility was broken.

Many thanks go to Nix for reporting the problem and correctly diagnosing an
endianness problem.

Btw, this patch restores the previous code, which worked; but the definitions
would be uncorrect if used in kernelspace files.

Next patch addresses that.

Cc: Nix <nix@esperi.org.uk>, Olaf Hering <olh@suse.de>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] uml: allow building .s/.i/.lst files from userspace files
Paolo 'Blaisorblade' Giarrusso [Sun, 9 Oct 2005 19:37:26 +0000]
[PATCH] uml: allow building .s/.i/.lst files from userspace files

For files which need to include glibc headers (i.e. userspace files), we
specified the correct flags only for .o, not for .s/.lst/.i. Fix this.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] uml: add mode=skas0 as a synonym of skas0
Paolo 'Blaisorblade' Giarrusso [Sun, 9 Oct 2005 19:37:18 +0000]
[PATCH] uml: add mode=skas0 as a synonym of skas0

Too many people were confused by skas0 and tried using "mode=skas0". And after
all, they are right - accept this.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] Uml: hide commands when not being verbose
Paolo 'Blaisorblade' Giarrusso [Sun, 9 Oct 2005 19:37:05 +0000]
[PATCH] Uml: hide commands when not being verbose

Add a missing $(Q) to a "ln" invocation.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[PATCH] pcmcia: fix task state at pccard thread exit
Steven Rostedt [Mon, 10 Oct 2005 15:13:17 +0000]
[PATCH] pcmcia: fix task state at pccard thread exit

The pccardd thread has a race in it that it can shutdown in the
TASK_INTERRUPTIBLE state.

Make sure we mark ourselves runnable again as we remove ourselves from
the wait queue.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

14 years ago[ARM] 2964/1: S3C2410 - serial: add .owner to driver
Ben Dooks [Mon, 10 Oct 2005 09:20:07 +0000]
[ARM] 2964/1: S3C2410 - serial: add .owner to driver

Patch from Ben Dooks

Initialise the driver's .owner field so that
the device driver can be referenced to the
module that owns it

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2963/1: S3C2410 - add .owner field to device_driver
Ben Dooks [Mon, 10 Oct 2005 09:20:06 +0000]
[ARM] 2963/1: S3C2410 - add .owner field to device_driver

Patch from Ben Dooks

Add initialisation of .owner field so that
the device driver can be referenced to the
module that owns it.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2962/1: scoop: Allow GPIO pin suspend state to be specified
Richard Purdie [Mon, 10 Oct 2005 09:20:06 +0000]
[ARM] 2962/1: scoop: Allow GPIO pin suspend state to be specified

Patch from Richard Purdie

Allow the GPIO pin suspend states to be specified for SCOOP devices.
This is needed for correct operation on the spitz platform.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2961/1: corgi: Add missing include
Richard Purdie [Mon, 10 Oct 2005 09:17:45 +0000]
[ARM] 2961/1: corgi: Add missing include

Patch from Richard Purdie

Add a missing include from corgi.c

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2960/1: collie: Add missing scoop call parameters
Richard Purdie [Mon, 10 Oct 2005 09:17:44 +0000]
[ARM] 2960/1: collie: Add missing scoop call parameters

Patch from Richard Purdie

Add some missing parameters from the scoop calls on collie.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2959/1: Add test for invalid LDRD/STRD Rd cases in ARM alignment handler
George G. Davis [Mon, 10 Oct 2005 09:17:44 +0000]
[ARM] 2959/1: Add test for invalid LDRD/STRD Rd cases in ARM alignment handler

Patch from George G. Davis

Add test for invalid LDRD/STRD Rd cases in ARM alignment handler
and restore SWP printk KERN_ERR.

Signed-off-by: Steve Longerbeam <slongerbeam@mvista.com>
Signed-off-by: George G. Davis <gdavis@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2958/1: fix definition in imx-regs.h
Sascha Hauer [Mon, 10 Oct 2005 09:17:43 +0000]
[ARM] 2958/1: fix definition in imx-regs.h

Patch from Sascha Hauer

Fix PD7_AF_UART2_DTR definition

Signed-off-by: Giancarlo Formicuccia <gformicuccia@atinno.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] 2957/1: imx UART Error handling
Sascha Hauer [Mon, 10 Oct 2005 09:17:42 +0000]
[ARM] 2957/1: imx UART Error handling

Patch from Sascha Hauer

Fix error path in imx_startup.

Signed-off-by: Giancarlo Formicuccia <gformicuccia@atinno.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[ARM] Update mach-types
Russell King [Mon, 10 Oct 2005 08:48:10 +0000]
[ARM] Update mach-types

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

14 years ago[SPARC64]: Fix compile error in irq.c
Sven Hartge [Sun, 9 Oct 2005 04:12:04 +0000]
[SPARC64]: Fix compile error in irq.c

irq.c is missing the inclusion of asm/io.h, which causes
readb() and writeb() the be undefined.

Signed-off-by: Sven Hartge <hartge@ds9.argh.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[PATCH] gfp flags annotations - part 1
Al Viro [Fri, 7 Oct 2005 06:46:04 +0000]
[PATCH] gfp flags annotations - part 1

 - added typedef unsigned int __nocast gfp_t;

 - replaced __nocast uses for gfp flags with gfp_t - it gives exactly
   the same warnings as far as sparse is concerned, doesn't change
   generated code (from gcc point of view we replaced unsigned int with
   typedef) and documents what's going on far better.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>