public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <bjorn.helgaas@hp.com>
To: Len Brown <lenb@kernel.org>
Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
	Adam Belay <ambx1@neo.rr.com>, Adam M Belay <abelay@mit.edu>,
	Li Shaohua <shaohua.li@intel.com>,
	Matthieu Castet <castet.matthieu@free.fr>,
	Thomas Renninger <trenn@suse.de>,
	Rene Herman <rene.herman@keyaccess.nl>,
	Jaroslav Kysela <perex@perex.cz>,
	Andrew Morton <akpm@linux-foundation.org>,
	Takashi Iwai <tiwai@suse.de>
Subject: [patch 17/18] ISAPNP: handle independent options following dependent ones
Date: Wed, 04 Jun 2008 16:09:50 -0600	[thread overview]
Message-ID: <20080604221130.143096410@ldl.fc.hp.com> (raw)
In-Reply-To: 20080604220933.168145536@ldl.fc.hp.com

[-- Attachment #1: isapnp-enddep-bugfix --]
[-- Type: text/plain, Size: 1829 bytes --]

The ISAPNP spec recommends that independent options precede
dependent ones, but this is not actually required.  The current
ISAPNP code incorrectly puts such trailing independent options
at the end of the last dependent option list.

This patch fixes that bug by resetting the current option list
to the independent list when we see an "End Dependent Functions"
tag.  PNPBIOS and PNPACPI handle this the same way.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>

Index: work10/drivers/pnp/isapnp/core.c
===================================================================
--- work10.orig/drivers/pnp/isapnp/core.c	2008-06-03 15:45:02.000000000 -0600
+++ work10/drivers/pnp/isapnp/core.c	2008-06-03 15:49:38.000000000 -0600
@@ -584,14 +584,14 @@ static int __init isapnp_create_device(s
 {
 	int number = 0, skip = 0, priority, compat = 0;
 	unsigned char type, tmp[17];
-	struct pnp_option *option;
+	struct pnp_option *option, *option_independent;
 	struct pnp_dev *dev;
 	u32 eisa_id;
 	char id[8];
 
 	if ((dev = isapnp_parse_device(card, size, number++)) == NULL)
 		return 1;
-	option = pnp_register_independent_option(dev);
+	option_independent = option = pnp_register_independent_option(dev);
 	if (!option) {
 		kfree(dev);
 		return 1;
@@ -613,6 +613,7 @@ static int __init isapnp_create_device(s
 				size = 0;
 				skip = 0;
 				option = pnp_register_independent_option(dev);
+				option_independent = option;
 				if (!option) {
 					kfree(dev);
 					return 1;
@@ -662,6 +663,10 @@ static int __init isapnp_create_device(s
 		case _STAG_ENDDEP:
 			if (size != 0)
 				goto __skip;
+			if (option_independent == option)
+				dev_warn(&dev->dev, "missing "
+					 "_STAG_STARTDEP tag\n");
+			option = option_independent;
 			dev_dbg(&dev->dev, "end dependent options\n");
 			break;
 		case _STAG_IOPORT:

-- 

  parent reply	other threads:[~2008-06-04 22:11 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-04 22:09 [patch 00/18] PNP: convert resource options to unified dynamic list, v2 Bjorn Helgaas
2008-06-04 22:09 ` [patch 01/18] PNP: add pnp_possible_config() -- can a device could be configured this way? Bjorn Helgaas
2008-06-14  8:05   ` Rene Herman
2008-06-04 22:09 ` [patch 02/18] PNP: whitespace/coding style fixes Bjorn Helgaas
2008-06-04 22:09 ` [patch 03/18] PNP: IORESOURCE_* flags are PNP-specific, not ISA PNP-specific Bjorn Helgaas
2008-06-14  8:06   ` Rene Herman
2008-06-04 22:09 ` [patch 04/18] PNP: define PNP-specific IORESOURCE_IO_* flags alongside IRQ, DMA, MEM Bjorn Helgaas
2008-06-04 22:09 ` [patch 05/18] PNP: make resource option structures private to PNP subsystem Bjorn Helgaas
2008-06-14  8:07   ` Rene Herman
2008-06-04 22:09 ` [patch 06/18] PNP: introduce pnp_irq_mask_t typedef Bjorn Helgaas
2008-06-04 22:09 ` [patch 07/18] PNP: increase I/O port & memory option address sizes Bjorn Helgaas
2008-06-04 22:09 ` [patch 08/18] PNP: improve resource assignment debug Bjorn Helgaas
2008-06-04 22:09 ` [patch 09/18] PNP: in debug resource dump, make empty list obvious Bjorn Helgaas
2008-06-04 22:09 ` [patch 10/18] PNP: make resource assignment functions return 0 (success) or -EBUSY (failure) Bjorn Helgaas
2008-06-04 22:09 ` [patch 11/18] PNP: remove redundant pnp_can_configure() check Bjorn Helgaas
2008-06-04 22:09 ` [patch 12/18] PNP: centralize resource option allocations Bjorn Helgaas
2008-06-04 22:09 ` [patch 13/18] PNPACPI: ignore _PRS interrupt numbers larger than PNP_IRQ_NR Bjorn Helgaas
2008-06-04 22:09 ` [patch 14/18] PNP: rename pnp_register_*_resource() local variables Bjorn Helgaas
2008-06-04 22:09 ` [patch 15/18] PNP: support optional IRQ resources Bjorn Helgaas
2008-06-14  8:29   ` Rene Herman
2008-06-16 15:41     ` Bjorn Helgaas
2008-06-16 16:26       ` Rene Herman
2008-06-04 22:09 ` [patch 16/18] PNP: remove extra 0x100 bit from option priority Bjorn Helgaas
2008-06-14  8:35   ` Rene Herman
2008-06-04 22:09 ` Bjorn Helgaas [this message]
2008-06-14  8:39   ` [patch 17/18] ISAPNP: handle independent options following dependent ones Rene Herman
2008-06-04 22:09 ` [patch 18/18] PNP: convert resource options to single linked list Bjorn Helgaas
2008-06-14 10:31   ` Rene Herman
2008-06-16 15:44     ` Bjorn Helgaas
2008-06-10  3:00 ` [patch 00/18] PNP: convert resource options to unified dynamic list, v2 Rene Herman
2008-06-10 17:08   ` Bjorn Helgaas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080604221130.143096410@ldl.fc.hp.com \
    --to=bjorn.helgaas@hp.com \
    --cc=abelay@mit.edu \
    --cc=akpm@linux-foundation.org \
    --cc=ambx1@neo.rr.com \
    --cc=castet.matthieu@free.fr \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=perex@perex.cz \
    --cc=rene.herman@keyaccess.nl \
    --cc=shaohua.li@intel.com \
    --cc=tiwai@suse.de \
    --cc=trenn@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox