Adam Kropelin [Sun, 6 Jun 2004 12:59:45 +0000 (05:59 -0700)]
[FB]: Fix uninitialized fb_cmap member in sbuslib.c
When handling FBIOPUTCMAP_SPARC, sbusfb fails to initialize cmap.transp,
which quickly leads to an oops when fb_set_cmap() dereferences it.
First encountered in Aurora Wombat kernels and seems to afflict mainline
as well. Patch is against 2.6.7-rc2. xorg still fails to actually get
anything to display on my CG6, but at least it no longer oopses the kernel.
Signed-off-by: Adam Kropelin <akropel1@rochester.rr.com> Signed-off-by: David S. Miller <davem@redhat.com>
Dave Jones [Sun, 6 Jun 2004 08:04:20 +0000 (01:04 -0700)]
[PATCH] Fix missing padding in DMI table.
This entry in the DMI blacklist table is missing it's NO_MATCH
tags, which means the struct gets padded instead of filled with
the desired NO_MATCH data which is {255, NULL}
Usually not fatal it seems, but there have been numerous cases
in Red Hat bugzilla where this did get tripped up, and caused
an immediate reset on these boards. Not fun to track down.
Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
The recent introduction of ptep_set_access_flags() with the optimisation
of not flushing the TLB unfortunately broke ppc32 CPUs with no hash
table.
The data access exception code path in assembly for these doesn't
properly deal with the case where the TLB entry is present with the
wrong PAGE_RW and will just call do_page_fault again instead of just
replacing the TLB entry.
Fixing the asm code for all the different CPU types affected (yah,
embedded PPCs all have different MMUs =P) is painful and need testing I
can't do at the moment, so here's a fix that will just flush the TLB
page when changing the access flags on non-hash based machines. Please
apply.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org
Ingo Molnar [Sun, 6 Jun 2004 04:35:59 +0000 (21:35 -0700)]
[PATCH] sched: honor the "sync" wakeup bit
The scheduler changes had another thing missing: the appreciation of
sync wakeups. (I had this in one of the earlier sched-domains cleanup
patches before but it got lost in the shuffle.)
When a sync waker is waking, we should subtract its load from the
current load - it will schedule away for sure in the near future.
That's what the "sync" bit means.
This change is necessary because with the sched-domains balancer we have
a much more sensitive cpu-load estimator, and in this particular context
of try_to_wake_up() the sync waker's effect will always be part of the
load. Patch against your patch attached.
In my testing there's an additional increase in bw_pipe numbers on a
dual P2 box, it went from 110-120 MB/sec to 120-130 MB/sec.
Jens Axboe [Sat, 5 Jun 2004 06:35:07 +0000 (23:35 -0700)]
[PATCH] kill drivers/ide TCQ support
Lets just remove it. It's been disabled some time ago, and there's no
chance of it ever getting resurrected. PATA TCQ has so many technical
short comings, that it was never really interesting I'm afraid.
[PATCH] ide: change CONFIG_IDEDISK_STOKE to a runtime option
From: Christoph Hellwig <hch@lst.de>
To be useful for distribution kernels it needs to be a runtime option.
The original patch is from Joerg Platte via the Debian kernel package,
with some adjustments from me (and me too - Bart).
Corey Minyard [Sat, 5 Jun 2004 04:05:56 +0000 (21:05 -0700)]
[PATCH] Fix ipmi compile failure
Geert Uytterhoeven wrote:
While compiling drivers/char/ipmi/ipmi_si_intf.c in 2.6.6-rc1 on m68k,
I noticed a missing include (needed for disable_irq_nosync() and
enable_irq()):
Furthermore none of CONFIG_ACPI_INTERPETER, CONFIG_X86, and CONFIG_PCI
were set, and thus IPMI_MEM_ADDR_SPACE and IPMI_IO_ADDR_SPACE are not
defined, but they are used.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Dave Airlie [Sat, 5 Jun 2004 03:59:21 +0000 (20:59 -0700)]
[PATCH] MTD: add st m50fw0* to jedec_probe.c
Adds support to the jedec probe for ST M50FW040, M50FW080 and M50FW016 all
Firmware hubs for i8x0 chipsets,
http://www.st.com/stonline/products/families/memories/fl_nor/fl_fwh.htm
Cc: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paulus brought this up on IRC, it seems to be a bad DRM merge: The code
#ifndef VMAP_4_ARGS
if ( dev->agp->cant_use_aperture )
return -EINVAL;
#endif
in DRM(agp_acquire) should be removed altogether in a 2.6 kernel because
its vmap() takes 4 arguments; however, only the guards seem to have been
removed, which causes this function to erroneously fail if the AGP aperture
can't be directly accessed by the CPU.
Signed-off-by: Colin Leroy <colin@colino.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
The attached patch fixes the EDID parsing for PPC on rivafb. It actually
finds the EDID info in the OF Tree now. I grabbed this from BenHs Tree as
of 2.6.5-rc3. The current code has no chance to work since it doesn't walk
the device tree. This helps rivafb on PPC at least a bit further...
Nick Piggin [Sat, 5 Jun 2004 03:58:39 +0000 (20:58 -0700)]
[PATCH] sched: improve wakeup-affinity
David Mosberger noticed bw_pipe was way down on sched-domains kernels on
SMP systems.
That is due to two things: first, the previous wake-affine logic would
*always* move a pipe wakee onto the waker's CPU. With the scheduler
rework, this was toned down a lot (but extended to all types of wakeups).
One of the ways this was damped was with the logic: don't move the wakee if
its CPU is relatively idle compared to the waker's CPU. Without this, some
workloads would pile everything up onto a few CPUs and get lots of idle
time.
However, the fix was a bit of a blunt hack: if the wakee runqueue was below
50% busy, and the waker's was above 50% busy, we wouldn't do the move. I
think a better way to capture it is what this patch does: if the wakee
runqueue is below 100% busy, and the sum of the two runqueue's loads is
above 100% busy, and the wakee runqueue is less busy than the waker
runqueue (ie. CPU utilisation would drop if we do the move), then we don't
do the move.
After I fixed this, I found things were still getting bounced around quite
a bit. The reason is that we were attempting very aggressive idle
balancing in order to cut down idle time in a dbt2-pgsql workload, which is
particularly sensitive to idle.
After having Mark Wong (markw@osdl.org) retest this load with this patch,
it looks like we don't need to be so aggressive. I'm glad to be rid of
this because it never sat too well with me. We should see slightly lower
cost of schedule and slightly improved cache impact with this change too.
Mark said:
---
This looks pretty good:
metric kernel
2334 2.6.7-rc2
2298 2.6.7-rc2-mm2
2329 2.6.7-rc2-mm2-sched-more-wakeaffine
---
ie. within the noise.
David said:
---
Oooh, me likeee!
Host OS Pipe AF
UNIX
--------- ------------- ---- ----
caldera.h Linux 2.6.6 3424 2057 (plain 2.6.6)
caldera.h Linux 2.6.7-r 333. 1402 (original 2.6.7-rc1)
caldera.h Linux 2.6.7-r 3086 4301 (2.6.7-rc1 with your patch)
Pipe-bandwidth is still down about 10% but that may be due to
unrelated changes (or perhaps warmup effects?). The AF UNIX bandwidth
is just mindboggling. Moreover, with your patch 2.6.7-rc1 shows
better context-switch times and lower communication latencies (more
like the numbers you're getting on UP).
So it seems like the overall balance of keeping things on the same CPU
vs. distributing them across CPUs is improved.
---
I also ran some tests on the NUMAQ. kernbench, dbench, hackbench, reaim
were much the same. tbench was improved, very much so when clients < NR_CPU.
Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:58:28 +0000 (20:58 -0700)]
[PATCH] md: fix BUG in raid5 resync code.
This condtion on this loop is primarily to avoid the loop if it doesn't
appear to be needed. However it optimises a little too much and there is a
case where it skips the loop when it is really needed. This patch fixes
it.
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jens Axboe [Sat, 5 Jun 2004 03:58:17 +0000 (20:58 -0700)]
[PATCH] fix cdrom length check
There's a bad length check in cdrom_get_random_writable(), it's off-by-4
since fh->data_len is the length of data _after_ that field (which is
offset 4 bytes in the header). Check is pretty bogus anyways, so just kill
it.
Rusty Russell [Sat, 5 Jun 2004 03:57:12 +0000 (20:57 -0700)]
[PATCH] fix sysfs node cpumap for large NR_CPUS
As pointed out by Paul Jackson <pj@sgi.com>, sometimes 99 chars is not enough.
We currently get a page from sysfs: that code should check we haven't overrun
it.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Paul Jackson <pj@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Sat, 5 Jun 2004 03:57:01 +0000 (20:57 -0700)]
[PATCH] Use KERN_ALERT more for oopses
Often users only report what syslogd reports with KERN_ALERT when a kernel
crash occurs. Make an oops print mpre information with that (in particular
the RIP)
Patch for i386 and x86-64.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:56:50 +0000 (20:56 -0700)]
[PATCH] md: support reshaping raid1 arrays - adding or removing drives.
This allows the number of "raid_disks" in a raid1 to be changed.
This requires allocating a new pool of "r1bio" structures which a different
number of bios, suspending IO, and swapping the new pool in place of the old.
(and a few other related changes).
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:56:39 +0000 (20:56 -0700)]
[PATCH] md: allow md arrays to be resized if devices are large enough.
It is possible to have raid1/4/5/6 arrays that do not use all the space on the
drive. This can be done explicitly, or can happen info you, one by one,
replace all the drives with larger devices.
This patch extends the "SET_ARRAY_INFO" ioctl (which previously invalid on
active arrays) allow some attributes of the array to be changed and implements
changing of the "size" attribute.
"size" is the amount of each device that is actually used. If "size" is
increased, the new space will immediately be "resynced".
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:56:16 +0000 (20:56 -0700)]
[PATCH] md: handle hot-add for arrays with non-persistent superblocks
If the superblock isn't persistent, we shouldn't allow room for it.
From: Paul Clements <Paul.Clements@SteelEye.com> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:55:41 +0000 (20:55 -0700)]
[PATCH] md: make sure md_check_recovery will remove a faulty device when ->nr_pending hits 0
md_check_recovery only locks a device and does stuff when it thinks there is a
real likelyhood that something needs doing. So the test at the top must cover
all possibilities.
But it didn't cover the possibility that the last outstanding request on a
failed device had finished and so the device needed to be removed.
As a result, a failed drive might not get removed from the personalities
perspective on the array, and so it could never be removed from the array as a
whole.
With this patch, whenever ->nr_pending hits zero on a faulty device,
MD_RECOVERY_NEEDED is set so that md_check_recovery will do stuff.
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:55:29 +0000 (20:55 -0700)]
[PATCH] md: rationalise device selection in md/multipath.
md/multipath has two separate pieces of code for choosing a device to use, one
when a request is first made and the other when a request is being re-tried
after failure. This patch discards multipath_read_balance and uses
multipath_map in both situations.
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:55:18 +0000 (20:55 -0700)]
[PATCH] kNFSd: documentation typo fixes
Fix minor typos.
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:55:07 +0000 (20:55 -0700)]
[PATCH] kNFSd: nfsd4 file creation fix
Fix error return in create. (See comment in xdr for createtype4 at end of
rfc3530.)
From: Andy Adamson <andros@citi.umich.edu>
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:54:56 +0000 (20:54 -0700)]
[PATCH] kNFSd: nfsd4 setclientid fix
Fix a somewhat bizarre corner case in clid processing: a clientid match isn't
required for case 3.
From: Andy Adamson <andros@citi.umich.edu>
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:54:45 +0000 (20:54 -0700)]
[PATCH] kNFSd: nfsd getattr fix
Oops: we were claiming to support the TIME_CREATE attribute, when we don't
really.
From: Andy Adamson <andros@citi.umich.edu>
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:54:34 +0000 (20:54 -0700)]
[PATCH] kNFSd: nfsd4_release_lockowner() oops fix
Fix oops in release_lockowner. We need to break out to two loops, not just
one, and if the loop finds nothing, 'local' won't be NULL. So just put the
body of the 'if' inside the loop.
From: Andy Adamson <andros@citi.umich.edu>
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:54:23 +0000 (20:54 -0700)]
[PATCH] kNFSd: rsc_lookup simplification
rsc_lookup is a bit complicated: it either takes responsibility for the memory
pointed to by handle.data and sets handle.data to NULL, or it leaves
handle.data unchanged, in which case the caller is responsible for freeing
handle.data. I forgot that the possibility of inserting a negative cache
entry into the cache meant that this could happen even when rsc_lookup is
called with set == 0.
Note that the ip_map code has the same bug, not that it seems to matter much,
since the memory in question in that case is always just a statically
allocated string.
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:54:12 +0000 (20:54 -0700)]
[PATCH] kNFSd: gss_svc locking and refcounting fixes
The server sunrpc code should take a reference on the relevant module before
calling any authentication code.
Also, it looks to me like the table of authops needs some locking.
Finally, gss_svc_init wasn't checking the status of svc_auth_register, and
gss_svc_shutdown wasn't calling svc_auth_unregister.
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:54:02 +0000 (20:54 -0700)]
[PATCH] kNFSd: nfsd4 xdr name encoding improvements
Encode names directly into xdr buffer; this optimizes out a data copy, reduces
stack usage, and will make life simpler when doing acls.
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:53:48 +0000 (20:53 -0700)]
[PATCH] kNFSd: nfsd_acceptable() typo fix
there's a small typo in nfsd_acceptable. It calls
err = permission(parent->d_inode, S_IXOTH, NULL);
It really wants to use MAY_EXEC instead of S_IXOTH. Those happen to be the
same at the moment, but may not do so forever.
From: Olaf Kirch <okir@suse.de>:
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
If ek = exp_find_key() is not an error, then ek->ek_export should be set; no
point in checking if it's NULL.
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:53:17 +0000 (20:53 -0700)]
[PATCH] kNFSd: Fix nfs3 dentry encoding
The "offset" in an entry in an nfs3 readdir response is 64 bits long and as it
has only a 32 bit alignment, it fall half in one page of the response and half
in another.
This patch adds a second offset pointer (offset1) which points to the second
half in the unusual case of the offset being split between pages, and sets and
uses it accordingly.
From: Olaf Kirch <okir@suse.de> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andreas Dilger [Sat, 5 Jun 2004 03:53:02 +0000 (20:53 -0700)]
[PATCH] ext3: htree rename fix
A problem with htree was recently discovered during Lustre testing when
files were being renamed within the same directory. In some cases the
addition of the new name caused a directory block split and the old
dir_entry was pointing at the wrong entry, and the wrong entry was removed.
This would seem entirely possible in a Maildir directory, since the MTA
will be doing a lot of renames within the same directory.
If old_de is pointing to the newly-added entry (i_ino is the same) we end up
deleting the new entry instead of the old one. It looks as if the rename
never happened. We need to verify that the name we are unlinking is what we
expect.
If is also possible that old_de is pointing to the now-unused space at the end
of a newly-split leaf block, so we still need to try ext3_delete_entry()
(which will skip the stale entry and return ENOENT) instead of just relying on
the inum + name check.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Hugh Dickins [Sat, 5 Jun 2004 03:52:50 +0000 (20:52 -0700)]
[PATCH] mm: kill missed pte warning
I've seen no warnings, nor heard any reports of warnings, that anon_vma ever
misses ptes (nor anonmm before it). That WARN_ON (with its useless stack
dump) was okay to goad developers into making reports, but would mainly be an
irritation if it ever appears on user systems: kill it now.
Hugh Dickins [Sat, 5 Jun 2004 03:52:39 +0000 (20:52 -0700)]
[PATCH] mm: get_user_pages vs. try_to_unmap
Andrea Arcangeli's fix to an ironic weakness with get_user_pages.
try_to_unmap_one must check page_count against page->mapcount before unmapping
a swapcache page: because the raised pagecount by which get_user_pages ensures
the page cannot be freed, will cause any write fault to see that page as not
exclusively owned, and therefore a copy page will be substituted for it - the
reverse of what's intended.
rmap.c was entirely free of such page_count heuristics before, I tried hard to
avoid putting this in. But Andrea's fix rarely gives a false positive; and
although it might be nicer to change exclusive_swap_page etc. to rely on
page->mapcount instead, it seems likely that we'll want to get rid of
page->mapcount later, so better not to entrench its use.
Hugh Dickins [Sat, 5 Jun 2004 03:52:28 +0000 (20:52 -0700)]
[PATCH] mm: vma_adjust insert file earlier
For those arches (arm and parisc) which use the i_mmap tree to implement
flush_dcache_page, during split_vma there's a small window in vma_adjust when
flush_dcache_mmap_lock is dropped, and pages in the split-off part of the vma
might for an instant be invisible to __flush_dcache_page.
Though we're more solid there than ever before, I guess it's a bad idea to
leave that window: so (with regret, it was structurally nicer before) take
__vma_link_file (and vma_prio_tree_init) out of __vma_link.
vma_prio_tree_init (which NULLs a few fields) is actually only needed when
copying a vma, not when a new one has just been memset to 0.
__insert_vm_struct is used by nothing but vma_adjust's split_vma case:
co\10mment it accordingly, remove its mark_mm_hugetlb (it can never create
a new kind of vma) and its validate_mm (another follows immediately).
Hugh Dickins [Sat, 5 Jun 2004 03:52:17 +0000 (20:52 -0700)]
[PATCH] mm: vma_adjust adjust_next wrap
Fix vma_adjust adjust_next wrapping: Rajesh V. pointed out that if end were
2GB or more beyond next->vm_start (on 32-bit), then next->vm_pgoff would have
been negatively adjusted.
Hugh Dickins [Sat, 5 Jun 2004 03:52:06 +0000 (20:52 -0700)]
[PATCH] mm: follow_page invalid pte_page
The follow_page write-access case is relying on pte_page before checking
pfn_valid: rearrange that - and we don't need three struct page *pages.
(I notice mempolicy.c's verify_pages is also relying on pte_page, but I'll
leave that to Andi: maybe it ought to be failing on, or skipping over, VM_IO
or VM_RESERVED vmas?)
Hugh Dickins [Sat, 5 Jun 2004 03:51:55 +0000 (20:51 -0700)]
[PATCH] mm: swapper_space.i_mmap_nonlinear
Initialize swapper_space.i_mmap_nonlinear, so mapping_mapped reports false on
it (as it used to do). Update comment on swapper_space, now more fields are
used than those initialized explicitly.
Andi Kleen [Sat, 5 Jun 2004 03:51:44 +0000 (20:51 -0700)]
[PATCH] More x86-64 bugfixes
This patch fixes the problem some people had with their systems crashing
early at boot. Also fix a problem in the LDT/TSS setup noticed by Paul
Menage. And some other random fixes.
- Update defconfig
- Remove some unnecessary printks
- Enlarge kernel mapping to 40MB
- Fix acpi=ht (Suresh Siddha)
- Use KERN_ALERT for more important oops lines
- Fix LDT/TSS limit (Paul Menage)
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Keith Owens [Fri, 4 Jun 2004 14:16:31 +0000 (07:16 -0700)]
ia64: work around linker bug
Building 2.6.6-ia64-040521, using GNU ld version 2.14.90.0.4 20030523.
__gp is sometimes set incorrectly. Instead of being .got + 0x2000000,
it is set to .data + 0x2000000, which breaks some LTOFF22 and GPREL22
entries.
This is non-deterministic, changing the path name to the kernel tree
which changes the size of some messages in .data is enough to make the
linker get it right. Force __gp to be based on .got.
HJ Lu says this is fixed in newer versions of binutils but the work around
is sensible enough that it is a better solution than forcing everybody
to upgrade binutils.
Signed-off-by: David Mosberger <davidm@hpl.hp.com>
David S. Miller [Fri, 4 Jun 2004 10:34:45 +0000 (03:34 -0700)]
[KERNEL]: Some sparse fixes for init/main.c
1) Explicitly cast to __user in syscall invocations
where we know we are in KERNEL_DS
2) Explicitly test against zero in assignment expression
conditional.
Catalin Marinas [Fri, 4 Jun 2004 18:54:37 +0000 (19:54 +0100)]
[ARM PATCH] 1912/1: Wrong cache aliasing bit check
Patch from Catalin Marinas
arch/arm/mm/mmap.c: arch_get_unamapped_area() checks bit 9 in the cache type register for possible cache aliasing problems. Bit 11 should be checked instead.
Andrew Morton [Fri, 4 Jun 2004 09:17:51 +0000 (02:17 -0700)]
[PATCH] ia64: uninline find_next_bit on ia64
From: Paul Jackson <pj@sgi.com>
Move the page of code (~700 bytes of instructions) for find_next_bit and
find_next_zero_bit from inline in include/asm-ia64/bitops.h to a real function
in arch/ia64/lib/bitops.c, leaving a declaration and macro wrapper behind.
The other arch's with almost this same code might want to also uninline it:
alpha, parisc, ppc, sh, sparc, sparc64.
These are too big to inline.
Signed-off-by: Paul Jackson <pj@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: David Mosberger <davidm@hpl.hp.com>
Gary Hade [Fri, 4 Jun 2004 09:11:10 +0000 (02:11 -0700)]
[PATCH] ia64: Fix early serial console setup regression on the IBM x450 and x455
This patch removes the ACPI LEGACY_DEVICES IA-PC boot architecture
flag as a condition for early serial console setup. This flag may not
be set on some systems (e.g. IBM x450 and x455) where early serial
console setup is possible.
Signed-off-by: Gary Hade <garyhade@us.ibm.com> Signed-off-by: David Mosberger <davidm@hpl.hp.com>
Alex Williamson [Fri, 4 Jun 2004 09:08:45 +0000 (02:08 -0700)]
[PATCH] ia64: setup cpu_to_node for cpus not present
In latest linux-2.5 bitkeeper, if you turn on CONFIG_HOTPLUG_CPU w/
an NR_CPUS greater than physically presents CPUs, you'll end up taking
an MCA in __alloc_percpu(). kmem_cache_alloc_node() gets called with a
node value of -1. It seems other architectures are defaulting the
cpu_to_node map to zero for possible, but not present cpus. Here's a
trivial patch that does the same for ia64.
Signed-off-by: David Mosberger <davidm@hpl.hp.com>