Andrew Morton [Sun, 31 Aug 2003 11:29:40 +0000 (04:29 -0700)]
[PATCH] Fix permissions on /proc/kallsyms
From: Rusty Russell <rusty@rustcorp.com.au>
Change the permissions on /proc/kallsyms. As David M-T points out,
it's nice for analysis tools not to need root. Place
cond_resched() to avoid starvation problems on non-preempt.
Andrew Morton [Sun, 31 Aug 2003 11:28:52 +0000 (04:28 -0700)]
[PATCH] airo CONFIG_PCI=n build fix
From: Geert Uytterhoeven <geert@linux-m68k.org>
On Fri, 22 Aug 2003, Linus Torvalds wrote:
> Javier Achirica:
> o [wireless airo] Fix PCI unregister code
This patch causes a regression: if CONFIG_PCI is not set, it doesn't compile
anymore. Here's a fix. I also killed a dead variable and its corresponding
warning:
Andrew Morton [Sun, 31 Aug 2003 11:28:44 +0000 (04:28 -0700)]
[PATCH] zoran: correct name field breakage
From: Ronald Bultje <rbultje@ronald.bitfreak.net>
I suddenly noticed that 2.6.0-test4 seems to have removed the struct
device->name field, apparently for memory consumption reasons. Linus
changed this to pci_name((zr)->pci_dev) in my driver, and that's almost
correct, except that it is the PCI device ID, and I'm not supposed to
touch it. Also, since it's only 4 bytes, all my device names now show
like 'DC1' (this should be 'DC10plus') and alike.
The attached patch fixes this by going back to the behaviour that we
used in 2.4.x: we use a separate name field in our private driver
struct.
Andrew Morton [Sun, 31 Aug 2003 11:28:29 +0000 (04:28 -0700)]
[PATCH] zoran: cleanups
From: Ronald Bultje <rbultje@ronald.bitfreak.net>
This patch changes some funky coding style (a.k.a. indent artifact) in
the function zoran_irq() to a somewhat more conservative coding style.
It was noticed by Francois Romieu.
Andrew Morton [Sun, 31 Aug 2003 11:28:22 +0000 (04:28 -0700)]
[PATCH] zoran: add pci_disable_device() call
From: Ronald Bultje <rbultje@ronald.bitfreak.net>
This patch adds pci_disable_device() to the card release function; we
already used pci_enable_device() in the card detection function. This was
noticed by Francois Romieu.
Andrew Morton [Sun, 31 Aug 2003 11:28:14 +0000 (04:28 -0700)]
[PATCH] zoran: add release callback
From: Ronald Bultje <rbultje@ronald.bitfreak.net>
This patch adds a release callback which frees the video_device struct.
This is needed to prevent freeing memory before it's not in use anymore,
as described in http://lwn.net/Articles/36850/. Without this, the driver
will give a warning when loaded. It might crash when unloading (see
article), too. The video4linux patch (by Gerd Knorr) was accepted a week
(or 2?) ago, but I forgot to adapt my driver to it.
Andrew Morton [Sun, 31 Aug 2003 11:28:07 +0000 (04:28 -0700)]
[PATCH] zoran: debug->zr_debug
From: Ronald Bultje <rbultje@ronald.bitfreak.net>
This patch renames the debug symbol to zr_debug because debug is already
defined somewhere else. Without it, it will cause a symbol conflict when
compiling this driver statically into the kernel. This was noticed by
several people, including Linus himself.
Andrew Morton [Sun, 31 Aug 2003 11:27:59 +0000 (04:27 -0700)]
[PATCH] zoran: memleak fixes
From: Ronald Bultje <rbultje@ronald.bitfreak.net>
This patch fixes several memleaks in error cases when the setup of i2c
client drivers for video encoders/decoders fails. We forgot to free some
memory in various places. This was noticed by Francois Romieu.
Andrew Morton [Sun, 31 Aug 2003 11:27:35 +0000 (04:27 -0700)]
[PATCH] don't report async write errors on close() after all
I had second thoughts on this.
Reporting background writeout errors via close() only really makes sense if
allthe IO has completed anyway: ie, the app has had the fd open without
writing to it for many tens of seconds.
It would be OK if it was harmless, but it is not. Changes are, applications
ignore errors from close(). So if an application does a fork/exit and the
child correctly does an fsync() of the fd, the close-on-exit will have wiped
out any accumulated EIO/ENOSPC errors.
Or if someone does dup()/close()/fsync(), the fsync() could fail to detect
earlier errors, thanks to the close.
So. The clear-and-report of errors on close() makes the reporting of errors
on fsync/msync/fdatasync less reliable.
Andrew Morton [Sun, 31 Aug 2003 11:27:28 +0000 (04:27 -0700)]
[PATCH] zeromap_pmd_range bugfix
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
The patch below fixes a 2.6 mm problem. Without this patch, zeromapped
pages are not flushed properly when they are swapped out.
What happens is that the page->index field is zero for page table pages
corresponding to the zeromapped range. This causes ptep_to_address() to
return an incorrect virtual address with the result that PTEs are never
invalidated at swap-out...
Andrew Morton [Sun, 31 Aug 2003 11:27:21 +0000 (04:27 -0700)]
[PATCH] Add 3GB personality
From: Andi Kleen <ak@muc.de>
Another a bit ugly but necessary patch for 32bit emulation.
Some applications including some versions of java break when the stack is
beyond the i386 standard 3GB boundary. For these add a 3GB personality
that moves the stack to 3GB and fixes the beginning of the mmap area. It's
a bit ugly, but better than not running these applications at all (e.g.
the Oracle installer depends on such a buggy java :-(). It's also not only
Java, but some other programs as well.
Andrew Morton [Sun, 31 Aug 2003 11:26:51 +0000 (04:26 -0700)]
[PATCH] v4l use-after-free fix
From: Greg KH <greg@kroah.com>
When working on converting the usb v4l drivers to the new v4l class
changes, I ran into this nasty bug. Seems that the core was using a
structure after it had been freed. The patch below fixes it.
Andrew Morton [Sun, 31 Aug 2003 11:26:27 +0000 (04:26 -0700)]
[PATCH] move DAC960 GAM IOCTLs into a new device
From: Dave Olien <dmo@osdl.org>
The DAC960 driver uses an ugly overloading of the O_NONBLOCK flag to
support the controller's RAID configuration features.
Opening "/dev/rd/c0d0" with the O_NONBLOCK flag set returns a file
descriptor that can be used to do RAID control operations using ioctl().
The normal ioctl operations are not availabe with that file descriptor.
This patch removes that O_NONBLOCK overloading from DAC960_open() and
DAC960_ioctl() functions. It introduces a new "miscellaneous" device
named /dev/dac960_gam. It uses minor device number 252 of the miscellaneous
character devices.
The currently distrubted "Global Array Manager" server distrubted by
LSIlogic on their web page page works only on RH7.3 or earlier. It doesn't
work under RH9. There are probably some library incompatabilities.
So, I don't view this patch as breaking anything that currently works.
If this software package is ever brought up to date (which I doubt),
then it can be modified to use this new device at that time.
Andrew Morton [Sun, 31 Aug 2003 11:26:19 +0000 (04:26 -0700)]
[PATCH] Call security hook from pid*_revalidate
From: Stephen Smalley <sds@epoch.ncsc.mil>
This patch against 2.6.0-test3-mm3 adds calls to the security_task_to_inode
hook to the pid*_revalidate functions to ensure that the inode security field
is also updated appropriately for /proc/pid inodes. This corresponds with
the uid/gid update performed by the proc-pid-setuid-ownership-fix.patch that
is already in -mm3.
Andrew Morton [Sun, 31 Aug 2003 11:26:04 +0000 (04:26 -0700)]
[PATCH] disable prefetch on athlons
K7's (at least) are faulting in the prefetch instruction. The AMD
engineers have said they will be getting back to us on it, and the fix is
looking complex, and nobody seems to be standing up to work on it.
So hum. The usual manifestation is an oops in hlist_for_each(), down in
the VFS inode lookup code. Disrupting our testers in this way is very bad,
so this patch just disables prefetch on all AMD parts in a rather stupid
way.
Andrew Morton [Sun, 31 Aug 2003 11:25:56 +0000 (04:25 -0700)]
[PATCH] random: accounting and sleeping fixes
From: Oliver Xymoron <oxymoron@waste.org>
This fixes several calculation errors and races in entropy accounting
that would allow /dev/random output to greatly exceed the measured
entropy collection. This doesn't include any of my more controversial
hardening, it just makes it behave as intended.
It also corrects the operation of the 'catastrophic reseeding' feature
so that it will actually prevent the state extension attack it's meant
to guard against.
And finally, it also fixes a couple missed wake-up and accidental
sleep bugs uncovered by the above fixes.
Debug instrumentation has been improved to help verify correctness.
Andrew Morton [Sun, 31 Aug 2003 11:25:47 +0000 (04:25 -0700)]
[PATCH] random: SMP locking
From: Oliver Xymoron <oxymoron@waste.org>
This patch adds locking for SMP. Apparently Willy never managed to
revive his laptop with his version so I revived mine.
The batch pool is copied as a block to avoid long lock hold times
while mixing it into the primary pool.
Two locks are added:
gobal batch_lock
batch_entropy_store can be called from any context, and typically from
interrupts -> spin_lock_irqsave
batch_entropy_process is called called via schedule_delayed_work and
runs in process context -> spin_lock_irq
entropy_store.lock
the mixing process is too expensive to be called from an interrupt
context and the basic worker function extract_entropy can sleep, so
all this stuff can be under a normal spin_lock
Andrew Morton [Sun, 31 Aug 2003 11:25:40 +0000 (04:25 -0700)]
[PATCH] .config checks updated
From: Sam Ravnborg <sam@ravnborg.org>
When building a kernel right after 'make mrproper' resulted in a very short
run, and no sign that .config was missing. This has been fixed by adding a
new rule for .config in the top-level Makefile, and a new target
'silentoldconfig' in scripts/kconfig/Makefile.
Guillaume Morin [Sun, 31 Aug 2003 08:41:18 +0000 (01:41 -0700)]
[PATCH] fix cu3088 group write
The current cu3088 ccwgroup write code overwrite the last char of the
given arguments. This fixes the problem. It is been tested and applies
on latest bk.
Krishna Kumar [Sun, 31 Aug 2003 08:27:52 +0000 (01:27 -0700)]
[PATCH] Remaining task queue to work queue conversion.
Somewhere in the transition of task queue to the work queue, in
stallion.c, some of the schedule_task were left out from being converted
to schedule_work. This fixes it.
* removed ancient-kernel compat code from sk_mca.h. I leave
it to janitors to remove the now-useless SKMCA_xxx wrappers.
* removed ancient-kernel compat code from sk_mca.c.
* s/SKMCA_NETDEV/net_device/
* fixed static net_device initialization (this will go away
when dynamic-alloc patches land)
Miles Bader [Sun, 31 Aug 2003 07:02:03 +0000 (00:02 -0700)]
[PATCH] Give v850 its own version of the vmlinux.lds.h RODATA macro
While it would be nice to keep using the generic version of RODATA, the
v850's linker-script structure is sufficiently different from that of
typical archs that it's not possible to use RODATA as it's currently
defined. I earlier suggested splitting the generic definition of RODATA
into `RODATA_CONTENTS' and `RODATA' (a wrapper around RODATA_CONTENTS)
where most archs would use RODATA, and the v850 would use
RODATA_CONTENTS, however Kai didn't like that idea.
It _may_ be possible to rewrite the v850's linker scripts into something
more typical (using lots of individual output sections), but it doesn't
seem at all straightforward, so I don't have the time to do it right
now.
Anyway, this is the short-term work-around so that Linus's kernel works
on the v850.
Alexander Viro [Sun, 31 Aug 2003 05:51:22 +0000 (22:51 -0700)]
[PATCH] dev_t handling cleanups (9/12)
struct block_device made the private part of bdevfs inodes; bd_count
is gone, we use ->i_count of inode now; separate hash is also gone and we
are using iget5_locked()/igrab()/iput() instead.
Alexander Viro [Sun, 31 Aug 2003 05:51:14 +0000 (22:51 -0700)]
[PATCH] dev_t handling cleanups (8/12)
Now that floppy_open() stores bdev in opened_bdevs[drive], we can remove
crap from floppy_read_block_0() and have it use that bdev instead of
messing with bdget_disk()/setting ->bd_disk by hand/bdput().
Alexander Viro [Sun, 31 Aug 2003 05:50:58 +0000 (22:50 -0700)]
[PATCH] dev_t handling cleanups (6/12)
- hpfs_unlink() should not try to truncate the victim unless it's a
regular file; truncate will not help for anything else and it will
screw the page cache if victim happens to be a block device.
- network filesystems should *not* invalidate page cache of block
device node when inode gets invalidated; fixed, added a new helper -
invalidate_remote_inode().
- nfs setattr syncs the file before sending SETATTR to server; that
makes a lot of sense for regular files, but not for anything else.
Fixed.
Neil Brown [Sun, 31 Aug 2003 05:43:49 +0000 (22:43 -0700)]
[PATCH] Honour the read-ahead for for reads in raid5.
If we get a failure trying to allocate a stripe_head for a read-ahead
request (the only time we can get a failure), we skip the rest of the
request and fail the whole bio.
Neil Brown [Sun, 31 Aug 2003 05:43:41 +0000 (22:43 -0700)]
[PATCH] Fix module ref counting for md.
We don't need to explicitly count references as:
- refcounting already happens for opens of /dev/md?
- when an array is active, a daughter module is loaded which
locks "md" in.
We just need to make sure we clean up properly on unload. (export_array)
Also, xor needs a null module_exit so that it can be unloaded.
[netdrvr] fix skb_padto bugs introduced when skb_padto was introduced
It seems that skb_padto security fixes in 2.4 and 2.5 trying
to fix "CAN-2003-0001:Multiple ethernet NID device drivers
do not pad frames with null bytes", do not put the skb_padto
blocks in proper places in the 3c527, eth16i, fmv18x, seeq8005,
yellowfin device drivers.
In case a driver calls skb_padto(), it is possible
that the space available in the original skb buffer tailroom is less
than the space to pad. In this case, in short, the skb_padto()
will create a new skb buffer, copy data from the original
skb buffer to a new skb buffer, free the original buffer,
and finally return the new buffer.
If this happens to the aforementioned device drivers, they come to
point to wrong data. And, for 3c527 and yellowfin, the drivers can
unexpectedly double free the original skb buffers since they still
point to the original skb buffers. The attached patch against
2.4.23pre1 fixes these issues.