* [PATCH] pnpbios parser bugfix
@ 2004-09-02 8:14 castet.matthieu
0 siblings, 0 replies; only message in thread
From: castet.matthieu @ 2004-09-02 8:14 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 480 bytes --]
hi,
this patch fix a pnpbios problem with independant
resource(http://bugzilla.kernel.org/show_bug.cgi?id=3295) :
the old code assume that they are given at the beggining (before any
SMALL_TAG_STARTDEP entry), but in some case there are found after
SMALL_TAG_ENDDEP entry.
tag : 6 SMALL_TAG_STARTDEP
tag : 8 SMALL_TAG_PORT
tag : 6 SMALL_TAG_STARTDEP
tag : 8 SMALL_TAG_PORT
tag : 7 SMALL_TAG_ENDDEP
tag : 4 SMALL_TAG_IRQ <-- independant resource
tag : f SMALL_TAG_END
Matthieu
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: pnp1.patch --]
[-- Type: text/x-patch; name="pnp1.patch", Size: 924 bytes --]
--- linux/drivers/pnp/pnpbios/rsparser.c 2004-06-16 07:19:13.000000000 +0200
+++ linux-2.6.9/drivers/pnp/pnpbios/rsparser.c 2004-09-02 09:59:53.000000000 +0200
@@ -346,12 +346,12 @@
{
unsigned int len, tag;
int priority = 0;
- struct pnp_option *option;
+ struct pnp_option *option, *option_independent;
if (!p)
return NULL;
- option = pnp_register_independent_option(dev);
+ option_independent = option = pnp_register_independent_option(dev);
if (!option)
return NULL;
@@ -428,9 +428,14 @@
case SMALL_TAG_ENDDEP:
if (len != 0)
goto len_err;
+ if (option_independent == option)
+ printk(KERN_WARNING "PnPBIOS: Missing SMALL_TAG_STARTDEP tag\n");
+ option = option_independent;
break;
case SMALL_TAG_END:
+ if (option_independent != option)
+ printk(KERN_WARNING "PnPBIOS: Missing SMALL_TAG_ENDDEP tag\n");
p = p + 2;
return (unsigned char *)p;
break;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2004-09-02 8:14 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-02 8:14 [PATCH] pnpbios parser bugfix castet.matthieu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®