Lines Matching refs:tgt

166 	struct snic_tgt *tgt = container_of(work, struct snic_tgt, scan_work);  in snic_scsi_scan_tgt()  local
167 struct Scsi_Host *shost = dev_to_shost(&tgt->dev); in snic_scsi_scan_tgt()
170 SNIC_HOST_INFO(shost, "Scanning Target id 0x%x\n", tgt->id); in snic_scsi_scan_tgt()
171 scsi_scan_target(&tgt->dev, in snic_scsi_scan_tgt()
172 tgt->channel, in snic_scsi_scan_tgt()
173 tgt->scsi_tgt_id, in snic_scsi_scan_tgt()
178 tgt->flags &= ~SNIC_TGT_SCAN_PENDING; in snic_scsi_scan_tgt()
189 struct snic_tgt *tgt = NULL; in snic_tgt_lookup() local
192 tgt = list_entry(cur, struct snic_tgt, list); in snic_tgt_lookup()
193 if (tgt->id == le32_to_cpu(tgtid->tgt_id)) in snic_tgt_lookup()
194 return tgt; in snic_tgt_lookup()
195 tgt = NULL; in snic_tgt_lookup()
198 return tgt; in snic_tgt_lookup()
207 struct snic_tgt *tgt = dev_to_tgt(dev); in snic_tgt_dev_release() local
209 SNIC_HOST_INFO(snic_tgt_to_shost(tgt), in snic_tgt_dev_release()
211 tgt->id, in snic_tgt_dev_release()
214 SNIC_BUG_ON(!list_empty(&tgt->list)); in snic_tgt_dev_release()
215 kfree(tgt); in snic_tgt_dev_release()
224 struct snic_tgt *tgt = container_of(work, struct snic_tgt, del_work); in snic_tgt_del() local
225 struct Scsi_Host *shost = snic_tgt_to_shost(tgt); in snic_tgt_del()
227 if (tgt->flags & SNIC_TGT_SCAN_PENDING) in snic_tgt_del()
231 scsi_target_block(&tgt->dev); in snic_tgt_del()
234 snic_tgt_scsi_abort_io(tgt); in snic_tgt_del()
237 scsi_target_unblock(&tgt->dev, SDEV_TRANSPORT_OFFLINE); in snic_tgt_del()
240 scsi_remove_target(&tgt->dev); /* ?? */ in snic_tgt_del()
241 device_del(&tgt->dev); in snic_tgt_del()
242 put_device(&tgt->dev); in snic_tgt_del()
251 struct snic_tgt *tgt = NULL; in snic_tgt_create() local
255 tgt = snic_tgt_lookup(snic, tgtid); in snic_tgt_create()
256 if (tgt) { in snic_tgt_create()
258 return tgt; in snic_tgt_create()
261 tgt = kzalloc(sizeof(*tgt), GFP_KERNEL); in snic_tgt_create()
262 if (!tgt) { in snic_tgt_create()
266 return tgt; in snic_tgt_create()
269 INIT_LIST_HEAD(&tgt->list); in snic_tgt_create()
270 tgt->id = le32_to_cpu(tgtid->tgt_id); in snic_tgt_create()
271 tgt->channel = 0; in snic_tgt_create()
274 tgt->tdata.typ = le16_to_cpu(tgtid->tgt_type); in snic_tgt_create()
279 tgt->tdata.disc_id = 0; in snic_tgt_create()
280 tgt->state = SNIC_TGT_STAT_INIT; in snic_tgt_create()
281 device_initialize(&tgt->dev); in snic_tgt_create()
282 tgt->dev.parent = get_device(&snic->shost->shost_gendev); in snic_tgt_create()
283 tgt->dev.release = snic_tgt_dev_release; in snic_tgt_create()
284 INIT_WORK(&tgt->scan_work, snic_scsi_scan_tgt); in snic_tgt_create()
285 INIT_WORK(&tgt->del_work, snic_tgt_del); in snic_tgt_create()
286 switch (tgt->tdata.typ) { in snic_tgt_create()
288 dev_set_name(&tgt->dev, "snic_das_tgt:%d:%d-%d", in snic_tgt_create()
289 snic->shost->host_no, tgt->channel, tgt->id); in snic_tgt_create()
293 dev_set_name(&tgt->dev, "snic_san_tgt:%d:%d-%d", in snic_tgt_create()
294 snic->shost->host_no, tgt->channel, tgt->id); in snic_tgt_create()
299 dev_set_name(&tgt->dev, "snic_das_tgt:%d:%d-%d", in snic_tgt_create()
300 snic->shost->host_no, tgt->channel, tgt->id); in snic_tgt_create()
305 list_add_tail(&tgt->list, &snic->disc.tgt_list); in snic_tgt_create()
306 tgt->scsi_tgt_id = snic->disc.nxt_tgt_id++; in snic_tgt_create()
307 tgt->state = SNIC_TGT_STAT_ONLINE; in snic_tgt_create()
312 tgt->id, snic_tgt_type_to_str(tgt->tdata.typ)); in snic_tgt_create()
314 ret = device_add(&tgt->dev); in snic_tgt_create()
321 kfree(tgt); in snic_tgt_create()
322 tgt = NULL; in snic_tgt_create()
324 return tgt; in snic_tgt_create()
327 SNIC_HOST_INFO(snic->shost, "Scanning %s.\n", dev_name(&tgt->dev)); in snic_tgt_create()
329 scsi_queue_work(snic->shost, &tgt->scan_work); in snic_tgt_create()
331 return tgt; in snic_tgt_create()
340 struct snic_tgt *tgt = NULL; in snic_handle_tgt_disc() local
374 tgt = snic_tgt_create(snic, &tgtid[i]); in snic_handle_tgt_disc()
375 if (!tgt) { in snic_handle_tgt_disc()
544 struct snic_tgt *tgt = NULL; in snic_tgt_del_all() local
554 tgt = list_entry(cur, struct snic_tgt, list); in snic_tgt_del_all()
555 tgt->state = SNIC_TGT_STAT_DEL; in snic_tgt_del_all()
556 list_del_init(&tgt->list); in snic_tgt_del_all()
557 SNIC_HOST_INFO(snic->shost, "Tgt %d q'ing for del\n", tgt->id); in snic_tgt_del_all()
558 queue_work(snic_glob->event_q, &tgt->del_work); in snic_tgt_del_all()
559 tgt = NULL; in snic_tgt_del_all()