Skip to contentSkip to conversation

2.6.0-test3 current - firewire compile error

DISCUSSION Ivan Gyurdiev 5 participants 11 messages Aug 16, 2003

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hopefully, this is not a duplicate post:
===========================================

drivers/ieee1394/nodemgr.c: In function `nodemgr_update_ud_names':
drivers/ieee1394/nodemgr.c:471: error: structure has no member named name' drivers/ieee1394/nodemgr.c: In function nodemgr_create_node':
drivers/ieee1394/nodemgr.c:723: error: structure has no member named name' drivers/ieee1394/nodemgr.c: In function nodemgr_update_node':
drivers/ieee1394/nodemgr.c:1318: error: structure has no member named name' drivers/ieee1394/nodemgr.c: In function nodemgr_add_host':
drivers/ieee1394/nodemgr.c:1775: error: structure has no member named `name' make[2]: *** [drivers/ieee1394/nodemgr.o] Error 1
make[1]: *** [drivers/ieee1394] Error 2
make: *** [drivers] Error 2

#1 lore raw
Quoted 5 lines · Ivan Gyurdiev

Hopefully, this is not a duplicate post:
===========================================

drivers/ieee1394/nodemgr.c: In function `nodemgr_update_ud_names':
drivers/ieee1394/nodemgr.c:471: error: structure has no member named `name'

I got a similar error starting with last night's bk pull:

drivers/pnp/core.c: In function `pnp_register_protocol':
drivers/pnp/core.c:72: structure has no member named `name'

#2 lore raw

Re: 2.6.0-test3 current - compile error - no member named 'name'

Quoted 9 lines · walt
Quoted 5 lines · Ivan Gyurdiev

Hopefully, this is not a duplicate post:
===========================================

drivers/ieee1394/nodemgr.c: In function `nodemgr_update_ud_names':
drivers/ieee1394/nodemgr.c:471: error: structure has no member named `name'

Quoted 6 lines

I got a similar error starting with last night's bk pull:

drivers/pnp/core.c: In function `pnp_register_protocol':
drivers/pnp/core.c:72: structure has no member named `name'

-

And I just got another one of those trying to compile the nvidia driver for this kernel. So apparently this is not firewire or pnp specific.

#3 lore raw

Re: 2.6.0-test3 current - compile error - no member named 'name'

Quoted 13 lines · Ivan Gyurdiev
Quoted 12 lines · walt
Quoted 6 lines · Ivan Gyurdiev

Hopefully, this is not a duplicate post:
===========================================

drivers/ieee1394/nodemgr.c: In function `nodemgr_update_ud_names':
drivers/ieee1394/nodemgr.c:471: error: structure has no member named `name'

I got a similar error starting with last night's bk pull:

Quoted 7 lines
Quoted 4 lines

drivers/pnp/core.c: In function `pnp_register_protocol':
drivers/pnp/core.c:72: structure has no member named `name'

-

And I just got another one of those trying to compile the nvidia driver for this kernel. So apparently this is not firewire or pnp specific.

Well go bug nvidia about that, nothing we can do for closed source modules...

thanks,

greg k-h

#4 lore raw
In reply to walt
Quoted 11 lines · walt
Quoted 5 lines · Ivan Gyurdiev

Hopefully, this is not a duplicate post:
===========================================

drivers/ieee1394/nodemgr.c: In function `nodemgr_update_ud_names':
drivers/ieee1394/nodemgr.c:471: error: structure has no member named `name'

I got a similar error starting with last night's bk pull:

drivers/pnp/core.c: In function `pnp_register_protocol':
drivers/pnp/core.c:72: structure has no member named `name'

Hm, I thought the pnp layer had already been fixed up.

Adam?

thanks,

greg k-h

#5 lore raw
Quoted 8 lines · Greg KH
Quoted 7 lines · walt
Quoted 5 lines · Ivan Gyurdiev

Hopefully, this is not a duplicate post:
===========================================

drivers/ieee1394/nodemgr.c: In function `nodemgr_update_ud_names':
drivers/ieee1394/nodemgr.c:471: error: structure has no member named `name'

Quoted 9 lines
Quoted 4 lines

