Fix IDE initialization when we don't probe for interrupts.
The driver obviously cannot rely on the interrupt handler
when it is probing for interrupts, so the identify code is
written to not use interrupts and the probing code will
disable the interrupt after having figured out which one it
is.
The non-probe code should do the same, otherwise confusion
happens.
Dave Jones [Wed, 9 Jul 2003 17:30:21 +0000 (18:30 +0100)]
[CPUFREQ] More misc cleanups.
- CPUFREQ_ALL_CPUS is not a valid argument any more, don't mention it
in include/linux/cpufreq.h
- without a driver->init() function a cpufreq driver isn't even
loaded, so remove that check in the per-CPU initialization
- whitespace and clarification changes to linux/cpufreq.
Scott Feldman [Mon, 7 Jul 2003 21:57:00 +0000 (17:57 -0400)]
[e1000] s/int/unsigned int/ for descriptor ring indexes
* Perf cleanup: s/int/unsigned int/ for descriptor ring indexes
[suggestion by Jeff Garzik].
* Perf cleanup: cache references to ring elements using local pointer
Scott Feldman [Mon, 7 Jul 2003 21:54:51 +0000 (17:54 -0400)]
[e1000] h/w workaround for mis-fused parts
* h/w workaround: several 10's of thousands of 82547 controllers where
mis-fused during manufacturing, resulting in PHY Tx amplitude to be
too high and out of spec. This workaround detects those parts, and
compensates the Tx amplitude by subtracting ~80mV.
Herbert Xu [Mon, 7 Jul 2003 20:55:20 +0000 (06:55 +1000)]
[IPSEC] Add policy expiration
This patch finally adds policy expiration.
Note that it resends soft policy expire messages every 30 seconds. This
is needed as when "soft use expire" is used for dead peer detection,
a lost message could lead to a dead peer that isn't discovered until the
SAs expire.
I've only implemented notification for XFRM as I didn't want to just add
another PFKEY extension in case it collides with something else. Of
course it could be easily done for PFKEY with an extension too.
[PATCH] clean module_exit in m68knommu serial drivers
Remove un-used commented module_exit functions from m68knommu
ColdFire and 68328 serial drivers. These drivers currently cannot
be configured as modules, and they have no exit functions.
[PATCH] fix security_initcall in m68knommu linker script
Global SECURITY_INIT macro cannot be used inside .init section
for m68knommu linker script. It is a complete section of its own,
need to just list the components individually.
The intent patches broke behaviour w.r.t. following symlinks when
doing an open() with file creation. The problem occurs in open_namei()
because the LOOKUP_PARENT flag is no longer set when we do the call to
follow_link().
[PATCH] tgkill patch for safe inter-thread signals
This is the updated versions of the patch Ingo sent some time ago to
implement a new tgkill() syscall which specifies the target thread
without any possibility of ambiguity or thread ID wrap races, by passing
in both the thread group _and_ the thread ID as the arguments.
This is really needed since many/most people still run with limited PID
ranges (maybe due to legacy apps breaking) and the PID reuse can cause
problems.
Bruno Ducrot [Mon, 7 Jul 2003 06:04:55 +0000 (23:04 -0700)]
[PATCH] powernow-k7 typo fix
Due to a typo in powernow-k7.c, the value which correspond
to the CPU core multiplicator and the VID value are swapped
when we go down to up in frequency step.
Paul Mackerras [Mon, 7 Jul 2003 06:04:09 +0000 (23:04 -0700)]
[PATCH] Compile fix and cleanup for macserial driver
This adds a declaration that the macserial driver needs in order to
compile correctly, and removes some old SERIAL_DO_RESTART junk which
isn't used (SERIAL_DO_RESTART is never defined in this driver) and which
I think is incorrect anyway, since it looks to me like it would
potentially return an ERESTARTSYS error without a signal pending.
Rusty Russell [Mon, 7 Jul 2003 06:01:50 +0000 (23:01 -0700)]
[PATCH] switch_mm and enter_lazy_tlb: remove cpu arg
switch_mm and enter_lazy_tlb take a CPU arg, which is always
smp_processor_id(). This is misleading, and pointless if they use
per-cpu variables or other optimizations. gcc will eliminate
redundant smp_processor_id() (in inline functions) anyway.
This patch includes the last peices of the flat laoder shared
library support. Define the shared lib limit and implement a
flag for doing kernel level tracing.
This patch, depends on "IPV6: remove unused variable,"
fixes algorithm for updating lifetime according to RFC2462.
- We should not delete an address even if prefix is
advertised with valid lifetime == 0.
- support the "2 hours" rule.
Andrew Morton [Sun, 6 Jul 2003 12:41:34 +0000 (05:41 -0700)]
[PATCH] BSD accounting speedup
From: Ingo Molnar <mingo@elte.hu>
Most distributions turn on process accounting - but even the common
'accounting is off' case is horrible SMP-scalability-wise: it accesses a
global spinlock during every sys_exit() call, which bounces like mad on SMP
(and NUMA) systems.
Andrew Morton [Sun, 6 Jul 2003 12:41:12 +0000 (05:41 -0700)]
[PATCH] xattr: fine-grained locking
From: Andreas Gruenbacher <agruen@suse.de>
This patch removes the dependency on i_sem in the getxattr and
listxattr iops of ext2 and ext3. In addition, the global ext[23]_xattr
semaphores go away. Instead of i_sem and the global semaphore, mutual
exclusion is now ensured by per-inode xattr semaphores, and by locking
the buffers before modifying them. The detailed locking strategy is
described in comments in fs/ext[23]/xattr.c.
Due to this change it is no longer necessary to take i_sem in
ext[23]_permission() for retrieving acls, so the
ext[23]_permission_locked() functions go away.
Additionally, the patch fixes a race condition in ext[23]_permission:
Accessing inode->i_acl was protected by the BKL in 2.4; in 2.5 there no
longer is such protection. Instead, inode->i_acl (and inode->i_default_acl)
are now accessed under inode->i_lock. (This could be replaced by RCU in
the future.)
In the ext3 extended attribute code, an new uglines results from locking
at the buffer head level: The buffer lock must be held between testing
if an xattr block can be modified and the actual modification to prevent
races from happening. Before a block can be modified,
ext3_journal_get_write_access() must be called. But this requies an unlocked
buffer, so I call ext3_journal_get_write_access() before locking the
buffer. If it turns out that the buffer cannot be modified,
journal_release_buffer() is called. Calling ext3_journal_get_write_access
after the test but while the buffer is still locked would be much better.
Andrew Morton [Sun, 6 Jul 2003 12:41:05 +0000 (05:41 -0700)]
[PATCH] xattrr: preparation for fine-grained locking
From: Andreas Gruenbacher <agruen@suse.de>
Andrew Morton found that there is lock contention between extended
attribute operations (like reading ACLs, which `ls -l' needs to do)
and other operations on the same files. This is due to the fact that
all extended attribute syscalls take inode->i_sem before calling into
the filesystem code.
To fix this problem, this patch no longer takes inode->i_sem in the
getxattr and listxattr syscalls, and moves the lock taking code into
the file systems. (Another patch improves the locking strategy in
ext2 and ext3.)
Andrew Morton [Sun, 6 Jul 2003 12:40:57 +0000 (05:40 -0700)]
[PATCH] xattr: update-in-place optimisation
From: Andreas Gruenbacher <agruen@suse.de>
It is common to update extended attributes without changing the value's
length. This patch optimizes this case. In addition to that, the current
code tries to recognize early when extended attribute blocks become
empty. This optimization is not of significant value, so this patch
removes it, and moves the empty block test further down.
Andrew Morton [Sun, 6 Jul 2003 12:40:50 +0000 (05:40 -0700)]
[PATCH] xattr: blockdev inode selection fix
From: Andreas Gruenbacher <agruen@suse.de>
The inode->i_bdev field is not the same as inode->i_sb->s_bdev or bh->b_bdev.
We must compare inode->i_sb->s_bdev with bh->b_bdev, or else equal extended
attribute block will not be found.
Andrew Morton [Sun, 6 Jul 2003 12:40:42 +0000 (05:40 -0700)]
[PATCH] xattr: cleanups
From: From: Andreas Gruenbacher <agruen@suse.de>
* Various minor cleanups and simplifications in the extended attributes
and acl code.
* Use a smarter shortcut rule in ext[23]_permission(): If the mask
contains permissions that are not also contained in the group
file mode permission bits, those permissions can never be granted by
an acl. (The previous shortcut rule was more coarse.)
Andrew Morton [Sun, 6 Jul 2003 12:40:14 +0000 (05:40 -0700)]
[PATCH] use task_cpu() not ->thread_info->cpu in sched.c
From: Mikael Pettersson <mikpe@csd.uu.se>
This patch fixes two p->thread_info->cpu occurrences in kernel/sched.c to
use the task_cpu(p) macro instead, which is optimised on UP. Although one
of the occurrences is under #ifdef CONFIG_SMP, it's bad style to use the
raw non-optimisable form in non-arch code.
[PATCH] flat loader v850 specific support abstracted
Architecture specific flat loader code for v850 moved into its
own v850 flat.h header. This patch also adds supporti for a number
of relocation cases that need to be handled at laod time.
Most of this code is originally from Miles Bader <miles@gnu.org>.