2002-02-27 03:00:38

by Nathaniel

[permalink] [raw]
Subject: 2.5.5-dj2 compile failures

First the good news - it built the ALSA modules correctly this time around.

And I suspect these are trivial fixes:
USB storage fails by trying to reference "address" member of a
scatterlist, which has a vdma_address (MIPS) or a dma_address (x86)
(didn't check others).
USB Mass Storage is modular, all sub drivers selected.

This affects datafab.c and jumpshot.c.

gcc -D__KERNEL__
-I/home/expsoft/src/linux-kernel/linux-2.5/linux-2.5.5-dj2/include -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
-march=i686 -DMODULE -DMODVERSIONS -include
/home/expsoft/src/linux-kernel/linux-2.5/linux-2.5.5-dj2/include/linux/modversions.h
-I../../scsi/ -DKBUILD_BASENAME=datafab -c -o datafab.o datafab.c
datafab.c: In function `datafab_read_data':
datafab.c:260: structure has no member named `address'
datafab.c:261: structure has no member named `address'
datafab.c:269: structure has no member named `address'
datafab.c:270: structure has no member named `address'
datafab.c: In function `datafab_write_data':
datafab.c:351: structure has no member named `address'
datafab.c:351: structure has no member named `address'
datafab.c:360: structure has no member named `address'
datafab.c:360: structure has no member named `address'
make[3]: *** [datafab.o] Error 1
make[3]: Leaving directory
`/home/expsoft/src/linux-kernel/linux-2.5/linux-2.5.5-dj2/drivers/usb/storage'
make[2]: *** [_modsubdir_storage] Error 2
make[2]: Leaving directory
`/home/expsoft/src/linux-kernel/linux-2.5/linux-2.5.5-dj2/drivers/usb'
make[1]: *** [_modsubdir_usb] Error 2
make[1]: Leaving directory
`/home/expsoft/src/linux-kernel/linux-2.5/linux-2.5.5-dj2/drivers'
make: *** [_mod_drivers] Error 2

Some FSs seem to have trouble with dparent_lock - fatfs.o, at least,
caused depmod to say "undefined symbol."
I believe the following patch fixes it.

--- dcache.c.old Tue Feb 26 21:55:53 2002
+++ dcache.c Tue Feb 26 21:56:59 2002
@@ -31,6 +31,7 @@

spinlock_t dcache_lock __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED;
rwlock_t dparent_lock __cacheline_aligned_in_smp = RW_LOCK_UNLOCKED;
+EXPORT_SYMBOL(dparent_lock);

/* Right now the dcache depends on the kernel lock */
#define check_lock() if (!kernel_locked()) BUG()



--Nathan



2002-02-27 03:57:58

by Nathaniel

[permalink] [raw]
Subject: Re: 2.5.5-dj2 compile failures

This *might * just be a FAQ, but I think it's actually a
Makefile bug (it's happened twice, each time after a make mrproper).

$ strings vmlinux | grep __ver
__verify_write_Rsmp_203afbeb
vmalloc_to_page_R__ver_vmalloc_to_page
idle_cpu_R__ver_idle_cpu
set_cpus_allowed_R__ver_set_cpus_allowed

The first is not a problem, but the rest are. Grepping
include/linux/modules/* gave no matches:
$ find include/linux/modules/* | xargs grep -e idle_cpu
$ find include/linux/modules/* | xargs grep -e set_cpu
$ find include/linux/modules/* | xargs grep -e vmalloc_to_page

Config (I think this is all that matters... if something else is needed,
lemme know.):
CONFIG_X86=y
CONFIG_ISA=y
# CONFIG_SBUS is not set
CONFIG_UID16=y

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y

#
# General setup
#
CONFIG_NET=y
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
CONFIG_KMOD=y

#
# Processor type and features
#
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
CONFIG_MPENTIUMIII=y
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MELAN is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MCYRIXIII is not set
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_PGE=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
CONFIG_MICROCODE=m
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM4G_HIGHPTE is not set
# CONFIG_HIGHMEM64G is not set
# CONFIG_HIGHMEM64G_HIGHPTE is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
CONFIG_SMP=y
CONFIG_PREEMPT=y
# CONFIG_MULTIQUAD is not set
CONFIG_HAVE_DEC_LOCK=y




2002-02-27 04:12:52

by Greg KH

[permalink] [raw]
Subject: Re: 2.5.5-dj2 compile failures

On Tue, Feb 26, 2002 at 10:00:15PM -0500, Nathan wrote:
> First the good news - it built the ALSA modules correctly this time around.
>
> And I suspect these are trivial fixes:
> USB storage fails by trying to reference "address" member of a
> scatterlist, which has a vdma_address (MIPS) or a dma_address (x86)
> (didn't check others).
> USB Mass Storage is modular, all sub drivers selected.
>
> This affects datafab.c and jumpshot.c.

Known problem, it's in 2.5.5 clean too. Go bug the usb-storage
author/maintainer about it if you really need to use the datafab or
jumpshot portions of the driver. If not, I'd recommend just turning
those CONFIG items off for now.

thanks,

greg k-h

2002-02-27 12:25:43

by Helge Hafting

[permalink] [raw]
Subject: Re: 2.5.5-dj2 compile failures

Nathan wrote:
>
> First the good news - it built the ALSA modules correctly this time around.

RTC Timer support failed - but maybe I don't need that

Generic ESS ES18xx driver also failed to compile, - so no sound here.

Helge Hafting

2002-02-27 14:13:51

by Zwane Mwaikambo

[permalink] [raw]
Subject: Re: 2.5.5-dj2 compile failures

On Wed, 27 Feb 2002, Helge Hafting wrote:

> Nathan wrote:
> >
> > First the good news - it built the ALSA modules correctly this time around.
>
> RTC Timer support failed - but maybe I don't need that
>
> Generic ESS ES18xx driver also failed to compile, - so no sound here.

Aargh i think thats me too! I'll have a look.

Cheers,
Zwane


2002-02-27 14:22:40

by Roberto Nibali

[permalink] [raw]
Subject: Re: 2.5.5-dj2 compile failures

Hello,

>>RTC Timer support failed - but maybe I don't need that
>>
>>Generic ESS ES18xx driver also failed to compile, - so no sound here.
>>
>
> Aargh i think thats me too! I'll have a look.

I sent in patches for the RTC Timer compile fix (interrupt.h was
missing) last night [1] but I only cc'd to dj and the ALSA maintainer. I
haven't fixed the ESS driver though.

[1] http://marc.theaimsgroup.com/?l=linux-kernel&m=101477526613921&w=2

Cheers,
Roberto Nibali, ratz


2002-02-27 14:29:05

by Zwane Mwaikambo

[permalink] [raw]
Subject: Re: 2.5.5-dj2 compile failures

On Wed, 27 Feb 2002, Roberto Nibali wrote:

> >>RTC Timer support failed - but maybe I don't need that
> >>
> >>Generic ESS ES18xx driver also failed to compile, - so no sound here.
> >>
> >
> > Aargh i think thats me too! I'll have a look.
>
> I sent in patches for the RTC Timer compile fix (interrupt.h was
> missing) last night [1] but I only cc'd to dj and the ALSA maintainer. I
> haven't fixed the ESS driver though.

Heres the es18xx fix, few ALSA API changes it seems.

Zwane

Diffed against 2.5.5-dj2

--- linux-2.5.5-pre1/sound/isa/es18xx.c.orig Wed Feb 27 16:04:15 2002
+++ linux-2.5.5-pre1/sound/isa/es18xx.c Wed Feb 27 16:13:11 2002
@@ -1603,7 +1603,7 @@
sprintf(pcm->name, "ESS AudioDrive ES%x", chip->version);
chip->pcm = pcm;

- snd_pcm_lib_preallocate_isa_pages_for_all(pcm, 64*1024, chip->dma1 > 3 || chip->dma2 > 3 ? 128*1024 : 64*1024, GFP_KERNEL|GFP_DMA);
+ snd_pcm_lib_preallocate_isa_pages_for_all(pcm, 64*1024, chip->dma1 > 3 || chip->dma2 > 3 ? 128*1024 : 64*1024);

if (rpcm)
*rpcm = pcm;
@@ -1616,7 +1616,7 @@
{
snd_card_t *card = chip->card;

- snd_power_lock(card, can_schedule);
+ snd_power_lock(card);
if (card->power_state == SNDRV_CTL_POWER_D3hot)
goto __skip;

@@ -1637,7 +1637,7 @@
{
snd_card_t *card = chip->card;

- snd_power_lock(card, can_schedule);
+ snd_power_lock(card);
if (card->power_state == SNDRV_CTL_POWER_D0)
goto __skip;


2002-02-27 14:46:54

by Martin Dalecki

[permalink] [raw]
Subject: Re: 2.5.5-dj2 compile failures

Just a sinde note
> - snd_pcm_lib_preallocate_isa_pages_for_all(pcm, 64*1024, chip->dma1 > 3 || chip->dma2 > 3 ? 128*1024 : 64*1024, GFP_KERNEL|GFP_DMA);
> + snd_pcm_lib_preallocate_isa_pages_for_all(pcm, 64*1024, chip->dma1 > 3 || chip->dma2 > 3 ? 128*1024 : 64*1024);


I think this method should be named as follows:

i_have_no_fear_of_wirst_desease_from_programming_linux_alsa_or_sound_drivers_at_all()


BAH! It should be: spl_alloc_isap() at most!