[parisc-linux] warning: minor abi change
Grant Grundler
grundler@parisc-linux.org
Sat, 5 Jul 2003 17:08:34 -0600
On Fri, Jun 27, 2003 at 06:14:58PM +0200, Joel Soete wrote:
> I need it to make work my ide cdrom onto my b2k (I grab this stuff
> from another platform)
Joel,
I've reworked the __save_and_cli and __save_and_sti mess so that's ok to
commit along with most of what you previously preposed. I've tested on
64-bit (a500) but am having several problems with 32-bit (c3000) config.
Patch applies to our current CVS:
ftp://ftp.parisc-linux.org/patches/diff-2.4.21-pa2
My .config and untested kernel/modules are at:
ftp://ftp.parisc-kernel.org/kernels/c3000/2.4.21-pa2.tgz
Summary of issues that follow:
1) __canonicalize_funcptr_for_compare still a problem with 32-bit modules
2) Makefiles messed up for ide-proc.o (seems to have a fix already)
3) various IDE modules not exporting symbols.
4) added EXPORT_SYMBOL(sys_wait4) as well.
5) Lack of a test machine at home. Can someone test c3000/2.4.21-pa2.tgz?
Patch also fixes asm problem with arch/parisc/kernel/real2.S.
Details:
1) Dave warned us last December about __canonicalize_funcptr_for_compare
and gcc-3.3. "make modules_install" fails with this symbol missing in:
drivers/ide/ide-disk.o (fixed in patch but won't be committed)
drivers/scsi/aic79xx/aic79xx.o
fs/smbfs/smbfs.o
lib/zlib_deflate/zlib_deflate.o
Having no clue how to properly fix this in either the toolchain
or where to find the man page for __canonicalize_funcptr_for_compare(),
I disabled the last three in my .config and hacked ide-disk.c
to use (void *) for comparisons.
Any volunteer to write some sample code for this?
2) CONFIG_IDE=m leads to lots of unresolved symbols in IDE modules.
Willy just pointed me at
http://www.ussg.iu.edu/hypermail/linux/kernel/0307.0/0995.html
which should solve this problem. The description below is just FYI.
I'll rework the IDE patch to follow "upstream" fix in the next
couple of days.
Basic problem starts with drivers/Makefile:
subdir-$(CONFIG_IDE) += ide
causing the "make vmlinux" to ignore drivers/ide subdir if CONFIG_IDE=m.
This doesn't work when CONFIG_PROC_FS=y. ide-proc.o doesn't get built.
drivers/ide/Makefile:
ifeq($(CONFIG_BLK_DEV_IDE),y)
obj-$(CONFIG_PROC_FS) += ide-proc.o
endif
I hacked drivers/ide/Makefile to read:
ifeq ($(CONFIG_PROC_FS),y)
obj-$(CONFIG_BLK_DEV_IDE) += ide-proc.o
endif
It presumes (1) PROC_FS is y or n and never 'm' and (2) IDE /proc
support should be loaded as a module if CONFIG_BLK_DEV_IDE=m.
3) various IDE modules not exporting symbols.
+EXPORT_SYMBOL_GPL(ide_release_dma);
+EXPORT_SYMBOL(do_ide_request);
+EXPORT_SYMBOL(ide_modules);
+EXPORT_SYMBOL(generic_subdriver_entries);
+EXPORT_SYMBOL(ide_find_setting_by_name);
+EXPORT_SYMBOL(ide_read_setting);
+EXPORT_SYMBOL(ide_add_generic_settings);
+EXPORT_SYMBOL_GPL(ide_scan_pcibus);
4) added EXPORT_SYMBOL(sys_wait4) as well.
5) Lack of a test machine at home. I'm waiting for c3k's I've ordered.
Nice folks sent me "workstation power cord kit" via priority mail but
no sign of the workstation itself. :^/
If someone can test this patch on a C3k, I'd be willing to commit
the non-IDE parts of it. IDE needs rework to follow upstream's fix.
hth,
grant