Mika Kukkonen [Fri, 2 Jul 2004 03:36:36 +0000 (20:36 -0700)]
[PATCH] Remaining sparse warnings in allnoconfig
Attached is a smallish patch for couple trivial sparse warnings in
allnoconfig build and more importantly an "excuses" text file explaining
why the rest have not been fixed.
Basically all of them (with the exception of the one in Andrews tree) need
some serious re-engineering.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
- Remove support for NEC Eagle which is a system that was produced in
almost zero numbers.
- Sort out the MV-64340 code a little more.
- Fix computation of interrupts masks for the upper 32 interrupts of the
MV-64340.
- Gas was producing bad break codes for MIPS32/MIPS64 processors for a while.
Add a workaround to the kernel trap handler.
- Rewrite RM7000 cache code in a way where it's hopefully easier to read.
- Handle 64-bit pointers right for the BCM1250.
- Try to share code for GT-64240 and MV-64340.
- Fix RM9000 definition of _CACHE_CACHABLE_NONCOHERENT.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul King [Fri, 2 Jul 2004 03:34:52 +0000 (20:34 -0700)]
[PATCH] Telephony Driver ISAPNP fix
I recently got an ISA Phonejack card and quickly found it wouldn't work
with a stock 2.6.7 kernel.
So found this bug in the ISAPNP part of the code, throughout the code it
use it's own data structure to reference it's base IO address, in the
ISAPNP code this was not being populated with any value hence it can't talk
to the card and so the driver fails.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
zfcp host adapter changes:
- Exploit FC transport class and autoselect SCSI_FC_ATTRS for zfcp.
- Fix acl download to zfcp controller.
- Change message loglevels to make zfcp less noisy.
- Don't wait for SBAL to finish for command aborts after a timeout
and for logical unit or target resets.
- Force reopen of port if link test failed.
- Fix race between qdio_shutdown and do_QDIO.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
From: Ursula Braun-Krahl <braunu@de.ibm.com>
From: Frank Pavlic <pavlic@de.ibm.com>
From: Thomas Spatzier <tspat@de.ibm.com>
From: Peter Tiedemann <ptiedem@de.ibm.com>
s390 network driver changes:
- ctc: replace snprintf by strlcpy.
- lcs: change info text for lcs cards from "OSA2 card" to "OSA LCS card".
- lcs: fix alignment of lcs_cmd structure to get multicast pings working.
- lcs: first call in_dev_put then register multicast addresses.
- netiucv: remove unused device timer and unused flags field.
- netiucv: include interrupt type in pathid mismatch message.
- qeth: don't start a new kernel thread for every new ip address.
- qeth: fix IP assist command sequence numbers.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
dasd device driver changes:
- Fix calculation of number of idal words needed for a channel program.
- Fix race in i/o termination after request timeout.
- Fix race in state change interrupt handling.
- Fix call to BLKPG ioctl in dasd_destroy_partitions.
- Integrate irb into dasd request to avoid kmalloc in the interrupt handler.
- Store build clock for error recovery requests.
- Remove unused cpu variable from dasd_ext_handler.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Common i/o layer changes:
- Consolidate store channel subsystem characteristics from its three
users (css, cmf and qdio) to a single location.
- Always use new stipd format and move creation of global path group
to channel subsystem init function. Add dummy init_IRQ to setup.c
and remove requestirq.c.
- Remove bogus CHPID_LONGS define.
- Add more magic to catch chpids coming online again without generating
machine checks.
- Fix check for unsolicited interrupts. Deferred cc=1 indicates a
solicited interrupt.
- Fix progress indication in qdio summary bytes to avoid loosing interrupts.
- Rename console_device to console_devno to avoid naming conflict.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
From: Arnd Bergmann <arndb@de.ibm.com>
From: Christian Bornträger <cborntra@de.ibm.com>
From: Michael Holzheu <holzheu@de.ibm.com>
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
s390 core changes:
- Fix cpu_idle loop if /proc/sys/kernel/hz_timer is set.
- Store correct trap indication on 64 bit for call to do_debugger_trap
in the single stepped svc code.
- Avoid the use of alloca in the debug feature.
- Remove extraneous includes of linux/version.h.
- Regenerate default configuration.
- Mention eServer z890 in Kconfig help text.
- Prevent gcc 3.4 from removing statically defined per cpu variables.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
The radix tree functions __lookup and __lookup_tag uses (1 << shift) in
their index calculations. On 64 bit systems the shift can be bigger than
32. The shift of an integer by more than 32 bits evaluates to zero which
causes the lookup to fail.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This is ES7000 sub arch update. The tiny patch below fixes a bug that
results in boot problem on all ES7000 partitions with numbers higher than
0. Currently, target_cpus() returns incorrect cpumask value since it
indexes bits by the logical APIC ID, not by CPU number. The patch affects
only ES7000 sub arch. It was tested extensively on the system with
multiple partitions.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
- Update display->vrows when fbset changes certain fields in var (such as
color depth) but without changing the display resolution. This might
produce concommitant changes in other fields such as and especially
var->yres_virtual.
- Clear the FBINFO_MISC_MODECHANGEUSER flag _before_ issuing a
notifier_call_chain(). Clearing it after the notifier_call_chain() will
cause fbcon to go into an infinite loop.
As we've discussed in another thread, below is a diff that will do a set_par()
as late as possible when there is KD_TEXT<->KD_GRAPHICS switch. The set_par()
will be forced in fbcon_resize() instead.
Not sure if this has repercussions with the other drivers, but this patch
fixed the X nv driver hanging when switching to the console. (I believe the
crash is actually caused by an early set_par() -- while in fbcon_blank.
Removing the set_par in fbcon_blank fixed the hang but caused cursor sprite
and display corruption).
1 Seems that nVidia hardware has a limit on clipping coordinates that is
also dependent on the color depth of the framebuffer.
2.From Pawel Goleniowski <pawelg@dabrowa.pl>: Fix for wrong colors at 16bpp
(RGB565). The fix has been submitted several times in lkml and this list
but was never applied.
3 Search all I2C/DDC busses for the EDID block instead of just the first
bus.
4 Updated request_mem_region/release_mem_region to
pci_request_regions/pci_release_regions.
The fix is trivial, sparse wants the preprocessor symbol to be defined
before use. There was a similar fix accepted by Linus couple weeks ago.
Patch attached.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Mika Kukkonen [Fri, 2 Jul 2004 03:31:45 +0000 (20:31 -0700)]
[PATCH] sparse: fix sparse warnings in kernel/power/*
CHECK kernel/power/swsusp.c
kernel/power/swsusp.c:320:15: warning: expected lvalue for member dereference
kernel/power/swsusp.c:337:15: warning: expected lvalue for member dereference
kernel/power/swsusp.c:359:14: warning: expected lvalue for member dereference
kernel/power/swsusp.c:925:12: warning: assignment expression in conditional
[...]
CHECK kernel/power/pmdisk.c
kernel/power/pmdisk.c:795:12: warning: assignment expression in conditional
Trivial sparse fixes for two files under kernel/power. Patch attached.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Mika Kukkonen [Fri, 2 Jul 2004 03:31:34 +0000 (20:31 -0700)]
[PATCH] sparse: define max kernel symbol length and clean up errors in kernel/kallsyms.c
CHECK kernel/kallsyms.c
kernel/kallsyms.c:136:7: warning: bad constant expression
kernel/kallsyms.c:136:7: warning: bad constant expression
kernel/kallsyms.c:136:7: warning: bad constant expression
kernel/kallsyms.c:143:22: warning: bad constant expression
kernel/kallsyms.c:143:22: warning: bad constant expression
kernel/kallsyms.c:143:22: warning: bad constant expression
Now the cause of sparse warnings is that it does not handle runtime array
dimensioning (which I take it is a sparse problem), but in this particular
case it _might_ make sense to change the runtime allocation to compile
time, as the upper size of the array is known, because the code in
kernel/kallsyms.c clearly uses 127 (or 128) as "magic constant" for kernel
symbol (array) length, and in the other hand in include/linux/module.h
there is: #define MODULE_NAME_LEN (64 - sizeof(unsigned long))
The only concern is that the array become quite big (the original comment
of it being "pretty small" no longer applies ...). One way to help that
would be to use buffer[] also in place of namebuf[], but that would be
little tricky as the format string should be before the symbol name ...
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
George Anzinger [Fri, 2 Jul 2004 03:31:23 +0000 (20:31 -0700)]
[PATCH] Bugfix for CLOCK_REALTIME absolute timer
As required by the standard, this patch adds to POSIX ABSOLUTE timers the
functionality of adjusting the timer when the clock is set so that it still
expires at the specified time (provided that time has not passed, in which
case the timer expires immeadiatly).
The standard is, IMNSOHO, a bit vague on just how repeating timers are to
be handled so I made some choices:
1) If an absolute timer is to expire every N intervals, we assume that
the expiries should happen at those specified times after clock setting.
I.e. we adjust the repeat timer as well as the initial timer. (The
other option would be to treat the repeating timers as relative and not
to adjust them.)
2) If a clock set moves the the clock prior to the initial expiry time
AND that time has already passed and been signaled, the current repeat
timer is adjusted, i.e. we DO NOT go back to the initial time and
repeat that. (The other option is to treat this case as a new request
with the initial timer parameters (which by this time we have lost).)
3) If time is advanced such that it appears that several expiries have
been missed, the overrun count will reflect the misses. (The other
option is to not reflect this in the overrun.) At the same time, nothing
is done to acknowledge, to the user, that we are repeating expiries when
the clock is retarded.
Signed-off-by: George Anzinger <george@mvista.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[PATCH] produce a warning on unchecked inode_setattr use
The patch below uses the new-in-gcc-3.4 option to generate a warning on
unchecked results of marked functions, and applies this to the
inode_setattr function (which based on recent bk commits HAS to be checked
for it's return value for correct operation). A warning looks like this:
fs/ext2/inode.c:1279: warning: ignoring return value of 'inode_setattr', declared with attribute warn_unused_result
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Pavel Machek [Fri, 2 Jul 2004 03:31:01 +0000 (20:31 -0700)]
[PATCH] swsusp: preparation for smp support & fix device suspending
It fixes levels for calling driver model, puts devices into sleep before
powering down (so that emergency parking does not happen), and actually
introduces SMP support, but its disabled for now. Plus noone should try to
freeze_processes() when thats not implemented, we now BUG()s -- we do not
want Heisenbugs.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Tom Rini [Fri, 2 Jul 2004 03:30:14 +0000 (20:30 -0700)]
[PATCH] ppc32: OCP for MP10x
Attached is the latest version of Adrian Cox's OCP patch for
MPC107/8240/8245. This unifies some openpic setup code, and ensures that
the OCP devices are only added to the bus on chip variants which have them.
All interested parties seem happy, and this patch is necessary to provide a
unified I2C driver for 85xx and 107/824x.
Signed-off-by: Adrian Cox <adrian@humboldt.co.uk> Signed-off-by: Tom Rini <trini@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Recently I changed the return value of rtas_call() from an unsigned long to
an int. That patch missed a few places where we declare a variable to
store the result from rtas_call(). This new patch changes those places to
use an int variable instead of a long or unsigned long variable. Linas
Vepstas pointed this out.
Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This patch from Linas Vepstas (rediffed by me) fixes the confusing argument
aliasing of the log_rtas_error() subroutine.
This patch makes no functional changes, it just cleans up some strange
usage.
The rtas_args used to communicate with firmware are always taken from the
paca struct, so as to keep the args at a fixed, low-memory location. But
the log_rtas_error() routine also took an rtas_args pointer, which it
assumed was aliased to the paca struct. This aliasing is both
un-neccessary, and confusing; this patch eliminates this confusion.
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>
David Gibson [Fri, 2 Jul 2004 03:29:39 +0000 (20:29 -0700)]
[PATCH] ppc64: PACA cleanup
Cleanup the PPC64 PACA structure. It was previously a big mess of
unecessary fields, overengineered cache layout and uninformative comments.
This is essentially a rewrite of include/asm-pp64/paca.h with associated
changes elsewhere. The patch:
- Removes unused PACA fields
- Removes uneeded #includes
- Uses gcc attributes instead of explicit padding to get the desired
cacheline layout, also rethinks the layout and comments accordingly.
- Better comments where asm or firmware dependencies apply non-obvious
layout constraints.
- Splits up the pointless STAB structure, letting us move its elements
independently.
- Uses offsetof instead of hardcoded offset in spinlocks.
- Eradicates xStudlyCaps identifiers
- Replaces PACA guard page with an explicitly defined emergency stack
(removing more than NR_CPUS pages from the initialized data segment).
Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
David Gibson [Fri, 2 Jul 2004 03:29:27 +0000 (20:29 -0700)]
[PATCH] ppc64: remove RTAS arguments from PACA
This patch removes the RTAS arguments structure on ppc64 from the PACA.
The args have to be in the RMO, but since we have a global spinlock for
RTAS anyway, there's no reason to have a separate copy of the args per-CPU.
This patch replaces the PACA field with a single instance in the global
rtas structure.
The one exception is for the rtas_stop_self() call, which can't take the
lock, because it never returns. But it has a fixed set of arguments, so we
can use another global instance which is initialized at boot.
This lets us remove rtas.h from paca.h, which substantially reduces overall
#include hairiness (because paca.h is now, as it wants to be, a nice
low-level structure-defining header which relies on very little and can
safely be included almost anywhere). Although it does add some noise to
the patch, because a bunch of places relied on the indirect inclusion of
rtas.h, or even more indirect inclusions (see the hunks applying to eeh.h
and current.h!).
Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Matt Domsch [Thu, 1 Jul 2004 14:17:05 +0000 (10:17 -0400)]
[PATCH] EDD: x86-64 build fix
On Wed, Jun 30, 2004 at 01:22:21AM -0400, Jeff Garzik wrote:
> CC arch/x86_64/kernel/setup.o
> arch/x86_64/kernel/setup.c: In function `copy_edd':
> arch/x86_64/kernel/setup.c:415: error: `EDD_MBR_SIGNATURE' undeclared=20
> (first use in this function)
> arch/x86_64/kernel/setup.c:415: error: (Each undeclared identifier is=20
> reported only once
> arch/x86_64/kernel/setup.c:415: error: for each function it appears in.)
> arch/x86_64/kernel/setup.c:417: error: `EDD_MBR_SIG_NR' undeclared=20
> (first use in this function)
> make[1]: *** [arch/x86_64/kernel/setup.o] Error 1
> make: *** [arch/x86_64/kernel] Error 2
Arrgh. On i386 it's in include/asm-i386/setup.h On x86_64 it
belongs in include/asm-x86_64/bootsetup.h.
Patch below defines EDD_MBR_SIG_NR and EDD_MBR_SIGNATURE on x86_64.
Current 2.6.7 tree acts as if it is alway under memory pressure because
a recent change did a s/tcp_memory_pressure/tcp_prot.memory_pressure/.
The problem is tcp_prot.memory_pressure is a pointer, so it is always non-zero!
Rather than using *tcp_prot.memory_pressure, just go back to looking at
tcp_memory_pressure.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@redhat.com>
'strace' shows a problem with a missing release_task for self-reaping
clones that have been traced. We need to defer releasing them until the
tracer is done with them, but if the tracer dies, we need to handle that
case gracefully too.
We do that by having 'forget_original_parent()' generate a list of tasks
to release when this case happens.
Patch based on discussions on linux-kernel, and suggestions from Roland
McGrath <roland@redhat.com>.
[PATCH] enable SMP Opterons boot an NX-enabled x86 kernel
This fixes a corner-case NX bug: the x86 SMP kernel doesnt boot on SMP
Opterons if NX is enabled [and mem=nopentium is specified], due to
kernel-space NX protection preventing the SMP trampoline from being
executable.
Since the SMP trampoline is a rare case of 'dynamic code' executed by
the kernel (it has to be below 640K so it cannot be part of the kernel
text itself), i've added the necessary infrastructure to enable/disable
executability of specific kernel pages.
We cannot simply disable NX via the MSR because we've got the NX bits in
the kernel pagetables, which are set up before we do the SMP bootup.
The NX bit in the pagetables is undefined if EFER.NXE is 0, so we cannot
count on NX-capable CPUs not faulting when they encounter them.
I've tested the x86 kernel on a non-NX SMP x86 box and on an NX UP box,
on which i've also tested a simulated SMP trampoline, it all works fine.
- add infrastructure to enable/disable executability of kernel pages
The conversion to ANSI, caused a warning because the mulitcast code needs
a cast. dmi->dmi_addr is a u8 array, and fddi_addr is just a wrapper around a u8 array.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Russell King [Wed, 30 Jun 2004 19:28:19 +0000 (15:28 -0400)]
[PATCH] PCMCIA net device unplugging ordering fix
This is a rather old patch which re-orders the teardown of PCMCIA
network devices. Current device drivers remove the IO mappings,
interrupts, and free any PCMCIA windows before they unregister
themselves from the network layer.
This patch ensures that we first unregister from the network layer
before performing any teardown of resources or windows.
Note: the only card which has been tested in this patch is pcnet_cs.
[PATCH] get rid of __OPTIMIZE__ requirement in net drivers
Several network drivers have checks that they are only built with -O.
This breaks checking with sparse and other tools, and seems like a holdover from
when drivers were built out of tree and the kernel build system was less stable.
This patch gets rid of these.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
This started out from sparse warnings about calling with fddi_broadcast
that is declared const. This fixes that and gets rid of some of the namespace
pollution of this driver by moving the predicate function is_individual, is_broadcast, ...
as inline's in the one file that uses them.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Don Fry [Wed, 30 Jun 2004 19:20:36 +0000 (15:20 -0400)]
[PATCH] pcnet32: correctly program bcr32.
The pcnet32 driver was not correctly enabling MII autonegotiation after
booting when ppc firmware forced the speed/duplex mode of the chip.
After several conversations with AMD this patch corrects the problem.
I have tested this on hardware I have available (ia32 and ppc64) but I
would like wider audience testing of this patch.
Don Fry [Wed, 30 Jun 2004 19:20:18 +0000 (15:20 -0400)]
[PATCH] pcnet32: acknowledge all interrupts early.
A recent change I made broke pcnet32 in a way that allowed real hardware
to work, but broke VMWare. This patch acknowledges all interrupts early
in the pcnet32_interrupt while loop. Without this patch on real hardware
the first transmit operation would clear the 'init' interrupt, but in
VMWare it would rain interrupts. Keith Moore did more testing for me
on VMWare and I did a better job testing on hardware. Petr Vandrovec
correctly pointed out the source of the problem on lkml.
This patch is not needed for 2.4.27-rc1 unless my patch labeled
"pcnet32: recover after rx hang" is applied (which it has not).
Aaron Grothe [Tue, 29 Jun 2004 15:26:40 +0000 (08:26 -0700)]
[CRYPTO]: Add TEA and XTEA algorithms.
The following is a patch against 2.6.7 (should apply cleanly to 2.6.5 or
above). It implements the Tiny Encryption Algorithm (TEA) and the
Xtended TEA (XTEA) algorithms. TEA goes back to 1994 and is a good
algorithm espically for memory constrained systems. It is similar in
concept to the IDEA crypto. It does NOT have any patent restrictions
and has been put in the public domain by Wheeler and Needham. Tea is used
in quite a few products such as filesafe and even Microsoft's Xbox.
Signed-off-by: Aaron Grothe <ajgrothe@yahoo.com> Signed-off-by: James Morris <jmorris@redhat.com> Signed-off-by: David S. Miller <davem@redhat.com>