From: Christoph Hellwig <hch@infradead.org>
To: James.Bottomley@steeleye.com, linux-scsi@vger.kernel.org
Subject: Re: LDM scsi upper level updates and scsihosts parm
Date: Tue, 3 Jun 2003 21:08:26 +0100 [thread overview]
Message-ID: <20030603210826.A27004@infradead.org> (raw)
In-Reply-To: <20030531103255.A28131@infradead.org>; from hch@infradead.org on Sat, May 31, 2003 at 10:32:55AM +0100
On Sat, May 31, 2003 at 10:32:55AM +0100, Christoph Hellwig wrote:
> I think we should remove it. It's racy and we have proper ways to identify
> filesysystems by label/uuid or scsi hosts by the sysfs output nowdays.
Okay, here's a patch to kill it.
diff -Nru a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
--- a/drivers/scsi/hosts.c Tue Jun 3 00:18:19 2003
+++ b/drivers/scsi/hosts.c Tue Jun 3 00:18:19 2003
@@ -51,96 +51,6 @@
static spinlock_t scsi_host_list_lock = SPIN_LOCK_UNLOCKED;
static int scsi_host_next_hn; /* host_no for next new host */
-static char *scsihosts;
-
-MODULE_PARM(scsihosts, "s");
-MODULE_PARM_DESC(scsihosts, "scsihosts=driver1,driver2,driver3");
-#ifndef MODULE
-int __init scsi_setup(char *str)
-{
- scsihosts = str;
- return 1;
-}
-
-__setup("scsihosts=", scsi_setup);
-#endif
-
-/**
- * scsi_find_host_by_num - get a Scsi_Host by host no
- *
- * @host_no: host number to locate
- *
- * Return value:
- * A pointer to located Scsi_Host or NULL.
- **/
-static struct Scsi_Host *scsi_find_host_by_num(unsigned short host_no)
-{
- struct Scsi_Host *shost, *shost_found = NULL;
-
- spin_lock(&scsi_host_list_lock);
- list_for_each_entry(shost, &scsi_host_list, sh_list) {
- if (shost->host_no > host_no) {
- /*
- * The list is sorted.
- */
- break;
- } else if (shost->host_no == host_no) {
- shost_found = shost;
- break;
- }
- }
- spin_unlock(&scsi_host_list_lock);
- return shost_found;
-}
-
-/**
- * scsi_alloc_hostnum - choose new SCSI host number based on host name.
- * @name: String to store in name field
- *
- * Return value:
- * Pointer to a new Scsi_Host_Name
- **/
-static int scsi_alloc_host_num(const char *name)
-{
- int hostnum;
- int namelen;
- const char *start, *end;
-
- if (name) {
- hostnum = 0;
- namelen = strlen(name);
- start = scsihosts;
- while (1) {
- int hostlen;
-
- if (start && start[0] != '\0') {
- end = strpbrk(start, ",:");
- if (end) {
- hostlen = (end - start);
- end++;
- } else
- hostlen = strlen(start);
- /*
- * Look for a match on the scsihosts list.
- */
- if ((hostlen == namelen) &&
- (strncmp(name, start, hostlen) == 0) &&
- (!scsi_find_host_by_num(hostnum)))
- return hostnum;
- start = end;
- } else {
- /*
- * Look for any unused numbers.
- */
- if (!scsi_find_host_by_num(hostnum))
- return hostnum;
- }
- hostnum++;
- }
- } else
- return scsi_host_next_hn++;
-}
-
/**
* scsi_tp_for_each_host - call function for each scsi host off a template
@@ -331,7 +241,7 @@
memset(shost, 0, sizeof(struct Scsi_Host) + xtr_bytes);
- shost->host_no = scsi_alloc_host_num(shost_tp->proc_name);
+ shost->host_no = scsi_host_next_hn++; /* XXX(hch): still racy */
spin_lock_init(&shost->default_lock);
scsi_assign_lock(shost, &shost->default_lock);
@@ -536,26 +446,8 @@
**/
void scsi_host_put(struct Scsi_Host *shost)
{
-
class_device_put(&shost->class_dev);
put_device(&shost->host_gendev);
-}
-
-/**
- * scsi_host_init - set up the scsi host number list based on any entries
- * scsihosts.
- **/
-void __init scsi_host_init(void)
-{
- char *shost_hn;
-
- shost_hn = scsihosts;
- while (shost_hn) {
- scsi_host_next_hn++;
- shost_hn = strpbrk(shost_hn, ":,");
- if (shost_hn)
- shost_hn++;
- }
}
void scsi_host_busy_inc(struct Scsi_Host *shost, Scsi_Device *sdev)
diff -Nru a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
--- a/drivers/scsi/scsi.c Tue Jun 3 00:18:19 2003
+++ b/drivers/scsi/scsi.c Tue Jun 3 00:18:19 2003
@@ -1003,7 +1003,6 @@
for (i = 0; i < NR_CPUS; i++)
INIT_LIST_HEAD(&done_q[i]);
- scsi_host_init();
devfs_mk_dir("scsi");
open_softirq(SCSI_SOFTIRQ, scsi_softirq, NULL);
printk(KERN_NOTICE "SCSI subsystem initialized\n");
prev parent reply other threads:[~2003-06-03 19:55 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-31 1:08 LDM scsi upper level updates and scsihosts parm Mike Anderson
2003-05-31 9:32 ` Christoph Hellwig
2003-06-03 20:08 ` Christoph Hellwig [this message]
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=20030603210826.A27004@infradead.org \
--to=hch@infradead.org \
--cc=James.Bottomley@steeleye.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox