Andrew Morton [Thu, 3 Jun 2004 00:59:43 +0000 (17:59 -0700)]
[PATCH] sched: balance-on-exec fix
From: Jack Steiner <steiner@sgi.com>
It looks like the call to sched_balance_exec() from do_execve() is in the
wrong spot. The code calls sched_balance_exec() before determining whether
"filename" actually exists.
In many cases, users have several entries in $PATH. If a full path name is
not specified on the 'exec" call, the library code iterates thru the files
in the PATH list until it finds the program. This can result is numerous
migrations of the parent process before the program is actually found.
This patch changes security_context_to_sid to check the length of the
processed security context against the full length of the provided context,
rejecting any further data.
Signed-off-by: Stephen Smalley <sds@epoch.ncsc.mil> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Thu, 3 Jun 2004 00:59:10 +0000 (17:59 -0700)]
[PATCH] Add reference_init.pl to `make buildcheck' target
`make buildcheck' only checks for calls to linker discarded sections,
reference_init checks for calls to sections discarded at run time, init was
cloned from discarded. They are separate because the linker detects the
discarded case and I did not want to confuse users with messages about init
text/data while they were fixing the linker errors.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Thu, 3 Jun 2004 00:58:58 +0000 (17:58 -0700)]
[PATCH] partition table validity checking
From: Andries Brouwer <Andries.Brouwer@cwi.nl>
The patch examines a putative partition table, and if that doesnt look like a
valid partition table it goes away again.
Some devices have partition tables (and there are many styles of such), some
don't. Traditionally fixed disks have one, floppies don't. Nobody knows what
happens with ZIP disks, USB sticks and other such things. Both the DOS-type
partition table, and the "big floppy" whole disk FAT filesystem are common.
It is undesirable for the kernel to detect partitions where there are none.
This leads to great confusion, sometimes to kernel crashes.
In the particular case of DOS-type partition tables a partition entry has a
1-byte field boot_ind that traditionally is 0x80 for the boot partition and 0
for the other three primary partitions. Linux does not use this field, and
one sometimes sees tables with all four entries zero.
The patch tells the kernel not to think that something is a valid DOS-type
partition table when a value other than 0 or 0x80 is encountered. I think it
is a fairly safe change: I do not know of any fdisk-type program that will
write other values there.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Thu, 3 Jun 2004 00:58:47 +0000 (17:58 -0700)]
[PATCH] ppc64 gives up too quickly on hotplugged cpu
From: Nathan Lynch <nathanl@austin.ibm.com>
On some systems it can take a hotplugged cpu much longer to come up than it
would at boot. If the cpu comes up after we've given up on it, it tends to
die in its first attempt to kmem_cache_alloc (uninitialized percpu data, I
imagine).
In my experimentation I haven't seen a processor take more than one second
to become available; the patch waits five seconds just to be safe.
Andrew Morton [Thu, 3 Jun 2004 00:58:36 +0000 (17:58 -0700)]
[PATCH] ppc64: update info about available iseries_veth interfaces
From: Olaf Hering <olh@suse.de>
/proc/iSeries/config contains now the number of configured virtual ethernet
adapters. AVAILABLE_VETH should only indicate if there is at least one
interface available, iseries_veth must be loaded in this case.
Printing the entire map will give installers some hints about what
interface numbers will appear and how the MAC address may look like.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Thu, 3 Jun 2004 00:58:14 +0000 (17:58 -0700)]
[PATCH] ppc32: add "indirect" DCR access, pass 2
From: Matt Porter <mporter@kernel.crashing.org>
DCR number is encoded in mfdcr/mtdcr command itself and this prevents easy
DCR access when register number is not known on compile time. This patch
adds __mfdcr & __mtdcr helpers which use pre-generated mfdcr/mtdcr
sequences for all possible DCR numbers. We also use GCC extension
__builtin_constant_p to optimize cases when DCR number is in fact known
during compilation.
Signed-off-by: Eugene Surovegin <ebs@ebshome.net> Signed-off-by: Matt Porter <mporter@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Thu, 3 Jun 2004 00:58:03 +0000 (17:58 -0700)]
[PATCH] shrink_all_memory() fixes
- Off-by-one in balance_pgdat means that we're not scanning the zones all
the way down to priority=0.
- Always set zone->temp_priority in shrink_caches(). I'm not sure why I had
the `if (zone->free_pages < zone->pages_high)' test in there, but it's
preventing us from setting ->prev_priority correctly on the
try_to_free_pages() path.
- Set zone->prev_priority to the current priority if it's currently a
"lower" priority. This allows us to build up the pressure on mapped pages
on the first scanning pass rather than only on successive passes.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
The best fix for this is to visit all ram-backed filesystems and give them a
no-op a_ops.writepages. But baling out if the file is memory-backed is a
sufficient coverall and is how we handle this in __filemap_fdatawrite().
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[PATCH] ide: remove useless /proc/ide/siimage from siimage.c
It only gives (not mapped in case of MMIO) DMA base addresses.
The same info is given during driver initialization (if BM-DMA is used)
or can be obtained from 'lspci -v' output (if MMIO-DMA is used).
- convert ->isa_ports into ->flags (IDEPCI_FLAG_ISA_PORTS)
- add IDEPCI_FLAG_{OBS_FORCE_PDC,FORCE_MASTER} flags
and use them in setup-pci.c
- use struct pci_dev ->vendor and ->device fields directly
in generic.c and serverworks.c
- remove no longer needed debug checks (dev->device != d->device)
- remove ->vendor and ->device fields from ide_pci_device_t
- misc cleanups
The ->tf_load and ->exec_command driver hooks were changed to assume
that PIO was the only type of taskfile ever delivered to these functions.
This will be true... in the future, but not today. In other drivers
this change was not needed, but Promise executes commands differently
due to its "ATA packet" hardware features, so the Promise drivers need
this change reverted.
Diagnosis and initial fix by Brad Campbell <brad@wasp.net.au>
The attached patch updates generic HDLC:
- fixed some carrier-related problems (Cisco HDLC and FR links could
report valid link when no carrier was detected at startup).
- fixed kbuild problems with wanxl firmware (building kernel in separate
tree). $(src)/wanxlfw.inc is now wanxlfw.inc_shipped.
Paul Mackerras [Wed, 2 Jun 2004 12:14:29 +0000 (08:14 -0400)]
[PATCH] ppp ldisc close deadlock prevention
Jeff Garzik writes:
> So what was the resolution of this?
This patch is what we want. We don't in fact need to do the read
lock, only the write lock, which is what the original patch did.
However, we need to do it in ppp_synctty.c as well as ppp_async.c.
Thanks to John K Luebs <jkluebs@luebsphoto.com> for pointing out the
problem.
The proper fix is _not_ NET_ETHERNET or default twiddling,
but better overall organization of the ethernet driver selection,
which would include not only CONFIG_NET_GIGE but other options as well.
Reverted back to old behavior until a full and complete solution
appears (and people like it, of course).
* islpci_eth.[c,h], islpci_dev.[c,h], isl_ioctl.[c,h] : added
support for avs header in monitor mode. Based on the work of
Antonio Eugenio Burriel <aeb@ryanstudios.com>. Unified packets
header (rfmon_header and rx_annex) for iwspy.
* oid_mgt.[c,h] : added type to oids. New functions :
oid_cpu_to_le(), mgt_le_to_cpu() and mgt_response_to_str().
* isl_ioctl.c : use private sub-ioctls. Added a
bunch of private sub-ioctls. Removed the le??_to_cpu and
cpu_to_le??. Give the error code when sending wireless
events.
Herbert Xu [Wed, 2 Jun 2004 11:48:29 +0000 (07:48 -0400)]
[PATCH] Check cmd in plip_ioctl
I received a bug report that a PLIP interface was incorrectly identified
as wireless because plip_ioctl did not check what the value of cmd is
before processing the request.
Jeremy Kerr [Wed, 2 Jun 2004 00:18:12 +0000 (17:18 -0700)]
[PATCH] Fix signal race during process exit
Fix a race identified by Jeremy Kerr <jeremy@redfishsoftware.com.au>: if
update_process_times() decides to deliver a signal due to process timer
expiry, it can race with __exit_sighand()'s freeing of task->sighand.
Fix that by clearing the per-process timer state in exit_notify(), while under
local_irq_disable() and under tasklist_lock. tasklist_lock provides exclusion
wrt release_task()'s freeing of task->sighand and local_irq_disable() provides
exclusion wrt update_process_times()'s inspection of the per-process timer
state.
We also need to deal with the send_sig() calls in do_process_times() by
setting rlim_cur to RLIM_INFINITY.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
David S. Miller [Tue, 1 Jun 2004 14:43:05 +0000 (07:43 -0700)]
[SPARC64]: Compat syscall overhaul.
1) Make syscall entry zero-extend all arguments.
2) Sign extend those needed in sys32.S
3) Kill the A() AA() macros, replace with compat_ptr() et al.
in the for_each_cpu_mask() loop we specifically check for each CPU in
the target group to be idle - so push_cpu's runqueue == busiest [==
current runqueue] cannot be true because the current CPU is not idle, we
are running in the migration thread ... But this is not a real problem,
load-balancing we do in a racy way to reduce overhead [and it's all
statistics anyway so absolute accuracy is impossible], and active
balancing itself is somewhat racy due to the migration-thread wakeup
(and the active_balance flag) going outside the runqueue locks [for
similar reasons].
so it all looks quite plausible - the normal SMP boxes dont trigger it,
but Bjorn's 128-CPU setup with a non-trivial domain hiearachy triggers
it.
Bjorn Helgaas [Tue, 1 Jun 2004 06:40:59 +0000 (23:40 -0700)]
[PATCH] active_load_balance() deadlock
active_load_balance() looks susceptible to deadlock when busiest==rq.
Without the following patch, my 128-way box deadlocks consistently
during boot-time driver init.
Pádraig Brady [Tue, 1 Jun 2004 09:52:38 +0000 (11:52 +0200)]
[WATCHDOG] v2.6.6 w83627hf_wdt.c-patch
Add w83627hf_select_wd_register and w83627hf_unselect_wd_register.
Add w83627hf_init to fix initialization problem on certain motherboards.
Make ping and disable code return 0 (int) on success.
Extract set_heartbeat code to seperate function.
Herbert Xu [Tue, 1 Jun 2004 05:35:39 +0000 (22:35 -0700)]
[IPSEC]: Fix xfrm_tunnel leak.
Turns out that the IPIP tunnel used by IPCOMP states are only freed
if the IPCOMP state is deleted by xfrm_state_delete.
This is not the case for all states. For example, an immature IPCOMP
state that dies in add_sa will not go through xfrm_state_delete.
The following patch moves the delete_tunnel call into IPCOMP's
destructor. I think it makes more sense there as IPCOMP is the
only user of the tunnel anyway.
Dave Jones [Tue, 1 Jun 2004 19:10:55 +0000 (20:10 +0100)]
Merge delerium.codemonkey.org.uk:/mnt/nfs/neologic/bar/src/kernel/2.6/trees/bk-linus
into delerium.codemonkey.org.uk:/mnt/nfs/neologic/bar/src/kernel/2.6/trees/agpgart
Dave Jones [Tue, 1 Jun 2004 18:39:56 +0000 (19:39 +0100)]
[AGPGART] intel-agp: skip non-AGP devices
From: Matt Domsch.
The E7205 doesn't have an AGP header, so printing this message is
pretty much useless. Also make it KERN_WARNING as well, as it's
not really worthy of a KERN_ERR
Dave Jones [Tue, 1 Jun 2004 10:00:11 +0000 (11:00 +0100)]
[AGPGART] Make agp=off work again.
This option only worked for the amd64 driver.
On every other driver, the only thing it did was
make it not printk the banner on startup.
Dave Jones [Tue, 1 Jun 2004 09:50:18 +0000 (10:50 +0100)]
[AGPGART] Fix broken serverworks tlb flush routine.
This is horribly broken due to a jiffy wrap bug, we never get out of
the while loop, preventing booting on a kernel with this driver
compiled in. (See https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=124495)
The warning message there has never been reported in any bug report
that google can find, so I'm of the opinion that this driver is trying
to be too clever for its own good. Rip out the jiffies logic completely,
it should be totally unnecessary.
Andrew Morton [Tue, 1 Jun 2004 01:52:40 +0000 (18:52 -0700)]
[PATCH] radeonfb powerdown doesn't work
From: <fxkuehl@gmx.de>
When I switch the computer to standby with echo -n standby >
/sys/power/state the radeonfb driver tells me its suspending to state 1 but
the display does not get turned off. It turns out to be a small typo in
drivers/video/aty/radeon_pm.c.
(from http://bugme.osdl.org/show_bug.cgi?id=2758)
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Tue, 1 Jun 2004 01:51:07 +0000 (18:51 -0700)]
[PATCH] Fix readahead handling in knfsd
From: NeilBrown <neilb@cse.unsw.edu.au>
The read-ahead structures were not being initialised properly, and were not
having the use-count decremented after use, making them fairly useless
(since Apr 2002!).
From: Colin Gibbs <colin@gibbsonline.net> 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>
Andrew Morton [Tue, 1 Jun 2004 01:49:51 +0000 (18:49 -0700)]
[PATCH] SECURITY_SELINUX depends on NET
From: Adrian Bunk <bunk@fs.tum.de>
LD .tmp_vmlinux1
security/built-in.o(.text+0x97e4): In function `selnl_notify':
: undefined reference to `alloc_skb'
security/built-in.o(.text+0x988a): In function `selnl_notify':
: undefined reference to `netlink_broadcast'
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Tue, 1 Jun 2004 01:49:20 +0000 (18:49 -0700)]
[PATCH] Missing pop-off in arch/i386/kernel/acpi/wakeup.S
From: <gniibe@m17n.org>
There is a missing pop-off after call of acpi_enter_sleep_state. On
success, acpi_enter_sleep_state never returns, but on failure, it will
cause kernel OOPS.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Tue, 1 Jun 2004 01:48:47 +0000 (18:48 -0700)]
[PATCH] Add FUTEX_CMP_REQUEUE futex op
From: Jakub Jelinek <jakub@redhat.com>
FUTEX_REQUEUE operation has been added to the kernel mainly to improve
pthread_cond_broadcast which previously used FUTEX_WAKE INT_MAX op.
pthread_cond_broadcast releases internal condvar mutex before FUTEX_REQUEUE
operation, as otherwise the woken up thread most likely immediately sleeps
again on the internal condvar mutex until the broadcasting thread releases it.
Unfortunately this is racy and causes e.g.
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/nptl/tst-cond16.c?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=glibc
to hang on SMP.
http://listman.redhat.com/archives/phil-list/2004-May/msg00023.html contains
analysis how the hang happens, the problem is if any thread does
pthread_cond_*wait in between releasing of the internal condvar mutex and
FUTEX_REQUEUE operation, a wrong thread might be awaken (and immediately go to
sleep again because it doesn't satisfy conditions for returning from
pthread_cond_*wait) while the right thread requeued on the associated mutex
and there would be nobody to wake that thread up.
The patch below extends FUTEX_REQUEUE operation with something FUTEX_WAIT
already uses:
FUTEX_CMP_REQUEUE is passed an additional argument which is the expected value
of *futex. Kernel then while holding the futex locks checks if *futex !=
expected and returns -EAGAIN in that case, while if it is equal, continues
with a normal FUTEX_REQUEUE operation. If the syscall returns -EAGAIN, NPTL
can fall back to FUTEX_WAKE INT_MAX operation which doesn't have this problem,
but is less efficient, while in the likely case that nobody hit the (small)
window the efficient FUTEX_REQUEUE operation is used.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Tue, 1 Jun 2004 01:48:36 +0000 (18:48 -0700)]
[PATCH] Add watchdog timer to iseries_veth driver
From: David Gibson <david@gibson.dropbear.id.au>
Currently the iSeries virtual ethernet driver has no Tx watchdog timer.
This makes it vulnerable to clagging up if the other end of connection is
misbehaving - in particular if it is not giving timely hypervisor level
acks to our data frams.
This patch adds a watchdog timer which resets the connection to any lpar we
seem to be having trouble sending to. With any luck the other end might
behave better after the reset. If not, this will at least unclag the queue
for a while so we can keep talking to the lpars which are behaving
correctly.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Tue, 1 Jun 2004 01:48:25 +0000 (18:48 -0700)]
[PATCH] ppc64: iseries bolted SLB fix
From: Anton Blanchard <anton@samba.org>
Legacy iseries has problems with the bolted vmalloc patch. This patch
disables the optimisation on iseries and creates a slb_add_bolted helper
function.
Also, while we require all SLB entries to be context switched, we werent
informing the iseries hypervisor.
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Tue, 1 Jun 2004 01:48:14 +0000 (18:48 -0700)]
[PATCH] ppc64: SLB accounting fix
From: Anton Blanchard <anton@samba.org>
Even though we have a variable containing the number of entries in the SLB,
we hardwire the value at boot. We also dont use the variable in the head.S
fastpath handler.
This patch removes it.
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Tue, 1 Jun 2004 01:48:03 +0000 (18:48 -0700)]
[PATCH] ppc64: bolt first vmalloc segment into SLB
From: Anton Blanchard <anton@samba.org>
Based on some profiles we noticed the first vmalloc region was being
continually cast out and replaced. All modules end up there so it is one
of our hottest segments.
This patch bolts the vmalloc region into the second segment. SLB misses on
an NFS benchmark were reduced by about 10% with this patch.
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>