Linus Torvalds [Thu, 21 Aug 2003 15:50:34 +0000 (08:50 -0700)]
The Intel Instruction set manual is wrong on how to test for
a valid SEP bit. The errata has it right: you have to have at
least model 3, stepping 3. Not "model >= 3 or stepping >= 3".
Fix APIC ID lookup. In the bios_cpu_apicid[] case, it would walk off
the end of bios_cpu_apicid[] and attempt to send APIC INIT messages to
garbage without this patch, and in the NUMA-Q case, it would attempt to
send NMI wakeups to destinations in the broadcast cluster (which is
harmless, but very poor form) without this patch.
David Mosberger [Thu, 21 Aug 2003 08:46:04 +0000 (01:46 -0700)]
ia64: perfmon update.
Here is a ChangeLog for the patch:
- The perfmon core will invoke the sampling module handler
routine once for each overflowed PMD. When multiple PMDs
overflow at the same time (with the same PMU interrupt),
then up to 64 distinct calls can happen. A common timestamp
parameter allows the module to identify this kind of
entries.
- Changed the module ovfl_ctrl arguments to simplify the reset
field. Now it is a simple boolean.
- Updated perfmon.h to convert the "set" field to ushort from
uint. Other structure updates to get better layout.
- Update perfmon_default_smpl.h to reflect the change in
overflow processing mentioned above.
- Cleanup some state checking code to use switch-case instead
of if-then with macros. Make the code more readable and
easier to optmize for gcc. Thanks to David for the
suggestion.
- Added extra safety checks on pfm_context_load() to verify
that the task actually exists.
- The default sampling format module now supports the
fmt_restart_active callbacks. Patch from David.
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.