I got a similar error starting with last night's bk pull:

drivers/pnp/core.c: In function `pnp_register_protocol':
drivers/pnp/core.c:72: structure has no member named `name'

Hm, I thought the pnp layer had already been fixed up.

Adam?

I apoligize for forgetting to correct this. Here is a fix.

Thanks,
Adam

drivers/pnp/core.c +0 -1
diff -urN a/drivers/pnp/core.c b/drivers/pnp/core.c
@@ -69,7 +69,6 @@
 
 	protocol->number = nodenum;
 	sprintf(protocol->dev.bus_id, "pnp%d", nodenum);
-	strlcpy(protocol->dev.name,protocol->name,DEVICE_NAME_SIZE);
 	return device_register(&protocol->dev);
 }
 
drivers/pnp/isapnp/core.c +4 -4
diff -urN a/drivers/pnp/isapnp/core.c b/drivers/pnp/isapnp/core.c
@@ -743,7 +743,7 @@
 			size = 0;
 			break;
 		case _LTAG_ANSISTR:
-			isapnp_parse_name(dev->dev.name, sizeof(dev->dev.name), &size);
+			isapnp_parse_name(dev->name, sizeof(dev->name), &size);
 			break;
 		case _LTAG_UNICODESTR:
 			/* silently ignore */
@@ -808,7 +808,7 @@
 		case _STAG_VENDOR:
 			break;
 		case _LTAG_ANSISTR:
-			isapnp_parse_name(card->dev.name, sizeof(card->dev.name), &size);
+			isapnp_parse_name(card->name, sizeof(card->name), &size);
 			break;
 		case _LTAG_UNICODESTR:
 			/* silently ignore */
@@ -1144,11 +1144,11 @@
 	protocol_for_each_card(&isapnp_protocol,card) {
 		cards++;
 		if (isapnp_verbose) {
-			printk(KERN_INFO "isapnp: Card '%s'\n", card->dev.name[0]?card->dev.name:"Unknown");
+			printk(KERN_INFO "isapnp: Card '%s'\n", card->name[0]?card->name:"Unknown");
 			if (isapnp_verbose < 2)
 				continue;
 			card_for_each_dev(card,dev) {
-				printk(KERN_INFO "isapnp:   Device '%s'\n", dev->dev.name[0]?dev->dev.name:"Unknown");
+				printk(KERN_INFO "isapnp:   Device '%s'\n", dev->name[0]?dev->name:"Unknown");
 			}
 		}
 	}
