Lines Matching defs:shost

121 	struct Scsi_Host *shost;
165 data->shost = NULL;
272 * Stores the @shost, @channel, @id, and @lun in the scsi_Device, and
285 struct Scsi_Host *shost = dev_to_shost(starget->dev.parent);
288 sdev = kzalloc(sizeof(*sdev) + shost->transportt->device_size,
296 sdev->host = shost;
336 scsi_init_limits(shost, &lim);
367 if (shost->hostt->slave_alloc) {
368 ret = shost->hostt->slave_alloc(sdev);
393 struct Scsi_Host *shost = dev_to_shost(dev->parent);
399 spin_lock_irqsave(shost->host_lock, flags);
400 if (shost->hostt->target_destroy)
401 shost->hostt->target_destroy(starget);
403 spin_unlock_irqrestore(shost->host_lock, flags);
431 struct Scsi_Host *shost = dev_to_shost(parent);
435 list_for_each_entry(starget, &shost->__targets, siblings) {
495 struct Scsi_Host *shost = dev_to_shost(parent);
499 + shost->transportt->target_size;
513 dev_set_name(dev, "target%d:%d:%d", shost->host_no, channel, id);
526 spin_lock_irqsave(shost->host_lock, flags);
532 list_add_tail(&starget->siblings, &shost->__targets);
533 spin_unlock_irqrestore(shost->host_lock, flags);
536 if (shost->hostt->target_alloc) {
537 error = shost->hostt->target_alloc(starget);
560 spin_unlock_irqrestore(shost->host_lock, flags);
1186 struct Scsi_Host *shost = dev_to_shost(starget->dev.parent);
1288 res = scsi_add_lun(sdev, result, &bflags, shost->async_scan);
1334 struct Scsi_Host *shost = dev_to_shost(starget->dev.parent);
1339 max_dev_lun = min(max_scsi_luns, shost->max_lun);
1346 max_dev_lun = shost->max_lun;
1373 max_dev_lun = shost->max_lun;
1430 struct Scsi_Host *shost = dev_to_shost(&starget->dev);
1470 (!(bflags & BLIST_REPORTLUN2) || shost->max_lun <= 8))
1603 struct scsi_device *__scsi_add_device(struct Scsi_Host *shost, uint channel,
1607 struct device *parent = &shost->shost_gendev;
1618 mutex_lock(&shost->scan_mutex);
1619 if (!shost->async_scan)
1622 if (scsi_host_scan_allowed(shost) && scsi_autopm_get_host(shost) == 0) {
1625 scsi_autopm_put_host(shost);
1627 mutex_unlock(&shost->scan_mutex);
1730 struct Scsi_Host *shost = dev_to_shost(parent);
1735 if (shost->this_id == id)
1801 struct Scsi_Host *shost = dev_to_shost(parent);
1810 mutex_lock(&shost->scan_mutex);
1811 if (!shost->async_scan)
1814 if (scsi_host_scan_allowed(shost) && scsi_autopm_get_host(shost) == 0) {
1816 scsi_autopm_put_host(shost);
1818 mutex_unlock(&shost->scan_mutex);
1822 static void scsi_scan_channel(struct Scsi_Host *shost, unsigned int channel,
1829 for (id = 0; id < shost->max_id; ++id) {
1835 * XXX add a shost id iterator, so for example,
1839 if (shost->reverse_ordering)
1843 order_id = shost->max_id - id - 1;
1846 __scsi_scan_target(&shost->shost_gendev, channel,
1850 __scsi_scan_target(&shost->shost_gendev, channel,
1854 int scsi_scan_host_selected(struct Scsi_Host *shost, unsigned int channel,
1858 SCSI_LOG_SCAN_BUS(3, shost_printk (KERN_INFO, shost,
1862 if (((channel != SCAN_WILD_CARD) && (channel > shost->max_channel)) ||
1863 ((id != SCAN_WILD_CARD) && (id >= shost->max_id)) ||
1864 ((lun != SCAN_WILD_CARD) && (lun >= shost->max_lun)))
1867 mutex_lock(&shost->scan_mutex);
1868 if (!shost->async_scan)
1871 if (scsi_host_scan_allowed(shost) && scsi_autopm_get_host(shost) == 0) {
1873 for (channel = 0; channel <= shost->max_channel;
1875 scsi_scan_channel(shost, channel, id, lun,
1878 scsi_scan_channel(shost, channel, id, lun, rescan);
1879 scsi_autopm_put_host(shost);
1881 mutex_unlock(&shost->scan_mutex);
1886 static void scsi_sysfs_add_devices(struct Scsi_Host *shost)
1889 shost_for_each_device(sdev, shost) {
1896 if (!scsi_host_scan_allowed(shost) ||
1904 * @shost: the host which will be scanned
1912 static struct async_scan_data *scsi_prep_async_scan(struct Scsi_Host *shost)
1920 mutex_lock(&shost->scan_mutex);
1921 if (shost->async_scan) {
1922 shost_printk(KERN_DEBUG, shost, "%s called twice\n", __func__);
1929 data->shost = scsi_host_get(shost);
1930 if (!data->shost)
1934 spin_lock_irqsave(shost->host_lock, flags);
1935 shost->async_scan = 1;
1936 spin_unlock_irqrestore(shost->host_lock, flags);
1937 mutex_unlock(&shost->scan_mutex);
1948 mutex_unlock(&shost->scan_mutex);
1963 struct Scsi_Host *shost;
1969 shost = data->shost;
1971 mutex_lock(&shost->scan_mutex);
1973 if (!shost->async_scan) {
1974 shost_printk(KERN_INFO, shost, "%s called twice\n", __func__);
1976 mutex_unlock(&shost->scan_mutex);
1982 scsi_sysfs_add_devices(shost);
1984 spin_lock_irqsave(shost->host_lock, flags);
1985 shost->async_scan = 0;
1986 spin_unlock_irqrestore(shost->host_lock, flags);
1988 mutex_unlock(&shost->scan_mutex);
1999 scsi_autopm_put_host(shost);
2000 scsi_host_put(shost);
2004 static void do_scsi_scan_host(struct Scsi_Host *shost)
2006 if (shost->hostt->scan_finished) {
2008 if (shost->hostt->scan_start)
2009 shost->hostt->scan_start(shost);
2011 while (!shost->hostt->scan_finished(shost, jiffies - start))
2014 scsi_scan_host_selected(shost, SCAN_WILD_CARD, SCAN_WILD_CARD,
2022 struct Scsi_Host *shost = data->shost;
2024 do_scsi_scan_host(shost);
2030 * @shost: adapter to scan
2032 void scsi_scan_host(struct Scsi_Host *shost)
2039 if (scsi_autopm_get_host(shost) < 0)
2042 data = scsi_prep_async_scan(shost);
2044 do_scsi_scan_host(shost);
2045 scsi_autopm_put_host(shost);
2054 /* scsi_autopm_put_host(shost) is called in scsi_finish_async_scan() */
2058 void scsi_forget_host(struct Scsi_Host *shost)
2064 spin_lock_irqsave(shost->host_lock, flags);
2065 list_for_each_entry(sdev, &shost->__devices, siblings) {
2068 spin_unlock_irqrestore(shost->host_lock, flags);
2072 spin_unlock_irqrestore(shost->host_lock, flags);