lkml.org 
[lkml]   [2004]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: [PATCH] PCI Update for 2.6.2-rc2
Date
From
ChangeSet 1.1522, 2004/01/29 17:12:59-08:00, kieran@mgpenguin.net

[PATCH] PCI: name length change

- 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 | 16 +++++++++-------
drivers/pci/names.c | 3 +--
include/linux/pci.h | 4 ++--
3 files changed, 12 insertions(+), 11 deletions(-)


diff -Nru a/drivers/pci/gen-devlist.c b/drivers/pci/gen-devlist.c
--- a/drivers/pci/gen-devlist.c Thu Jan 29 17:23:52 2004
+++ b/drivers/pci/gen-devlist.c Thu Jan 29 17:23:52 2004
@@ -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 @@
}
}
c++;
+ i++;
}
}

@@ -72,13 +74,13 @@
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 @@
return 1;
}
fprintf(devf, "VENDOR(%s,\"", vend);
- pq(devf, c);
+ pq(devf, c, 0);
fputs("\")\n", devf);
mode = 1;
} else {
diff -Nru a/drivers/pci/names.c b/drivers/pci/names.c
--- a/drivers/pci/names.c Thu Jan 29 17:23:52 2004
+++ b/drivers/pci/names.c Thu Jan 29 17:23:52 2004
@@ -86,8 +86,7 @@

/* 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;
diff -Nru a/include/linux/pci.h b/include/linux/pci.h
--- a/include/linux/pci.h Thu Jan 29 17:23:52 2004
+++ b/include/linux/pci.h Thu Jan 29 17:23:52 2004
@@ -425,8 +425,8 @@
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
};
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:00    [W:0.042 / U:0.544 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site