2003-01-09 07:02:39

by Kris Karas

[permalink] [raw]
Subject: 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



2003-01-09 07:30:37

by Greg KH

[permalink] [raw]
Subject: Re: 2.4.21-pre3 fails compile of ehci-hcd.c

On Thu, Jan 09, 2003 at 02:11:15AM -0500, Kristofer T. Karas wrote:
> 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 `;'

Does this patch solve it for you?

thanks,

greg k-h


--- 1.5/drivers/usb/hcd/ehci-dbg.c Mon Jan 6 16:43:05 2003
+++ edited/ehci-dbg.c Wed Jan 8 23:45:02 2003
@@ -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

2003-01-09 08:21:11

by Kris Karas

[permalink] [raw]
Subject: Re: 2.4.21-pre3 fails compile of ehci-hcd.c

On Thu, 2003-01-09 at 02:38, Greg KH wrote:
> On Thu, Jan 09, 2003 at 02:11:15AM -0500, Kristofer T. Karas wrote:
> > 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

2003-01-09 08:46:21

by Greg KH

[permalink] [raw]
Subject: Re: 2.4.21-pre3 fails compile of ehci-hcd.c

On Thu, Jan 09, 2003 at 03:29:46AM -0500, Kristofer T. Karas wrote:
> On Thu, 2003-01-09 at 02:38, Greg KH wrote:
> > On Thu, Jan 09, 2003 at 02:11:15AM -0500, Kristofer T. Karas wrote:
> > > 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.

> <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.

> 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