David S. Miller [Thu, 21 Aug 2003 07:50:53 +0000 (00:50 -0700)]
[IPV6]: Fix dangling multicast device references.
When addrconf_ifdown() calls ipv6_mc_destroy_dev(), it has NULL'd
out dev->ip6_ptr, which means all in6_dev_get() calls will fail.
So pass an explicit idev into ipv6_dev_mc_dec() in this case so
that we don't leak the all-nodes multicast address reference to the
idev.
Patrick Mochel [Thu, 21 Aug 2003 04:56:44 +0000 (21:56 -0700)]
[dmi] Ugh, fixup broken merge once and for all.
- Didn't realize that mount_root_failed_msg() had been removed, so it was
accidentally merged back in. It's gone again now, as well as the entire
(unused) dmi_dump_system() function.
Cleanup the timer code. It works as is, but:
- use timer_ macro's when working with jiffies.
- cleanup the #define's
- make timer run sooner (ie when next entry will expire)
rather than waiting till the next 10 minute quanta.
- print TTL value in seconds not jiffies
- change formatting to linux style in code the area affected.
Better version of my seq_file next operation.
Use current pointer to find next element. Should be more
stable with changing list (no duplicate entries).
Gerd Knorr [Thu, 21 Aug 2003 02:53:10 +0000 (19:53 -0700)]
[PATCH] v4l: remove stale CONFIG_VIDEO_PROC_FS
* makes the three USB drivers not use the procfs stuff, also added a
warning that they should converted to sysfs.
* Removes the leftover, obsolete VIDEO_PROC_FS config option, that
should catch any other build failures too (if any).
Jaroslav Kysela [Wed, 20 Aug 2003 23:31:54 +0000 (01:31 +0200)]
ALSA CVS update
D:2003/08/16 10:54:09
A:Jaroslav Kysela <perex@suse.cz>
F:core/oss/pcm_oss.c:1.45->1.46
L:Fixed open for O_RDWR when capture is not available
Jaroslav Kysela [Wed, 20 Aug 2003 23:30:45 +0000 (01:30 +0200)]
ALSA CVS update
D:2003/08/14 17:05:13
A:Takashi Iwai <tiwai@suse.de>
F:pci/ac97/ac97_codec.c:1.100->1.101
L:fix by James Courtier-Dutton <James@superbug.demon.co.uk>:
L:
L:Fixes ac3 passthru non-audio bit setting for AC97 codecs.
L:
L:I have :-
L:Card: Intel ICH5
L:Chip: Avance Logic ALC650 rev 0
L:
L:The problem I was having was that the spdif non-audio bit was not
L:being set.
L:This patch fixes that problem.
Jaroslav Kysela [Wed, 20 Aug 2003 23:29:35 +0000 (01:29 +0200)]
ALSA CVS update
D:2003/08/14 12:05:38
A:Takashi Iwai <tiwai@suse.de>
F:drivers/opl3/opl3_lib.c:1.17->1.18
F:isa/gus/gusclassic.c:1.10->1.11
F:isa/gus/gusextreme.c:1.10->1.11
F:isa/gus/gusmax.c:1.11->1.12
F:pci/azt3328.c:1.2->1.3
F:pci/cs4281.c:1.43->1.44
F:pci/ens1370.c:1.47->1.48
F:pci/es1938.c:1.26->1.27
F:pci/es1968.c:1.51->1.52
F:pci/sonicvibes.c:1.25->1.26
F:pci/via82xx.c:1.45->1.46
F:pci/cs46xx/cs46xx_lib.c:1.62->1.63
F:pci/ice1712/ice1712.c:1.32->1.33
F:pci/ice1712/ice1724.c:1.14->1.15
F:pci/trident/trident_main.c:1.45->1.46
F:pci/ymfpci/ymfpci_main.c:1.40->1.41
F:sparc/amd7930.c:1.6->1.7
F:sparc/cs4231.c:1.8->1.9
L:fixed the wrong order of object destruction:
L: a released object is referred after the *_free() call.
Jaroslav Kysela [Wed, 20 Aug 2003 23:16:53 +0000 (01:16 +0200)]
ALSA CVS update
D:2003/08/05 13:45:12
A:Takashi Iwai <tiwai@suse.de>
F:pci/es1968.c:1.46->1.47
L:- fixed corruption of stream linked list in the interrupt handler.
L:- clean up the unnecessary atomic_t and spinlocks.
Jaroslav Kysela [Wed, 20 Aug 2003 23:15:44 +0000 (01:15 +0200)]
ALSA CVS update
D:2003/08/05 13:43:10
A:Takashi Iwai <tiwai@suse.de>
F:pci/es1968.c:1.45->1.46
L:- rewritten the pm whitelist as a static list.
L:- added more pci subsystem ids to the whitelist.
Jaroslav Kysela [Wed, 20 Aug 2003 23:11:09 +0000 (01:11 +0200)]
ALSA CVS update
D:2003/07/30 15:39:38
A:Takashi Iwai <tiwai@suse.de>
F:pci/intel8x0.c:1.86->1.87
L:- improved the probe/resume function.
L: check only the valid codec bits in chip_init() during resume.
Jaroslav Kysela [Wed, 20 Aug 2003 23:09:57 +0000 (01:09 +0200)]
ALSA CVS update
D:2003/07/30 11:54:03
A:Takashi Iwai <tiwai@suse.de>
F:include/ac97_codec.h:1.30->1.31
F:pci/intel8x0.c:1.85->1.86
F:pci/via82xx.c:1.43->1.44
F:pci/ac97/ac97_codec.c:1.99->1.100
F:pci/ac97/ac97_patch.c:1.17->1.18
F:pci/ac97/ac97_patch.h:1.8->1.9
L:- added quirk type AC97_TUNE_AD_SHARING.
L:- added mask field to snd_ac97_quirk.
L:- new patch for AD1985. set more config bits for line/mic sharing.
L:- rewritten quirk table in C99 init style.
L:- more quirks for intel ICH5/AD1985 boards.
Andrew Morton [Wed, 20 Aug 2003 17:29:16 +0000 (10:29 -0700)]
[PATCH] fix /proc mm_struct refcounting bug
From: Suparna Bhattacharya <suparna@in.ibm.com>
The /proc code's bare atomic_inc(&mm->count) is racy against __exit_mm()'s
mmput() on another CPU: it calls mmput() outside task_lock(tsk), and
task_lock() isn't appropriate locking anyway.
The patch implements a new mmgrab() routine which increments mm_users only if
the mm isn't already going away. Changes get_task_mm() and proc_pid_stat()
to call mmgrab() instead of a direct atomic_inc(&mm->mm_users).
Hugh, there's some cruft in swapoff which looks like it should be using
mmgrab()...
Andrew Morton [Wed, 20 Aug 2003 17:29:07 +0000 (10:29 -0700)]
[PATCH] Fix CPU boot problem
From: Dave Hansen <haveblue@us.ibm.com>
Hmmm. This is looking like fallout from the massive wli-bomb. Here's
the loop that controls the cpu booting, before and after cpumask_t:
- for (bit = 0; kicked < NR_CPUS && bit < BITS_PER_LONG; bit++)
+ for (bit = 0; kicked < NR_CPUS && bit < MAX_APICS; bit++)
apicid = cpu_present_to_apicid(bit);
"kicked" only gets incremented for CPUs that were successfully booted,
so it doesn't help terminate the loop much. MAX_APICS is 256 on summit,
which is *MUCH* bigger than BITS_PER_LONG.
cpu_2_logical_apicid[NR_CPUS] which is referenced from
cpu_present_to_apicid() is getting referenced up to MAX_APICs, which is
bigger than NR_CPUS. Overflow. Bang. garbage != BAD_APICID :)
Andrew Morton [Wed, 20 Aug 2003 17:28:44 +0000 (10:28 -0700)]
[PATCH] fix for htree corruption
From: chrisl@vmware.com
Fixes the "perl installer weirdness" problem which a few people have been
reporting.
The bug is triggered by creating the index. Coping out the index we assume
the dirents start with the first entry after "." "..".
It can make the first previous deleted entry reappear. In the past we set
inode to zero for an empty entry so this is not a problem. That is not
true any more.
Also, there were a few places where we were altering inode times after
running ext3_mark_inode_dirty(). We should be doing that beforehand.
Andrew Morton [Wed, 20 Aug 2003 17:28:19 +0000 (10:28 -0700)]
[PATCH] fix intel copy_to_user()
A `cat /dev/kmem' oopses the kernel. This is because new Intel
copy_to_user() doesn't handle segfaults against the kernel-side source
address of the copy.
It is not obvious how to fix read_kmem(), and handling faults on either
source or dest is traditional behaviour, so fix it in the copy function by
adding exception table entries for the reads as well as the writes.
Andrew Morton [Wed, 20 Aug 2003 17:27:47 +0000 (10:27 -0700)]
[PATCH] dscc4: reset changes
From: Francois Romieu <romieu@fr.zoreil.com>
Workaround for lack of true reset:
- devices/ports are put in silent mode at ifconfig down time but some
state is kept around to allow 'ifconfig up' issuing at a later time.
Device specific structures are allocated when the pci asic is
probed: dscc4_init_ring() moves from dscc4_open() to dscc4_found1().
- try to use reset related board-specific feature at module removal
time if available. Comments in the code explain the whole story.
Not a complicated feature but it is unavailable on the cards I own
and no user gave me feedback -> currently untested.
It shouldn't harm anyway.
Andrew Morton [Wed, 20 Aug 2003 17:27:39 +0000 (10:27 -0700)]
[PATCH] dscc4: scc changes
From: Francois Romieu <romieu@fr.zoreil.com>
- more #define for specific bits;
- more scc_patchl use;
- just say no to bozo programming:
+ SCC core _really_ disabled at startup;
+ Interrupts Mask Register setup and SCC core activation are
done as late as possible (i.e. in dscc4_open());
+ they are reverted if dscc4_open() fails;
+ as well as unconditionnaly in dscc4_close();
- more or less paranoid quirk in Xpr handler.
Andrew Morton [Wed, 20 Aug 2003 17:26:57 +0000 (10:26 -0700)]
[PATCH] Allow O_EXCL on a block device to claim exclusive use.
From: NeilBrown <neilb@cse.unsw.edu.au>
The blockdev layer has a concept of 'claiming' a device, so for example it
can be claimed when a filesystem is mounted or when it is included into a
raid array. Only one subsystem can claim it at a time.
This patch matches this functionality available to user-space via the
O_EXCL flag to open.
This allows user-space programs to easily test if a device is currently
mounted etc, and to prevent a device from being mounted or otherwise
claimed.
Andrew Morton [Wed, 20 Aug 2003 17:26:48 +0000 (10:26 -0700)]
[PATCH] When a partition is claimed, claim the whole device
From: NeilBrown <neilb@cse.unsw.edu.au>
Current devices can be 'claimed' by filesystems (when mounting) or
md/raid (when being included in an array) or 'raw' or ....
This stop concurrent access by these systems.
However it is still possible for one system to claim the whole device
and a second system to claim one partition, which is not good.
With this patch, when a partition is claimed, the whole device is
claimed for partitioning. So you cannot have a partition and the
whole devices claimed at the same time (except if the whole device
is claimed for partitioning).
Andrew Morton [Wed, 20 Aug 2003 17:26:39 +0000 (10:26 -0700)]
[PATCH] vmscan: give dirty referenced pages another pass
In a further attempt to prevent dirty pages from being written out from the
LRU, don't write them if they were referenced. This gives those pages
another trip around the inactive list. So more of them are written via
balance_dirty_pages().
It speeds up an untar-of-five-kernel trees by 5% on a 256M box, presumably
because balance_dirty_pages() has better IO patterns.
It largely fixes the problem which Gerrit talked about at the kernel summit:
the individual writepage()s of dirty pages coming off the tail of the LRU are
reduced by 83% in their database workload.
I'm a bit worried that it increases scanning and OOM possibilities under
nutty VM stress cases, but nothing untoward has been noted during its four
weeks in -mm, so...
That patch went into mainline by mistake - it was initial variant of a
fix for the problem with disabled P2P bridges. Which has already been
fixed properly in -test3.