drivers/serial/8250_pnp.c +1 -1
@@ -369,7 +369,7 @@
  */
 static int __devinit serial_pnp_guess_board(struct pnp_dev *dev, int *flags)
 {
-	if (!(check_name(dev->dev.name) || (dev->card && check_name(dev->card->dev.name))))
+	if (!(check_name(pnp_dev_name(dev)) || (dev->card && check_name(dev->card->name))))
 		return -ENODEV;
 
 	if (check_resources(dev->independent))
include/linux/pnp.h +4 -1
@@ -19,6 +19,7 @@
 #define PNP_MAX_DMA		2
 #define PNP_MAX_DEVICES		8
 #define PNP_ID_LEN		8
+#define PNP_NAME_LEN		50
 
 struct pnp_protocol;
 struct pnp_dev;
@@ -133,6 +134,7 @@
 	struct pnp_protocol * protocol;
 	struct pnp_id * id;		/* contains supported EISA IDs*/
 
+	char name[PNP_NAME_LEN];	/* contains a human-readable name */
 	unsigned char	pnpver;		/* Plug & Play version */
 	unsigned char	productver;	/* product version */
 	unsigned int	serial;		/* serial number */
@@ -187,6 +189,7 @@
 	struct pnp_option * dependent;
 	struct pnp_resource_table res;
 
+	char name[PNP_NAME_LEN];	/* contains a human-readable name */
 	unsigned short	regs;		/* ISAPnP: supported registers */
 	int 		flags;		/* used by protocols */
 	struct proc_dir_entry *procent;	/* device entry in /proc/bus/isapnp */
@@ -204,7 +207,7 @@
 	for((dev) = card_to_pnp_dev((card)->devices.next); \
 	(dev) != card_to_pnp_dev(&(card)->devices); \
 	(dev) = card_to_pnp_dev((dev)->card_list.next))
-#define pnp_dev_name(dev) (dev)->dev.name
+#define pnp_dev_name(dev) (dev)->name
 
 static inline void *pnp_get_drvdata (struct pnp_dev *pdev)
 {
#6 lore raw
Quoted 91 lines · Adam Belay
Quoted 4 lines · walt
Quoted 3 lines

drivers/pnp/core.c: In function `pnp_register_protocol':
drivers/pnp/core.c:72: structure has no member named `name'

I apoligize for forgetting to correct this. Here is a fix.

diff -urN a/drivers/pnp/core.c b/drivers/pnp/core.c

drivers/pnp/core.c +0 -1
@@ -69,7 +69,6 @@
 
 	protocol->number = nodenum;
 	sprintf(protocol->dev.bus_id, "pnp%d", nodenum);
-	strlcpy(protocol->dev.name,protocol->name,DEVICE_NAME_SIZE);
 	return device_register(&protocol->dev);
 }
 

diff -urN a/drivers/pnp/isapnp/core.c b/drivers/pnp/isapnp/core.c

drivers/pnp/isapnp/core.c +4 -4
@@ -743,7 +743,7 @@
 			size = 0;
 			break;
 		case _LTAG_ANSISTR:
-			isapnp_parse_name(dev->dev.name, sizeof(dev->dev.name), &size);
+			isapnp_parse_name(dev->name, sizeof(dev->name), &size);
 			break;
 		case _LTAG_UNICODESTR:
 			/* silently ignore */
@@ -808,7 +808,7 @@
 		case _STAG_VENDOR:
 			break;
 		case _LTAG_ANSISTR:
-			isapnp_parse_name(card->dev.name, sizeof(card->dev.name), &size);
+			isapnp_parse_name(card->name, sizeof(card->name), &size);
 			break;
 		case _LTAG_UNICODESTR:
 			/* silently ignore */
@@ -1144,11 +1144,11 @@
 	protocol_for_each_card(&isapnp_protocol,card) {
 		cards++;
 		if (isapnp_verbose) {
-			printk(KERN_INFO "isapnp: Card '%s'\n", card->dev.name[0]?card->dev.name:"Unknown");
+			printk(KERN_INFO "isapnp: Card '%s'\n", card->name[0]?card->name:"Unknown");
 			if (isapnp_verbose < 2)
 				continue;
 			card_for_each_dev(card,dev) {
-				printk(KERN_INFO "isapnp:   Device '%s'\n", dev->dev.name[0]?dev->dev.name:"Unknown");
+				printk(KERN_INFO "isapnp:   Device '%s'\n", dev->name[0]?dev->name:"Unknown");
 			}
 		}
 	}
drivers/serial/8250_pnp.c +1 -1
@@ -369,7 +369,7 @@
  */
 static int __devinit serial_pnp_guess_board(struct pnp_dev *dev, int *flags)
 {
-	if (!(check_name(dev->dev.name) || (dev->card && check_name(dev->card->dev.name))))
+	if (!(check_name(pnp_dev_name(dev)) || (dev->card && check_name(dev->card->name))))
 		return -ENODEV;
 
 	if (check_resources(dev->independent))
include/linux/pnp.h +3 -0
@@ -19,6 +19,7 @@
 #define PNP_MAX_DMA		2
 #define PNP_MAX_DEVICES		8
 #define PNP_ID_LEN		8
+#define PNP_NAME_LEN		50
 
 struct pnp_protocol;
 struct pnp_dev;
@@ -133,6 +134,7 @@
 	struct pnp_protocol * protocol;
 	struct pnp_id * id;		/* contains supported EISA IDs*/
 
+	char name[PNP_NAME_LEN];	/* contains a human-readable name */
 	unsigned char	pnpver;		/* Plug & Play version */
 	unsigned char	productver;	/* product version */
 	unsigned int	serial;		/* serial number */
@@ -187,6 +189,7 @@
 	struct pnp_option * dependent;
 	struct pnp_resource_table res;
 
+	char name[PNP_NAME_LEN];	/* contains a human-readable name */
 	unsigned short	regs;		/* ISAPnP: supported registers */
 	int 		flags;		/* used by protocols */
 	struct proc_dir_entry *procent;	/* device entry in /proc/bus/isapnp */

include/linux/pnp.h line 213

Quoted 8 lines
include/linux/pnp.h +1 -1
@@ -204,7 +207,7 @@
 	for((dev) = card_to_pnp_dev((card)->devices.next); \
 	(dev) != card_to_pnp_dev(&(card)->devices); \
 	(dev) = card_to_pnp_dev((dev)->card_list.next))
-#define pnp_dev_name(dev) (dev)->dev.name
+#define pnp_dev_name(dev) (dev)->name
 
 static inline void *pnp_get_drvdata (struct pnp_dev *pdev)
 {

Your patch works for me, thanks!

#7 lore raw
In reply to Ivan Gyurdiev
Quoted 14 lines · Ivan Gyurdiev

Hopefully, this is not a duplicate post:
===========================================

drivers/ieee1394/nodemgr.c: In function `nodemgr_update_ud_names':
drivers/ieee1394/nodemgr.c:471: error: structure has no member named name' drivers/ieee1394/nodemgr.c: In function nodemgr_create_node':
drivers/ieee1394/nodemgr.c:723: error: structure has no member named name' drivers/ieee1394/nodemgr.c: In function nodemgr_update_node':
drivers/ieee1394/nodemgr.c:1318: error: structure has no member named name' drivers/ieee1394/nodemgr.c: In function nodemgr_add_host':
drivers/ieee1394/nodemgr.c:1775: error: structure has no member named `name' make[2]: *** [drivers/ieee1394/nodemgr.o] Error 1
make[1]: *** [drivers/ieee1394] Error 2
make: *** [drivers] Error 2

I removed struct device.name and forgot to change the firewire code :(

I'll work on a patch for this later this evening, unless someone beats me to it.

Sorry,

greg k-h

#8 lore raw
Quoted 4 lines · Greg KH

I removed struct device.name and forgot to change the firewire code :(

I'll work on a patch for this later this evening, unless someone beats me to it.

Why wasn't DEVICE_NAME_SIZE/_HALF killed? Looks like these also should define by drivers.

Signature · 1 line
OGAWA Hirofumi <[email protected]>
#9 lore raw
Quoted 9 lines · OGAWA Hirofumi
Quoted 4 lines · Greg KH

I removed struct device.name and forgot to change the firewire code :(

I'll work on a patch for this later this evening, unless someone beats me to it.

Why wasn't DEVICE_NAME_SIZE/_HALF killed? Looks like these also should define by drivers.

Some subsystems use that #define for their device name size. Yeah, it probably could be gotten rid of too, just didn't really see the need.

Patches are always welcome if you want to fix this up. :)

thanks,

greg k-h

#10 lore raw
In reply to Greg KH
Quoted 16 lines · Greg KH
Quoted 14 lines · Ivan Gyurdiev

Hopefully, this is not a duplicate post:
===========================================

drivers/ieee1394/nodemgr.c: In function `nodemgr_update_ud_names':
drivers/ieee1394/nodemgr.c:471: error: structure has no member named name' drivers/ieee1394/nodemgr.c: In function nodemgr_create_node':
drivers/ieee1394/nodemgr.c:723: error: structure has no member named name' drivers/ieee1394/nodemgr.c: In function nodemgr_update_node':
drivers/ieee1394/nodemgr.c:1318: error: structure has no member named name' drivers/ieee1394/nodemgr.c: In function nodemgr_add_host':
drivers/ieee1394/nodemgr.c:1775: error: structure has no member named `name' make[2]: *** [drivers/ieee1394/nodemgr.o] Error 1
make[1]: *** [drivers/ieee1394] Error 2
make: *** [drivers] Error 2

Quoted 4 lines

I removed struct device.name and forgot to change the firewire code :(

I'll work on a patch for this later this evening, unless someone beats me to it.

Ok, here's the patch that I just sent to Linus and Ben for this, and some other problems in the ieee1394 code (due to the i2c changes in 2.6.0-test3.) Please let me know if you have any problems after applying them.

Again, sorry for missing this.

greg k-h

drivers/ieee1394/nodemgr.c +0 -34
@@ -460,21 +460,6 @@
 }
 
 
-static void nodemgr_update_ud_names(struct host_info *hi, struct node_entry *ne)
-{
-	struct list_head *lh;
-
-	list_for_each(lh, &ne->device.children) {
-		struct unit_directory *ud;
-		ud = container_of(list_to_dev(lh), struct unit_directory, device);
-
-		snprintf(ud->device.name, DEVICE_NAME_SIZE,
-			 "IEEE-1394 unit directory " NODE_BUS_FMT "-%u",
-			 NODE_BUS_ARGS(hi->host, ne->nodeid), ud->id);
-	}
-}
-
-
 static void nodemgr_remove_ne(struct node_entry *ne)
 {
 	struct device *dev = &ne->device;
@@ -720,9 +705,6 @@
 	ne->device.parent = &host->device;
 	snprintf(ne->device.bus_id, BUS_ID_SIZE, "%016Lx",
 		 (unsigned long long)(ne->guid));
-	snprintf(ne->device.name, DEVICE_NAME_SIZE,
-		 "IEEE-1394 device " NODE_BUS_FMT,
-		 NODE_BUS_ARGS(host, ne->nodeid));
 
 	device_register(&ne->device);
 
@@ -732,8 +714,6 @@
 
 	nodemgr_process_config_rom (hi, ne, busoptions);
 
-	nodemgr_update_ud_names(hi, ne);
-
 	HPSB_DEBUG("%s added: ID:BUS[" NODE_BUS_FMT "]  GUID[%016Lx]",
 		   (host->node_id == nodeid) ? "Host" : "Node",
 		   NODE_BUS_ARGS(host, nodeid), (unsigned long long)guid);
@@ -1312,18 +1292,11 @@
 				struct host_info *hi, nodeid_t nodeid,
 				unsigned int generation)
 {
-	int update_ud_names = 0;
-
 	if (ne->nodeid != nodeid) {
-		snprintf(ne->device.name, DEVICE_NAME_SIZE,
-			 "IEEE-1394 device " NODE_BUS_FMT,
-			 NODE_BUS_ARGS(hi->host, ne->nodeid));
 		HPSB_DEBUG("Node changed: " NODE_BUS_FMT " -> " NODE_BUS_FMT,
 			   NODE_BUS_ARGS(ne->host, ne->nodeid),
 			   NODE_BUS_ARGS(ne->host, nodeid));
 		ne->nodeid = nodeid;
-
-		update_ud_names++;
 	}
 
 	if (ne->busopt.generation != ((busoptions >> 4) & 0xf)) {
@@ -1333,13 +1306,8 @@
 
 		/* This will re-register our unitdir's */
 		nodemgr_process_config_rom (hi, ne, busoptions);
-
-		update_ud_names++;
 	}
 
-	if (update_ud_names)
-		nodemgr_update_ud_names(hi, ne);
-
 	/* Since that's done, we can declare this record current */
 	ne->generation = generation;
 
@@ -1772,8 +1740,6 @@
 	       sizeof(host->device));
 	host->device.parent = &host->pdev->dev;
 	snprintf(host->device.bus_id, BUS_ID_SIZE, "fw-host%d", host->id);
-	snprintf(host->device.name, DEVICE_NAME_SIZE, "IEEE-1394 Host %s-%d",
-		 host->driver->name, host->id);
 
 	sprintf(hi->daemon_name, "knodemgrd_%d", host->id);
 
drivers/ieee1394/pcilynx.c +1 -3
@@ -144,9 +144,7 @@
 	.id 			= 0xAA, //FIXME: probably we should get an id in i2c-id.h
 	.client_register	= bit_reg,
 	.client_unregister	= bit_unreg,
-	.dev			= {
-		.name		= "PCILynx I2C",
-	},
+	.name			= "PCILynx I2C",
 };