]> git.hungrycats.org Git - linux/commitdiff
[PATCH] PCI: name length change
authorKieran Morrissey <kieran@mgpenguin.net>
Thu, 29 Jan 2004 09:12:59 +0000 (01:12 -0800)
committerLinus Torvalds <torvalds@home.osdl.org>
Thu, 29 Jan 2004 09:12:59 +0000 (01:12 -0800)
- Changes gen-devlist.c to truncate long device names rather than reject
  the database
- Changes PCI_NAME_SIZE to 96 (and PCI_NAME_HALF to 43) to allow all
  current pci.ids names to fit
- Modifies gen-devlist.c to truncate at 89 characters rather than 79 -
  allows for two digit instance numbers to be added to the name as well
  while staying within the 96 characters allocated. No names in the
  current pci.ids are any longer than this.
- Modifies names.c to no longer limit device name length when displaying
  both vendor and device name; the truncation is done by gen-devlist.c.

drivers/pci/gen-devlist.c
drivers/pci/names.c
include/linux/pci.h

index c0c242010ebac8f5199857fa71861eb34b1d7deb..372e2102581d872856a91cd4cd7275406cce781f 100644 (file)
@@ -7,12 +7,13 @@
 #include <stdio.h>
 #include <string.h>
 
-#define MAX_NAME_SIZE 79
+#define MAX_NAME_SIZE 89
 
 static void
-pq(FILE *f, const char *c)
+pq(FILE *f, const char *c, int len)
 {
-       while (*c) {
+       int i = 1;
+       while (*c && i != len) {
                if (*c == '"')
                        fprintf(f, "\\\"");
                else {
@@ -23,6 +24,7 @@ pq(FILE *f, const char *c)
                        }
                }
                c++;
+               i++;
        }
 }
 
@@ -72,13 +74,13 @@ main(void)
                                                if (bra && bra > c && bra[-1] == ' ')
                                                        bra[-1] = 0;
                                                if (vendor_len + strlen(c) + 1 > MAX_NAME_SIZE) {
-                                                       fprintf(stderr, "Line %d: Device name too long\n", lino);
+                                                       fprintf(stderr, "Line %d: Device name too long. Name truncated.\n", lino);
                                                        fprintf(stderr, "%s\n", c);
-                                                       return 1;
+                                                       /*return 1;*/
                                                }
                                        }
                                        fprintf(devf, "\tDEVICE(%s,%s,\"", vend, line+1);
-                                       pq(devf, c);
+                                       pq(devf, c, MAX_NAME_SIZE - vendor_len - 1);
                                        fputs("\")\n", devf);
                                } else goto err;
                                break;
@@ -107,7 +109,7 @@ main(void)
                                return 1;
                        }
                        fprintf(devf, "VENDOR(%s,\"", vend);
-                       pq(devf, c);
+                       pq(devf, c, 0);
                        fputs("\")\n", devf);
                        mode = 1;
                } else {
index eb707bf79dda33319e02485364f551f1e74d4921..ad224aada7c94a8567106b9772210d391483e6f5 100644 (file)
@@ -86,8 +86,7 @@ void __devinit pci_name_device(struct pci_dev *dev)
 
                /* Full match */
                match_device: {
-                       char *n = name + sprintf(name, "%." PCI_NAME_HALF
-                                       "s %." PCI_NAME_HALF "s",
+                       char *n = name + sprintf(name, "%s %s",
                                        vendor_p->name, device_p->name);
                        int nr = device_p->seen + 1;
                        device_p->seen = nr;
index 3ffb95a8f4d2a6fd9c5980775a9b59edb30aa6fa..bc51ca9edef10b6112f5e8a4d52ea99e5c032bd9 100644 (file)
@@ -425,8 +425,8 @@ struct pci_dev {
        unsigned int    transparent:1;  /* Transparent PCI bridge */
        unsigned int    multifunction:1;/* Part of multi-function device */
 #ifdef CONFIG_PCI_NAMES
-#define PCI_NAME_SIZE  50
-#define PCI_NAME_HALF  __stringify(20) /* less than half to handle slop */
+#define PCI_NAME_SIZE  96
+#define PCI_NAME_HALF  __stringify(43) /* less than half to handle slop */
        char            pretty_name[PCI_NAME_SIZE];     /* pretty name for users to see */
 #endif
 };