From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: linux-ide@vger.kernel.org
Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
linux-kernel@vger.kernel.org
Subject: [PATCH 13/15] ide: move handling of I/O resources out of ide_probe_port()
Date: Fri, 04 Jan 2008 22:26:04 +0100 [thread overview]
Message-ID: <20080104212604.6978.5744.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20080104212424.6978.93646.sendpatchset@localhost.localdomain>
Reserve/release I/O resources in ide_device_add_all() instead of
ide_probe_port().
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/ide/ide-probe.c | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
Index: b/drivers/ide/ide-probe.c
===================================================================
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -747,13 +747,6 @@ static int ide_probe_port(ide_hwif_t *hw
if (hwif->noprobe)
return -EACCES;
- if ((hwif->chipset != ide_4drives || !hwif->mate || !hwif->mate->present) &&
- (ide_hwif_request_regions(hwif))) {
- printk(KERN_ERR "%s: ports already in use, skipping probe\n",
- hwif->name);
- return -EBUSY;
- }
-
/*
* We must always disable IRQ, as probe_for_drive will assert IRQ, but
* we'll install our IRQ driver much later...
@@ -798,10 +791,8 @@ static int ide_probe_port(ide_hwif_t *hw
if (irqd)
enable_irq(irqd);
- if (!hwif->present) {
- ide_hwif_release_regions(hwif);
+ if (!hwif->present)
return -ENODEV;
- }
for (unit = 0; unit < MAX_DRIVES; unit++) {
ide_drive_t *drive = &hwif->drives[unit];
@@ -1309,7 +1300,17 @@ int ide_device_add_all(u8 *idx)
if (idx[i] == 0xff)
continue;
- (void)ide_probe_port(&ide_hwifs[idx[i]]);
+ hwif = &ide_hwifs[idx[i]];
+
+ if ((hwif->chipset != ide_4drives || !hwif->mate ||
+ !hwif->mate->present) && ide_hwif_request_regions(hwif)) {
+ printk(KERN_ERR "%s: ports already in use, "
+ "skipping probe\n", hwif->name);
+ continue;
+ }
+
+ if (ide_probe_port(hwif) < 0)
+ ide_hwif_release_regions(hwif);
}
for (i = 0; i < MAX_HWIFS; i++) {
next prev parent reply other threads:[~2008-01-04 21:14 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-04 21:24 [PATCH 0/15] ide: fixes/cleanups for IDE devices probing Bartlomiej Zolnierkiewicz
2008-01-04 21:24 ` [PATCH 1/15] ide: fix handling of busy I/O resources in probe_hwif() Bartlomiej Zolnierkiewicz
2008-01-04 21:24 ` [PATCH 2/15] ide: move wait_hwif_ready() documentation in the right place Bartlomiej Zolnierkiewicz
2008-01-09 17:47 ` Sergei Shtylyov
2008-01-09 17:53 ` Sergei Shtylyov
2008-01-04 21:24 ` [PATCH 3/15] ide: remove hwif->present manipulations from hwif_init() Bartlomiej Zolnierkiewicz
2008-01-04 21:24 ` [PATCH 4/15] ide_platform: remove struct hwif_prop Bartlomiej Zolnierkiewicz
2008-01-04 21:25 ` [PATCH 5/15] ide: remove unused ide_hwgroup_t fields Bartlomiej Zolnierkiewicz
2008-01-04 21:25 ` [PATCH 6/15] ide: remove needless zeroing of hwgroup fields from init_irq() Bartlomiej Zolnierkiewicz
2008-01-04 21:25 ` [PATCH 7/15] ide: cleanup ide_system_bus_speed() Bartlomiej Zolnierkiewicz
2008-01-04 21:25 ` [PATCH 8/15] ide: I/O resources are released too early in ide_unregister() Bartlomiej Zolnierkiewicz
2008-01-04 21:25 ` [PATCH 9/15] ide: factor out code removing port from hwgroup from ide_unregister() Bartlomiej Zolnierkiewicz
2008-01-04 21:25 ` [PATCH 10/15] ide: prepare init_irq() for using ide_remove_port_from_hwgroup() Bartlomiej Zolnierkiewicz
2008-01-04 21:25 ` [PATCH 11/15] ide: use ide_remove_port_from_hwgroup in init_irq() Bartlomiej Zolnierkiewicz
2008-01-04 21:25 ` [PATCH 12/15] ide: make probe_hwif() return an error value Bartlomiej Zolnierkiewicz
2008-01-04 21:26 ` Bartlomiej Zolnierkiewicz [this message]
2008-01-04 21:26 ` [PATCH 14/15] ide: factor out code for tuning devices from ide_probe_port() Bartlomiej Zolnierkiewicz
2008-01-04 21:26 ` [PATCH 15/15] ide: move hwif_register() call out of ide_probe_port() Bartlomiej Zolnierkiewicz
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=20080104212604.6978.5744.sendpatchset@localhost.localdomain \
--to=bzolnier@gmail.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.