Re: 2.4.19-rc2 -> 2.4.19-rc3 : no more eth (fwd)

From: Marc Duponcheel (mduponch@cisco.com)
Date: Fri Jul 26 2002 - 08:38:51 EST


I apologise for the delay, I have a lot of work recently ...

Regarding the idea to troubleshoot the 2.4.19-rc2 -> 2.4.19-rc3
changes step by step : Of course that should reveal the culprit but,
unfortunately, the only (1 out of 3) host on which I see the issue
happens to be my main headless server in the wiring closet which I
cannot reboot so often.

It runs 2.4.18 again now.

Someone else thought this might be bacause of changes in hotplug so I
can try to turn off CONFIG_HOTPLUG (but I do need CONFIG_HOTPLUG).

Still, I will do my best to investigate further, and, when 2.4.19 new
versions come out (rc or not) I will always test again.

PS: I see gcc 3.1.1 is on the cygnus ftp server so next time I might
try that compiler as well.

Have a great weekend and thanks all

On Thu, Jul 25, 2002 at 12:19:29PM -0700, Andrew Morton wrote:
> Marc Duponcheel wrote:
> >
> > On Tue, Jul 23, 2002 at 08:32:08PM -0700, Andrew Morton wrote:
> > > Marcelo Tosatti wrote:
> > ...
> > > > Warning (compare_Version): Version mismatch. 3c59x says 2.4.18, System.map says 2.4.19. Expect lots of address mismatches.
> > >
> > > This is a worry. Are we sure it was a clean build?
> > > Please do a `make mrproper' and retest?
> >
> > Recall,
> >
> > This is about ethernet interfaces not initialising (and hence not working)
> > with 2.4.19-rc3 (they do initialise and work with 2.4.19-rc2).
> >
> > As suggested, I have, for all certainty, repatched linux-2.4.18.tar.gz with patch-2.4.19-rc3.gz
> > and rebuilt from a 'mrproper' /usr/src/linux, but the issue remains.
> >
> > This time I ran ksymoops on the 2.4.19-rc3 system so no more mismatches
> >
> > When doing 'lsmod' one sees the modules eepro100 and 3c59x as 'initialising'
> > and one cannot 'rmmod' them because they are 'busy'.
> >
>
> Odd. There's not a lot of difference between -rc2 and -rc3.
> The entire diff is below. You didn't switch compilers or
> something?
>
> Makefile | 2
> arch/i386/kernel/apm.c | 4 -
> arch/i386/kernel/pci-irq.c | 4 +
> arch/i386/kernel/traps.c | 11 ++--
> drivers/char/agp/agp.h | 3 +
> drivers/char/agp/agpgart_be.c | 12 ++++
> drivers/ide/ide-features.c | 6 ++
> drivers/ide/ide-pci.c | 2
> drivers/media/radio/radio-zoltrix.c | 3 -
> drivers/net/wireless/orinoco_plx.c | 2
> drivers/pci/names.c | 10 +--
> drivers/pci/quirks.c | 16 ++++++
> drivers/scsi/aha152x.c | 6 ++
> drivers/scsi/atp870u.c | 23 ++++++--
> drivers/scsi/megaraid.c | 8 +--
> drivers/scsi/scsi_scan.c | 9 +++
> drivers/sound/cs4232.c | 38 ++++++++++++++
> drivers/sound/maestro.c | 10 +++
> drivers/usb/rtl8150.c | 2
> include/linux/agp_backend.h | 1
> include/linux/pci_ids.h | 8 +--
> include/linux/personality.h | 3 -
> mm/shmem.c | 1
> net/ipv4/netfilter/ip_conntrack_core.c | 8 +--
> net/rose/af_rose.c | 6 +-
> scripts/kernel-doc | 86 +++++++++++++++++++++++++--------
> 26 files changed, 226 insertions, 58 deletions
>
> Could you please back out the changes until the problem
> goes away?
>
> This script which someone wrote will break the diff into
> standalone chunks. Suggest you start with the patch
> against drivers/pci/names.c.
>
> #!/usr/bin/perl -w
> $out = "";
> while (<>) {
> next if (/^Only/);
> next if (/^Binary/);
> if (/^diff/ || /^Index/) {
> if ($out) {
> close OUT;
> }
> (@out) = split(' ', $_);
> shift(@out) if (/^diff/);
> $out = pop(@out);
> $out =~ s:/*usr/:/:;
> $out =~ s:/*src/:/:;
> $out =~ s:^/*linux[^/]*::;
> $out =~ s:\(w\)::;
> next if ($out eq "");
> $out = "/var/tmp/patches/$out";
> $dir = $out;
> $dir =~ s:/[^/]*$::;
> print STDERR "$out\n";
> system("mkdir -p $dir");
> open(OUT, ">$out") || die("cannot open $out");
> }
> if ($out) {
> print OUT $_;
> }
> }
>
> diff -uNrp linux-2.4.19-rc2/Makefile linux-2.4.19-rc3/Makefile
> --- linux-2.4.19-rc2/Makefile Sun Jul 21 20:16:21 2002
> +++ linux-2.4.19-rc3/Makefile Sun Jul 21 22:07:56 2002
> @@ -1,7 +1,7 @@
> VERSION = 2
> PATCHLEVEL = 4
> SUBLEVEL = 19
> -EXTRAVERSION = -rc2
> +EXTRAVERSION = -rc3
>
> KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
>
> diff -uNrp linux-2.4.19-rc2/arch/i386/kernel/apm.c linux-2.4.19-rc3/arch/i386/kernel/apm.c
> --- linux-2.4.19-rc2/arch/i386/kernel/apm.c Sun Jul 21 20:16:22 2002
> +++ linux-2.4.19-rc3/arch/i386/kernel/apm.c Sun Jul 21 22:07:56 2002
> @@ -1198,12 +1198,12 @@ static int suspend(int vetoable)
> printk(KERN_CRIT "apm: suspend was vetoed, but suspending anyway.\n");
> }
> get_time_diff();
> - cli();
> + __cli();
> err = set_system_power_state(APM_STATE_SUSPEND);
> reinit_timer();
> set_time();
> ignore_normal_resume = 1;
> - sti();
> + __sti();
> if (err == APM_NO_ERROR)
> err = APM_SUCCESS;
> if (err != APM_SUCCESS)
> diff -uNrp linux-2.4.19-rc2/arch/i386/kernel/pci-irq.c linux-2.4.19-rc3/arch/i386/kernel/pci-irq.c
> --- linux-2.4.19-rc2/arch/i386/kernel/pci-irq.c Sun Jul 21 20:16:22 2002
> +++ linux-2.4.19-rc3/arch/i386/kernel/pci-irq.c Sun Jul 21 22:07:56 2002
> @@ -489,6 +489,10 @@ static struct irq_router pirq_routers[]
> pirq_serverworks_get, pirq_serverworks_set },
> { "AMD756 VIPER", PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_VIPER_740B,
> pirq_amd756_get, pirq_amd756_set },
> + { "AMD766", PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_VIPER_7413,
> + pirq_amd756_get, pirq_amd756_set },
> + { "AMD768", PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_VIPER_7443,
> + pirq_amd756_get, pirq_amd756_set },
>
> { "default", 0, 0, NULL, NULL }
> };
> diff -uNrp linux-2.4.19-rc2/arch/i386/kernel/traps.c linux-2.4.19-rc3/arch/i386/kernel/traps.c
> --- linux-2.4.19-rc2/arch/i386/kernel/traps.c Sun Jul 21 20:16:22 2002
> +++ linux-2.4.19-rc3/arch/i386/kernel/traps.c Sun Jul 21 22:07:56 2002
> @@ -139,14 +139,14 @@ void show_trace(unsigned long * stack)
> if (!stack)
> stack = (unsigned long*)&stack;
>
> - printk("Call Trace: ");
> + printk("Call Trace: ");
> i = 1;
> while (((long) stack & (THREAD_SIZE-1)) != 0) {
> addr = *stack++;
> if (kernel_text_address(addr)) {
> if (i && ((i % 6) == 0))
> - printk("\n ");
> - printk("[<%08lx>] ", addr);
> + printk("\n ");
> + printk(" [<%08lx>]", addr);
> i++;
> }
> }
> @@ -618,9 +618,10 @@ void math_error(void *eip)
> default:
> break;
> case 0x001: /* Invalid Op */
> - case 0x040: /* Stack Fault */
> - case 0x240: /* Stack Fault | Direction */
> + case 0x041: /* Stack Fault */
> + case 0x241: /* Stack Fault | Direction */
> info.si_code = FPE_FLTINV;
> + /* Should we clear the SF or let user space do it ???? */
> break;
> case 0x002: /* Denormalize */
> case 0x010: /* Underflow */
> diff -uNrp linux-2.4.19-rc2/drivers/char/agp/agp.h linux-2.4.19-rc3/drivers/char/agp/agp.h
> --- linux-2.4.19-rc2/drivers/char/agp/agp.h Sun Jul 21 20:16:24 2002
> +++ linux-2.4.19-rc3/drivers/char/agp/agp.h Sun Jul 21 22:07:59 2002
> @@ -265,6 +265,9 @@ struct agp_bridge_data {
> #ifndef PCI_DEVICE_ID_AL_M1651_0
> #define PCI_DEVICE_ID_AL_M1651_0 0x1651
> #endif
> +#ifndef PCI_DEVICE_ID_AL_M1671_0
> +#define PCI_DEVICE_ID_AL_M1671_0 0x1671
> +#endif
>
> /* intel register */
> #define INTEL_APBASE 0x10
> diff -uNrp linux-2.4.19-rc2/drivers/char/agp/agpgart_be.c linux-2.4.19-rc3/drivers/char/agp/agpgart_be.c
> --- linux-2.4.19-rc2/drivers/char/agp/agpgart_be.c Sun Jul 21 20:16:24 2002
> +++ linux-2.4.19-rc3/drivers/char/agp/agpgart_be.c Sun Jul 21 22:07:59 2002
> @@ -3946,6 +3946,12 @@ static struct {
> "Ali",
> "M1651",
> ali_generic_setup },
> + { PCI_DEVICE_ID_AL_M1671_0,
> + PCI_VENDOR_ID_AL,
> + ALI_M1671,
> + "Ali",
> + "M1671",
> + ali_generic_setup },
> { 0,
> PCI_VENDOR_ID_AL,
> ALI_GENERIC,
> @@ -4094,6 +4100,12 @@ static struct {
> "SiS",
> "735",
> sis_generic_setup },
> + { PCI_DEVICE_ID_SI_745,
> + PCI_VENDOR_ID_SI,
> + SIS_GENERIC,
> + "SiS",
> + "745",
> + sis_generic_setup },
> { PCI_DEVICE_ID_SI_730,
> PCI_VENDOR_ID_SI,
> SIS_GENERIC,
> diff -uNrp linux-2.4.19-rc2/drivers/ide/ide-features.c linux-2.4.19-rc3/drivers/ide/ide-features.c
> --- linux-2.4.19-rc2/drivers/ide/ide-features.c Sun Jul 21 20:16:25 2002
> +++ linux-2.4.19-rc3/drivers/ide/ide-features.c Sun Jul 21 22:07:59 2002
> @@ -240,13 +240,16 @@ int set_transfer (ide_drive_t *drive, id
> return 0;
> }
>
> +#ifdef CONFIG_BLK_DEV_IDEDMA
> /*
> * All hosts that use the 80c ribbon mus use!
> */
> byte eighty_ninty_three (ide_drive_t *drive)
> {
> +#ifdef CONFIG_BLK_DEV_IDEPCI
> if (HWIF(drive)->pci_devid.vid==0x105a)
> return(HWIF(drive)->udma_four);
> +#endif
> /* PDC202XX: that's because some HDD will return wrong info */
> return ((byte) ((HWIF(drive)->udma_four) &&
> #ifndef CONFIG_IDEDMA_IVB
> @@ -254,6 +257,7 @@ byte eighty_ninty_three (ide_drive_t *dr
> #endif /* CONFIG_IDEDMA_IVB */
> (drive->id->hw_config & 0x6000)) ? 1 : 0);
> }
> +#endif // CONFIG_BLK_DEV_IDEDMA
>
> /*
> * Similar to ide_wait_stat(), except it never calls ide_error internally.
> @@ -374,6 +378,8 @@ EXPORT_SYMBOL(ide_auto_reduce_xfer);
> EXPORT_SYMBOL(ide_driveid_update);
> EXPORT_SYMBOL(ide_ata66_check);
> EXPORT_SYMBOL(set_transfer);
> +#ifdef CONFIG_BLK_DEV_IDEDMA
> EXPORT_SYMBOL(eighty_ninty_three);
> +#endif // CONFIG_BLK_DEV_IDEDMA
> EXPORT_SYMBOL(ide_config_drive_speed);
>
> diff -uNrp linux-2.4.19-rc2/drivers/ide/ide-pci.c linux-2.4.19-rc3/drivers/ide/ide-pci.c
> --- linux-2.4.19-rc2/drivers/ide/ide-pci.c Sun Jul 21 20:16:25 2002
> +++ linux-2.4.19-rc3/drivers/ide/ide-pci.c Sun Jul 21 22:07:59 2002
> @@ -669,7 +669,7 @@ check_if_enabled:
> */
> pciirq = dev->irq;
>
> -#ifdef CONFIG_PDC202XX_FORCE
> +#ifndef CONFIG_PDC202XX_FORCE
> if (dev->class >> 8 == PCI_CLASS_STORAGE_RAID) {
> /*
> * By rights we want to ignore Promise FastTrak and SuperTrak
> diff -uNrp linux-2.4.19-rc2/drivers/media/radio/radio-zoltrix.c linux-2.4.19-rc3/drivers/media/radio/radio-zoltrix.c
> --- linux-2.4.19-rc2/drivers/media/radio/radio-zoltrix.c Sun Sep 30 12:26:06 2001
> +++ linux-2.4.19-rc3/drivers/media/radio/radio-zoltrix.c Sun Jul 21 22:07:59 2002
> @@ -23,6 +23,7 @@
> * (can detect if station is in stereo)
> * - Added unmute function
> * - Reworked ioctl functions
> + * 2002-07-15 - Fix Stereo typo
> */
>
> #include <linux/module.h> /* Modules */
> @@ -280,7 +281,7 @@ static int zol_ioctl(struct video_device
> struct video_audio v;
> memset(&v, 0, sizeof(v));
> v.flags |= VIDEO_AUDIO_MUTABLE | VIDEO_AUDIO_VOLUME;
> - v.mode != zol_is_stereo(zol)
> + v.mode |= zol_is_stereo(zol)
> ? VIDEO_SOUND_STEREO : VIDEO_SOUND_MONO;
> v.volume = zol->curvol * 4096;
> v.step = 4096;
> diff -uNrp linux-2.4.19-rc2/drivers/net/wireless/orinoco_plx.c linux-2.4.19-rc3/drivers/net/wireless/orinoco_plx.c
> --- linux-2.4.19-rc2/drivers/net/wireless/orinoco_plx.c Sun Jul 21 20:16:26 2002
> +++ linux-2.4.19-rc3/drivers/net/wireless/orinoco_plx.c Sun Jul 21 22:08:00 2002
> @@ -385,7 +385,7 @@ static struct pci_driver orinoco_plx_dri
> name:"orinoco_plx",
> id_table:orinoco_plx_pci_id_table,
> probe:orinoco_plx_init_one,
> - remove:orinoco_plx_remove_one,
> + remove:__devexit_p(orinoco_plx_remove_one),
> suspend:0,
> resume:0
> };
> diff -uNrp linux-2.4.19-rc2/drivers/pci/names.c linux-2.4.19-rc3/drivers/pci/names.c
> --- linux-2.4.19-rc2/drivers/pci/names.c Fri Nov 9 14:03:11 2001
> +++ linux-2.4.19-rc3/drivers/pci/names.c Sun Jul 21 22:08:00 2002
> @@ -32,18 +32,18 @@ struct pci_vendor_info {
> * real memory.. Parse the same file multiple times
> * to get all the info.
> */
> -#define VENDOR( vendor, name ) static char __vendorstr_##vendor[] __initdata = name;
> +#define VENDOR( vendor, name ) static char __vendorstr_##vendor[] __devinitdata = name;
> #define ENDVENDOR()
> -#define DEVICE( vendor, device, name ) static char __devicestr_##vendor##device[] __initdata = name;
> +#define DEVICE( vendor, device, name ) static char __devicestr_##vendor##device[] __devinitdata = name;
> #include "devlist.h"
>
>
> -#define VENDOR( vendor, name ) static struct pci_device_info __devices_##vendor[] __initdata = {
> +#define VENDOR( vendor, name ) static struct pci_device_info __devices_##vendor[] __devinitdata = {
> #define ENDVENDOR() };
> #define DEVICE( vendor, device, name ) { 0x##device, 0, __devicestr_##vendor##device },
> #include "devlist.h"
>
> -static struct pci_vendor_info __initdata pci_vendor_list[] = {
> +static struct pci_vendor_info __devinitdata pci_vendor_list[] = {
> #define VENDOR( vendor, name ) { 0x##vendor, sizeof(__devices_##vendor) / sizeof(struct pci_device_info), __vendorstr_##vendor, __devices_##vendor },
> #define ENDVENDOR()
> #define DEVICE( vendor, device, name )
> @@ -121,7 +121,7 @@ pci_class_name(u32 class)
>
> #else
>
> -void __init pci_name_device(struct pci_dev *dev)
> +void __devinit pci_name_device(struct pci_dev *dev)
> {
> }
>
> diff -uNrp linux-2.4.19-rc2/drivers/pci/quirks.c linux-2.4.19-rc3/drivers/pci/quirks.c
> --- linux-2.4.19-rc2/drivers/pci/quirks.c Sun Jul 21 20:16:26 2002
> +++ linux-2.4.19-rc3/drivers/pci/quirks.c Sun Jul 21 22:08:00 2002
> @@ -457,10 +457,26 @@ static void __init quirk_amd_ordering(st
> }
>
> /*
> + * DreamWorks provided workaround for Dunord I-3000 problem
> + *
> + * This card decodes and responds to addresses not apparently
> + * assigned to it. We force a larger allocation to ensure that
> + * nothing gets put too close to it.
> + */
> +
> +static void __init quirk_dunord ( struct pci_dev * dev )
> +{
> + struct resource * r = & dev -> resource [ 1 ];
> + r -> start = 0;
> + r -> end = 0xffffff;
> +}
> +
> +/*
> * The main table of quirks.
> */
>
> static struct pci_fixup pci_fixups[] __initdata = {
> + { PCI_FIXUP_HEADER, PCI_VENDOR_ID_DUNORD, PCI_DEVICE_ID_DUNORD_I3000, quirk_dunord },
> { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82441, quirk_passive_release },
> { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82441, quirk_passive_release },
> /*
> diff -uNrp linux-2.4.19-rc2/drivers/scsi/aha152x.c linux-2.4.19-rc3/drivers/scsi/aha152x.c
> --- linux-2.4.19-rc2/drivers/scsi/aha152x.c Sun Jul 21 20:16:27 2002
> +++ linux-2.4.19-rc3/drivers/scsi/aha152x.c Sun Jul 21 22:08:01 2002
> @@ -1368,7 +1368,13 @@ int aha152x_detect(Scsi_Host_Template *
>
> printk(KERN_INFO "aha152x%d: trying software interrupt, ", HOSTNO);
> SETPORT(DMACNTRL0, SWINT|INTEN);
> +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
> + spin_unlock_irq(&io_request_lock);
> +#endif
> mdelay(1000);
> +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
> + spin_lock_irq(&io_request_lock);
> +#endif
> free_irq(shpnt->irq, shpnt);
>
> if (!HOSTDATA(shpnt)->swint) {
> diff -uNrp linux-2.4.19-rc2/drivers/scsi/atp870u.c linux-2.4.19-rc3/drivers/scsi/atp870u.c
> --- linux-2.4.19-rc2/drivers/scsi/atp870u.c Sun Sep 30 12:26:07 2001
> +++ linux-2.4.19-rc3/drivers/scsi/atp870u.c Sun Jul 21 22:08:01 2002
> @@ -11,7 +11,8 @@
> * enable 32 bit fifo transfer
> * support cdrom & remove device run ultra speed
> * fix disconnect bug 2000/12/21
> - * support atp880 chip lvd u160 2001/05/15 (7.1)
> + * support atp880 chip lvd u160 2001/05/15
> + * fix prd table bug 2001/09/12 (7.1)
> */
>
> #include <linux/module.h>
> @@ -803,8 +804,18 @@ oktosend:
> sgpnt = (struct scatterlist *) workrequ->request_buffer;
> i = 0;
> for (j = 0; j < workrequ->use_sg; j++) {
> - (unsigned long) (((unsigned long *) (prd))[i >> 1]) = virt_to_bus(sgpnt[j].address);
> - (unsigned short int) (((unsigned short int *) (prd))[i + 2]) = sgpnt[j].length;
> + bttl = virt_to_bus(sgpnt[j].address);
> + l = sgpnt[j].length;
> + while (l > 0x10000) {
> + (unsigned short int) (((unsigned short int *) (prd))[i + 3]) = 0x0000;
> + (unsigned short int) (((unsigned short int *) (prd))[i + 2]) = 0x0000;
> + (unsigned long) (((unsigned long *) (prd))[i >> 1]) = bttl;
> + l -= 0x10000;
> + bttl += 0x10000;
> + i += 0x04;
> + }
> + (unsigned long) (((unsigned long *) (prd))[i >> 1]) = bttl;
> + (unsigned short int) (((unsigned short int *) (prd))[i + 2]) = l;
> (unsigned short int) (((unsigned short int *) (prd))[i + 3]) = 0;
> i += 0x04;
> }
> @@ -2527,7 +2538,7 @@ int atp870u_detect(Scsi_Host_Template *
> host_id = inb(base_io + 0x39);
> host_id >>= 0x04;
>
> - printk(KERN_INFO " ACARD AEC-67160 PCI Ultra160 LVD/SE SCSI Adapter: %d IO:%x, IRQ:%d.\n"
> + printk(KERN_INFO " ACARD AEC-67160 PCI Ultra3 LVD Host Adapter: %d IO:%x, IRQ:%d.\n"
> ,h, base_io, irq);
> dev->ioport = base_io + 0x40;
> dev->pciport = base_io + 0x28;
> @@ -2764,7 +2775,7 @@ const char *atp870u_info(struct Scsi_Hos
> {
> static char buffer[128];
>
> - strcpy(buffer, "ACARD AEC-6710/6712/67160 PCI Ultra/W/LVD SCSI-3 Adapter Driver V2.5+ac ");
> + strcpy(buffer, "ACARD AEC-6710/6712/67160 PCI Ultra/W/LVD SCSI-3 Adapter Driver V2.6+ac ");
>
> return buffer;
> }
> @@ -2809,7 +2820,7 @@ int atp870u_proc_info(char *buffer, char
> if (offset == 0) {
> memset(buff, 0, sizeof(buff));
> }
> - size += sprintf(BLS, "ACARD AEC-671X Driver Version: 2.5+ac\n");
> + size += sprintf(BLS, "ACARD AEC-671X Driver Version: 2.6+ac\n");
> len += size;
> pos = begin + len;
> size = 0;
> diff -uNrp linux-2.4.19-rc2/drivers/scsi/megaraid.c linux-2.4.19-rc3/drivers/scsi/megaraid.c
> --- linux-2.4.19-rc2/drivers/scsi/megaraid.c Sun Jul 21 20:16:41 2002
> +++ linux-2.4.19-rc3/drivers/scsi/megaraid.c Sun Jul 21 22:08:01 2002
> @@ -3076,10 +3076,12 @@ static int mega_findCard (Scsi_Host_Temp
> /*
> * which firmware
> */
> - if( strcmp(megaCfg->fwVer, "H01.07") == 0 ||
> - strcmp(megaCfg->fwVer, "H01.08") == 0 ) {
> + if( strcmp(megaCfg->fwVer, "H01.07") == 0 ||
> + strcmp(megaCfg->fwVer, "H01.08") == 0 ||
> + strcmp(megaCfg->fwVer, "H01.09") == 0 )
> + {
> printk(KERN_WARNING
> - "megaraid: Firmware H.01.07 or H.01.08 on 1M/2M "
> + "megaraid: Firmware H.01.07/8/9 on 1M/2M "
> "controllers\nmegaraid: do not support 64 bit "
> "addressing.\n"
> "megaraid: DISABLING 64 bit support.\n");
> diff -uNrp linux-2.4.19-rc2/drivers/scsi/scsi_scan.c linux-2.4.19-rc3/drivers/scsi/scsi_scan.c
> --- linux-2.4.19-rc2/drivers/scsi/scsi_scan.c Sun Jul 21 20:16:41 2002
> +++ linux-2.4.19-rc3/drivers/scsi/scsi_scan.c Sun Jul 21 22:08:01 2002
> @@ -110,6 +110,10 @@ static struct dev_info device_list[] =
> {"HP", "C1750A", "3226", BLIST_NOLUN}, /* scanjet iic */
> {"HP", "C1790A", "", BLIST_NOLUN}, /* scanjet iip */
> {"HP", "C2500A", "", BLIST_NOLUN}, /* scanjet iicx */
> + {"HP", "A6188A", "*", BLIST_SPARSELUN}, /* HP Va7100 Array */
> + {"HP", "A6189A", "*", BLIST_SPARSELUN}, /* HP Va7400 Array */
> + {"HP", "A6189B", "*", BLIST_SPARSELUN}, /* HP Va7410 Array */
> + {"HP", "OPEN-", "*", BLIST_SPARSELUN}, /* HP XP Arrays */
> {"YAMAHA", "CDR100", "1.00", BLIST_NOLUN}, /* Locks up if polled for lun != 0 */
> {"YAMAHA", "CDR102", "1.00", BLIST_NOLUN}, /* Locks up if polled for lun != 0
> * extra reset */
> @@ -173,7 +177,10 @@ static struct dev_info device_list[] =
> {"HP", "C1557A", "*", BLIST_FORCELUN},
> {"IBM", "AuSaV1S2", "*", BLIST_FORCELUN},
> {"FSC", "CentricStor", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
> -
> + {"DDN", "SAN DataDirector", "*", BLIST_SPARSELUN},
> + {"HITACHI", "DF400", "*", BLIST_SPARSELUN},
> + {"HITACHI", "DF500", "*", BLIST_SPARSELUN},
> + {"HITACHI", "DF600", "*", BLIST_SPARSELUN},
>
> /*
> * Must be at end of list...
> diff -uNrp linux-2.4.19-rc2/drivers/sound/cs4232.c linux-2.4.19-rc3/drivers/sound/cs4232.c
> --- linux-2.4.19-rc2/drivers/sound/cs4232.c Mon Feb 25 11:38:04 2002
> +++ linux-2.4.19-rc3/drivers/sound/cs4232.c Sun Jul 21 22:08:01 2002
> @@ -34,6 +34,8 @@
> * anyway.
> *
> * Changes
> + * John Rood Added Bose Sound System Support.
> + * Toshio Spoor
> * Alan Cox Modularisation, Basic cleanups.
> * Paul Barton-Davis Separated MPU configuration, added
> * Tropez+ (WaveFront) support
> @@ -58,6 +60,10 @@
>
> #define KEY_PORT 0x279 /* Same as LPT1 status port */
> #define CSN_NUM 0x99 /* Just a random number */
> +#define INDEX_ADDRESS 0x00 /* (R0) Index Address Register */
> +#define INDEX_DATA 0x01 /* (R1) Indexed Data Register */
> +#define PIN_CONTROL 0x0a /* (I10) Pin Control */
> +#define ENABLE_PINS 0xc0 /* XCTRL0/XCTRL1 enable */
>
> static void CS_OUT(unsigned char a)
> {
> @@ -67,6 +73,7 @@ static void CS_OUT(unsigned char a)
> #define CS_OUT2(a, b) {CS_OUT(a);CS_OUT(b);}
> #define CS_OUT3(a, b, c) {CS_OUT(a);CS_OUT(b);CS_OUT(c);}
>
> +static int __initdata bss = 0;
> static int mpu_base = 0, mpu_irq = 0;
> static int synth_base = 0, synth_irq = 0;
> static int mpu_detected = 0;
> @@ -97,6 +104,30 @@ static void sleep(unsigned howlong)
> schedule_timeout(howlong);
> }
>
> +static void enable_xctrl(int baseio)
> +{
> + unsigned char regd;
> +
> + /*
> + * Some IBM Aptiva's have the Bose Sound System. By default
> + * the Bose Amplifier is disabled. The amplifier will be
> + * activated, by setting the XCTRL0 and XCTRL1 bits.
> + * Volume of the monitor bose speakers/woofer, can then
> + * be set by changing the PCM volume.
> + *
> + */
> +
> + printk("cs4232: enabling Bose Sound System Amplifier.\n");
> +
> + /* Switch to Pin Control Address */
> + regd = inb(baseio + INDEX_ADDRESS) & 0xe0;
> + outb(((unsigned char) (PIN_CONTROL | regd)), baseio + INDEX_ADDRESS );
> +
> + /* Activate the XCTRL0 and XCTRL1 Pins */
> + regd = inb(baseio + INDEX_DATA);
> + outb(((unsigned char) (ENABLE_PINS | regd)), baseio + INDEX_DATA );
> +}
> +
> int __init probe_cs4232(struct address_info *hw_config, int isapnp_configured)
> {
> int i, n;
> @@ -275,6 +306,11 @@ void __init attach_cs4232(struct address
> }
> hw_config->slots[1] = hw_config2.slots[1];
> }
> +
> + if (bss)
> + {
> + enable_xctrl(base);
> + }
> }
>
> void unload_cs4232(struct address_info *hw_config)
> @@ -349,6 +385,8 @@ MODULE_PARM(synthirq,"i");
> MODULE_PARM_DESC(synthirq,"Maui WaveTable IRQ");
> MODULE_PARM(isapnp,"i");
> MODULE_PARM_DESC(isapnp,"Enable ISAPnP probing (default 1)");
> +MODULE_PARM(bss,"i");
> +MODULE_PARM_DESC(bss,"Enable Bose Sound System Support (default 0)");
>
> /*
> * Install a CS4232 based card. Need to have ad1848 and mpu401
> diff -uNrp linux-2.4.19-rc2/drivers/sound/maestro.c linux-2.4.19-rc3/drivers/sound/maestro.c
> --- linux-2.4.19-rc2/drivers/sound/maestro.c Sun Jul 21 20:16:41 2002
> +++ linux-2.4.19-rc3/drivers/sound/maestro.c Sun Jul 21 22:08:01 2002
> @@ -3569,9 +3569,19 @@ maestro_probe(struct pci_dev *pcidev,con
> static void maestro_remove(struct pci_dev *pcidev) {
> struct ess_card *card = pci_get_drvdata(pcidev);
> int i;
> + u32 n;
>
> /* XXX maybe should force stop bob, but should be all
> stopped by _release by now */
> +
> + /* Turn off hardware volume control interrupt.
> + This has to come before we leave the IRQ below,
> + or a crash results if a button is pressed ! */
> +
> + n = inw(card->iobase+0x18);
> + n&=~(1<<6);
> + outw(n, card->iobase+0x18);
> +
> free_irq(card->irq, card);
> unregister_sound_mixer(card->dev_mixer);
> for(i=0;i<NR_DSPS;i++)
> diff -uNrp linux-2.4.19-rc2/drivers/usb/rtl8150.c linux-2.4.19-rc3/drivers/usb/rtl8150.c
> --- linux-2.4.19-rc2/drivers/usb/rtl8150.c Sun Jul 21 20:16:42 2002
> +++ linux-2.4.19-rc3/drivers/usb/rtl8150.c Sun Jul 21 22:08:01 2002
> @@ -84,7 +84,7 @@ MODULE_DEVICE_TABLE (usb, rtl8150_table)
>
>
> struct rtl8150 {
> - unsigned int flags;
> + unsigned long flags;
> struct usb_device *udev;
> struct usb_interface *interface;
> struct semaphore sem;
> diff -uNrp linux-2.4.19-rc2/include/linux/agp_backend.h linux-2.4.19-rc3/include/linux/agp_backend.h
> --- linux-2.4.19-rc2/include/linux/agp_backend.h Sun Jul 21 20:16:44 2002
> +++ linux-2.4.19-rc3/include/linux/agp_backend.h Sun Jul 21 22:08:04 2002
> @@ -73,6 +73,7 @@ enum chipset_type {
> ALI_M1644,
> ALI_M1647,
> ALI_M1651,
> + ALI_M1671,
> ALI_GENERIC,
> SVWRKS_HE,
> SVWRKS_LE,
> diff -uNrp linux-2.4.19-rc2/include/linux/pci_ids.h linux-2.4.19-rc3/include/linux/pci_ids.h
> --- linux-2.4.19-rc2/include/linux/pci_ids.h Sun Jul 21 20:16:44 2002
> +++ linux-2.4.19-rc3/include/linux/pci_ids.h Sun Jul 21 22:08:04 2002
> @@ -1602,13 +1602,15 @@
> #define PCI_DEVICE_ID_S3_ViRGE_MXPMV 0x8c03
> #define PCI_DEVICE_ID_S3_SONICVIBES 0xca00
>
> +#define PCI_VENDOR_ID_DUNORD 0x5544
> +#define PCI_DEVICE_ID_DUNORD_I3000 0x0001
> +#define PCI_VENDOR_ID_GENROCO 0x5555
> +#define PCI_DEVICE_ID_GENROCO_HFP832 0x0003
> +
> #define PCI_VENDOR_ID_DCI 0x6666
> #define PCI_DEVICE_ID_DCI_PCCOM4 0x0001
> #define PCI_DEVICE_ID_DCI_PCCOM8 0x0002
>
> -#define PCI_VENDOR_ID_GENROCO 0x5555
> -#define PCI_DEVICE_ID_GENROCO_HFP832 0x0003
> -
> #define PCI_VENDOR_ID_INTEL 0x8086
> #define PCI_DEVICE_ID_INTEL_21145 0x0039
> #define PCI_DEVICE_ID_INTEL_82375 0x0482
> diff -uNrp linux-2.4.19-rc2/include/linux/personality.h linux-2.4.19-rc3/include/linux/personality.h
> --- linux-2.4.19-rc2/include/linux/personality.h Sun Jul 21 20:16:44 2002
> +++ linux-2.4.19-rc3/include/linux/personality.h Sun Jul 21 22:08:04 2002
> @@ -62,7 +62,8 @@ enum {
> PER_RISCOS = 0x000c,
> PER_SOLARIS = 0x000d | STICKY_TIMEOUTS,
> PER_UW7 = 0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO,
> - PER_OSF4 = 0x000f, /* OSF/1 v4 */
> + PER_HPUX = 0x000f,
> + PER_OSF4 = 0x0010, /* OSF/1 v4 */
> PER_MASK = 0x00ff,
> };
>
> diff -uNrp linux-2.4.19-rc2/mm/shmem.c linux-2.4.19-rc3/mm/shmem.c
> --- linux-2.4.19-rc2/mm/shmem.c Sun Jul 21 20:16:44 2002
> +++ linux-2.4.19-rc3/mm/shmem.c Sun Jul 21 22:08:04 2002
> @@ -905,7 +905,6 @@ out:
> fail_write:
> status = -EFAULT;
> ClearPageUptodate(page);
> - kunmap(page);
> goto unlock;
> }
>
> diff -uNrp linux-2.4.19-rc2/net/ipv4/netfilter/ip_conntrack_core.c linux-2.4.19-rc3/net/ipv4/netfilter/ip_conntrack_core.c
> --- linux-2.4.19-rc2/net/ipv4/netfilter/ip_conntrack_core.c Sun Jul 21 20:16:44 2002
> +++ linux-2.4.19-rc3/net/ipv4/netfilter/ip_conntrack_core.c Sun Jul 21 22:08:04 2002
> @@ -497,11 +497,9 @@ init_conntrack(const struct ip_conntrack
> /* Try dropping from random chain, or else from the
> chain about to put into (in case they're trying to
> bomb one hash chain). */
> - if (drop_next == ip_conntrack_htable_size-1)
> - drop_next = 0;
> - else
> - drop_next++;
> - if (!early_drop(&ip_conntrack_hash[drop_next])
> + unsigned int next = (drop_next++)%ip_conntrack_htable_size;
> +
> + if (!early_drop(&ip_conntrack_hash[next])
> && !early_drop(&ip_conntrack_hash[hash])) {
> if (net_ratelimit())
> printk(KERN_WARNING
> diff -uNrp linux-2.4.19-rc2/net/rose/af_rose.c linux-2.4.19-rc3/net/rose/af_rose.c
> --- linux-2.4.19-rc2/net/rose/af_rose.c Sun Jul 21 20:16:44 2002
> +++ linux-2.4.19-rc3/net/rose/af_rose.c Sun Jul 21 22:08:04 2002
> @@ -26,6 +26,7 @@
> *
> * ROSE 0.63 Jean-Paul(F6FBB) Fixed wrong length of L3 packets
> * Added CLEAR_REQUEST facilities
> + * ROSE 0.64 Jean-Paul(F6FBB) Fixed null pointer in rose_kill_by_device
> */
>
> #include <linux/config.h>
> @@ -227,7 +228,8 @@ static void rose_kill_by_device(struct n
> for (s = rose_list; s != NULL; s = s->next) {
> if (s->protinfo.rose->device == dev) {
> rose_disconnect(s, ENETUNREACH, ROSE_OUT_OF_ORDER, 0);
> - s->protinfo.rose->neighbour->use--;
> + if (s->protinfo.rose->neighbour)
> + s->protinfo.rose->neighbour->use--;
> s->protinfo.rose->device = NULL;
> }
> }
> @@ -1433,7 +1435,7 @@ static struct notifier_block rose_dev_no
>
> static struct net_device *dev_rose;
>
> -static const char banner[] = KERN_INFO "F6FBB/G4KLX ROSE for Linux. Version 0.63 for AX25.037 Linux 2.4\n";
> +static const char banner[] = KERN_INFO "F6FBB/G4KLX ROSE for Linux. Version 0.64 for AX25.037 Linux 2.4\n";
>
> static int __init rose_proto_init(void)
> {

-- 
--
 Greetings,

Marc Duponcheel Multicast Development Engineer Cisco Systems email: mduponch@cisco.com tel: +32 2 704 52 40 cell: +32 478 68 10 91 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Jul 30 2002 - 14:00:23 EST