Lines Matching refs:tgt

165 	struct snic_tgt *tgt = container_of(work, struct snic_tgt, scan_work);  in snic_scsi_scan_tgt()  local
166 struct Scsi_Host *shost = dev_to_shost(&tgt->dev); in snic_scsi_scan_tgt()
169 SNIC_HOST_INFO(shost, "Scanning Target id 0x%x\n", tgt->id); in snic_scsi_scan_tgt()
170 scsi_scan_target(&tgt->dev, in snic_scsi_scan_tgt()
171 tgt->channel, in snic_scsi_scan_tgt()
172 tgt->scsi_tgt_id, in snic_scsi_scan_tgt()
177 tgt->flags &= ~SNIC_TGT_SCAN_PENDING; in snic_scsi_scan_tgt()
188 struct snic_tgt *tgt = NULL; in snic_tgt_lookup() local
191 tgt = list_entry(cur, struct snic_tgt, list); in snic_tgt_lookup()
192 if (tgt->id == le32_to_cpu(tgtid->tgt_id)) in snic_tgt_lookup()
193 return tgt; in snic_tgt_lookup()
194 tgt = NULL; in snic_tgt_lookup()
197 return tgt; in snic_tgt_lookup()
206 struct snic_tgt *tgt = dev_to_tgt(dev); in snic_tgt_dev_release() local
208 SNIC_HOST_INFO(snic_tgt_to_shost(tgt), in snic_tgt_dev_release()
210 tgt->id, in snic_tgt_dev_release()
213 SNIC_BUG_ON(!list_empty(&tgt->list)); in snic_tgt_dev_release()
214 kfree(tgt); in snic_tgt_dev_release()
223 struct snic_tgt *tgt = container_of(work, struct snic_tgt, del_work); in snic_tgt_del() local
224 struct Scsi_Host *shost = snic_tgt_to_shost(tgt); in snic_tgt_del()
226 if (tgt->flags & SNIC_TGT_SCAN_PENDING) in snic_tgt_del()
230 scsi_target_block(&tgt->dev); in snic_tgt_del()
233 snic_tgt_scsi_abort_io(tgt); in snic_tgt_del()
236 scsi_target_unblock(&tgt->dev, SDEV_TRANSPORT_OFFLINE); in snic_tgt_del()
239 scsi_remove_target(&tgt->dev); /* ?? */ in snic_tgt_del()
240 device_del(&tgt->dev); in snic_tgt_del()
241 put_device(&tgt->dev); in snic_tgt_del()
250 struct snic_tgt *tgt = NULL; in snic_tgt_create() local
254 tgt = snic_tgt_lookup(snic, tgtid); in snic_tgt_create()
255 if (tgt) { in snic_tgt_create()
257 return tgt; in snic_tgt_create()
260 tgt = kzalloc(sizeof(*tgt), GFP_KERNEL); in snic_tgt_create()
261 if (!tgt) { in snic_tgt_create()
265 return tgt; in snic_tgt_create()
268 INIT_LIST_HEAD(&tgt->list); in snic_tgt_create()
269 tgt->id = le32_to_cpu(tgtid->tgt_id); in snic_tgt_create()
270 tgt->channel = 0; in snic_tgt_create()
273 tgt->tdata.typ = le16_to_cpu(tgtid->tgt_type); in snic_tgt_create()
278 tgt->tdata.disc_id = 0; in snic_tgt_create()
279 tgt->state = SNIC_TGT_STAT_INIT; in snic_tgt_create()
280 device_initialize(&tgt->dev); in snic_tgt_create()
281 tgt->dev.parent = get_device(&snic->shost->shost_gendev); in snic_tgt_create()
282 tgt->dev.release = snic_tgt_dev_release; in snic_tgt_create()
283 INIT_WORK(&tgt->scan_work, snic_scsi_scan_tgt); in snic_tgt_create()
284 INIT_WORK(&tgt->del_work, snic_tgt_del); in snic_tgt_create()
285 switch (tgt->tdata.typ) { in snic_tgt_create()
287 dev_set_name(&tgt->dev, "snic_das_tgt:%d:%d-%d", in snic_tgt_create()
288 snic->shost->host_no, tgt->channel, tgt->id); in snic_tgt_create()
292 dev_set_name(&tgt->dev, "snic_san_tgt:%d:%d-%d", in snic_tgt_create()
293 snic->shost->host_no, tgt->channel, tgt->id); in snic_tgt_create()
298 dev_set_name(&tgt->dev, "snic_das_tgt:%d:%d-%d", in snic_tgt_create()
299 snic->shost->host_no, tgt->channel, tgt->id); in snic_tgt_create()
304 list_add_tail(&tgt->list, &snic->disc.tgt_list); in snic_tgt_create()
305 tgt->scsi_tgt_id = snic->disc.nxt_tgt_id++; in snic_tgt_create()
306 tgt->state = SNIC_TGT_STAT_ONLINE; in snic_tgt_create()
311 tgt->id, snic_tgt_type_to_str(tgt->tdata.typ)); in snic_tgt_create()
313 ret = device_add(&tgt->dev); in snic_tgt_create()
320 kfree(tgt); in snic_tgt_create()
321 tgt = NULL; in snic_tgt_create()
323 return tgt; in snic_tgt_create()
326 SNIC_HOST_INFO(snic->shost, "Scanning %s.\n", dev_name(&tgt->dev)); in snic_tgt_create()
328 scsi_queue_work(snic->shost, &tgt->scan_work); in snic_tgt_create()
330 return tgt; in snic_tgt_create()
339 struct snic_tgt *tgt = NULL; in snic_handle_tgt_disc() local
373 tgt = snic_tgt_create(snic, &tgtid[i]); in snic_handle_tgt_disc()
374 if (!tgt) { in snic_handle_tgt_disc()
532 struct snic_tgt *tgt = NULL; in snic_tgt_del_all() local
540 tgt = list_entry(cur, struct snic_tgt, list); in snic_tgt_del_all()
541 tgt->state = SNIC_TGT_STAT_DEL; in snic_tgt_del_all()
542 list_del_init(&tgt->list); in snic_tgt_del_all()
543 SNIC_HOST_INFO(snic->shost, "Tgt %d q'ing for del\n", tgt->id); in snic_tgt_del_all()
544 queue_work(snic_glob->event_q, &tgt->del_work); in snic_tgt_del_all()
545 tgt = NULL; in snic_tgt_del_all()