Andrew Morton [Wed, 4 Feb 2004 02:38:45 +0000 (18:38 -0800)]
[PATCH] gcc-3.5: advansys.c
drivers/scsi/advansys.c: In function `advansys_reset':
drivers/scsi/advansys.c:6022: error: invalid lvalue in assignment
drivers/scsi/advansys.c:6045: error: invalid lvalue in assignment
drivers/scsi/advansys.c: In function `advansys_interrupt':
drivers/scsi/advansys.c:6314: error: invalid lvalue in assignment
drivers/scsi/advansys.c: In function `asc_scsi_done_list':
drivers/scsi/advansys.c:6386: error: invalid lvalue in assignment
drivers/scsi/advansys.c: In function `asc_enqueue':
drivers/scsi/advansys.c:7437: error: invalid lvalue in assignment
drivers/scsi/advansys.c:7445: error: invalid lvalue in assignment
drivers/scsi/advansys.c:7448: error: invalid lvalue in assignment
drivers/scsi/advansys.c: In function `asc_dequeue_list':
drivers/scsi/advansys.c:7569: error: invalid lvalue in assignment
drivers/scsi/advansys.c: In function `asc_rmqueue':
drivers/scsi/advansys.c:7647: error: invalid lvalue in assignment
drivers/scsi/advansys.c:7648: error: invalid lvalue in assignment
Andrew Morton [Wed, 4 Feb 2004 02:38:36 +0000 (18:38 -0800)]
[PATCH] gcc-3.5: drivers/scsi/53c700
In file included from drivers/scsi/53c700.c:140:
drivers/scsi/53c700.h: In function `NCR_700_set_SXFER':
drivers/scsi/53c700.h:106: error: invalid lvalue in assignment
drivers/scsi/53c700.h:107: error: invalid lvalue in assignment
drivers/scsi/53c700.h: In function `NCR_700_set_depth':
drivers/scsi/53c700.h:116: error: invalid lvalue in assignment
drivers/scsi/53c700.h:117: error: invalid lvalue in assignment
drivers/scsi/53c700.h: In function `NCR_700_set_flag':
drivers/scsi/53c700.h:137: error: invalid lvalue in assignment
drivers/scsi/53c700.h: In function `NCR_700_clear_flag':
drivers/scsi/53c700.h:142: error: invalid lvalue in assignment
Andrew Morton [Wed, 4 Feb 2004 02:38:09 +0000 (18:38 -0800)]
[PATCH] gcc-3.5: PCMCIA
include/pcmcia/mem_op.h: In function `copy_from_pc':
include/pcmcia/mem_op.h:85: error: invalid lvalue in assignment
include/pcmcia/mem_op.h:85: error: invalid lvalue in assignment
include/pcmcia/mem_op.h: In function `copy_to_pc':
include/pcmcia/mem_op.h:97: error: invalid lvalue in assignment
include/pcmcia/mem_op.h:97: error: invalid lvalue in assignment
include/pcmcia/mem_op.h: In function `copy_pc_to_user':
include/pcmcia/mem_op.h:109: error: invalid lvalue in assignment
include/pcmcia/mem_op.h:109: error: invalid lvalue in assignment
include/pcmcia/mem_op.h: In function `copy_user_to_pc':
include/pcmcia/mem_op.h:124: error: invalid lvalue in assignment
include/pcmcia/mem_op.h:124: error: invalid lvalue in assignment
Andrew Morton [Wed, 4 Feb 2004 02:38:01 +0000 (18:38 -0800)]
[PATCH] gcc-3.5: DVB
drivers/media/dvb/frontends/ves1820.c: In function `ves1820_setup_reg0':
drivers/media/dvb/frontends/ves1820.c:244: error: invalid lvalue in assignment
drivers/media/dvb/frontends/ves1820.c:244: error: invalid lvalue in assignment
drivers/media/dvb/frontends/ves1820.c: In function `ves1820_attach':
drivers/media/dvb/frontends/ves1820.c:541: error: invalid lvalue in assignment
drivers/media/dvb/frontends/ves1820.c:541: error: invalid lvalue in assignment
drivers/media/dvb/frontends/ves1820.c:544: error: invalid lvalue in assignment
drivers/media/dvb/frontends/ves1820.c:544: error: invalid lvalue in assignment
drivers/media/dvb/frontends/ves1820.c:545: error: invalid lvalue in assignment
drivers/media/dvb/frontends/ves1820.c:545: error: invalid lvalue in assignment
drivers/media/dvb/frontends/ves1820.c:546: error: invalid lvalue in assignment
drivers/media/dvb/frontends/ves1820.c:546: error: invalid lvalue in assignment
drivers/media/dvb/frontends/ves1820.c:547: error: invalid lvalue in assignment
drivers/media/dvb/frontends/ves1820.c:547: error: invalid lvalue in assignment
Andrew Morton [Wed, 4 Feb 2004 02:36:59 +0000 (18:36 -0800)]
[PATCH] gcc-3.5: drivers/atm/he.c
drivers/atm/he.c: In function `he_init_one':
drivers/atm/he.c:383: error: invalid lvalue in assignment
drivers/atm/he.c: In function `he_open':
drivers/atm/he.c:2364: error: invalid lvalue in assignment
Andrew Morton [Wed, 4 Feb 2004 02:36:50 +0000 (18:36 -0800)]
[PATCH] gcc-3.5: drivers/atm/idt77105.c
drivers/atm/idt77105.c: In function `idt77105_start':
drivers/atm/idt77105.c:268: error: invalid lvalue in assignment
drivers/atm/idt77105.c: In function `idt77105_stop':
drivers/atm/idt77105.c:346: error: invalid lvalue in assignment
Andrew Morton [Wed, 4 Feb 2004 02:36:41 +0000 (18:36 -0800)]
[PATCH] gcc-3.5: drivers/atm/eni.c
drivers/atm/eni.c: In function `eni_close':
drivers/atm/eni.c:1878: error: invalid lvalue in assignment
drivers/atm/eni.c: In function `eni_open':
drivers/atm/eni.c:1894: error: invalid lvalue in assignment
drivers/atm/eni.c:1905: error: invalid lvalue in assignment
drivers/atm/eni.c: In function `eni_init_one':
drivers/atm/eni.c:2233: error: invalid lvalue in assignment
Andrew Morton [Wed, 4 Feb 2004 02:36:23 +0000 (18:36 -0800)]
[PATCH] gcc-3.5: drivers/atm/fore200e.c
drivers/atm/fore200e.c: In function `fore200e_open':
drivers/atm/fore200e.c:1420: error: invalid lvalue in assignment
drivers/atm/fore200e.c: In function `fore200e_register':
drivers/atm/fore200e.c:2485: error: invalid lvalue in assignment
Andrew Morton [Wed, 4 Feb 2004 02:36:05 +0000 (18:36 -0800)]
[PATCH] gcc-3.5: iphase.c
drivers/atm/iphase.c: In function `open_tx':
drivers/atm/iphase.c:1757: error: invalid lvalue in assignment
drivers/atm/iphase.c: In function `ia_close':
drivers/atm/iphase.c:2674: error: invalid lvalue in assignment
drivers/atm/iphase.c: In function `ia_open':
drivers/atm/iphase.c:2687: error: invalid lvalue in assignment
drivers/atm/iphase.c:2703: error: invalid lvalue in assignment
drivers/atm/iphase.c: In function `ia_init_one':
drivers/atm/iphase.c:3199: error: invalid lvalue in assignment
Andrew Morton [Wed, 4 Feb 2004 02:35:56 +0000 (18:35 -0800)]
[PATCH] gcc-3.5: intermezzo
fs/intermezzo/dir.c: In function `presto_prep':
fs/intermezzo/intermezzo_fs.h:414: sorry, unimplemented: inlining failed in call to 'presto_is_read_only': function body not available
fs/intermezzo/presto.c: In function `izo_mark_cache':
fs/intermezzo/presto.c:341: error: invalid lvalue in assignment
fs/intermezzo/presto.c:342: error: invalid lvalue in assignment
Andrew Morton [Wed, 4 Feb 2004 02:35:28 +0000 (18:35 -0800)]
[PATCH] gcc-3.5: vxfs fixes
fs/freevxfs/vxfs.h:33:10: warning: extra tokens at end of #ident directive
fs/freevxfs/vxfs_extern.h:75: sorry, unimplemented: inlining failed in call to 'vxfs_put_page': function body not available
Andrew Morton [Wed, 4 Feb 2004 02:35:18 +0000 (18:35 -0800)]
[PATCH] gcc-3.5: zatm.c fix
drivers/atm/zatm.c: In function `zatm_close':
drivers/atm/zatm.c:1371: error: invalid lvalue in assignment
drivers/atm/zatm.c: In function `zatm_open':
drivers/atm/zatm.c:1386: error: invalid lvalue in assignment
drivers/atm/zatm.c:1398: error: invalid lvalue in assignment
drivers/atm/zatm.c: In function `zatm_module_init':
drivers/atm/zatm.c:1600: error: invalid lvalue in assignment
Andrew Morton [Wed, 4 Feb 2004 02:34:51 +0000 (18:34 -0800)]
[PATCH] gcc-3.5: i810_accel fix
drivers/video/i810/i810_accel.c: In function `i810fb_init_ringbuffer':
drivers/video/i810/i810_accel.c:30: sorry, unimplemented: inlining failed in call to 'flush_cache': function body not available
Andrew Morton [Wed, 4 Feb 2004 02:34:42 +0000 (18:34 -0800)]
[PATCH] gcc-3.5: parport warnings
drivers/pnp/pnpbios/core.c: In function `pnpbios_probe_system':
drivers/pnp/pnpbios/core.c:438: warning: use of cast expressions as lvalues is deprecated
Andrew Morton [Wed, 4 Feb 2004 02:34:33 +0000 (18:34 -0800)]
[PATCH] gcc-3.5: sound/core/seq/seq_clientmgr.c
sound/core/seq/seq_clientmgr.c: In function `snd_seq_open':
sound/core/seq/seq_clientmgr.c:331: warning: use of cast expressions as lvalues is deprecated
Andrew Morton [Wed, 4 Feb 2004 02:34:24 +0000 (18:34 -0800)]
[PATCH] More 3.4 compilation fixes
From: Jan Hubicka <jh@suse.cz>
GCC now converts sprintf (a,"%s",b) to strcpy. This lose on kernel as
strcpy is not inlined and not present in library, so one gets linker
failure. It seems to make sense to apply this optimization by hand.
Andrew Morton [Wed, 4 Feb 2004 02:34:15 +0000 (18:34 -0800)]
[PATCH] Fix inlining failure (all GCCs) in parport
From: Jan Hubicka <jh@suse.cz>
GCC never inline extern inline function redefined by new body (because it is
not clear what body one should choose)
parport contains such duplicated functions for apparently no good reasons.
Both copies differ slightly, not sure whether it is intentional or just
garbage.
Andrew Morton [Wed, 4 Feb 2004 02:33:12 +0000 (18:33 -0800)]
[PATCH] gcc-3.5: pcm_misc.c warnings
sound/core/pcm_misc.c:557: warning: use of cast expressions as lvalues is deprecated
sound/core/pcm_misc.c:568: warning: use of cast expressions as lvalues is deprecated
sound/core/pcm_misc.c:569: warning: use of cast expressions as lvalues is deprecated
sound/core/pcm_misc.c:570: warning: use of cast expressions as lvalues is deprecated
sound/core/pcm_misc.c:586: warning: use of cast expressions as lvalues is deprecated
sound/core/pcm_misc.c:596: warning: use of cast expressions as lvalues is deprecated
Andrew Morton [Wed, 4 Feb 2004 02:32:55 +0000 (18:32 -0800)]
[PATCH] gcc-3.5: #ident fixes
arch/i386/kernel/msr.c:1:10: warning: extra tokens at end of #ident directive
arch/i386/kernel/cpuid.c:1:10: warning: extra tokens at end of #ident directive
Andrew Morton [Wed, 4 Feb 2004 02:32:36 +0000 (18:32 -0800)]
[PATCH] string fixes for gcc 3.4
From: Andi Kleen <ak@muc.de>
gcc 3.4 optimizes sprintf(foo,"%s",string) into strcpy. Unfortunately that
isn't seen by the inliner and linux/i386 has no out-of-line strcpy so you
end up with a linker error.
This patch adds out of line copies for most string functions to avoid this.
Actually it doesn't export them to modules yet, that would be the next
step.
BTW In my opinion we shouldn't use inline string functions at all. The
__builtin_str* in modern gcc are better (I used them very successfully on
x86-64) and for the bigger functions like strrchr,strtok et.al. it just
doesn't make any sense to inline them or even code them in assembler.
Also fix the bcopy prototype gcc was complaining about.
Andrew Morton [Wed, 4 Feb 2004 02:32:27 +0000 (18:32 -0800)]
[PATCH] Fix more gcc 3.4 warnings
From: Andi Kleen <ak@muc.de>
Just many more warning fixes for a gcc 3.4 snapshot.
It warns for a lot of things now, e.g. for ?: and ({ ... }) and casts as
lvalues. And for functions marked inline in headers, but no body.
Actually there are more warnings, i stopped fixing at some point. Some of
the warnings seem to be dubious (e.g. the binfmt_elf.c one, which looks
more like a compiler bug to me)
I also fixed the _exit() prototype to be void because gcc was complaining
about this.
Andrew Morton [Wed, 4 Feb 2004 02:32:18 +0000 (18:32 -0800)]
[PATCH] sisfb update
From: Thomas Winischhofer <thomas@winischhofer.net>
sisfb is simply broken in current 2.6.x. This patch updates sisfb to the
current development version which no less than 11 months ahead of the version
in the kernel.
Updated includes
- many fixes (duh)
- support for new chipsets (661, 741, 760)
- support for new video bridges (301C, 302ELV)
- removal of all offending fp code (as discussed earlier this month)
- a lot of code clean-up (which is the main reason for its size)
Andrew Morton [Wed, 4 Feb 2004 02:32:08 +0000 (18:32 -0800)]
[PATCH] kbuild: Unmangle include options for gcc
From: Sam Ravnborg <sam@ravnborg.org>
When utilising the make O=... option the include options for gcc were
mangled even when absolute paths was used. Also remove duplication of
CPPFLAGS. They were assigned twice. [It is still possible for
architectures to modify CPPFLAGS].
This patch allows xconfig to be build with make O=... xconfig.It will also
help development of external modules with absolute paths for their -I
options.
Note: As a side effect a full recompile of the kernel takes place due to
changes in number of gcc options.
Andrew Morton [Wed, 4 Feb 2004 02:31:59 +0000 (18:31 -0800)]
[PATCH] ia32 MSI vector handling fix
From: "Nakajima, Jun" <jun.nakajima@intel.com>
To get the vector-based interrupt handling work, we need to give the vector
number to device drivers instead of the IRQ if IRQ < 16. It was not
happening for SCI, and the patch fixes it. In many cases, the IRQ for SCI is
9, and the problem was not detected, but one particular machine exposed the
bug.
Andrew Morton [Wed, 4 Feb 2004 02:31:50 +0000 (18:31 -0800)]
[PATCH] lock_cpu_hotplug only if CONFIG_CPU_HOTPLUG
From: Rusty Russell <rusty@rustcorp.com.au>
The cpucontrol mutex is not required when no cpus can go up and down.
Andrew wrote a wrapper for it to avoid #ifdefs, this expands that to only
be defined for CONFIG_HOTPLUG_CPU, and uses it everywhere.
The only downside is that the cpucontrol lock was overloaded by my recent
patch to net/core/flow.c to protect it from reentrance, so this
reintroduces the local flow_flush_sem. This code isn't speed critical, so
taking two locks when CONFIG_HOTPLUG_CPU=y is not really an issue.
Andrew Morton [Wed, 4 Feb 2004 02:31:31 +0000 (18:31 -0800)]
[PATCH] quiet down SMP boot messages
From: Jes Sorensen <jes@trained-monkey.org>
I'd like to propose the following for 2.6.1-mm/2.6.2. On systems with a
large number of CPUs the number of printk's flowing by for each CPU
booting starts becoming a real console hog.
The following patch eliminates a couple of them (already sent a patch to
David for the ia64 specific ones) as well as changes the
"Building zonelist : X" in "Built Y zonelists". IMHO it doesn't make any
sense to print for each zonelist since it's run in a for loop running
from 0 to Y-1 anyway.
The patch nukes a few new printk's that were introduced with the
scheduler changes to the NUMA code in -mm3, if these are still needed
then I won't fight for that part of the patch.
Andrew Morton [Wed, 4 Feb 2004 02:30:59 +0000 (18:30 -0800)]
[PATCH] Make PPC601_SYNC_FIX depend on pmac||prep
From: Tom Rini <trini@kernel.crashing.org>
The following has been approved by Paul, FWIW.
The following patch makes PPC601_SYNC_FIX depend on PPC_PMAC || PPC_PREP.
It used to depend on ALL_PPC I believe, but this was (at least
semi-intentionally I gather) backed out. The last time this was discussed,
the only platforms old enough to have a 601 to support were pmacs and
preps, so it makes some sense to only ask for these machines.
Andrew Morton [Wed, 4 Feb 2004 02:30:23 +0000 (18:30 -0800)]
[PATCH] Fix race in sched_exit()
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
Fix a race on sleep_avg in sched_exit().
The symptom I saw on 64-bit s390 has been a fixpoint divide exception
because sleep_avg had a value > NS_MAX_SLEEP_AVG. I tracked it down and
the problem is sched_exit which recalculates the parents sleep average
without taking the runqueue lock. schedule() subtracts run_time from
sleep_avg of the previous process. This can turn out negative and is
corrected shortly after the subtraction but that is already too late.
sched_exit() already read the negative value an miscalculated the parents
sleep_avg -> bang.
I fixed this by adding task_rq_lock/task_rq_unlock to sched_exit().
Linus Torvalds [Tue, 3 Feb 2004 11:36:36 +0000 (03:36 -0800)]
Linux 2.6.2 aka "Feisty Dunnart"
See http://www.cse.unsw.edu.au/~gernot/persona/hobbies/dunnart.html
for more information about Dunnarts, in case you've never heard of
them before. Courtesy of Gernot Heiser.
- IDE can be used as module again (compiles and works),
this fixes bugzilla bugs #576 and #1700
- separate module for probing is no longer required
- generic/default host driver is available as ide_generic module
This contains the build fixes by Adrian Bunk and Andrew Morton.
Andrew Morton [Sat, 31 Jan 2004 04:22:51 +0000 (20:22 -0800)]
[PATCH] ppc32: MBX MAC address fix
From Tom Rini <trini@kernel.crashing.org>
On the MBX the kernel made an assumption about where the MAC address would
be in the VPD (Vital Product Data). However, the documentation for the
firmware (EPPC-Bug) describes the format of the VPD and makes no
guarrantees about the location of any VPD record. It does however describe
the format of each record type and the MAC address record will be of type
'08' and of size 6. This changes the code so that instead of assuming a
position, it searches for the record, which I assume is also what EPPC-Bug
does.
Andrew Morton [Sat, 31 Jan 2004 02:06:29 +0000 (18:06 -0800)]
[PATCH] RAID-6: x86-64 crash workaround
From: "H. Peter Anvin" <hpa@zytor.com>
Apparently, on x86-64, the stack isn't always aligned properly (16 bytes)
in the kernel at the moment. This causes the RAID-6 code to crash the
system. This patch is a workaround for that; the right thing is to muck
with the assembly entrypoints to enforce proper stack alignment. However,
that's not anything I feel comfortable doing in an evening, especially
since I don't have a machine on which I can test the resulting kernels.
Andrew Morton [Sat, 31 Jan 2004 02:00:40 +0000 (18:00 -0800)]
[PATCH] ppc64: SLB rewrite
From: Anton Blanchard <anton@samba.org>
The current SLB handling code has a number of problems:
- We loop trying to find an empty SLB entry before deciding to cast one
out. On large working sets this really hurts since the SLB is always full
and we end up looping through all 64 entries unnecessarily.
- During castout we currently invalidate the entry we are replacing. This
is to avoid a nasty race where the entry is in the ERAT but not the SLB and
another cpu does a tlbie that removes the ERAT at a critical point. If
this race is fixed the SLB can be removed.
- The SLB prefault code doesnt work properly
The following patch addresses all the above concerns and adds some more
optimisations:
- feature nop out some segment table only code
- slb invalidate the kernel segment on context switch (avoids us having to
slb invalidate at each cast out)
- optimise flush on context switch, the lazy tlb stuff avoids it being
called when going from userspace to kernel thread, but it gets called when
going to kernel thread to userspace. In many cases we are returning to the
same userspace task, we now check for this and avoid the flush