Skip to contentSkip to conversation

2.4.21-pre3 fails compile of ehci-hcd.c

DISCUSSION Kristofer T. Karas 2 participants 4 messages Jan 9, 2003 USB

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw
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
#2 lore raw
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

#3 lore raw
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