From: Ondrej Zary <linux@rainbow-software.org>
To: linux-scsi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH 3/3] g_NCR5380: fix missing pnp_device_detach and scsi_unregister on rmmod
Date: Sun, 20 Dec 2009 20:41:42 +0100 [thread overview]
Message-ID: <200912202041.44198.linux@rainbow-software.org> (raw)
Add missing pnp_device_detach() and scsi_unregister() at rmmod time.
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
--- linux-source-2.6.32-orig/drivers/scsi/g_NCR5380.h 2009-12-20 20:32:25.000000000 +0100
+++ linux-source-2.6.32/drivers/scsi/g_NCR5380.h 2009-12-20 20:32:39.000000000 +0100
@@ -82,10 +82,11 @@ static const char* generic_NCR5380_info(
#define NCR5380_write(reg, value) (outb((value), (NCR5380_map_name + (reg))))
#define NCR5380_implementation_fields \
- NCR5380_map_type NCR5380_map_name
+ NCR5380_map_type NCR5380_map_name; \
+ struct pnp_dev *pnpdev;
#define NCR5380_local_declare() \
- register NCR5380_implementation_fields
+ NCR5380_map_type NCR5380_map_name
#define NCR5380_setup(instance) \
NCR5380_map_name = (NCR5380_map_type)((instance)->NCR5380_instance_name)
--- linux-source-2.6.32-orig/drivers/scsi/g_NCR5380.c 2009-12-20 20:32:25.000000000 +0100
+++ linux-source-2.6.32/drivers/scsi/g_NCR5380.c 2009-12-20 20:32:39.000000000 +0100
@@ -290,6 +290,7 @@ int __init generic_NCR5380_detect(struct
#ifndef SCSI_G_NCR5380_MEM
int i;
unsigned long region_size = 16;
+ struct pnp_dev *pnpdevs[NO_OVERRIDES];
#endif
static unsigned int __initdata ncr_53c400a_ports[] = {
0x280, 0x290, 0x300, 0x310, 0x330, 0x340, 0x348, 0x350, 0
@@ -337,6 +338,7 @@ int __init generic_NCR5380_detect(struct
pnp_device_detach(dev);
continue;
}
+ pnpdevs[count] = dev;
if (pnp_irq_valid(dev, 0))
overrides[count].irq = pnp_irq(dev, 0);
else
@@ -449,6 +451,7 @@ int __init generic_NCR5380_detect(struct
instance->NCR5380_instance_name = overrides[current_override].NCR5380_map_name;
#ifndef SCSI_G_NCR5380_MEM
instance->n_io_port = region_size;
+ ((struct NCR5380_hostdata *)instance->hostdata)->pnpdev = pnpdevs[current_override];
#else
((struct NCR5380_hostdata *)instance->hostdata)->iomem = iomem;
#endif
@@ -520,12 +523,14 @@ int generic_NCR5380_release_resources(st
#ifndef SCSI_G_NCR5380_MEM
release_region(instance->NCR5380_instance_name, instance->n_io_port);
+ if (((struct NCR5380_hostdata *)instance->hostdata)->pnpdev)
+ pnp_device_detach(((struct NCR5380_hostdata *)instance->hostdata)->pnpdev);
#else
iounmap(((struct NCR5380_hostdata *)instance->hostdata)->iomem);
release_mem_region(instance->NCR5380_instance_name, NCR5380_region_size);
#endif
-
+ scsi_unregister(instance);
return 0;
}
--
Ondrej Zary
reply other threads:[~2009-12-20 19:41 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=200912202041.44198.linux@rainbow-software.org \
--to=linux@rainbow-software.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@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.