2.4.21-pre3 fails compile of ehci-hcd.c
Hello All,
Noticed that I could not get patch-2.4.21-pre3 to compile:
make[3]: Entering directory `/usr/src/kernels/linux-2.4.20/drivers/usb' ld -m elf_i386 -r -o usbcore.o usb.o usb-debug.o hub.o devio.o inode.o drivers.o devices.o hcd.o gcc -D__KERNEL__ -I/usr/src/kernels/linux-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -malign-functions=4 -nostdinc -iwithprefix include -DKBUILD_BASENAME=ehci_hcd -c -o hcd/ehci-hcd.o hcd/ehci-hcd.chcd/ehci-hcd.c: In function `ehci_start': hcd/ehci-hcd.c:343: parse error before `;' hcd/ehci-hcd.c:416: parse error before `;' hcd/ehci-hcd.c: In function `ehci_stop': hcd/ehci-hcd.c:501: parse error before `;' hcd/ehci-hcd.c: In function `ehci_irq': hcd/ehci-hcd.c:685: parse error before `;'
I'm not sure why gcc 2.95.3 is failing on the macro expansion, but it is turning:
ehci_warn (ehci, "illegal capability!\n");
into:
printk("<4>" "%s %s: " "illegal capability!\n" , hcd_name, ( ehci ) ;which is missing the ->... structure reference. The macros in ehci-dbg.c work just fine if you give them one or more arguments following the format string definition.
Compiler is gcc 2.95.3, binutils 2.12.90.0.9 20020526, glibc 2.2.5 on a Slackware 8.0 distribution.
Kris
Quoted 4 lines · Kristofer T. Karas
Hello All,
Noticed that I could not get patch-2.4.21-pre3 to compile:
Quoted 9 lines
make[3]: Entering directory `/usr/src/kernels/linux-2.4.20/drivers/usb' ld -m elf_i386 -r -o usbcore.o usb.o usb-debug.o hub.o devio.o inode.o drivers.o devices.o hcd.o gcc -D__KERNEL__ -I/usr/src/kernels/linux-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -malign-functions=4 -nostdinc -iwithprefix include -DKBUILD_BASENAME=ehci_hcd -c -o hcd/ehci-hcd.o hcd/ehci-hcd.chcd/ehci-hcd.c: In function `ehci_start': hcd/ehci-hcd.c:343: parse error before `;' hcd/ehci-hcd.c:416: parse error before `;' hcd/ehci-hcd.c: In function `ehci_stop': hcd/ehci-hcd.c:501: parse error before `;' hcd/ehci-hcd.c: In function `ehci_irq': hcd/ehci-hcd.c:685: parse error before `;'
Does this patch solve it for you?
thanks,
greg k-h
ehci-dbg.c renamed from drivers/usb/hcd/ehci-dbg.c +8 -22
@@ -18,37 +18,23 @@/* this file is part of ehci-hcd.c */ -#if LINUX_VERSION_CODE >KERNEL_VERSION (2 ,5 ,50 ) - -#define ehci_dbg(ehci, fmt, args...) \ - dev_dbg (*(ehci)->hcd.controller, fmt, ## args ) -#define ehci_err(ehci, fmt, args...) \ - dev_err (*(ehci)->hcd.controller, fmt, ## args ) -#define ehci_info(ehci, fmt, args...) \ - dev_info (*(ehci)->hcd.controller, fmt, ## args ) -#define ehci_warn(ehci, fmt, args...) \ - dev_warn (*(ehci)->hcd.controller, fmt, ## args ) - -#else -#ifdef DEBUG #define ehci_dbg(ehci, fmt, args...) \ - printk(KERN_DEBUG "%s %s: " fmt, hcd_name, \ - (ehci)->hcd.pdev->slot_name, ## args ) + printk(KERN_DEBUG "%s %s: " fmt , hcd_name , \ + (ehci)->hcd.pdev->slot_name , ## args )#else #define ehci_dbg(ehci, fmt, args...) do { } while (0)#endif #define ehci_err(ehci, fmt, args...) \ - printk(KERN_ERR "%s %s: " fmt, hcd_name, \ - (ehci)->hcd.pdev->slot_name, ## args ) + printk(KERN_ERR "%s %s: " fmt , hcd_name , \ + (ehci)->hcd.pdev->slot_name , ## args ) #define ehci_info(ehci, fmt, args...) \ - printk(KERN_INFO "%s %s: " fmt, hcd_name, \ - (ehci)->hcd.pdev->slot_name, ## args ) + printk(KERN_INFO "%s %s: " fmt , hcd_name , \ + (ehci)->hcd.pdev->slot_name , ## args ) #define ehci_warn(ehci, fmt, args...) \ - printk(KERN_WARNING "%s %s: " fmt, hcd_name, \ - (ehci)->hcd.pdev->slot_name, ## args ) -#endif + printk(KERN_WARNING "%s %s: " fmt , hcd_name , \ + (ehci)->hcd.pdev->slot_name , ## args )#ifdef EHCI_VERBOSE_DEBUG
Quoted 4 lines · Greg KH
Quoted 1 line · Kristofer T. Karas
Noticed that I could not get patch-2.4.21-pre3 to compile:
Does this patch solve it for you?
Hi Greg - Yes. The extra whitespace made gcc do the right thing. Thanks.
<Bewilderment> Well I learn something new every day </Bewilderment>
I notice, however, that speed with this version of EHCI seems down.
hdparm -t /dev/discs/disc1/disc 2.4.21-pre2 2.4.21-pre3 ----------- ----------- 10.5 MB/s 8.3 MB/s
Either way, this is a great improvement over my previous attempts at getting USB2.0 running with a Soltek SL75-DRV2 MoBo, which resulted in instantaneous reboots.
Kris
Quoted 8 lines · Kristofer T. Karas
Quoted 4 lines · Greg KH
Quoted 1 line · Kristofer T. Karas
Noticed that I could not get patch-2.4.21-pre3 to compile:
Does this patch solve it for you?
Hi Greg - Yes. The extra whitespace made gcc do the right thing. Thanks.
Thanks for testing it, I'll go add it to my trees.
Quoted 7 lines
<Bewilderment> Well I learn something new every day </Bewilderment>
I notice, however, that speed with this version of EHCI seems down.
hdparm -t /dev/discs/disc1/disc 2.4.21-pre2 2.4.21-pre3 ----------- ----------- 10.5 MB/s 8.3 MB/s
Hm, that is odd.
Quoted 3 lines
Either way, this is a great improvement over my previous attempts at getting USB2.0 running with a Soltek SL75-DRV2 MoBo, which resulted in instantaneous reboots.
Yes, a little slower is better than reboots :)
thanks,
greg k-h