So here goes -pre3...
Summary of changes from v2.4.21-pre2 to v2.4.21-pre3
============================================
<[email protected]>:
o [BRIDGE]: new_nbp runs under rwlock so needs to use GFP_ATOMIC
<[email protected]>:
o AGP support for VIA P4X333 boards
<[email protected]>:
o USB ipaq driver update
<[email protected]>:
o [VLAN]: Quiet some printks and free devices/groups correctly
<[email protected]>:
o [SCH_GRED]: Array overflow fixes, found by Stanford checker
<[email protected]>:
o scanner.h: add/fix vendor/product ids
o scanner.c: silence noisy debug message
o scanner.c: Support for devices with only one bulk-in endpoint
o scanner.c: Accept scanners with more than one interface
o [PATCH 2.4.21-pre1] scanner.c: Use first altsetting in probe_scanner()
o scanner.c: fix race in ioctl_scanner()
o USB scanner driver: updated documentation
<[email protected]>:
o [2.4.21-pre2] scx200 build fix
<[email protected]>:
o [IPV6]: Missing in6_dev_put in router discovery
<[email protected]>:
o Update ov511 to version 1.63. This is a backport of the 2.5 driver,
<[email protected]>:
o USB kaweth bugfix
<[email protected]>:
o a new device added and assign proper vendor id to the Netgear adapter
o USB pegasus update
o USB rtl8150 update
o Petkan's email address change
Alan Cox <[email protected]>:
o fix legacy hd
o various minor noise merges
o update Pavel credits
o via audio updates to add 8233/8235 support
o motorola timeport is comms class but doesnt use comms class
o support 24bit and multichannel audio stuff in usb-audio
o use MUX ident for pdc console
o bring wan drivers into line with 2.5
o matroxfb updates
o documentation only merge - add docbook documentation to jbd
o fix suprises in arm defines
o defines/protection oddments for x86
o add CON_BOOT flaga
o kstat changes for PA risc
o matroxfb update header
o update iphase ATM driver
o 3964 trivial optimisation
o arcnet pci updates
o eepro100: more boxes care about alignment
o scsi dup id bug
o isd200 to new style IDE
o USB workaround for ALi OHCI oddments
o Fix memory leak in fs layer
o DRM must enable device to get its IRQ
o drm ensure memory initialized
o another DRM backport of a memory clear
o x86-64 needs the same page twiddles as x86-32 for DRM AGP
o email change in DRM
o email change in drm - 2
o journalling header changes (docs only)
o removepage callback
o wrong include order
o fix i810 oops
o fix mplayer. realplayer and friends on via8233/8235
o IDE driver for Compaq Triflex IDE
o fix ALi audio handling for 6 channel, fixes audio in RadeonIGP
o config entry for triflex ide
o corename patch from -ac
o bring APM up to date
o Fix the "controller but no drives" IDE problem
o trivial ide oddments
Alexey Kuznetsov <[email protected]>:
o [IPV6]: Check for NULL return from __in6_dev_get
Andreas Dilger <[email protected]>:
o 2.4 ext3 ino_t removal
Andrew Morton <[email protected]>:
o remove dead function swap_count()
o fix buffer_head.b_state race
Arnaldo Carvalho de Melo <[email protected]>:
o Fix token ring SMP lockups
Bart De Schuymer <[email protected]>:
o [IP_TABLES]: Fix locking comments
Bjorn Helgaas <[email protected]>:
o Fix CPU bitmask truncation (1 of 2)
o Fix CPU bitmask truncation (2 of 2)
Chad N. Tindel <[email protected]>:
o [BONDING]: Update to version 2.4.20-20021210
Dave Jones <[email protected]>:
o Work around BIOS problem with recent Athlons
David Brownell <[email protected]>:
o ehci updates
David S. Miller <[email protected]>:
o net/ipv6/netfilter/ip6table_mangle.c: Fix bogus cast
o [ip-sysctl.txt]: Clarify conf/*/ behavior
o [IPV4]: Report zero route advmss properly
o [NET]: Copy msg_namelen back to user in recv{from,msg} even if it is zero
o [VLAN]: remove vlan_devices[] entries properly
o [IPV6]: Fix merge error
o [IPV6]: Kill unused variable in igmp6_leave_group
o [TCP]: Add FRTO sysctl entry
Greg Kroah-Hartman <[email protected]>:
o USB scanner: stop managing our module reference count, and let the VFS do it
Harald Welte <[email protected]>:
o [NETFILTER] Add IP unused bit check to ipt_unclean.c, from Maciej Soltysiak
Hideaki Yoshifuji <[email protected]>:
o net/ipv6/addrconf.c: Use prefix of 64 for link-local addresses
o net/ipv6/mcast.c: Several MLD fixes
o [IPV6]: Add IPV6_V6ONLY socket option support
o [IPV6]: Add ICMP6 rate limit sysctl
o [IPV6]: Split ndisc_rcv into helper functions
o [IPV6]: Avoid garbage sin6_scope_id for MSG_ERRQUEUE messages
o [IPV6]: Fix for refined IPV6 address validation timer
o [IPV6]: Fix Length of Authentication Extension Header
Hugh Dickins <[email protected]>:
o tmpfs read hang
Jean Tourrilhes <[email protected]>:
o IrLMP basic socket scheduler
o donauboe IrDA driver
Jeff Garzik <[email protected]>:
o [netdrvr mii] fix ugly lack of useful bit masking
o [netdrvr] add AMD-8111 ethernet driver (yet another PCI lance)
o [netdrvr eepro100] new pci id
o [netdrvr de4x5] fix uninitializer timer
o [netdrvr e1000] sync up with 2.5.x e1000 driver
o [netdrver e1000] wol updates
o [netdrvr e1000] restore VLAN settings after resume
o [netdrvr e1000] small cleanups and fixes
o [netdrvr e100] sync up with 2.5.x e100 driver
o [netdrvr e100] Bug fix: system panic in watchdog when repeating ifdown, rmmod, insmod
o [netdrvr e100] Bug fix: enable/disable WOL based on EEPROM settings
o [netdrvr e100] fix ethtool/mii interface up/down issues
o [netdrvr e100] better debugging for command failures/timeouts
o [netdrvr e100] changelog/whitespace updates, small fixes
Maksim Krasnyanskiy <[email protected]>:
o Remove old BNEP ioctls. These are internal. Only one app is supposed to use them, so there is no compatibility problem.
o Move Bluetooth ioctls after USB and other stuff in sparc64/ioctl32.c
Marcel Holtmann <[email protected]>:
o [Bluetooth] Convert dlci and channel variables to u8
o [Bluetooth] Add some COMPATIBLE_IOCTL for SPARC64
Marcelo Tosatti <[email protected]>:
o Fix ide-tape unload issue
Marcelo Tosatti <[email protected]>:
o Add removepage callback
o Cset exclude: [email protected]|ChangeSet|20030102230329|26122 "add hwclock ioctls"
o Changed EXTRAVERSION to -pre3
o Fix typo in Apollo P4X400 support patch
o Revert broken drivers/ieee1394/Makefile changes
Mark W. McClelland <[email protected]>:
o USB ov511: Convert to new V4L 1 interface
Mikael Pettersson <[email protected]>:
o Fix ide-scsi ref count bug in 2.4.20-pre2
Neil Brown <[email protected]>:
o Remove irrelevant warning in sunrpc code
o Avoid oops when NFSD decodes enourmous filehandle
o Set BH_Locked when accessing MD superblocks
Pasi Sarolahti <[email protected]>:
o [TCP]: Add F-RTO support
Paul Mackerras <[email protected]>:
o PPC32: More OpenPIC updates, to openpic_init and openpic_init_nmi_irq
o PPC32: fix the compile with IDE
o PPC32: Provide a more general way to handle cascaded interrupts
o PPC32: Provide finer control over IRQ sense and polarity for OpenPIC interrupts.
o PPC32: Evaluate physical addresses correctly from Open Firmware device tree when we have non-transparent PCI bridges.
o PPC32: remove the unimplemented iopl, vm86 and modify_ldt syscalls
o PPC32: Update all the defconfigs
Randy Dunlap <[email protected]>:
o usb semaphore lock in 2.4.20-rc1 (since 2.4.13)
Simon Evans <[email protected]>:
o 2.4.20 usbvideo cleanups 1/4
o 2.4.20 usbvideo cleanups 2/4
o 2.4.20 usbvideo cleanups 3/4
o 2.4.20 usbvideo cleanups 4/4
o 2.4.20 usbvideo fixes from 2.5 1/5
o 2.4.20 usbvideo fixes from 2.5 2/5
o 2.4.20 usbvideo fixes from 2.5 3/5
o 2.4.20 usbvideo fixes from 2.5 4/5
o 2.4.20 usbvideo fixes from 2.5 5/5
Thomas Sailer <[email protected]>:
o Fix oopsable bug in OSS PCI sound drivers
Tom Rini <[email protected]>:
o PPC32: Add support to the OpenPIC code to allow the controller to be in serial mode.
o PPC32: Change the OpenPIC initalization logic so that it no longer needs to know where the NMI irq is.
o PPC32: Remove an unused parameter to openpic_init()
o PPC32: Make progress messages for OpenPIC matters consistent
o PPC32: Merge i8259_irq() (using the int-ack feature) and i8259_poll() (poll for IRQ) into one function, i8259_irq().
o PPC32: Remove a special case for hardware with an OpenPIC and i8259 where we must call use the int-ack for cascaded IRQs and not poll.
o PPC32: Remove extra __KERNEL__ checks in some headers, as well as adding /* __KERNEL__ */ to the #endif of others.
o PPC32: Fix a problem in the bootloader/wrapper where we might
o PPC32: Fix some 'prep' machines which are not true PRePs, and can safely poll for interrupts on the i8259.
o PPC32: Add explicit parens around arguments used in macros in include/asm-ppc/page.h
o PPC32: Fix a delay which could occur when booting on machines without an RTC.
o PPC32: Move IRQ sense and polarity masks to <asm/irq.h>
Vojtech Pavlik <[email protected]>:
o Workaround (ide-timing.h) for many ATAPI CD/DVD-ROMs and burners
On Mon, Jan 06, 2003 at 07:32:37PM -0200, Marcelo Tossati wrote:
> <[email protected]>:
> o AGP support for VIA P4X333 boards
Bogus. Uses incorrect naming, as the P4X333 is a chipset, not
a northbridge. The P4X400 also matches this ID for eg.
Also needes s/Via/VIA/
Dave
--
| Dave Jones. http://www.codemonkey.org.uk
| SuSE Labs
Hi Marcelo :))
Did you get my *new* patch to do_mmap_pgoff with the corrections
that David S. Miller did?
If you want me to resend for next pre, just tell.
Ra?l
On Mon, Jan 06, 2003 at 07:32:37PM -0200, Marcelo Tosatti wrote:
> So here goes -pre3...
>
>
> Summary of changes from v2.4.21-pre2 to v2.4.21-pre3
> ============================================
>...
> Jean Tourrilhes <[email protected]>:
>...
> o donauboe IrDA driver
>...
Please apply the patch below (stolen from 2.5) that does the following:
* C99 initializers
* fix public symbol name conflict (compile error if both donauboe and
toshoboe are compiled statically
into the kernel)
cu
Adrian
--- 1.1/drivers/net/irda/donauboe.c Fri Oct 11 10:26:35 2002
+++ 1.2/drivers/net/irda/donauboe.c Thu Nov 7 12:57:09 2002
@@ -1825,26 +1825,26 @@
return 0;
}
-static struct pci_driver toshoboe_pci_driver = {
- name : "toshoboe",
- id_table : toshoboe_pci_tbl,
- probe : toshoboe_open,
- remove : toshoboe_close,
- suspend : toshoboe_gotosleep,
- resume : toshoboe_wakeup
+static struct pci_driver donauboe_pci_driver = {
+ .name = "donauboe",
+ .id_table = toshoboe_pci_tbl,
+ .probe = toshoboe_open,
+ .remove = toshoboe_close,
+ .suspend = toshoboe_gotosleep,
+ .resume = toshoboe_wakeup
};
-int __init
-toshoboe_init (void)
+static int __init
+donauboe_init (void)
{
- return pci_module_init(&toshoboe_pci_driver);
+ return pci_module_init(&donauboe_pci_driver);
}
-STATIC void __exit
-toshoboe_cleanup (void)
+static void __exit
+donauboe_cleanup (void)
{
- pci_unregister_driver(&toshoboe_pci_driver);
+ pci_unregister_driver(&donauboe_pci_driver);
}
-module_init(toshoboe_init);
-module_exit(toshoboe_cleanup);
+module_init(donauboe_init);
+module_exit(donauboe_cleanup);
> o bring APM up to date
This doesn't compile on SMP. To get Alan's update working you need rml's patch
for set_cpus_allowed() in 2.4, that I try to feed you for two month now..
diff -urN linux-2.4.20-pre8/include/linux/sched.h linux/include/linux/sched.h
--- linux-2.4.20-pre8/include/linux/sched.h Mon Sep 30 17:41:22 2002
+++ linux/include/linux/sched.h Tue Oct 1 18:35:28 2002
@@ -163,6 +164,12 @@
extern int start_context_thread(void);
extern int current_is_keventd(void);
+#if CONFIG_SMP
+extern void set_cpus_allowed(struct task_struct *p, unsigned long new_mask);
+#else
+# define set_cpus_allowed(p, new_mask) do { } while (0)
+#endif
+
/*
* The default fd array needs to be at least BITS_PER_LONG,
* as this is the granularity returned by copy_fdset().
diff -urN linux-2.4.20-pre8/kernel/ksyms.c linux/kernel/ksyms.c
--- linux-2.4.20-pre8/kernel/ksyms.c Mon Sep 30 17:41:22 2002
+++ linux/kernel/ksyms.c Tue Oct 1 18:34:41 2002
@@ -451,6 +451,9 @@
EXPORT_SYMBOL(interruptible_sleep_on_timeout);
EXPORT_SYMBOL(schedule);
EXPORT_SYMBOL(schedule_timeout);
+#if CONFIG_SMP
+EXPORT_SYMBOL(set_cpus_allowed);
+#endif
EXPORT_SYMBOL(yield);
EXPORT_SYMBOL(__cond_resched);
EXPORT_SYMBOL(jiffies);
diff -urN linux-2.4.20-pre8/kernel/sched.c linux/kernel/sched.c
--- linux-2.4.20-pre8/kernel/sched.c Mon Sep 30 17:41:22 2002
+++ linux/kernel/sched.c Tue Oct 1 18:54:49 2002
@@ -850,6 +850,44 @@
void scheduling_functions_end_here(void) { }
+#if CONFIG_SMP
+/**
+ * set_cpus_allowed() - change a given task's processor affinity
+ * @p: task to bind
+ * @new_mask: bitmask of allowed processors
+ *
+ * Upon return, the task is running on a legal processor. Note the caller
+ * must have a valid reference to the task: it must not exit() prematurely.
+ * This call can sleep; do not hold locks on call.
+ */
+void set_cpus_allowed(struct task_struct *p, unsigned long new_mask)
+{
+ new_mask &= cpu_online_map;
+ BUG_ON(!new_mask);
+
+ p->cpus_allowed = new_mask;
+
+ /*
+ * If the task is on a no-longer-allowed processor, we need to move
+ * it. If the task is not current, then set need_resched and send
+ * its processor an IPI to reschedule.
+ */
+ if (!(p->cpus_runnable & p->cpus_allowed)) {
+ if (p != current) {
+ p->need_resched = 1;
+ smp_send_reschedule(p->processor);
+ }
+ /*
+ * Wait until we are on a legal processor. If the task is
+ * current, then we should be on a legal processor the next
+ * time we reschedule. Otherwise, we need to wait for the IPI.
+ */
+ while (!(p->cpus_runnable & p->cpus_allowed))
+ schedule();
+ }
+}
+#endif /* CONFIG_SMP */
+
#ifndef __alpha__
/*
diff -urN linux-2.4.20-pre8/kernel/softirq.c linux/kernel/softirq.c
--- linux-2.4.20-pre8/kernel/softirq.c Mon Sep 30 17:41:22 2002
+++ linux/kernel/softirq.c Tue Oct 1 18:53:01 2002
@@ -368,9 +368,7 @@
sigfillset(¤t->blocked);
/* Migrate to the right CPU */
- current->cpus_allowed = 1UL << cpu;
- while (smp_processor_id() != cpu)
- schedule();
+ set_cpus_allowed(current, 1UL << cpu);
sprintf(current->comm, "ksoftirqd_CPU%d", bind_cpu);
On Monday 06 January 2003 22:32, Marcelo Tosatti wrote:
> So here goes -pre3...
depmod: *** Unresolved symbols in /lib/modules/2.4.21-pre3/kernel/drivers/video/matrox/matroxfb_DAC1064.o
depmod: g450_mnp2f
depmod: matroxfb_g450_setpll_cond
depmod: matroxfb_g450_setclk
On Sat, Jan 11, 2003 at 11:15:11PM +0100, Helge Deller wrote:
> On Monday 06 January 2003 22:32, Marcelo Tosatti wrote:
> > So here goes -pre3...
>
> depmod: *** Unresolved symbols in /lib/modules/2.4.21-pre3/kernel/drivers/video/matrox/matroxfb_DAC1064.o
> depmod: g450_mnp2f
> depmod: matroxfb_g450_setpll_cond
> depmod: matroxfb_g450_setclk
Hi Marcelo,
please apply patch below.
Use g450/g550 related code only if we are building driver supporting
g450/g550. Otherwise we end up with couple of undefined symbols
related to the G450 PLL.
Thanks,
Petr Vandrovec
[email protected]
diff -urdN linux/drivers/video/matrox/matroxfb_DAC1064.c linux/drivers/video/matrox/matroxfb_DAC1064.c
--- linux/drivers/video/matrox/matroxfb_DAC1064.c 2003-01-12 00:43:23.000000000 +0100
+++ linux/drivers/video/matrox/matroxfb_DAC1064.c 2003-01-12 00:55:38.000000000 +0100
@@ -276,6 +276,7 @@
hw->MXoptionReg = mx;
}
+#ifdef CONFIG_FB_MATROX_G450
static void g450_set_plls(WPMINFO2) {
u_int32_t c2_ctl;
unsigned int pxc;
@@ -365,6 +366,7 @@
}
}
}
+#endif
void DAC1064_global_init(WPMINFO2) {
struct matrox_hw_state* hw = &ACCESS_FBINFO(hw);
@@ -372,6 +374,7 @@
hw->DACreg[POS1064_XMISCCTRL] &= M1064_XMISCCTRL_DAC_WIDTHMASK;
hw->DACreg[POS1064_XMISCCTRL] |= M1064_XMISCCTRL_LUT_EN;
hw->DACreg[POS1064_XPIXCLKCTRL] = M1064_XPIXCLKCTRL_PLL_UP | M1064_XPIXCLKCTRL_EN | M1064_XPIXCLKCTRL_SRC_PLL;
+#ifdef CONFIG_FB_MATROX_G450
if (ACCESS_FBINFO(devflags.g450dac)) {
hw->DACreg[POS1064_XPWRCTRL] = 0x1F; /* powerup everything */
hw->DACreg[POS1064_XOUTPUTCONN] = 0x00; /* disable outputs */
@@ -420,7 +423,9 @@
}
/* Now set timming related variables... */
g450_set_plls(PMINFO2);
- } else {
+ } else
+#endif
+ {
if (ACCESS_FBINFO(outputs[1]).src == MATROXFB_SRC_CRTC1) {
hw->DACreg[POS1064_XPIXCLKCTRL] = M1064_XPIXCLKCTRL_PLL_UP | M1064_XPIXCLKCTRL_EN | M1064_XPIXCLKCTRL_SRC_EXT;
hw->DACreg[POS1064_XMISCCTRL] |= GX00_XMISCCTRL_MFC_MAFC | G400_XMISCCTRL_VDO_MAFC12;
@@ -622,6 +627,7 @@
.compute = m1064_compute,
};
+#ifdef CONFIG_FB_MATROX_G450
static int g450_compute(void* out, struct my_timming* m) {
#define minfo ((struct matrox_fb_info*)out)
if (m->mnp < 0) {
@@ -639,6 +645,7 @@
.name = "Primary output",
.compute = g450_compute,
};
+#endif
#endif /* NEED_DAC1064 */
@@ -821,6 +828,7 @@
#endif
#ifdef CONFIG_FB_MATROX_G100
+#ifdef CONFIG_FB_MATROX_G450
static void g450_mclk_init(WPMINFO2) {
/* switch all clocks to PCI source */
pci_write_config_dword(ACCESS_FBINFO(pcidev), PCI_OPTION_REG, ACCESS_FBINFO(hw).MXoptionReg | 4);
@@ -938,6 +946,10 @@
return;
}
+#else
+static inline void g450_preinit(WPMINFO2) {
+}
+#endif
static int MGAG100_preinit(WPMINFO2) {
static const int vxres_g100[] = { 512, 640, 768, 800, 832, 960,
@@ -975,9 +987,12 @@
ACCESS_FBINFO(capable.plnwt) = ACCESS_FBINFO(devflags.accelerator) == FB_ACCEL_MATROX_MGAG100
? ACCESS_FBINFO(devflags.sgram) : 1;
+#ifdef CONFIG_FB_MATROX_G450
if (ACCESS_FBINFO(devflags.g450dac)) {
ACCESS_FBINFO(outputs[0]).output = &g450out;
- } else {
+ } else
+#endif
+ {
ACCESS_FBINFO(outputs[0]).output = &m1064;
}
ACCESS_FBINFO(outputs[0]).src = MATROXFB_SRC_CRTC1;