This makes the best practices already in place in bluetooth
and tcp/ip available for all protocols, i.e. references must
be managed when associating timers with struct sock instances,
also makes the code a bit more clean.
Signed-off-by: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
This patch corrects a bug in the register access macros for 16 and 8
bit accesses. It also updates the default configuration files for the
2.6.7 kernel.
David Woodhouse [Tue, 8 Jun 2004 20:46:28 +0000 (21:46 +0100)]
Wind River PowerQUICC II SBC82xx update:
- Switch to using u-boot bdinfo.
- Set up CS11 for RTC if the bootloader didn't bother.
- Set BOOTROM_RESTART_ADDR so machine_restart() actually works.
- For non-uboot boot, note bus clock is 66MHz on 8265 model.
Alan Cox [Tue, 8 Jun 2004 10:11:04 +0000 (06:11 -0400)]
[PATCH] ethtool power manglement hooks
Several ethernet drivers have been broken by the ethtool support because
the ioctl code used to power the interface up and down as needed. Rather
than add this to each driver call Jeff Garzik suggested we add hooks
for before/after ethtool processing.
This patch implements them which makes fixing the PM stuff easier,
as the epic100 patch to follow will show. It also cleans up the
via-velocity driver pm/ethtool logic a great deal. As per Jeff's
request the before handler is allowed to fail the operation.
--
The contribution herein included is a creation of Red Hat Inc. It is hereby
submitted under the license of the existing files and as a derivative work
thereof. I know of no reason for not having the right to submit the
work herein included.
Paul Mackerras [Tue, 8 Jun 2004 02:27:15 +0000 (19:27 -0700)]
[PATCH] Make paca xCurrent field be a pointer
The paca struct contains a pointer to the current task, which is used
for the `current' macro. For some reason, this field is a u64, and
every time we use it we need a cast, because it is really a pointer.
This patch cleans things up a little by making it a pointer to struct
task_struct and removing the casts. It also removes a now-incorrect
comment which said that r13 contains current (it now holds
&paca[smp_processor_id()]).
Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Mackerras [Tue, 8 Jun 2004 02:27:01 +0000 (19:27 -0700)]
[PATCH] Single-stepping emulated instructions
Occasionally the ppc64 kernel emulates a usermode instruction, for
example in the alignment exception handler. Kumar Gala pointed out
(in the context of the ppc32 kernel) that if the instruction was being
single-stepped, and we end up emulating the instruction, we should
then send the process a SIGTRAP as if it had not been emulated and the
process had then taken a single-step exception. This patch implements
this for ppc64.
Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Duncan Sands [Mon, 7 Jun 2004 07:21:48 +0000 (00:21 -0700)]
[PATCH] USB devio.c: deadlock fix
proc_resetdevice is called with dev->serialize held.
usb_reset_device takes dev->serialize and then calls
__usb_reset_device. To avoid deadlock, proc_resetdevice
should call __usb_reset_device directly.
Kai Engert [Mon, 7 Jun 2004 07:08:08 +0000 (00:08 -0700)]
[PATCH] USB: enable pwc usb camera driver
The attached patch enables the pwc driver included with kernel 2.6.7-rc2
It also removes the warnings during compilation.
However, note that I blindly duplicated the release approach used by
other usb camera drivers, replacing the current no-op.
The driver works for me with a Logitech QuickCam Notebook Pro and
GnomeMeeting.
[PATCH] USB: Fix problems with cyberjack usb-serial-module since kernel 2.6.2
> Send me a patch to back those changes out to fix your device and I'll
> apply it. If the author is around to realize this, that should wake
> them up :)
Ok, here you are! :)
Attached is a patch for linux-2.6.7-rc2. (though the patch hasn't changed
since -rc1)
Again a short description:
(the patch removes most of the changes done in linux-2.6.2)
1. Removed the local buffer of cyberjack_write, because something goes wrong
upon a write-request bigger than the buffer. Without this, a write-request
stalls with error -3.
2. Removed some usb_clear_halt() lines. Without this, the device doesn't even
open and returns -7.
It works for my cyberjack pinpad USB card reader on
- nforce2 chipset
- VIA KM266 chipset
- AMD Irongate chipset
Adam Kropelin [Sun, 6 Jun 2004 12:59:45 +0000 (05:59 -0700)]
[FB]: Fix uninitialized fb_cmap member in sbuslib.c
When handling FBIOPUTCMAP_SPARC, sbusfb fails to initialize cmap.transp,
which quickly leads to an oops when fb_set_cmap() dereferences it.
First encountered in Aurora Wombat kernels and seems to afflict mainline
as well. Patch is against 2.6.7-rc2. xorg still fails to actually get
anything to display on my CG6, but at least it no longer oopses the kernel.
Signed-off-by: Adam Kropelin <akropel1@rochester.rr.com> Signed-off-by: David S. Miller <davem@redhat.com>
Dave Jones [Sun, 6 Jun 2004 08:04:20 +0000 (01:04 -0700)]
[PATCH] Fix missing padding in DMI table.
This entry in the DMI blacklist table is missing it's NO_MATCH
tags, which means the struct gets padded instead of filled with
the desired NO_MATCH data which is {255, NULL}
Usually not fatal it seems, but there have been numerous cases
in Red Hat bugzilla where this did get tripped up, and caused
an immediate reset on these boards. Not fun to track down.
Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
The recent introduction of ptep_set_access_flags() with the optimisation
of not flushing the TLB unfortunately broke ppc32 CPUs with no hash
table.
The data access exception code path in assembly for these doesn't
properly deal with the case where the TLB entry is present with the
wrong PAGE_RW and will just call do_page_fault again instead of just
replacing the TLB entry.
Fixing the asm code for all the different CPU types affected (yah,
embedded PPCs all have different MMUs =P) is painful and need testing I
can't do at the moment, so here's a fix that will just flush the TLB
page when changing the access flags on non-hash based machines. Please
apply.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org
Ingo Molnar [Sun, 6 Jun 2004 04:35:59 +0000 (21:35 -0700)]
[PATCH] sched: honor the "sync" wakeup bit
The scheduler changes had another thing missing: the appreciation of
sync wakeups. (I had this in one of the earlier sched-domains cleanup
patches before but it got lost in the shuffle.)
When a sync waker is waking, we should subtract its load from the
current load - it will schedule away for sure in the near future.
That's what the "sync" bit means.
This change is necessary because with the sched-domains balancer we have
a much more sensitive cpu-load estimator, and in this particular context
of try_to_wake_up() the sync waker's effect will always be part of the
load. Patch against your patch attached.
In my testing there's an additional increase in bw_pipe numbers on a
dual P2 box, it went from 110-120 MB/sec to 120-130 MB/sec.
Jens Axboe [Sat, 5 Jun 2004 06:35:07 +0000 (23:35 -0700)]
[PATCH] kill drivers/ide TCQ support
Lets just remove it. It's been disabled some time ago, and there's no
chance of it ever getting resurrected. PATA TCQ has so many technical
short comings, that it was never really interesting I'm afraid.
[PATCH] ide: change CONFIG_IDEDISK_STOKE to a runtime option
From: Christoph Hellwig <hch@lst.de>
To be useful for distribution kernels it needs to be a runtime option.
The original patch is from Joerg Platte via the Debian kernel package,
with some adjustments from me (and me too - Bart).
Corey Minyard [Sat, 5 Jun 2004 04:05:56 +0000 (21:05 -0700)]
[PATCH] Fix ipmi compile failure
Geert Uytterhoeven wrote:
While compiling drivers/char/ipmi/ipmi_si_intf.c in 2.6.6-rc1 on m68k,
I noticed a missing include (needed for disable_irq_nosync() and
enable_irq()):
Furthermore none of CONFIG_ACPI_INTERPETER, CONFIG_X86, and CONFIG_PCI
were set, and thus IPMI_MEM_ADDR_SPACE and IPMI_IO_ADDR_SPACE are not
defined, but they are used.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Dave Airlie [Sat, 5 Jun 2004 03:59:21 +0000 (20:59 -0700)]
[PATCH] MTD: add st m50fw0* to jedec_probe.c
Adds support to the jedec probe for ST M50FW040, M50FW080 and M50FW016 all
Firmware hubs for i8x0 chipsets,
http://www.st.com/stonline/products/families/memories/fl_nor/fl_fwh.htm
Cc: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paulus brought this up on IRC, it seems to be a bad DRM merge: The code
#ifndef VMAP_4_ARGS
if ( dev->agp->cant_use_aperture )
return -EINVAL;
#endif
in DRM(agp_acquire) should be removed altogether in a 2.6 kernel because
its vmap() takes 4 arguments; however, only the guards seem to have been
removed, which causes this function to erroneously fail if the AGP aperture
can't be directly accessed by the CPU.
Signed-off-by: Colin Leroy <colin@colino.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
The attached patch fixes the EDID parsing for PPC on rivafb. It actually
finds the EDID info in the OF Tree now. I grabbed this from BenHs Tree as
of 2.6.5-rc3. The current code has no chance to work since it doesn't walk
the device tree. This helps rivafb on PPC at least a bit further...
Nick Piggin [Sat, 5 Jun 2004 03:58:39 +0000 (20:58 -0700)]
[PATCH] sched: improve wakeup-affinity
David Mosberger noticed bw_pipe was way down on sched-domains kernels on
SMP systems.
That is due to two things: first, the previous wake-affine logic would
*always* move a pipe wakee onto the waker's CPU. With the scheduler
rework, this was toned down a lot (but extended to all types of wakeups).
One of the ways this was damped was with the logic: don't move the wakee if
its CPU is relatively idle compared to the waker's CPU. Without this, some
workloads would pile everything up onto a few CPUs and get lots of idle
time.
However, the fix was a bit of a blunt hack: if the wakee runqueue was below
50% busy, and the waker's was above 50% busy, we wouldn't do the move. I
think a better way to capture it is what this patch does: if the wakee
runqueue is below 100% busy, and the sum of the two runqueue's loads is
above 100% busy, and the wakee runqueue is less busy than the waker
runqueue (ie. CPU utilisation would drop if we do the move), then we don't
do the move.
After I fixed this, I found things were still getting bounced around quite
a bit. The reason is that we were attempting very aggressive idle
balancing in order to cut down idle time in a dbt2-pgsql workload, which is
particularly sensitive to idle.
After having Mark Wong (markw@osdl.org) retest this load with this patch,
it looks like we don't need to be so aggressive. I'm glad to be rid of
this because it never sat too well with me. We should see slightly lower
cost of schedule and slightly improved cache impact with this change too.
Mark said:
---
This looks pretty good:
metric kernel
2334 2.6.7-rc2
2298 2.6.7-rc2-mm2
2329 2.6.7-rc2-mm2-sched-more-wakeaffine
---
ie. within the noise.
David said:
---
Oooh, me likeee!
Host OS Pipe AF
UNIX
--------- ------------- ---- ----
caldera.h Linux 2.6.6 3424 2057 (plain 2.6.6)
caldera.h Linux 2.6.7-r 333. 1402 (original 2.6.7-rc1)
caldera.h Linux 2.6.7-r 3086 4301 (2.6.7-rc1 with your patch)
Pipe-bandwidth is still down about 10% but that may be due to
unrelated changes (or perhaps warmup effects?). The AF UNIX bandwidth
is just mindboggling. Moreover, with your patch 2.6.7-rc1 shows
better context-switch times and lower communication latencies (more
like the numbers you're getting on UP).
So it seems like the overall balance of keeping things on the same CPU
vs. distributing them across CPUs is improved.
---
I also ran some tests on the NUMAQ. kernbench, dbench, hackbench, reaim
were much the same. tbench was improved, very much so when clients < NR_CPU.
Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:58:28 +0000 (20:58 -0700)]
[PATCH] md: fix BUG in raid5 resync code.
This condtion on this loop is primarily to avoid the loop if it doesn't
appear to be needed. However it optimises a little too much and there is a
case where it skips the loop when it is really needed. This patch fixes
it.
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jens Axboe [Sat, 5 Jun 2004 03:58:17 +0000 (20:58 -0700)]
[PATCH] fix cdrom length check
There's a bad length check in cdrom_get_random_writable(), it's off-by-4
since fh->data_len is the length of data _after_ that field (which is
offset 4 bytes in the header). Check is pretty bogus anyways, so just kill
it.
Rusty Russell [Sat, 5 Jun 2004 03:57:12 +0000 (20:57 -0700)]
[PATCH] fix sysfs node cpumap for large NR_CPUS
As pointed out by Paul Jackson <pj@sgi.com>, sometimes 99 chars is not enough.
We currently get a page from sysfs: that code should check we haven't overrun
it.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Paul Jackson <pj@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Sat, 5 Jun 2004 03:57:01 +0000 (20:57 -0700)]
[PATCH] Use KERN_ALERT more for oopses
Often users only report what syslogd reports with KERN_ALERT when a kernel
crash occurs. Make an oops print mpre information with that (in particular
the RIP)
Patch for i386 and x86-64.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:56:50 +0000 (20:56 -0700)]
[PATCH] md: support reshaping raid1 arrays - adding or removing drives.
This allows the number of "raid_disks" in a raid1 to be changed.
This requires allocating a new pool of "r1bio" structures which a different
number of bios, suspending IO, and swapping the new pool in place of the old.
(and a few other related changes).
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:56:39 +0000 (20:56 -0700)]
[PATCH] md: allow md arrays to be resized if devices are large enough.
It is possible to have raid1/4/5/6 arrays that do not use all the space on the
drive. This can be done explicitly, or can happen info you, one by one,
replace all the drives with larger devices.
This patch extends the "SET_ARRAY_INFO" ioctl (which previously invalid on
active arrays) allow some attributes of the array to be changed and implements
changing of the "size" attribute.
"size" is the amount of each device that is actually used. If "size" is
increased, the new space will immediately be "resynced".
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:56:16 +0000 (20:56 -0700)]
[PATCH] md: handle hot-add for arrays with non-persistent superblocks
If the superblock isn't persistent, we shouldn't allow room for it.
From: Paul Clements <Paul.Clements@SteelEye.com> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:55:41 +0000 (20:55 -0700)]
[PATCH] md: make sure md_check_recovery will remove a faulty device when ->nr_pending hits 0
md_check_recovery only locks a device and does stuff when it thinks there is a
real likelyhood that something needs doing. So the test at the top must cover
all possibilities.
But it didn't cover the possibility that the last outstanding request on a
failed device had finished and so the device needed to be removed.
As a result, a failed drive might not get removed from the personalities
perspective on the array, and so it could never be removed from the array as a
whole.
With this patch, whenever ->nr_pending hits zero on a faulty device,
MD_RECOVERY_NEEDED is set so that md_check_recovery will do stuff.
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:55:29 +0000 (20:55 -0700)]
[PATCH] md: rationalise device selection in md/multipath.
md/multipath has two separate pieces of code for choosing a device to use, one
when a request is first made and the other when a request is being re-tried
after failure. This patch discards multipath_read_balance and uses
multipath_map in both situations.
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:55:18 +0000 (20:55 -0700)]
[PATCH] kNFSd: documentation typo fixes
Fix minor typos.
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:55:07 +0000 (20:55 -0700)]
[PATCH] kNFSd: nfsd4 file creation fix
Fix error return in create. (See comment in xdr for createtype4 at end of
rfc3530.)
From: Andy Adamson <andros@citi.umich.edu>
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:54:56 +0000 (20:54 -0700)]
[PATCH] kNFSd: nfsd4 setclientid fix
Fix a somewhat bizarre corner case in clid processing: a clientid match isn't
required for case 3.
From: Andy Adamson <andros@citi.umich.edu>
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:54:45 +0000 (20:54 -0700)]
[PATCH] kNFSd: nfsd getattr fix
Oops: we were claiming to support the TIME_CREATE attribute, when we don't
really.
From: Andy Adamson <andros@citi.umich.edu>
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:54:34 +0000 (20:54 -0700)]
[PATCH] kNFSd: nfsd4_release_lockowner() oops fix
Fix oops in release_lockowner. We need to break out to two loops, not just
one, and if the loop finds nothing, 'local' won't be NULL. So just put the
body of the 'if' inside the loop.
From: Andy Adamson <andros@citi.umich.edu>
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Neil Brown [Sat, 5 Jun 2004 03:54:23 +0000 (20:54 -0700)]
[PATCH] kNFSd: rsc_lookup simplification
rsc_lookup is a bit complicated: it either takes responsibility for the memory
pointed to by handle.data and sets handle.data to NULL, or it leaves
handle.data unchanged, in which case the caller is responsible for freeing
handle.data. I forgot that the possibility of inserting a negative cache
entry into the cache meant that this could happen even when rsc_lookup is
called with set == 0.
Note that the ip_map code has the same bug, not that it seems to matter much,
since the memory in question in that case is always just a statically
allocated string.
From: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>