Rusty Russell [Sat, 14 Jun 2003 04:57:53 +0000 (21:57 -0700)]
[PATCH] sched.c neatening and fixes.
1) Fix the comments for the migration_thread. A while back Ingo
agreed they were exactly wrong, IIRC. 8).
2) Changed spin_lock_irqsave to spin_lock_irq, since it's in a
kernel thread.
3) Don't repeat if the task has moved off the original CPU, just finish.
This is because we are simply trying to push the task off this CPU:
if it's already moved, great. Currently we might theoretically move
a task which is actually running on another CPU, which is v. bad.
4) Replace the __ffs(p->cpus_allowed) with any_online_cpu(), since
that's what it's for, and __ffs() can give the wrong answer, eg. if
there's no CPU 0.
5) Move the core functionality of migrate_task into a separate function,
move_task_away, which I want for the hotplug CPU patch.
Jörn Engel [Sat, 14 Jun 2003 03:46:25 +0000 (20:46 -0700)]
[PATCH] adjust ppp to zlib change
This bit is left from the zlib changes. According to Paul, the zlib
bug is already caught in userspace pppd, but not in the kernel ppp
code. With this patch, there is one potential hickup less in ppp.
Ben Collins [Fri, 13 Jun 2003 11:27:42 +0000 (04:27 -0700)]
[PATCH] Register scsi devices after naming them
scsi_add_lun doesn't set sdp->devfs_name before calling
scsi_register_device(). Since scsi_register_device calls down to things
like sd_probe, which do try to use sdp->devfs_name, things fail.
Just an easy change, moving the sdp->devfs_name creation before calling
scsi_register_device().
Andi Kleen [Fri, 13 Jun 2003 11:27:34 +0000 (04:27 -0700)]
[PATCH] x86-64 merge
This brings the x86-64 port uptodate. Only architecture specific
changes.
The biggest change is the forward port of the 2.4 timing code with full
HPET support. This should improve timing stability on some Opteron
boxes considerably.
Also add the optimized low level functions from 2.4 (clear_page,
copy_page, memcpy, csum_copy etc.) They were supposed to be merged
earlier, but got dropped due to some SNAFU. Especially the clear_page
changes should improve performance considerably, because the old version
used write combining writes which put all the new process data out of
cache. New version serves cache hot.
Also some other bugfixes.
Full changelog:
- Re-add some lost patches: improved copy_page, clear_page, memset, memcpy,
csum_copy from 2.4.
- New timing code from 2.4 (Bryan O'Sullivan, John Stultz, Vojtech Pavlik)
- Use correct MSR to write northbridge MCE configuration
- Fix and reenable simics check in APIC timer calibration
- Check if BIOS enabled APIC and don't use APIC mode if not.
- Remove some obsolete code in APIC handling.
- Fix potential races in the IOMMU code.
- Don't print backtrace twice on oops.
- Fix compilation of swsuspend (Pavel Machek)
- Add oops locking to kernel page faults.
- Use prefetcht0 for C level kernel prefetches.
Chris Wright [Fri, 13 Jun 2003 11:27:27 +0000 (04:27 -0700)]
[PATCH] lsm: setfsuid/setgsuid bug fix (4/4)
Patch from Jakub Jelínek <jakub@redhat.com>
Make sure setfsuid/setfsgid return values are right. Before
include/linux/security.h was added, setfsuid/setfsgid always returned
old_fsuid, no matter if the fsuid was actually changed or not.
With the default security ops it seems to do the same, because both
security_task_setuid and security_task_post_setuid return 0, but these
are hooks which seem to return 0 on success, -errno on failure, so if
some non-default security hook is installed and ever returns -errno in
setfsuid/setfsgid, -errno will be returned from the syscall instead of
the expected old_fsuid. This makes it hard to distinguish uids
0xfffff001 .. 0xffffffff from errors of security hooks.
The task_kmod_set_label hook is no longer necessary.
kmod is now handled by keventd which already does reparent_to_init, so
there is no need to worry about getting the security labels right for
code running off the keventd workqueue.
Chris Wright [Fri, 13 Jun 2003 11:27:01 +0000 (04:27 -0700)]
[PATCH] lsm: Early init for security modules (1/4)
As discussed before, this allows for early initialization of security
modules when compiled statically into the kernel. The standard
do_initcalls is too late for complete coverage of all filesystems and
threads, for example.
Andrew Morton [Fri, 13 Jun 2003 10:43:10 +0000 (03:43 -0700)]
[PATCH] fix writeback for dirty ramdisk blockdev inodes
Once the blockdev inode for /dev/ram0 is dirtied we have a memory-backed
inode on the blockdev superblock's s_dirty list.
sync_sb_inodes() sees the memory-backed inode on the superblock and assumes
that all the other inodes on the superblock are also memory-backed. This is
not true for the blockdev superblock! We forget to write out dirty pages
against the following blockdevs.
Fix this by just leaving the inode dirty and moving on to inspect the other
blockdev inodes on sb->s_io.
(This is a little inefficient: an alternative is to leave dirtied
memory-backed inodes on inode_in_use, so nobody ever even considers them for
writeout. But that introduces an inconsistency and is a bit kludgey).
Kurt Robideau [Fri, 13 Jun 2003 05:36:16 +0000 (22:36 -0700)]
[PATCH] Rocket patch against 2.5.70-bk18
Here is rocket driver patch against 2.5.70-bk18. Changes are:
- Removed non-GPL license text from headers
- Removed check_region()/request_region() raciness
- Made the driver a >2.5 driver only (as you had suggested)
Linus Torvalds [Thu, 12 Jun 2003 02:31:26 +0000 (19:31 -0700)]
Fix rcu list poisoning - since another CPU may be traversing the list
as we delete the entry, we can only poison the back pointer, not the
traversal pointer (rcu traversal only ever walks forward).