M68k maintainership update:
- Transfer maintainership to Roman and me (ack'ed by Jes and Roman)
- Update main website URL
- Add Linux/m68k CVS repository website
M68k: Fix build after <asm/pgalloc.h> surgery in 2.6.8-rc1:
- Add missing include on machines with a standard m68k MMU
- Convert __pte_free_tlb() to a macro (like it is on most other archs) on
Sun-3, to avoid include hell
[PATCH] fix readahead breakage for sequential after random reads
Current readahead logic is broken when a random read pattern is followed by
a long sequential read. The cause is that on a window miss ra->next_size
is set to ra->average, but ra->average is only updated at the end of a
sequence, so window size will remain 1 until the end of the sequential
read.
This patch fixes this by taking the current sequence length into account
(code taken from towards end of page_cache_readahead()), and also setting
ra->average to a decent value in handle_ra_miss() when sequential access is
detected.
Khalid Aziz [Wed, 28 Jul 2004 16:03:11 +0000 (09:03 -0700)]
[PATCH] ipmi_msghandler module load failure fix
On a 2.6.7 kernel, when I try to modprobe ipmi_msghandler, it fails to load
with following message:
FATAL: Error inserting ipmi_msghandler (/lib/modules/2.6.7/kernel/drivers/char/ipmi/ipmi_msghandler.ko): Invalid module format
And there is an error message in dmesg:
ipmi_msghandler: init symbol 0xa000000200058080 used in module code at a000000200031b32
What I have been able to determine is that ipmi_msghandler.c defines
ipmi_init_msghandler() as the module_init() routine and then it also calls
ipmi_init_msghandler() diretcly from couple of other places. This does not
seem to be okay in 2.6.7 kernel. I was able to fix this by defining a new
module_init routine which in turn calls ipmi_init_msghandler(). I also
removed __init from ipmi_init_msghandler() since it gets called from
ipmi_open() on an open of the ipmi device file. So I would think we want
to keep ipmi_init_msghandler() around even after initialization.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Fix a bug in do_proc_doulongvec_minmax() where the the string buffer was
too short to parse a 64-bit number expressed in decimal. That was causing
problems with entries in /proc/sys using long and allowing large number
(such as -1)
[PATCH] Fix rivafb's NV_ARCH_, cleanup DEBUG, backlight control on ppc
- fixes the PCI-IDs (needed to get it to work on at least the NV17)
- cleans up the DEBUG option (similar to the new radeonfb). This also
makes it easy to replace printk by btext_printf() (on ppc) or similar to
ease debugging of the fb code when all else fails.
inadvertently broke ia64 because the patch assumed that pgd_offset_k() is
just an optimization of pgd_offset(), which it is not. This patch fixes
the problem by introducing pgd_offset_gate(). On architectures on which
the gate area lives in the user's address-space, this should be aliased to
pgd_offset() and on architectures on which the gate area lives in the
kernel-mapped segment, this should be aliased to pgd_offset_k().
This bug was found and tracked down by Peter Chubb.
Signed-off-by: <davidm@hpl.hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Ryan S. Arnold [Wed, 28 Jul 2004 15:59:52 +0000 (08:59 -0700)]
[PATCH] ppc64: HVCS driver
* include/asm-ppc64/hvcserver.h
New file added to wrap ppc64 architecture specific firmware calls for
use by HVCS. This file provides a struct hvcs_partner_info definition,
headers for partner info gathering and vterm connection and termination
interfaces.
* arch/ppc64/kernel/Makefile
Added build directive for hvcserver.o when HVCS is configured.
* arch/ppc64/kernel/hvconsole.c
Exported hvc_put_chars() and hvc_get_chars() for use by HVCS.
* arch/ppc64/kernel/hvcserver.c
Body of hvcserver module which accompanies the hvcs module and provides
ppc64 architecture firmware calls for use by HVCS. This file provides
function bodies for partner info gathering and vterm connection and
termination interfaces.
* drivers/char/Kconfig
Added CONFIG_HVCS option for both built-in version and module version
of hvcs.
* drivers/char/Makefile
Added build directive for hvcs.o when CONFIG_HVCS is configured.
* drivers/char/hvcs.c
This is the device driver for the IBM Hypervisor Virtual Console
Server, "hvcs". The IBM hvcs provides a tty driver interface to allow
Linux user space applications access to the system consoles of logically
partitioned operating systems, e.g. Linux, running on the same
partitioned Power5 ppc64 system. Physical hardware consoles per
partition are not practical on this hardware so system consoles are
accessed by this driver using inter-partition firmware interfaces to
virtual terminal devices.
* Documentation/powerpc/hvcs.txt
HVCS installation and usage documentation.
Thanks everyone for all the help with this driver [Andrew Morton, Paul
Mackerras, Ben Herrenschmidt, Dave Hansen, Paul Mackerras, Dave Boutcher,
Hollis Blanchard, Santiago Leon, Brian King, Randy Dunlap].
Signed-off-by: Ryan S. Arnold <rsa@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Joel Schopp [Wed, 28 Jul 2004 15:59:41 +0000 (08:59 -0700)]
[PATCH] ppc64 SMT bugfix
This patch is fairly straightforward. maxcpus should be per SMT thread and
not per physical processor. SUSE picked this up back in May (was discussed
on ppc64 mailing list) and has had no trouble with it.
Signed-off-by: Joel Schopp <jschopp@austin.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Mackerras [Wed, 28 Jul 2004 15:59:29 +0000 (08:59 -0700)]
[PATCH] ppc64: whitespace cleanup in prom.c
This patch, originally from Linas Vepstas, cleans up some wonky indentation
and other formatting issues in arch/ppc64/kernel/prom.c. It does not change
any actual code.
Signed-off-by: Linas Vepstas <linas@linas.org> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Mackerras [Wed, 28 Jul 2004 15:59:18 +0000 (08:59 -0700)]
[PATCH] ppc64: Fix RAS irq handlers
On pSeries systems, the firmware tells us a list of interrupt numbers
that we should enable in order to detect various error conditions.
When we get one of these interrupts we are supposed to call the
firmware, which will work out and tell us what the error was and
possibly also fix it.
We were not correctly parsing the property values that tell us which
interrupts need to be handled in this fashion. This patch fixes it.
It exports prom_n_intr_cells from prom.c since that is needed to do
the parsing properly.
Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Joel Schopp [Wed, 28 Jul 2004 15:59:08 +0000 (08:59 -0700)]
[PATCH] ppc64: cpu hotplug fix
On Power4 and earlier hardware there is no need to clear the CPPR (see RPAp
479 section 18.5.4.7.2 for what little info there is on the CPPR) when
stopping a cpu. On hardware that uses Power5 an undocumented change has
been made that requires the CPPR to be cleared if an isolate is to be done
on the stopped cpu. So the following patch lets cpu hotplug work on the
recent hardware.
I sent this patch to the ppc64-dev list back in mid April and Suse picked
it up then for SLES9 so it has been well tested for several months.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Wed, 28 Jul 2004 15:58:57 +0000 (08:58 -0700)]
[PATCH] ppc64: remove multiple IRQ optimisation
ppc64 has an optimisation where it loops on get_irq until there are no more
interrupts to be handled. Mark Hack notes that this optimisation hardly
ever hits and costs us a potentially expensive extra read of an interrupt
register every interrupt.
Also make do_IRQ void, the callers never use the return value.
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
David Gibson [Wed, 28 Jul 2004 15:58:46 +0000 (08:58 -0700)]
[PATCH] page align emergency stack
The PPC64 ABI requires the stack to be 128 byte aligned (and that can
become important if AltiVec registers are saved there). In the kernel,
that's usually dealt with by the fact that the stack has a page
more-or-less to itself. However, the emergency stacks (used in SMP bringup
and when we detect a bad stack pointer) aren't necessarily page aligned, or
anything aligned for that matter. This patch applies the necessary
alignement constraint to them.
Signed-off-by: David Gibson <dwg@au.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Alan Cox [Wed, 28 Jul 2004 15:58:23 +0000 (08:58 -0700)]
[PATCH] DVB major number
The DVB merge forgot an important change - DVB is currently using
major 250, which is "local" while devices.txt (and thus FSSTND/LSB) require
it uses the officially allocated 212 major.
Fortunately most 2.6 users don't currently use DVB and vendors ship devfs
or versions of makedev that do the right thing and generate 212 majors.
Fix below, original author: Red Hat <alan@redhat.com>, OSDL certificate
of authorship included by reference.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Updating the mm lock ordering documentation drew attention to the fact that
we were wrong to blithely add down_read(&mm->mmap_sem) to swapoff's
unuse_process, while it holds swapcache page lock: not very likely, but it
could deadlock against, say, mlock faulting a page back in from swap.
But it looks like these days it's safe to drop and reacquire page lock if
down_read_trylock fails: the page lock is held to stop try_to_unmap
unmapping the page's ptes as fast as try_to_unuse is mapping them back in;
but the recent fix for get_user_pages works to prevent that too.
BK is still missing one piece for Oleg's install_page/vmtruncate races.
Oleg didn't explicitly ACK this, but I think he did implicitly: Oleg?
The previous patch to install_page, returning an error if !page_mapping
once page_table_lock is held, is not enough to guard against vmtruncate.
When unmap_mapping_range already did this vma, but truncate_inode_pages has
not yet done this page, page->mapping will still be set, but we must now
refrain from inserting the page into the page table.
Could check truncate_count, but that would need caller to read and pass it
down. Instead, recheck page->index against i_size, which is updated before
unmap_mapping_range. Better check page->mapping too: not really necessary,
but it's accidental that index is left when mapping is reset.
Also, callers are expecting -EINVAL for beyond end of file, not -EAGAIN.
[PATCH] selinux: fix clearing of new personality bit on security transitions
This patch moves the clearing of the new personality bit from
selinux_bprm_apply_creds (called from compute_creds) to
selinux_bprm_set_security (called from prepare_binprm). This ensures that the
bit is cleared at the same point in exec processing as for setuid/setgid
binaries, prior to setting up the new image.
Signed-off-by: Stephen Smalley <sds@epoch.ncsc.mil> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Hopefully fixes the free-of-a-freed-page BUG caused during CDRW writing.
This also fixes a problem in the bouncing for io errors (it needs to free
the pages and clear the BIO_UPTODATE flag, not set it. it's already set.
passing -EIO to bio_endio() takes care of that).
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[PATCH] compat_clock_getres shouldn't return -EFAULT if res == NULL
For clock_getres(clockid_t clock_id, struct timespec *res), the specification
says "If res is NULL, the clock resolution is not returned." So this kind of
call should succeed. The current implementation returns -EFAULT.
The patch fixes the bug in compat_clock_getres().
Signed-off-by: Gordon Jin <gordon.jin@intel.com> Signed-off-by: Arun Sharma <arun.sharma@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
rcu_offline_cpu and rcu_move_batch have been broken since the list_head's
in struct rcu_head and struct rcu_data were replaced with singly-linked
lists:
CC kernel/rcupdate.o
kernel/rcupdate.c: In function `rcu_move_batch':
kernel/rcupdate.c:222: warning: passing arg 2 of `list_add_tail' from
incompatible pointer type
kernel/rcupdate.c: In function `rcu_offline_cpu':
kernel/rcupdate.c:239: warning: passing arg 1 of `rcu_move_batch' from
incompatible pointer type
kernel/rcupdate.c:240: warning: passing arg 1 of `rcu_move_batch' from
incompatible pointer type
kernel/rcupdate.c:236: warning: label `unlock' defined but not used
Kernel crashes when you try to offline a cpu, not surprisingly.
It also looks like rcu_move_batch isn't preempt-safe so I touched that up,
and got rid of an unused label in rcu_offline_cpu.
John W. Linville [Wed, 28 Jul 2004 09:27:25 +0000 (05:27 -0400)]
[sound/oss i810] misc small changes
Attached is a second patch to account for (most of) Herbert Xu's
comments.
I have left-out the part about changing state->card to a
local variable where it is used a lot. Unfortunately, that usage is
somewhat pervasive and I would prefer to make those changes in a separate
patch -- after I have had a chance to do some testing.
If you'd prefer one patch to account for the original plus these
changes, let me know and I'll be happy to provide it.
John W. Linville [Wed, 28 Jul 2004 09:26:13 +0000 (05:26 -0400)]
[sound/oss i810] add MMIO DSP support
Enclosed is a patch for the i810_audio OSS driver to support using
memory-mapped I/O for those chipsets that support it.
o Added a family of macros -- I810_IOREADx() and I810_IOWRITEx() -- that
key off the existing card->use_mmio flag to select between using readx/writex
or inx/outx for I/O operations.
o Converted existing inx/outx invocations to use
I810_IOREADx/I810_IOWRITEx instead.
o Changed GET_CIV(), GET_LVI, and CIV_TO_LVI() not only to use
I810_IOREADx/I810_IOWRITEx but also to take "card" (i.e. struct i810_card)
paramter.
o Removed check for "Pure MMIO interfaces" in i810_probe() -- replaced w/
(relocated) check for no I/O resources available.
Andrew Chew [Wed, 28 Jul 2004 09:17:36 +0000 (05:17 -0400)]
[ata] fix reversed bit definitions in linux/ata.h
The macros ata_id_has_lba() and ata_id_has_dma() seem to have their bits
reversed. LBA support is bit 9 of word 49 in the identify page, whereas
DMA support is bit 8 of word 49 in the identify page.
Pat LaVarre [Wed, 28 Jul 2004 09:15:30 +0000 (05:15 -0400)]
[PATCH] SATAPI despite no data
I see we lost this source line in the changes since 2.6.7. But if I try
SATAPI expecting no data without this source line, then my ata_piix.ko
promptly dies with such complaints as:
kernel: irq 18: nobody cared!
With this source line, I find I can expect no data, though I still have
to add auto sense to overcome:
[PATCH] prism54 Fix initialization with older firmware
* In the card initialization routine, we try to set the
output power. For firmware < 1.0.4.3, this leads to a
worrying "mgt_commit has failed .." in the log although
the device continues to react normally.
Fix is simple, do not try to configure output power.
(which I believe we should not be doing anyway as it is
probably against local country regulations)
* Reintroduce pushing 0 into the TRDY_TIMEOUT and RETRY_TIMEOUT
registers. Make this configurable with module parameter
init_pcitm.
* We now have the ludicrous situation that some hardware setups
require this (not even pushing 0xFF helps), whilst others
don't care either way (the majority), and yet others bork
if anything is pushed into these regs.
If anybody can explain this (including Conexant :-) ), my ears
are open.
[PATCH] prism54 Fix reference to uninitialized pointer
* oid_mgt.c is calling islpci_mgt_transaction passing the address
of a pointer to the management frame. This is not being
initialized by the caller. The callee only updates this
pointer when successful. When not, boom.
* Being ultracautious again, not only initialize in the caller,
also null out the pointer unconditionally in the callee.
Alexander Viro [Mon, 26 Jul 2004 14:04:13 +0000 (07:04 -0700)]
[PATCH] broken stuff marked as such in Kconfig
a) ppc KGDB builds only on two subarch; say so in Kconfig
b) ide-pmac.c can't be a module; make it dependent on IDE=y.
c) a bunch of isdn drivers is broken on ppc; marked as such
d) oaknet is broken; marked as such (includes on files that do not
exist, etc.)
e) buslogic and cyber2000 are broken on sparc64
f) s3trio framebuffer is broken
g) usual 8250-based serial is broken on sparc64; in principle it might
be worth supporting (there are PCI cards of that sort), for now marked as
broken (no asm/serial.h, to start with).
Alexander Viro [Mon, 26 Jul 2004 14:03:51 +0000 (07:03 -0700)]
[PATCH] asm-ppc/reg.h namespace pollution fixes
asm-ppc/reg.h defines pollutes namespace like there's no tomorrow;
among other things there are
LR
SR0...SR15
DEC
etc.
That breaks quite a few drivers that should otherwise work on ppc. SR...
and LR were never used by ppc code; commented out in reg.h (note that
they are just aliases for SPRN_SR... and SPRN_LR). RPA commented out and
its instances in ppc code (all four of them) replaced with SPRN_RPA. Ditto
for DEC. The rest of the offenders (DAR and PVR) are left alone for now and
#undef'ed in drivers in question.
We probably want to rip all these guys out of reg.h and convert ppc users
to SPRN_... forms - file ends up included in alot of places and namespace
pollution like that is a Bad Thing(tm).
Alexander Viro [Mon, 26 Jul 2004 14:03:29 +0000 (07:03 -0700)]
[PATCH] pointer-to-int conversion fixes
Assorted pointer-to-int fixes:
a) some places want to take pointer modulo alignment or extract
integer that was cast to pointer (which is legitimate), but do that via
wrong cast, triggering sparse warnings.
b) usual %x (int)ptr -> %p ptr fixes
Alexander Viro [Mon, 26 Jul 2004 14:02:32 +0000 (07:02 -0700)]
[PATCH] cciss compat ioctl fix
cciss compat ioctls were broken (mixing kernel and userland pointers);
fixed (and cleaned up) by switch to compat_alloc_user_space() and elimination
of set_fs().
Alexander Viro [Mon, 26 Jul 2004 14:02:20 +0000 (07:02 -0700)]
[PATCH] annotations for arch/ppc and include/asm-ppc
Usual set - explicit -D<arch>=1 for sparse, __sighandler_t / __sigrestore_t
annotated, annotations in arch/ppc/kernel/*, etc. - same as for other platforms
Alexander Viro [Mon, 26 Jul 2004 14:01:57 +0000 (07:01 -0700)]
[PATCH] CONFIG_MCOUNT fix for sparc64
CONFIG_MCOUNT on sparc64 is currently broken; we have both mcount and _mcount
declared (and aliased to each other), but end up exporting the wrong one. As
the result, with that option all modules get unresolved symbol.