/linux-4.4.14/drivers/scsi/bfa/ |
H A D | bfa_svc.c | 29 BFA_MODULE(fcport); variable 163 static bfa_boolean_t bfa_fcport_send_enable(struct bfa_fcport_s *fcport); 164 static bfa_boolean_t bfa_fcport_send_disable(struct bfa_fcport_s *fcport); 165 static void bfa_fcport_update_linkinfo(struct bfa_fcport_s *fcport); 166 static void bfa_fcport_reset_linkinfo(struct bfa_fcport_s *fcport); 167 static void bfa_fcport_set_wwns(struct bfa_fcport_s *fcport); 169 static void bfa_fcport_scn(struct bfa_fcport_s *fcport, 181 static void bfa_fcport_sm_uninit(struct bfa_fcport_s *fcport, 183 static void bfa_fcport_sm_enabling_qwait(struct bfa_fcport_s *fcport, 185 static void bfa_fcport_sm_enabling(struct bfa_fcport_s *fcport, 187 static void bfa_fcport_sm_linkdown(struct bfa_fcport_s *fcport, 189 static void bfa_fcport_sm_linkup(struct bfa_fcport_s *fcport, 191 static void bfa_fcport_sm_disabling(struct bfa_fcport_s *fcport, 193 static void bfa_fcport_sm_disabling_qwait(struct bfa_fcport_s *fcport, 195 static void bfa_fcport_sm_toggling_qwait(struct bfa_fcport_s *fcport, 197 static void bfa_fcport_sm_disabled(struct bfa_fcport_s *fcport, 199 static void bfa_fcport_sm_stopped(struct bfa_fcport_s *fcport, 201 static void bfa_fcport_sm_iocdown(struct bfa_fcport_s *fcport, 203 static void bfa_fcport_sm_iocfail(struct bfa_fcport_s *fcport, 205 static void bfa_fcport_sm_dport(struct bfa_fcport_s *fcport, 207 static void bfa_fcport_sm_ddport(struct bfa_fcport_s *fcport, 209 static void bfa_fcport_sm_faa_misconfig(struct bfa_fcport_s *fcport, 2068 bfa_fcport_aen_post(struct bfa_fcport_s *fcport, enum bfa_port_aen_event event) bfa_fcport_aen_post() argument 2070 struct bfad_s *bfad = (struct bfad_s *)fcport->bfa->bfad; bfa_fcport_aen_post() 2077 aen_entry->aen_data.port.ioc_type = bfa_get_type(fcport->bfa); bfa_fcport_aen_post() 2078 aen_entry->aen_data.port.pwwn = fcport->pwwn; bfa_fcport_aen_post() 2081 bfad_im_post_vendor_event(aen_entry, bfad, ++fcport->bfa->bfa_aen_seq, bfa_fcport_aen_post() 2089 bfa_fcport_sm_uninit(struct bfa_fcport_s *fcport, bfa_fcport_sm_uninit() argument 2092 bfa_trc(fcport->bfa, event); bfa_fcport_sm_uninit() 2099 fcport->use_flash_cfg = BFA_TRUE; bfa_fcport_sm_uninit() 2101 if (bfa_fcport_send_enable(fcport)) { bfa_fcport_sm_uninit() 2102 bfa_trc(fcport->bfa, BFA_TRUE); bfa_fcport_sm_uninit() 2103 bfa_sm_set_state(fcport, bfa_fcport_sm_enabling); bfa_fcport_sm_uninit() 2105 bfa_trc(fcport->bfa, BFA_FALSE); bfa_fcport_sm_uninit() 2106 bfa_sm_set_state(fcport, bfa_fcport_sm_uninit() 2124 bfa_sm_set_state(fcport, bfa_fcport_sm_disabled); bfa_fcport_sm_uninit() 2128 bfa_sm_set_state(fcport, bfa_fcport_sm_iocdown); bfa_fcport_sm_uninit() 2132 bfa_sm_fault(fcport->bfa, event); bfa_fcport_sm_uninit() 2137 bfa_fcport_sm_enabling_qwait(struct bfa_fcport_s *fcport, bfa_fcport_sm_enabling_qwait() argument 2141 struct bfad_s *bfad = (struct bfad_s *)fcport->bfa->bfad; bfa_fcport_sm_enabling_qwait() 2142 bfa_trc(fcport->bfa, event); bfa_fcport_sm_enabling_qwait() 2146 bfa_sm_set_state(fcport, bfa_fcport_sm_enabling); bfa_fcport_sm_enabling_qwait() 2147 bfa_fcport_send_enable(fcport); bfa_fcport_sm_enabling_qwait() 2151 bfa_reqq_wcancel(&fcport->reqq_wait); bfa_fcport_sm_enabling_qwait() 2152 bfa_sm_set_state(fcport, bfa_fcport_sm_stopped); bfa_fcport_sm_enabling_qwait() 2166 bfa_sm_set_state(fcport, bfa_fcport_sm_disabled); bfa_fcport_sm_enabling_qwait() 2167 bfa_reqq_wcancel(&fcport->reqq_wait); bfa_fcport_sm_enabling_qwait() 2168 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_fcport_sm_enabling_qwait() 2170 wwn2str(pwwn_buf, fcport->pwwn); bfa_fcport_sm_enabling_qwait() 2173 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_DISABLE); bfa_fcport_sm_enabling_qwait() 2185 bfa_reqq_wcancel(&fcport->reqq_wait); bfa_fcport_sm_enabling_qwait() 2186 bfa_sm_set_state(fcport, bfa_fcport_sm_iocdown); bfa_fcport_sm_enabling_qwait() 2190 bfa_fcport_reset_linkinfo(fcport); bfa_fcport_sm_enabling_qwait() 2191 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_DISCONNECT); bfa_fcport_sm_enabling_qwait() 2192 bfa_sm_set_state(fcport, bfa_fcport_sm_faa_misconfig); bfa_fcport_sm_enabling_qwait() 2196 bfa_sm_fault(fcport->bfa, event); bfa_fcport_sm_enabling_qwait() 2201 bfa_fcport_sm_enabling(struct bfa_fcport_s *fcport, bfa_fcport_sm_enabling() argument 2205 struct bfad_s *bfad = (struct bfad_s *)fcport->bfa->bfad; bfa_fcport_sm_enabling() 2206 bfa_trc(fcport->bfa, event); bfa_fcport_sm_enabling() 2211 bfa_sm_set_state(fcport, bfa_fcport_sm_linkdown); bfa_fcport_sm_enabling() 2215 bfa_fcport_update_linkinfo(fcport); bfa_fcport_sm_enabling() 2216 bfa_sm_set_state(fcport, bfa_fcport_sm_linkup); bfa_fcport_sm_enabling() 2218 WARN_ON(!fcport->event_cbfn); bfa_fcport_sm_enabling() 2219 bfa_fcport_scn(fcport, BFA_PORT_LINKUP, BFA_FALSE); bfa_fcport_sm_enabling() 2229 if (bfa_fcport_send_disable(fcport)) bfa_fcport_sm_enabling() 2230 bfa_sm_set_state(fcport, bfa_fcport_sm_disabling); bfa_fcport_sm_enabling() 2232 bfa_sm_set_state(fcport, bfa_fcport_sm_enabling() 2235 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_fcport_sm_enabling() 2237 wwn2str(pwwn_buf, fcport->pwwn); bfa_fcport_sm_enabling() 2240 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_DISABLE); bfa_fcport_sm_enabling() 2244 bfa_sm_set_state(fcport, bfa_fcport_sm_stopped); bfa_fcport_sm_enabling() 2248 bfa_sm_set_state(fcport, bfa_fcport_sm_iocdown); bfa_fcport_sm_enabling() 2252 bfa_fcport_reset_linkinfo(fcport); bfa_fcport_sm_enabling() 2253 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_DISCONNECT); bfa_fcport_sm_enabling() 2254 bfa_sm_set_state(fcport, bfa_fcport_sm_faa_misconfig); bfa_fcport_sm_enabling() 2258 bfa_sm_fault(fcport->bfa, event); bfa_fcport_sm_enabling() 2263 bfa_fcport_sm_linkdown(struct bfa_fcport_s *fcport, bfa_fcport_sm_linkdown() argument 2266 struct bfi_fcport_event_s *pevent = fcport->event_arg.i2hmsg.event; bfa_fcport_sm_linkdown() 2268 struct bfad_s *bfad = (struct bfad_s *)fcport->bfa->bfad; bfa_fcport_sm_linkdown() 2270 bfa_trc(fcport->bfa, event); bfa_fcport_sm_linkdown() 2274 bfa_fcport_update_linkinfo(fcport); bfa_fcport_sm_linkdown() 2275 bfa_sm_set_state(fcport, bfa_fcport_sm_linkup); bfa_fcport_sm_linkdown() 2276 WARN_ON(!fcport->event_cbfn); bfa_fcport_sm_linkdown() 2277 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_fcport_sm_linkdown() 2279 if (!bfa_ioc_get_fcmode(&fcport->bfa->ioc)) { bfa_fcport_sm_linkdown() 2281 bfa_trc(fcport->bfa, bfa_fcport_sm_linkdown() 2283 bfa_trc(fcport->bfa, bfa_fcport_sm_linkdown() 2287 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_fcport_sm_linkdown() 2291 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_fcport_sm_linkdown() 2296 bfa_fcport_scn(fcport, BFA_PORT_LINKUP, BFA_FALSE); bfa_fcport_sm_linkdown() 2297 wwn2str(pwwn_buf, fcport->pwwn); bfa_fcport_sm_linkdown() 2300 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_ONLINE); bfa_fcport_sm_linkdown() 2303 if (fcport->cfg.qos_enabled && bfa_fcport_sm_linkdown() 2304 fcport->qos_attr.state != BFA_QOS_ONLINE) bfa_fcport_sm_linkdown() 2305 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_QOS_NEG); bfa_fcport_sm_linkdown() 2321 if (bfa_fcport_send_disable(fcport)) bfa_fcport_sm_linkdown() 2322 bfa_sm_set_state(fcport, bfa_fcport_sm_disabling); bfa_fcport_sm_linkdown() 2324 bfa_sm_set_state(fcport, bfa_fcport_sm_linkdown() 2327 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_fcport_sm_linkdown() 2329 wwn2str(pwwn_buf, fcport->pwwn); bfa_fcport_sm_linkdown() 2332 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_DISABLE); bfa_fcport_sm_linkdown() 2336 bfa_sm_set_state(fcport, bfa_fcport_sm_stopped); bfa_fcport_sm_linkdown() 2340 bfa_sm_set_state(fcport, bfa_fcport_sm_iocdown); bfa_fcport_sm_linkdown() 2344 bfa_fcport_reset_linkinfo(fcport); bfa_fcport_sm_linkdown() 2345 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_DISCONNECT); bfa_fcport_sm_linkdown() 2346 bfa_sm_set_state(fcport, bfa_fcport_sm_faa_misconfig); bfa_fcport_sm_linkdown() 2350 bfa_sm_fault(fcport->bfa, event); bfa_fcport_sm_linkdown() 2355 bfa_fcport_sm_linkup(struct bfa_fcport_s *fcport, bfa_fcport_sm_linkup() argument 2359 struct bfad_s *bfad = (struct bfad_s *)fcport->bfa->bfad; bfa_fcport_sm_linkup() 2361 bfa_trc(fcport->bfa, event); bfa_fcport_sm_linkup() 2371 if (bfa_fcport_send_disable(fcport)) bfa_fcport_sm_linkup() 2372 bfa_sm_set_state(fcport, bfa_fcport_sm_disabling); bfa_fcport_sm_linkup() 2374 bfa_sm_set_state(fcport, bfa_fcport_sm_linkup() 2377 bfa_fcport_reset_linkinfo(fcport); bfa_fcport_sm_linkup() 2378 bfa_fcport_scn(fcport, BFA_PORT_LINKDOWN, BFA_FALSE); bfa_fcport_sm_linkup() 2379 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_fcport_sm_linkup() 2381 wwn2str(pwwn_buf, fcport->pwwn); bfa_fcport_sm_linkup() 2384 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_OFFLINE); bfa_fcport_sm_linkup() 2387 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_DISABLE); bfa_fcport_sm_linkup() 2391 bfa_sm_set_state(fcport, bfa_fcport_sm_linkdown); bfa_fcport_sm_linkup() 2392 bfa_fcport_reset_linkinfo(fcport); bfa_fcport_sm_linkup() 2393 bfa_fcport_scn(fcport, BFA_PORT_LINKDOWN, BFA_FALSE); bfa_fcport_sm_linkup() 2394 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_fcport_sm_linkup() 2396 wwn2str(pwwn_buf, fcport->pwwn); bfa_fcport_sm_linkup() 2397 if (BFA_PORT_IS_DISABLED(fcport->bfa)) { bfa_fcport_sm_linkup() 2400 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_OFFLINE); bfa_fcport_sm_linkup() 2405 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_DISCONNECT); bfa_fcport_sm_linkup() 2410 bfa_sm_set_state(fcport, bfa_fcport_sm_stopped); bfa_fcport_sm_linkup() 2411 bfa_fcport_reset_linkinfo(fcport); bfa_fcport_sm_linkup() 2412 wwn2str(pwwn_buf, fcport->pwwn); bfa_fcport_sm_linkup() 2413 if (BFA_PORT_IS_DISABLED(fcport->bfa)) { bfa_fcport_sm_linkup() 2416 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_OFFLINE); bfa_fcport_sm_linkup() 2421 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_DISCONNECT); bfa_fcport_sm_linkup() 2426 bfa_sm_set_state(fcport, bfa_fcport_sm_iocdown); bfa_fcport_sm_linkup() 2427 bfa_fcport_reset_linkinfo(fcport); bfa_fcport_sm_linkup() 2428 bfa_fcport_scn(fcport, BFA_PORT_LINKDOWN, BFA_FALSE); bfa_fcport_sm_linkup() 2429 wwn2str(pwwn_buf, fcport->pwwn); bfa_fcport_sm_linkup() 2430 if (BFA_PORT_IS_DISABLED(fcport->bfa)) { bfa_fcport_sm_linkup() 2433 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_OFFLINE); bfa_fcport_sm_linkup() 2438 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_DISCONNECT); bfa_fcport_sm_linkup() 2443 bfa_fcport_reset_linkinfo(fcport); bfa_fcport_sm_linkup() 2444 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_DISCONNECT); bfa_fcport_sm_linkup() 2445 bfa_sm_set_state(fcport, bfa_fcport_sm_faa_misconfig); bfa_fcport_sm_linkup() 2449 bfa_sm_fault(fcport->bfa, event); bfa_fcport_sm_linkup() 2454 bfa_fcport_sm_disabling_qwait(struct bfa_fcport_s *fcport, bfa_fcport_sm_disabling_qwait() argument 2457 bfa_trc(fcport->bfa, event); bfa_fcport_sm_disabling_qwait() 2461 bfa_sm_set_state(fcport, bfa_fcport_sm_disabling); bfa_fcport_sm_disabling_qwait() 2462 bfa_fcport_send_disable(fcport); bfa_fcport_sm_disabling_qwait() 2466 bfa_sm_set_state(fcport, bfa_fcport_sm_stopped); bfa_fcport_sm_disabling_qwait() 2467 bfa_reqq_wcancel(&fcport->reqq_wait); bfa_fcport_sm_disabling_qwait() 2471 bfa_sm_set_state(fcport, bfa_fcport_sm_toggling_qwait); bfa_fcport_sm_disabling_qwait() 2489 bfa_sm_set_state(fcport, bfa_fcport_sm_iocfail); bfa_fcport_sm_disabling_qwait() 2490 bfa_reqq_wcancel(&fcport->reqq_wait); bfa_fcport_sm_disabling_qwait() 2494 bfa_fcport_reset_linkinfo(fcport); bfa_fcport_sm_disabling_qwait() 2495 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_DISCONNECT); bfa_fcport_sm_disabling_qwait() 2496 bfa_sm_set_state(fcport, bfa_fcport_sm_faa_misconfig); bfa_fcport_sm_disabling_qwait() 2500 bfa_sm_fault(fcport->bfa, event); bfa_fcport_sm_disabling_qwait() 2505 bfa_fcport_sm_toggling_qwait(struct bfa_fcport_s *fcport, bfa_fcport_sm_toggling_qwait() argument 2508 bfa_trc(fcport->bfa, event); bfa_fcport_sm_toggling_qwait() 2512 bfa_sm_set_state(fcport, bfa_fcport_sm_disabling); bfa_fcport_sm_toggling_qwait() 2513 bfa_fcport_send_disable(fcport); bfa_fcport_sm_toggling_qwait() 2514 if (bfa_fcport_send_enable(fcport)) bfa_fcport_sm_toggling_qwait() 2515 bfa_sm_set_state(fcport, bfa_fcport_sm_enabling); bfa_fcport_sm_toggling_qwait() 2517 bfa_sm_set_state(fcport, bfa_fcport_sm_toggling_qwait() 2522 bfa_sm_set_state(fcport, bfa_fcport_sm_stopped); bfa_fcport_sm_toggling_qwait() 2523 bfa_reqq_wcancel(&fcport->reqq_wait); bfa_fcport_sm_toggling_qwait() 2530 bfa_sm_set_state(fcport, bfa_fcport_sm_disabling_qwait); bfa_fcport_sm_toggling_qwait() 2542 bfa_sm_set_state(fcport, bfa_fcport_sm_iocfail); bfa_fcport_sm_toggling_qwait() 2543 bfa_reqq_wcancel(&fcport->reqq_wait); bfa_fcport_sm_toggling_qwait() 2547 bfa_sm_fault(fcport->bfa, event); bfa_fcport_sm_toggling_qwait() 2552 bfa_fcport_sm_disabling(struct bfa_fcport_s *fcport, bfa_fcport_sm_disabling() argument 2556 struct bfad_s *bfad = (struct bfad_s *)fcport->bfa->bfad; bfa_fcport_sm_disabling() 2557 bfa_trc(fcport->bfa, event); bfa_fcport_sm_disabling() 2561 bfa_sm_set_state(fcport, bfa_fcport_sm_disabled); bfa_fcport_sm_disabling() 2571 if (bfa_fcport_send_enable(fcport)) bfa_fcport_sm_disabling() 2572 bfa_sm_set_state(fcport, bfa_fcport_sm_enabling); bfa_fcport_sm_disabling() 2574 bfa_sm_set_state(fcport, bfa_fcport_sm_disabling() 2577 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_fcport_sm_disabling() 2579 wwn2str(pwwn_buf, fcport->pwwn); bfa_fcport_sm_disabling() 2582 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_ENABLE); bfa_fcport_sm_disabling() 2586 bfa_sm_set_state(fcport, bfa_fcport_sm_stopped); bfa_fcport_sm_disabling() 2598 bfa_sm_set_state(fcport, bfa_fcport_sm_iocfail); bfa_fcport_sm_disabling() 2602 bfa_sm_fault(fcport->bfa, event); bfa_fcport_sm_disabling() 2607 bfa_fcport_sm_disabled(struct bfa_fcport_s *fcport, bfa_fcport_sm_disabled() argument 2611 struct bfad_s *bfad = (struct bfad_s *)fcport->bfa->bfad; bfa_fcport_sm_disabled() 2612 bfa_trc(fcport->bfa, event); bfa_fcport_sm_disabled() 2622 bfa_sm_set_state(fcport, bfa_fcport_sm_stopped); bfa_fcport_sm_disabled() 2626 if (bfa_fcport_send_enable(fcport)) bfa_fcport_sm_disabled() 2627 bfa_sm_set_state(fcport, bfa_fcport_sm_enabling); bfa_fcport_sm_disabled() 2629 bfa_sm_set_state(fcport, bfa_fcport_sm_disabled() 2632 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_fcport_sm_disabled() 2634 wwn2str(pwwn_buf, fcport->pwwn); bfa_fcport_sm_disabled() 2637 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_ENABLE); bfa_fcport_sm_disabled() 2647 bfa_sm_set_state(fcport, bfa_fcport_sm_iocfail); bfa_fcport_sm_disabled() 2651 bfa_sm_set_state(fcport, bfa_fcport_sm_dport); bfa_fcport_sm_disabled() 2655 bfa_sm_set_state(fcport, bfa_fcport_sm_ddport); bfa_fcport_sm_disabled() 2659 bfa_sm_fault(fcport->bfa, event); bfa_fcport_sm_disabled() 2664 bfa_fcport_sm_stopped(struct bfa_fcport_s *fcport, bfa_fcport_sm_stopped() argument 2667 bfa_trc(fcport->bfa, event); bfa_fcport_sm_stopped() 2671 if (bfa_fcport_send_enable(fcport)) bfa_fcport_sm_stopped() 2672 bfa_sm_set_state(fcport, bfa_fcport_sm_enabling); bfa_fcport_sm_stopped() 2674 bfa_sm_set_state(fcport, bfa_fcport_sm_stopped() 2690 bfa_fcport_sm_iocdown(struct bfa_fcport_s *fcport, bfa_fcport_sm_iocdown() argument 2693 bfa_trc(fcport->bfa, event); bfa_fcport_sm_iocdown() 2697 if (bfa_fcport_send_enable(fcport)) bfa_fcport_sm_iocdown() 2698 bfa_sm_set_state(fcport, bfa_fcport_sm_enabling); bfa_fcport_sm_iocdown() 2700 bfa_sm_set_state(fcport, bfa_fcport_sm_iocdown() 2716 bfa_fcport_sm_iocfail(struct bfa_fcport_s *fcport, bfa_fcport_sm_iocfail() argument 2719 bfa_trc(fcport->bfa, event); bfa_fcport_sm_iocfail() 2723 bfa_sm_set_state(fcport, bfa_fcport_sm_disabled); bfa_fcport_sm_iocfail() 2727 bfa_sm_set_state(fcport, bfa_fcport_sm_iocdown); bfa_fcport_sm_iocfail() 2739 bfa_fcport_sm_dport(struct bfa_fcport_s *fcport, enum bfa_fcport_sm_event event) bfa_fcport_sm_dport() argument 2741 bfa_trc(fcport->bfa, event); bfa_fcport_sm_dport() 2754 bfa_sm_set_state(fcport, bfa_fcport_sm_stopped); bfa_fcport_sm_dport() 2758 bfa_sm_set_state(fcport, bfa_fcport_sm_iocfail); bfa_fcport_sm_dport() 2762 bfa_sm_set_state(fcport, bfa_fcport_sm_disabled); bfa_fcport_sm_dport() 2766 bfa_sm_fault(fcport->bfa, event); bfa_fcport_sm_dport() 2771 bfa_fcport_sm_ddport(struct bfa_fcport_s *fcport, bfa_fcport_sm_ddport() argument 2774 bfa_trc(fcport->bfa, event); bfa_fcport_sm_ddport() 2779 bfa_sm_set_state(fcport, bfa_fcport_sm_disabled); bfa_fcport_sm_ddport() 2792 bfa_sm_set_state(fcport, bfa_fcport_sm_stopped); bfa_fcport_sm_ddport() 2796 bfa_sm_set_state(fcport, bfa_fcport_sm_iocfail); bfa_fcport_sm_ddport() 2800 bfa_sm_fault(fcport->bfa, event); bfa_fcport_sm_ddport() 2805 bfa_fcport_sm_faa_misconfig(struct bfa_fcport_s *fcport, bfa_fcport_sm_faa_misconfig() argument 2808 bfa_trc(fcport->bfa, event); bfa_fcport_sm_faa_misconfig() 2820 if (bfa_fcport_send_disable(fcport)) bfa_fcport_sm_faa_misconfig() 2821 bfa_sm_set_state(fcport, bfa_fcport_sm_disabling); bfa_fcport_sm_faa_misconfig() 2823 bfa_sm_set_state(fcport, bfa_fcport_sm_disabling_qwait); bfa_fcport_sm_faa_misconfig() 2825 bfa_fcport_reset_linkinfo(fcport); bfa_fcport_sm_faa_misconfig() 2826 bfa_fcport_scn(fcport, BFA_PORT_LINKDOWN, BFA_FALSE); bfa_fcport_sm_faa_misconfig() 2827 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_fcport_sm_faa_misconfig() 2829 bfa_fcport_aen_post(fcport, BFA_PORT_AEN_DISABLE); bfa_fcport_sm_faa_misconfig() 2833 bfa_sm_set_state(fcport, bfa_fcport_sm_stopped); bfa_fcport_sm_faa_misconfig() 2837 bfa_fcport_reset_linkinfo(fcport); bfa_fcport_sm_faa_misconfig() 2838 bfa_fcport_scn(fcport, BFA_PORT_LINKDOWN, BFA_FALSE); bfa_fcport_sm_faa_misconfig() 2839 bfa_sm_set_state(fcport, bfa_fcport_sm_iocdown); bfa_fcport_sm_faa_misconfig() 2843 bfa_sm_fault(fcport->bfa, event); bfa_fcport_sm_faa_misconfig() 2854 bfa_trc(ln->fcport->bfa, event); bfa_fcport_ln_sm_dn() 2863 bfa_sm_fault(ln->fcport->bfa, event); bfa_fcport_ln_sm_dn() 2874 bfa_trc(ln->fcport->bfa, event); bfa_fcport_ln_sm_dn_nf() 2886 bfa_sm_fault(ln->fcport->bfa, event); bfa_fcport_ln_sm_dn_nf() 2897 bfa_trc(ln->fcport->bfa, event); bfa_fcport_ln_sm_dn_up_nf() 2910 bfa_sm_fault(ln->fcport->bfa, event); bfa_fcport_ln_sm_dn_up_nf() 2921 bfa_trc(ln->fcport->bfa, event); bfa_fcport_ln_sm_up() 2930 bfa_sm_fault(ln->fcport->bfa, event); bfa_fcport_ln_sm_up() 2941 bfa_trc(ln->fcport->bfa, event); bfa_fcport_ln_sm_up_nf() 2953 bfa_sm_fault(ln->fcport->bfa, event); bfa_fcport_ln_sm_up_nf() 2964 bfa_trc(ln->fcport->bfa, event); bfa_fcport_ln_sm_up_dn_nf() 2977 bfa_sm_fault(ln->fcport->bfa, event); bfa_fcport_ln_sm_up_dn_nf() 2988 bfa_trc(ln->fcport->bfa, event); bfa_fcport_ln_sm_up_dn_up_nf() 3001 bfa_sm_fault(ln->fcport->bfa, event); bfa_fcport_ln_sm_up_dn_up_nf() 3011 ln->fcport->event_cbfn(ln->fcport->event_cbarg, ln->ln_event); __bfa_cb_fcport_event() 3018 * trunk - false if caller is fcport to ignore fcport event in trunked mode 3021 bfa_fcport_scn(struct bfa_fcport_s *fcport, enum bfa_port_linkstate event, bfa_fcport_scn() argument 3024 if (fcport->cfg.trunked && !trunk) bfa_fcport_scn() 3029 bfa_sm_send_event(&fcport->ln, BFA_FCPORT_LN_SM_LINKUP); bfa_fcport_scn() 3032 bfa_sm_send_event(&fcport->ln, BFA_FCPORT_LN_SM_LINKDOWN); bfa_fcport_scn() 3042 struct bfa_fcport_s *fcport = ln->fcport; bfa_fcport_queue_cb() local 3044 if (fcport->bfa->fcs) { bfa_fcport_queue_cb() 3045 fcport->event_cbfn(fcport->event_cbarg, event); bfa_fcport_queue_cb() 3049 bfa_cb_queue(fcport->bfa, &ln->ln_qe, bfa_fcport_queue_cb() 3069 struct bfa_fcport_s *fcport = cbarg; bfa_fcport_qresume() local 3071 bfa_sm_send_event(fcport, BFA_FCPORT_SM_QRESUME); bfa_fcport_qresume() 3075 bfa_fcport_mem_claim(struct bfa_fcport_s *fcport) bfa_fcport_mem_claim() argument 3077 struct bfa_mem_dma_s *fcport_dma = &fcport->fcport_dma; bfa_fcport_mem_claim() 3079 fcport->stats_kva = bfa_mem_dma_virt(fcport_dma); bfa_fcport_mem_claim() 3080 fcport->stats_pa = bfa_mem_dma_phys(fcport_dma); bfa_fcport_mem_claim() 3081 fcport->stats = (union bfa_fcport_stats_u *) bfa_fcport_mem_claim() 3092 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_attach() local 3093 struct bfa_port_cfg_s *port_cfg = &fcport->cfg; bfa_fcport_attach() 3094 struct bfa_fcport_ln_s *ln = &fcport->ln; bfa_fcport_attach() 3097 fcport->bfa = bfa; bfa_fcport_attach() 3098 ln->fcport = fcport; bfa_fcport_attach() 3100 bfa_fcport_mem_claim(fcport); bfa_fcport_attach() 3102 bfa_sm_set_state(fcport, bfa_fcport_sm_uninit); bfa_fcport_attach() 3109 fcport->stats_reset_time = tv.tv_sec; bfa_fcport_attach() 3110 fcport->stats_dma_ready = BFA_FALSE; bfa_fcport_attach() 3125 fcport->fec_state = BFA_FEC_OFFLINE; bfa_fcport_attach() 3127 INIT_LIST_HEAD(&fcport->stats_pending_q); bfa_fcport_attach() 3128 INIT_LIST_HEAD(&fcport->statsclr_pending_q); bfa_fcport_attach() 3130 bfa_reqq_winit(&fcport->reqq_wait, bfa_fcport_qresume, fcport); bfa_fcport_attach() 3163 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_iocdisable() local 3165 bfa_sm_send_event(fcport, BFA_FCPORT_SM_HWFAIL); bfa_fcport_iocdisable() 3170 * Update loop info in fcport for SCN online 3173 bfa_fcport_update_loop_info(struct bfa_fcport_s *fcport, bfa_fcport_update_loop_info() argument 3176 fcport->myalpa = loop_info->myalpa; bfa_fcport_update_loop_info() 3177 fcport->alpabm_valid = bfa_fcport_update_loop_info() 3179 memcpy(fcport->alpabm.alpa_bm, bfa_fcport_update_loop_info() 3185 bfa_fcport_update_linkinfo(struct bfa_fcport_s *fcport) bfa_fcport_update_linkinfo() argument 3187 struct bfi_fcport_event_s *pevent = fcport->event_arg.i2hmsg.event; bfa_fcport_update_linkinfo() 3188 struct bfa_fcport_trunk_s *trunk = &fcport->trunk; bfa_fcport_update_linkinfo() 3190 fcport->speed = pevent->link_state.speed; bfa_fcport_update_linkinfo() 3191 fcport->topology = pevent->link_state.topology; bfa_fcport_update_linkinfo() 3193 if (fcport->topology == BFA_PORT_TOPOLOGY_LOOP) { bfa_fcport_update_linkinfo() 3194 bfa_fcport_update_loop_info(fcport, bfa_fcport_update_linkinfo() 3200 fcport->qos_attr = pevent->link_state.qos_attr; bfa_fcport_update_linkinfo() 3201 fcport->qos_vc_attr = pevent->link_state.attr.vc_fcf.qos_vc_attr; bfa_fcport_update_linkinfo() 3203 if (fcport->cfg.bb_cr_enabled) bfa_fcport_update_linkinfo() 3204 fcport->bbcr_attr = pevent->link_state.attr.bbcr_attr; bfa_fcport_update_linkinfo() 3206 fcport->fec_state = pevent->link_state.fec_state; bfa_fcport_update_linkinfo() 3211 if (!fcport->cfg.trunked) bfa_fcport_update_linkinfo() 3215 fcport->fcoe_vlan = bfa_fcport_update_linkinfo() 3218 bfa_trc(fcport->bfa, fcport->speed); bfa_fcport_update_linkinfo() 3219 bfa_trc(fcport->bfa, fcport->topology); bfa_fcport_update_linkinfo() 3223 bfa_fcport_reset_linkinfo(struct bfa_fcport_s *fcport) bfa_fcport_reset_linkinfo() argument 3225 fcport->speed = BFA_PORT_SPEED_UNKNOWN; bfa_fcport_reset_linkinfo() 3226 fcport->topology = BFA_PORT_TOPOLOGY_NONE; bfa_fcport_reset_linkinfo() 3227 fcport->fec_state = BFA_FEC_OFFLINE; bfa_fcport_reset_linkinfo() 3234 bfa_fcport_send_enable(struct bfa_fcport_s *fcport) bfa_fcport_send_enable() argument 3242 fcport->msgtag++; bfa_fcport_send_enable() 3247 m = bfa_reqq_next(fcport->bfa, BFA_REQQ_PORT); bfa_fcport_send_enable() 3249 bfa_reqq_wait(fcport->bfa, BFA_REQQ_PORT, bfa_fcport_send_enable() 3250 &fcport->reqq_wait); bfa_fcport_send_enable() 3255 bfa_fn_lpu(fcport->bfa)); bfa_fcport_send_enable() 3256 m->nwwn = fcport->nwwn; bfa_fcport_send_enable() 3257 m->pwwn = fcport->pwwn; bfa_fcport_send_enable() 3258 m->port_cfg = fcport->cfg; bfa_fcport_send_enable() 3259 m->msgtag = fcport->msgtag; bfa_fcport_send_enable() 3260 m->port_cfg.maxfrsize = cpu_to_be16(fcport->cfg.maxfrsize); bfa_fcport_send_enable() 3261 m->use_flash_cfg = fcport->use_flash_cfg; bfa_fcport_send_enable() 3262 bfa_dma_be_addr_set(m->stats_dma_addr, fcport->stats_pa); bfa_fcport_send_enable() 3263 bfa_trc(fcport->bfa, m->stats_dma_addr.a32.addr_lo); bfa_fcport_send_enable() 3264 bfa_trc(fcport->bfa, m->stats_dma_addr.a32.addr_hi); bfa_fcport_send_enable() 3269 bfa_reqq_produce(fcport->bfa, BFA_REQQ_PORT, m->mh); bfa_fcport_send_enable() 3277 bfa_fcport_send_disable(struct bfa_fcport_s *fcport) bfa_fcport_send_disable() argument 3285 fcport->msgtag++; bfa_fcport_send_disable() 3290 m = bfa_reqq_next(fcport->bfa, BFA_REQQ_PORT); bfa_fcport_send_disable() 3292 bfa_reqq_wait(fcport->bfa, BFA_REQQ_PORT, bfa_fcport_send_disable() 3293 &fcport->reqq_wait); bfa_fcport_send_disable() 3298 bfa_fn_lpu(fcport->bfa)); bfa_fcport_send_disable() 3299 m->msgtag = fcport->msgtag; bfa_fcport_send_disable() 3304 bfa_reqq_produce(fcport->bfa, BFA_REQQ_PORT, m->mh); bfa_fcport_send_disable() 3310 bfa_fcport_set_wwns(struct bfa_fcport_s *fcport) bfa_fcport_set_wwns() argument 3312 fcport->pwwn = fcport->bfa->ioc.attr->pwwn; bfa_fcport_set_wwns() 3313 fcport->nwwn = fcport->bfa->ioc.attr->nwwn; bfa_fcport_set_wwns() 3315 bfa_trc(fcport->bfa, fcport->pwwn); bfa_fcport_set_wwns() 3316 bfa_trc(fcport->bfa, fcport->nwwn); bfa_fcport_set_wwns() 3355 struct bfa_fcport_s *fcport = (struct bfa_fcport_s *)cbarg; __bfa_cb_fcport_stats_get() local 3362 if (fcport->stats_status == BFA_STATUS_OK) __bfa_cb_fcport_stats_get() 3365 list_for_each_safe(qe, qen, &fcport->stats_pending_q) { __bfa_cb_fcport_stats_get() 3366 bfa_q_deq(&fcport->stats_pending_q, &qe); __bfa_cb_fcport_stats_get() 3368 if (fcport->stats_status == BFA_STATUS_OK) { __bfa_cb_fcport_stats_get() 3371 if (bfa_ioc_get_fcmode(&fcport->bfa->ioc)) __bfa_cb_fcport_stats_get() 3373 &fcport->stats->fcqos); __bfa_cb_fcport_stats_get() 3376 &fcport->stats->fcoe); __bfa_cb_fcport_stats_get() 3378 tv.tv_sec - fcport->stats_reset_time; __bfa_cb_fcport_stats_get() 3381 bfa_cb_queue_status(fcport->bfa, &cb->hcb_qe, __bfa_cb_fcport_stats_get() 3382 fcport->stats_status); __bfa_cb_fcport_stats_get() 3384 fcport->stats_status = BFA_STATUS_OK; __bfa_cb_fcport_stats_get() 3386 INIT_LIST_HEAD(&fcport->stats_pending_q); __bfa_cb_fcport_stats_get() 3387 fcport->stats_status = BFA_STATUS_OK; __bfa_cb_fcport_stats_get() 3394 struct bfa_fcport_s *fcport = (struct bfa_fcport_s *) cbarg; bfa_fcport_stats_get_timeout() local 3396 bfa_trc(fcport->bfa, fcport->stats_qfull); bfa_fcport_stats_get_timeout() 3398 if (fcport->stats_qfull) { bfa_fcport_stats_get_timeout() 3399 bfa_reqq_wcancel(&fcport->stats_reqq_wait); bfa_fcport_stats_get_timeout() 3400 fcport->stats_qfull = BFA_FALSE; bfa_fcport_stats_get_timeout() 3403 fcport->stats_status = BFA_STATUS_ETIMER; bfa_fcport_stats_get_timeout() 3404 __bfa_cb_fcport_stats_get(fcport, BFA_TRUE); bfa_fcport_stats_get_timeout() 3410 struct bfa_fcport_s *fcport = (struct bfa_fcport_s *) cbarg; bfa_fcport_send_stats_get() local 3413 msg = bfa_reqq_next(fcport->bfa, BFA_REQQ_PORT); bfa_fcport_send_stats_get() 3416 fcport->stats_qfull = BFA_TRUE; bfa_fcport_send_stats_get() 3417 bfa_reqq_winit(&fcport->stats_reqq_wait, bfa_fcport_send_stats_get() 3418 bfa_fcport_send_stats_get, fcport); bfa_fcport_send_stats_get() 3419 bfa_reqq_wait(fcport->bfa, BFA_REQQ_PORT, bfa_fcport_send_stats_get() 3420 &fcport->stats_reqq_wait); bfa_fcport_send_stats_get() 3423 fcport->stats_qfull = BFA_FALSE; bfa_fcport_send_stats_get() 3427 bfa_fn_lpu(fcport->bfa)); bfa_fcport_send_stats_get() 3428 bfa_reqq_produce(fcport->bfa, BFA_REQQ_PORT, msg->mh); bfa_fcport_send_stats_get() 3434 struct bfa_fcport_s *fcport = (struct bfa_fcport_s *) cbarg; __bfa_cb_fcport_stats_clr() local 3445 fcport->stats_reset_time = tv.tv_sec; __bfa_cb_fcport_stats_clr() 3446 list_for_each_safe(qe, qen, &fcport->statsclr_pending_q) { __bfa_cb_fcport_stats_clr() 3447 bfa_q_deq(&fcport->statsclr_pending_q, &qe); __bfa_cb_fcport_stats_clr() 3449 bfa_cb_queue_status(fcport->bfa, &cb->hcb_qe, __bfa_cb_fcport_stats_clr() 3450 fcport->stats_status); __bfa_cb_fcport_stats_clr() 3452 fcport->stats_status = BFA_STATUS_OK; __bfa_cb_fcport_stats_clr() 3454 INIT_LIST_HEAD(&fcport->statsclr_pending_q); __bfa_cb_fcport_stats_clr() 3455 fcport->stats_status = BFA_STATUS_OK; __bfa_cb_fcport_stats_clr() 3462 struct bfa_fcport_s *fcport = (struct bfa_fcport_s *) cbarg; bfa_fcport_stats_clr_timeout() local 3464 bfa_trc(fcport->bfa, fcport->stats_qfull); bfa_fcport_stats_clr_timeout() 3466 if (fcport->stats_qfull) { bfa_fcport_stats_clr_timeout() 3467 bfa_reqq_wcancel(&fcport->stats_reqq_wait); bfa_fcport_stats_clr_timeout() 3468 fcport->stats_qfull = BFA_FALSE; bfa_fcport_stats_clr_timeout() 3471 fcport->stats_status = BFA_STATUS_ETIMER; bfa_fcport_stats_clr_timeout() 3472 __bfa_cb_fcport_stats_clr(fcport, BFA_TRUE); bfa_fcport_stats_clr_timeout() 3478 struct bfa_fcport_s *fcport = (struct bfa_fcport_s *) cbarg; bfa_fcport_send_stats_clear() local 3481 msg = bfa_reqq_next(fcport->bfa, BFA_REQQ_PORT); bfa_fcport_send_stats_clear() 3484 fcport->stats_qfull = BFA_TRUE; bfa_fcport_send_stats_clear() 3485 bfa_reqq_winit(&fcport->stats_reqq_wait, bfa_fcport_send_stats_clear() 3486 bfa_fcport_send_stats_clear, fcport); bfa_fcport_send_stats_clear() 3487 bfa_reqq_wait(fcport->bfa, BFA_REQQ_PORT, bfa_fcport_send_stats_clear() 3488 &fcport->stats_reqq_wait); bfa_fcport_send_stats_clear() 3491 fcport->stats_qfull = BFA_FALSE; bfa_fcport_send_stats_clear() 3495 bfa_fn_lpu(fcport->bfa)); bfa_fcport_send_stats_clear() 3496 bfa_reqq_produce(fcport->bfa, BFA_REQQ_PORT, msg->mh); bfa_fcport_send_stats_clear() 3503 bfa_trunk_scn(struct bfa_fcport_s *fcport, struct bfi_fcport_trunk_scn_s *scn) bfa_trunk_scn() argument 3505 struct bfa_fcport_trunk_s *trunk = &fcport->trunk; bfa_trunk_scn() 3512 bfa_trc(fcport->bfa, fcport->cfg.trunked); bfa_trunk_scn() 3516 bfa_trc(fcport->bfa, trunk->attr.state); bfa_trunk_scn() 3517 bfa_trc(fcport->bfa, scn->trunk_state); bfa_trunk_scn() 3518 bfa_trc(fcport->bfa, scn->trunk_speed); bfa_trunk_scn() 3524 if (fcport->cfg.trunked && (trunk->attr.state != BFA_TRUNK_DISABLED)) bfa_trunk_scn() 3538 fcport->speed = tlink->speed; bfa_trunk_scn() 3539 fcport->topology = BFA_PORT_TOPOLOGY_P2P; bfa_trunk_scn() 3543 bfa_trc(fcport->bfa, lattr->link_state); bfa_trunk_scn() 3544 bfa_trc(fcport->bfa, lattr->trunk_wwn); bfa_trunk_scn() 3545 bfa_trc(fcport->bfa, lattr->fctl); bfa_trunk_scn() 3546 bfa_trc(fcport->bfa, lattr->speed); bfa_trunk_scn() 3547 bfa_trc(fcport->bfa, lattr->deskew); bfa_trunk_scn() 3552 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_trunk_scn() 3556 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_trunk_scn() 3560 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_trunk_scn() 3564 bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL, bfa_trunk_scn() 3573 bfa_fcport_scn(fcport, (scn->trunk_state == BFA_TRUNK_ONLINE) ? bfa_trunk_scn() 3581 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_trunk_iocdisable() local 3587 if (fcport->cfg.trunked) { bfa_trunk_iocdisable() 3588 if (fcport->trunk.attr.state == BFA_TRUNK_ONLINE) bfa_trunk_iocdisable() 3589 bfa_fcport_scn(fcport, BFA_PORT_LINKDOWN, BFA_TRUE); bfa_trunk_iocdisable() 3591 fcport->trunk.attr.state = BFA_TRUNK_OFFLINE; bfa_trunk_iocdisable() 3592 fcport->trunk.attr.speed = BFA_PORT_SPEED_UNKNOWN; bfa_trunk_iocdisable() 3594 fcport->trunk.attr.link_attr[i].trunk_wwn = 0; bfa_trunk_iocdisable() 3595 fcport->trunk.attr.link_attr[i].fctl = bfa_trunk_iocdisable() 3597 fcport->trunk.attr.link_attr[i].link_state = bfa_trunk_iocdisable() 3599 fcport->trunk.attr.link_attr[i].speed = bfa_trunk_iocdisable() 3601 fcport->trunk.attr.link_attr[i].deskew = 0; bfa_trunk_iocdisable() 3612 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_init() local 3617 bfa_fcport_set_wwns(fcport); bfa_fcport_init() 3618 if (fcport->cfg.maxfrsize == 0) bfa_fcport_init() 3619 fcport->cfg.maxfrsize = bfa_ioc_maxfrsize(&bfa->ioc); bfa_fcport_init() 3620 fcport->cfg.rx_bbcredit = bfa_ioc_rx_bbcredit(&bfa->ioc); bfa_fcport_init() 3621 fcport->speed_sup = bfa_ioc_speed_sup(&bfa->ioc); bfa_fcport_init() 3626 WARN_ON(!fcport->cfg.maxfrsize); bfa_fcport_init() 3627 WARN_ON(!fcport->cfg.rx_bbcredit); bfa_fcport_init() 3628 WARN_ON(!fcport->speed_sup); bfa_fcport_init() 3637 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_isr() local 3641 fcport->event_arg.i2hmsg = i2hmsg; bfa_fcport_isr() 3644 bfa_trc(bfa, bfa_sm_to_state(hal_port_sm_table, fcport->sm)); bfa_fcport_isr() 3648 if (fcport->msgtag == i2hmsg.penable_rsp->msgtag) { bfa_fcport_isr() 3650 fcport->stats_dma_ready = BFA_TRUE; bfa_fcport_isr() 3651 if (fcport->use_flash_cfg) { bfa_fcport_isr() 3652 fcport->cfg = i2hmsg.penable_rsp->port_cfg; bfa_fcport_isr() 3653 fcport->cfg.maxfrsize = bfa_fcport_isr() 3654 cpu_to_be16(fcport->cfg.maxfrsize); bfa_fcport_isr() 3655 fcport->cfg.path_tov = bfa_fcport_isr() 3656 cpu_to_be16(fcport->cfg.path_tov); bfa_fcport_isr() 3657 fcport->cfg.q_depth = bfa_fcport_isr() 3658 cpu_to_be16(fcport->cfg.q_depth); bfa_fcport_isr() 3660 if (fcport->cfg.trunked) bfa_fcport_isr() 3661 fcport->trunk.attr.state = bfa_fcport_isr() 3664 fcport->trunk.attr.state = bfa_fcport_isr() 3666 fcport->qos_attr.qos_bw = bfa_fcport_isr() 3668 fcport->use_flash_cfg = BFA_FALSE; bfa_fcport_isr() 3671 if (fcport->cfg.qos_enabled) bfa_fcport_isr() 3672 fcport->qos_attr.state = BFA_QOS_OFFLINE; bfa_fcport_isr() 3674 fcport->qos_attr.state = BFA_QOS_DISABLED; bfa_fcport_isr() 3676 fcport->qos_attr.qos_bw_op = bfa_fcport_isr() 3679 if (fcport->cfg.bb_cr_enabled) bfa_fcport_isr() 3680 fcport->bbcr_attr.state = BFA_BBCR_OFFLINE; bfa_fcport_isr() 3682 fcport->bbcr_attr.state = BFA_BBCR_DISABLED; bfa_fcport_isr() 3684 bfa_sm_send_event(fcport, BFA_FCPORT_SM_FWRSP); bfa_fcport_isr() 3689 if (fcport->msgtag == i2hmsg.penable_rsp->msgtag) bfa_fcport_isr() 3690 bfa_sm_send_event(fcport, BFA_FCPORT_SM_FWRSP); bfa_fcport_isr() 3694 if (fcport->cfg.bb_cr_enabled) bfa_fcport_isr() 3695 fcport->bbcr_attr.state = BFA_BBCR_OFFLINE; bfa_fcport_isr() 3697 fcport->bbcr_attr.state = BFA_BBCR_DISABLED; bfa_fcport_isr() 3700 bfa_sm_send_event(fcport, BFA_FCPORT_SM_LINKUP); bfa_fcport_isr() 3704 bfa_sm_send_event(fcport, bfa_fcport_isr() 3707 bfa_sm_send_event(fcport, bfa_fcport_isr() 3710 fcport->qos_attr.qos_bw_op = bfa_fcport_isr() 3715 bfa_trunk_scn(fcport, i2hmsg.trunk_scn); bfa_fcport_isr() 3722 if (list_empty(&fcport->stats_pending_q) || bfa_fcport_isr() 3723 (fcport->stats_status == BFA_STATUS_ETIMER)) bfa_fcport_isr() 3726 bfa_timer_stop(&fcport->timer); bfa_fcport_isr() 3727 fcport->stats_status = i2hmsg.pstatsget_rsp->status; bfa_fcport_isr() 3728 __bfa_cb_fcport_stats_get(fcport, BFA_TRUE); bfa_fcport_isr() 3735 if (list_empty(&fcport->statsclr_pending_q) || bfa_fcport_isr() 3736 (fcport->stats_status == BFA_STATUS_ETIMER)) bfa_fcport_isr() 3739 bfa_timer_stop(&fcport->timer); bfa_fcport_isr() 3740 fcport->stats_status = BFA_STATUS_OK; bfa_fcport_isr() 3741 __bfa_cb_fcport_stats_clr(fcport, BFA_TRUE); bfa_fcport_isr() 3745 bfa_sm_send_event(fcport, BFA_FCPORT_SM_ENABLE); bfa_fcport_isr() 3749 bfa_sm_send_event(fcport, BFA_FCPORT_SM_DISABLE); bfa_fcport_isr() 3767 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_event_register() local 3769 fcport->event_cbfn = cbfn; bfa_fcport_event_register() 3770 fcport->event_cbarg = cbarg; bfa_fcport_event_register() 3776 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_enable() local 3784 if (fcport->diag_busy) bfa_fcport_enable() 3808 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_is_pbcdisabled() local 3813 bfa_trc(bfa, fcport->pwwn); bfa_fcport_is_pbcdisabled() 3825 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_cfg_speed() local 3829 if (fcport->cfg.trunked == BFA_TRUE) bfa_fcport_cfg_speed() 3831 if ((fcport->cfg.topology == BFA_PORT_TOPOLOGY_LOOP) && bfa_fcport_cfg_speed() 3834 if ((speed != BFA_PORT_SPEED_AUTO) && (speed > fcport->speed_sup)) { bfa_fcport_cfg_speed() 3835 bfa_trc(bfa, fcport->speed_sup); bfa_fcport_cfg_speed() 3840 if (bfa_ioc_get_type(&fcport->bfa->ioc) == BFA_IOC_TYPE_FC) { bfa_fcport_cfg_speed() 3859 fcport->cfg.speed = speed; bfa_fcport_cfg_speed() 3870 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_get_speed() local 3872 return fcport->speed; bfa_fcport_get_speed() 3881 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_cfg_topology() local 3884 bfa_trc(bfa, fcport->cfg.topology); bfa_fcport_cfg_topology() 3892 (fcport->qos_attr.state != BFA_QOS_DISABLED)) bfa_fcport_cfg_topology() 3894 if (fcport->cfg.ratelimit != BFA_FALSE) bfa_fcport_cfg_topology() 3897 (fcport->trunk.attr.state != BFA_TRUNK_DISABLED)) bfa_fcport_cfg_topology() 3900 (fcport->cfg.speed == BFA_PORT_SPEED_16GBPS)) bfa_fcport_cfg_topology() 3917 fcport->cfg.topology = topology; bfa_fcport_cfg_topology() 3927 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_get_topology() local 3929 return fcport->topology; bfa_fcport_get_topology() 3938 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_get_cfg_topology() local 3940 return fcport->cfg.topology; bfa_fcport_get_cfg_topology() 3946 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_cfg_hardalpa() local 3949 bfa_trc(bfa, fcport->cfg.cfg_hardalpa); bfa_fcport_cfg_hardalpa() 3950 bfa_trc(bfa, fcport->cfg.hardalpa); bfa_fcport_cfg_hardalpa() 3952 fcport->cfg.cfg_hardalpa = BFA_TRUE; bfa_fcport_cfg_hardalpa() 3953 fcport->cfg.hardalpa = alpa; bfa_fcport_cfg_hardalpa() 3961 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_clr_hardalpa() local 3963 bfa_trc(bfa, fcport->cfg.cfg_hardalpa); bfa_fcport_clr_hardalpa() 3964 bfa_trc(bfa, fcport->cfg.hardalpa); bfa_fcport_clr_hardalpa() 3966 fcport->cfg.cfg_hardalpa = BFA_FALSE; bfa_fcport_clr_hardalpa() 3973 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_get_hardalpa() local 3975 *alpa = fcport->cfg.hardalpa; bfa_fcport_get_hardalpa() 3976 return fcport->cfg.cfg_hardalpa; bfa_fcport_get_hardalpa() 3982 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_get_myalpa() local 3984 return fcport->myalpa; bfa_fcport_get_myalpa() 3990 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_cfg_maxfrsize() local 3993 bfa_trc(bfa, fcport->cfg.maxfrsize); bfa_fcport_cfg_maxfrsize() 4003 fcport->cfg.maxfrsize = maxfrsize; bfa_fcport_cfg_maxfrsize() 4010 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_get_maxfrsize() local 4012 return fcport->cfg.maxfrsize; bfa_fcport_get_maxfrsize() 4028 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_set_tx_bbcredit() local 4030 fcport->cfg.tx_bbcredit = (u8)tx_bbcredit; bfa_fcport_set_tx_bbcredit() 4040 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_get_wwn() local 4042 return fcport->nwwn; bfa_fcport_get_wwn() 4044 return fcport->pwwn; bfa_fcport_get_wwn() 4050 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_get_attr() local 4054 attr->nwwn = fcport->nwwn; bfa_fcport_get_attr() 4055 attr->pwwn = fcport->pwwn; bfa_fcport_get_attr() 4060 memcpy(&attr->pport_cfg, &fcport->cfg, bfa_fcport_get_attr() 4063 attr->pport_cfg.speed = fcport->cfg.speed; bfa_fcport_get_attr() 4064 attr->speed_supported = fcport->speed_sup; bfa_fcport_get_attr() 4065 attr->speed = fcport->speed; bfa_fcport_get_attr() 4069 attr->pport_cfg.topology = fcport->cfg.topology; bfa_fcport_get_attr() 4070 attr->topology = fcport->topology; bfa_fcport_get_attr() 4071 attr->pport_cfg.trunked = fcport->cfg.trunked; bfa_fcport_get_attr() 4074 attr->beacon = fcport->beacon; bfa_fcport_get_attr() 4075 attr->link_e2e_beacon = fcport->link_e2e_beacon; bfa_fcport_get_attr() 4079 attr->port_state = bfa_sm_to_state(hal_port_sm_table, fcport->sm); bfa_fcport_get_attr() 4081 attr->fec_state = fcport->fec_state; bfa_fcport_get_attr() 4087 if (bfa_ioc_is_disabled(&fcport->bfa->ioc)) bfa_fcport_get_attr() 4089 else if (bfa_ioc_fw_mismatch(&fcport->bfa->ioc)) bfa_fcport_get_attr() 4094 attr->fcoe_vlan = fcport->fcoe_vlan; bfa_fcport_get_attr() 4105 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_get_stats() local 4108 !fcport->stats_dma_ready) bfa_fcport_get_stats() 4111 if (!list_empty(&fcport->statsclr_pending_q)) bfa_fcport_get_stats() 4114 if (list_empty(&fcport->stats_pending_q)) { bfa_fcport_get_stats() 4115 list_add_tail(&cb->hcb_qe.qe, &fcport->stats_pending_q); bfa_fcport_get_stats() 4116 bfa_fcport_send_stats_get(fcport); bfa_fcport_get_stats() 4117 bfa_timer_start(bfa, &fcport->timer, bfa_fcport_get_stats() 4119 fcport, BFA_FCPORT_STATS_TOV); bfa_fcport_get_stats() 4121 list_add_tail(&cb->hcb_qe.qe, &fcport->stats_pending_q); bfa_fcport_get_stats() 4132 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_clear_stats() local 4135 !fcport->stats_dma_ready) bfa_fcport_clear_stats() 4138 if (!list_empty(&fcport->stats_pending_q)) bfa_fcport_clear_stats() 4141 if (list_empty(&fcport->statsclr_pending_q)) { bfa_fcport_clear_stats() 4142 list_add_tail(&cb->hcb_qe.qe, &fcport->statsclr_pending_q); bfa_fcport_clear_stats() 4143 bfa_fcport_send_stats_clear(fcport); bfa_fcport_clear_stats() 4144 bfa_timer_start(bfa, &fcport->timer, bfa_fcport_clear_stats() 4146 fcport, BFA_FCPORT_STATS_TOV); bfa_fcport_clear_stats() 4148 list_add_tail(&cb->hcb_qe.qe, &fcport->statsclr_pending_q); bfa_fcport_clear_stats() 4159 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_is_disabled() local 4161 return bfa_sm_to_state(hal_port_sm_table, fcport->sm) == bfa_fcport_is_disabled() 4169 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_is_dport() local 4171 return (bfa_sm_to_state(hal_port_sm_table, fcport->sm) == bfa_fcport_is_dport() 4178 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_is_ddport() local 4180 return (bfa_sm_to_state(hal_port_sm_table, fcport->sm) == bfa_fcport_is_ddport() 4187 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_set_qos_bw() local 4203 (fcport->cfg.topology != BFA_PORT_TOPOLOGY_LOOP)) bfa_fcport_set_qos_bw() 4204 fcport->cfg.qos_bw = *qos_bw; bfa_fcport_set_qos_bw() 4212 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_is_ratelim() local 4214 return fcport->cfg.ratelimit ? BFA_TRUE : BFA_FALSE; bfa_fcport_is_ratelim() 4224 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_cfg_faa() local 4227 fcport->cfg.faa_state = state; bfa_fcport_cfg_faa() 4236 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_get_ratelim_speed() local 4238 bfa_trc(bfa, fcport->cfg.trl_def_speed); bfa_fcport_get_ratelim_speed() 4239 return fcport->cfg.trl_def_speed; bfa_fcport_get_ratelim_speed() 4248 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_beacon() local 4252 bfa_trc(bfa, fcport->beacon); bfa_fcport_beacon() 4253 bfa_trc(bfa, fcport->link_e2e_beacon); bfa_fcport_beacon() 4255 fcport->beacon = beacon; bfa_fcport_beacon() 4256 fcport->link_e2e_beacon = link_e2e_beacon; bfa_fcport_beacon() 4262 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_is_linkup() local 4264 return (!fcport->cfg.trunked && bfa_fcport_is_linkup() 4265 bfa_sm_cmp_state(fcport, bfa_fcport_sm_linkup)) || bfa_fcport_is_linkup() 4266 (fcport->cfg.trunked && bfa_fcport_is_linkup() 4267 fcport->trunk.attr.state == BFA_TRUNK_ONLINE); bfa_fcport_is_linkup() 4273 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_is_qos_enabled() local 4275 return fcport->cfg.qos_enabled; bfa_fcport_is_qos_enabled() 4281 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_is_trunk_enabled() local 4283 return fcport->cfg.trunked; bfa_fcport_is_trunk_enabled() 4289 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_cfg_bbcr() local 4293 if (bfa_ioc_get_type(&fcport->bfa->ioc) != BFA_IOC_TYPE_FC) bfa_fcport_cfg_bbcr() 4301 if (fcport->cfg.topology == BFA_PORT_TOPOLOGY_LOOP) bfa_fcport_cfg_bbcr() 4304 if (fcport->cfg.qos_enabled) bfa_fcport_cfg_bbcr() 4307 if (fcport->cfg.trunked) bfa_fcport_cfg_bbcr() 4310 if ((fcport->cfg.speed != BFA_PORT_SPEED_AUTO) && bfa_fcport_cfg_bbcr() 4311 (fcport->cfg.speed < bfa_ioc_speed_sup(&bfa->ioc))) bfa_fcport_cfg_bbcr() 4317 if (fcport->cfg.bb_cr_enabled) { bfa_fcport_cfg_bbcr() 4318 if (bb_scn != fcport->cfg.bb_scn) bfa_fcport_cfg_bbcr() 4327 fcport->cfg.bb_cr_enabled = on_off; bfa_fcport_cfg_bbcr() 4328 fcport->cfg.bb_scn = bb_scn; bfa_fcport_cfg_bbcr() 4330 if (!fcport->cfg.bb_cr_enabled) bfa_fcport_cfg_bbcr() 4333 fcport->cfg.bb_cr_enabled = on_off; bfa_fcport_cfg_bbcr() 4334 fcport->cfg.bb_scn = 0; bfa_fcport_cfg_bbcr() 4344 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); bfa_fcport_get_bbcr_attr() local 4346 if (bfa_ioc_get_type(&fcport->bfa->ioc) != BFA_IOC_TYPE_FC) bfa_fcport_get_bbcr_attr() 4349 if (fcport->cfg.topology == BFA_PORT_TOPOLOGY_LOOP) bfa_fcport_get_bbcr_attr() 4352 *bbcr_attr = fcport->bbcr_attr; bfa_fcport_get_bbcr_attr() 5839 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(fcdiag->bfa); bfa_fcdiag_set_busy_status() local 5842 fcport->diag_busy = BFA_TRUE; bfa_fcdiag_set_busy_status() 5844 fcport->diag_busy = BFA_FALSE; bfa_fcdiag_set_busy_status() 6172 /* check to see if fcport is dport */ bfa_fcdiag_loopback()
|
H A D | bfad_bsg.c | 934 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa); bfad_iocmd_ratelim() local 939 if ((fcport->cfg.topology == BFA_PORT_TOPOLOGY_LOOP) && bfad_iocmd_ratelim() 940 (fcport->topology == BFA_PORT_TOPOLOGY_LOOP)) bfad_iocmd_ratelim() 944 fcport->cfg.ratelimit = BFA_TRUE; bfad_iocmd_ratelim() 946 fcport->cfg.ratelimit = BFA_FALSE; bfad_iocmd_ratelim() 948 if (fcport->cfg.trl_def_speed == BFA_PORT_SPEED_UNKNOWN) bfad_iocmd_ratelim() 949 fcport->cfg.trl_def_speed = BFA_PORT_SPEED_1GBPS; bfad_iocmd_ratelim() 963 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa); bfad_iocmd_ratelim_speed() local 970 (iocmd->speed > fcport->speed_sup)) { bfad_iocmd_ratelim_speed() 976 if ((fcport->cfg.topology == BFA_PORT_TOPOLOGY_LOOP) && bfad_iocmd_ratelim_speed() 977 (fcport->topology == BFA_PORT_TOPOLOGY_LOOP)) bfad_iocmd_ratelim_speed() 980 fcport->cfg.trl_def_speed = iocmd->speed; bfad_iocmd_ratelim_speed() 2299 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa); bfad_iocmd_cfg_trunk() local 2300 struct bfa_fcport_trunk_s *trunk = &fcport->trunk; bfad_iocmd_cfg_trunk() 2310 if ((fcport->cfg.topology == BFA_PORT_TOPOLOGY_LOOP) || bfad_iocmd_cfg_trunk() 2311 (fcport->topology == BFA_PORT_TOPOLOGY_LOOP)) bfad_iocmd_cfg_trunk() 2317 fcport->cfg.trunked = BFA_TRUE; bfad_iocmd_cfg_trunk() 2321 fcport->cfg.trunked = BFA_FALSE; bfad_iocmd_cfg_trunk() 2339 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa); bfad_iocmd_trunk_get_attr() local 2340 struct bfa_fcport_trunk_s *trunk = &fcport->trunk; bfad_iocmd_trunk_get_attr() 2344 if ((fcport->cfg.topology == BFA_PORT_TOPOLOGY_LOOP) || bfad_iocmd_trunk_get_attr() 2345 (fcport->topology == BFA_PORT_TOPOLOGY_LOOP)) bfad_iocmd_trunk_get_attr() 2362 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa); bfad_iocmd_qos() local 2367 if ((fcport->cfg.topology == BFA_PORT_TOPOLOGY_LOOP) && bfad_iocmd_qos() 2368 (fcport->topology == BFA_PORT_TOPOLOGY_LOOP)) bfad_iocmd_qos() 2372 fcport->cfg.qos_enabled = BFA_TRUE; bfad_iocmd_qos() 2374 fcport->cfg.qos_enabled = BFA_FALSE; bfad_iocmd_qos() 2375 fcport->cfg.qos_bw.high = BFA_QOS_BW_HIGH; bfad_iocmd_qos() 2376 fcport->cfg.qos_bw.med = BFA_QOS_BW_MED; bfad_iocmd_qos() 2377 fcport->cfg.qos_bw.low = BFA_QOS_BW_LOW; bfad_iocmd_qos() 2390 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa); bfad_iocmd_qos_get_attr() local 2394 if ((fcport->cfg.topology == BFA_PORT_TOPOLOGY_LOOP) && bfad_iocmd_qos_get_attr() 2395 (fcport->topology == BFA_PORT_TOPOLOGY_LOOP)) bfad_iocmd_qos_get_attr() 2398 iocmd->attr.state = fcport->qos_attr.state; bfad_iocmd_qos_get_attr() 2400 be32_to_cpu(fcport->qos_attr.total_bb_cr); bfad_iocmd_qos_get_attr() 2401 iocmd->attr.qos_bw.high = fcport->cfg.qos_bw.high; bfad_iocmd_qos_get_attr() 2402 iocmd->attr.qos_bw.med = fcport->cfg.qos_bw.med; bfad_iocmd_qos_get_attr() 2403 iocmd->attr.qos_bw.low = fcport->cfg.qos_bw.low; bfad_iocmd_qos_get_attr() 2404 iocmd->attr.qos_bw_op = fcport->qos_attr.qos_bw_op; bfad_iocmd_qos_get_attr() 2417 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa); bfad_iocmd_qos_get_vc_attr() local 2418 struct bfa_qos_vc_attr_s *bfa_vc_attr = &fcport->qos_vc_attr; bfad_iocmd_qos_get_vc_attr() 2452 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa); bfad_iocmd_qos_get_stats() local 2460 if ((fcport->cfg.topology == BFA_PORT_TOPOLOGY_LOOP) && bfad_iocmd_qos_get_stats() 2461 (fcport->topology == BFA_PORT_TOPOLOGY_LOOP)) bfad_iocmd_qos_get_stats() 2483 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa); bfad_iocmd_qos_reset_stats() local 2491 if ((fcport->cfg.topology == BFA_PORT_TOPOLOGY_LOOP) && bfad_iocmd_qos_reset_stats() 2492 (fcport->topology == BFA_PORT_TOPOLOGY_LOOP)) bfad_iocmd_qos_reset_stats()
|
H A D | bfa_modules.h | 33 struct bfa_fcport_s fcport; /* fc port module */ member in struct:bfa_modules_s
|
H A D | bfi_ms.h | 312 * fcport H2I message 324 * fcport I2H message
|
H A D | bfa_svc.h | 453 struct bfa_fcport_s *fcport; member in struct:bfa_fcport_ln_s 519 #define BFA_FCPORT_MOD(__bfa) (&(__bfa)->modules.fcport) 529 * bfa fcport API functions
|
H A D | bfad_im.c | 1019 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa); bfad_fc_host_init() local 1042 fc_host_maxframe_size(host) = fcport->cfg.maxfrsize; bfad_fc_host_init()
|
H A D | bfa_fcs_lport.c | 1287 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(port->fcs->bfa); bfa_fcport_get_loop_attr() local 1289 port->port_topo.ploop.alpabm_valid = fcport->alpabm_valid; bfa_fcport_get_loop_attr() 1290 port->pid = fcport->myalpa; bfa_fcport_get_loop_attr() 1295 bfa_trc(port->fcs->bfa, fcport->alpabm.alpa_bm[i]); bfa_fcport_get_loop_attr() 1296 bit = (fcport->alpabm.alpa_bm[i] & (1 << (7 - j))); bfa_fcport_get_loop_attr()
|
H A D | bfa_defs_svc.h | 678 * QoS or FCoE stats (fcport stats excluding physical FC port stats)
|
/linux-4.4.14/drivers/scsi/qla2xxx/ |
H A D | qla_inline.h | 120 qla2x00_clear_loop_id(fc_port_t *fcport) { qla2x00_clear_loop_id() argument 121 struct qla_hw_data *ha = fcport->vha->hw; qla2x00_clear_loop_id() 123 if (fcport->loop_id == FC_NO_LOOP_ID || qla2x00_clear_loop_id() 124 qla2x00_is_reserved_id(fcport->vha, fcport->loop_id)) qla2x00_clear_loop_id() 127 clear_bit(fcport->loop_id, ha->loop_id_map); qla2x00_clear_loop_id() 128 fcport->loop_id = FC_NO_LOOP_ID; qla2x00_clear_loop_id() 159 qla2x00_set_fcport_state(fc_port_t *fcport, int state) qla2x00_set_fcport_state() argument 163 old_state = atomic_read(&fcport->state); qla2x00_set_fcport_state() 164 atomic_set(&fcport->state, state); qla2x00_set_fcport_state() 166 /* Don't print state transitions during initial allocation of fcport */ qla2x00_set_fcport_state() 168 ql_dbg(ql_dbg_disc, fcport->vha, 0x207d, qla2x00_set_fcport_state() 172 fcport->d_id.b.domain, fcport->d_id.b.area, qla2x00_set_fcport_state() 173 fcport->d_id.b.al_pa); qla2x00_set_fcport_state() 219 qla2x00_get_sp(scsi_qla_host_t *vha, fc_port_t *fcport, gfp_t flag) qla2x00_get_sp() argument 234 sp->fcport = fcport; qla2x00_get_sp() 258 if ((IS_QLAFX00(sp->fcport->vha->hw)) && qla2x00_init_timer() 284 qla2x00_set_retry_delay_timestamp(fc_port_t *fcport, uint16_t retry_delay) qla2x00_set_retry_delay_timestamp() argument 287 fcport->retry_delay_timestamp = jiffies + qla2x00_set_retry_delay_timestamp()
|
H A D | qla_init.c | 50 fc_port_t *fcport = sp->fcport; qla2x00_sp_timeout() local 51 struct qla_hw_data *ha = fcport->vha->hw; qla2x00_sp_timeout() 60 sp->free(fcport->vha, sp); qla2x00_sp_timeout() 101 fc_port_t *fcport = sp->fcport; qla2x00_async_iocb_timeout() local 103 ql_dbg(ql_dbg_disc, fcport->vha, 0x2071, qla2x00_async_iocb_timeout() 105 sp->name, sp->handle, fcport->d_id.b.domain, fcport->d_id.b.area, qla2x00_async_iocb_timeout() 106 fcport->d_id.b.al_pa); qla2x00_async_iocb_timeout() 108 fcport->flags &= ~FCF_ASYNC_SENT; qla2x00_async_iocb_timeout() 111 qla2x00_post_async_logout_work(fcport->vha, fcport, NULL); qla2x00_async_iocb_timeout() 116 qla2x00_post_async_login_done_work(fcport->vha, fcport, qla2x00_async_iocb_timeout() 119 qlt_logo_completion_handler(fcport, QLA_FUNCTION_TIMEOUT); qla2x00_async_iocb_timeout() 131 qla2x00_post_async_login_done_work(sp->fcport->vha, sp->fcport, qla2x00_async_login_sp_done() 133 sp->free(sp->fcport->vha, sp); qla2x00_async_login_sp_done() 137 qla2x00_async_login(struct scsi_qla_host *vha, fc_port_t *fcport, qla2x00_async_login() argument 145 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); qla2x00_async_login() 165 "retries=%d.\n", sp->handle, fcport->loop_id, qla2x00_async_login() 166 fcport->d_id.b.domain, fcport->d_id.b.area, fcport->d_id.b.al_pa, qla2x00_async_login() 167 fcport->login_retry); qla2x00_async_login() 171 sp->free(fcport->vha, sp); qla2x00_async_login() 184 qla2x00_post_async_logout_done_work(sp->fcport->vha, sp->fcport, qla2x00_async_logout_sp_done() 186 sp->free(sp->fcport->vha, sp); qla2x00_async_logout_sp_done() 190 qla2x00_async_logout(struct scsi_qla_host *vha, fc_port_t *fcport) qla2x00_async_logout() argument 197 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); qla2x00_async_logout() 214 sp->handle, fcport->loop_id, fcport->d_id.b.domain, qla2x00_async_logout() 215 fcport->d_id.b.area, fcport->d_id.b.al_pa); qla2x00_async_logout() 219 sp->free(fcport->vha, sp); qla2x00_async_logout() 232 qla2x00_post_async_adisc_done_work(sp->fcport->vha, sp->fcport, qla2x00_async_adisc_sp_done() 234 sp->free(sp->fcport->vha, sp); qla2x00_async_adisc_sp_done() 238 qla2x00_async_adisc(struct scsi_qla_host *vha, fc_port_t *fcport, qla2x00_async_adisc() argument 246 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); qla2x00_async_adisc() 265 sp->handle, fcport->loop_id, fcport->d_id.b.domain, qla2x00_async_adisc() 266 fcport->d_id.b.area, fcport->d_id.b.al_pa); qla2x00_async_adisc() 270 sp->free(fcport->vha, sp); qla2x00_async_adisc() 294 qla2x00_async_tm_cmd(fc_port_t *fcport, uint32_t flags, uint32_t lun, qla2x00_async_tm_cmd() argument 297 struct scsi_qla_host *vha = fcport->vha; qla2x00_async_tm_cmd() 302 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); qla2x00_async_tm_cmd() 323 sp->handle, fcport->loop_id, fcport->d_id.b.domain, qla2x00_async_tm_cmd() 324 fcport->d_id.b.area, fcport->d_id.b.al_pa); qla2x00_async_tm_cmd() 342 vha->hw->rsp_q_map[0], sp->fcport->loop_id, lun, qla2x00_async_tm_cmd() 374 scsi_qla_host_t *vha = cmd_sp->fcport->vha; qla24xx_async_abort_cmd() 375 fc_port_t *fcport = cmd_sp->fcport; qla24xx_async_abort_cmd() local 380 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); qla24xx_async_abort_cmd() 399 cmd_sp->handle, fcport->tgt_id); qla24xx_async_abort_cmd() 418 fc_port_t *fcport = sp->fcport; qla24xx_async_abort_command() local 419 struct scsi_qla_host *vha = fcport->vha; qla24xx_async_abort_command() 434 return qlafx00_fx_disc(vha, &vha->hw->mr.fcport, qla24xx_async_abort_command() 441 qla2x00_async_login_done(struct scsi_qla_host *vha, fc_port_t *fcport, qla2x00_async_login_done() argument 453 rval = qla2x00_get_port_database(vha, fcport, 0); qla2x00_async_login_done() 455 fcport->flags &= ~FCF_ASYNC_SENT; qla2x00_async_login_done() 456 fcport->flags |= FCF_LOGIN_NEEDED; qla2x00_async_login_done() 462 qla2x00_post_async_logout_work(vha, fcport, NULL); qla2x00_async_login_done() 463 qla2x00_post_async_login_work(vha, fcport, NULL); qla2x00_async_login_done() 466 if (fcport->flags & FCF_FCP2_DEVICE) { qla2x00_async_login_done() 467 qla2x00_post_async_adisc_work(vha, fcport, data); qla2x00_async_login_done() 470 qla2x00_update_fcport(vha, fcport); qla2x00_async_login_done() 473 fcport->flags &= ~FCF_ASYNC_SENT; qla2x00_async_login_done() 477 qla2x00_mark_device_lost(vha, fcport, 1, 0); qla2x00_async_login_done() 480 fcport->loop_id = data[1]; qla2x00_async_login_done() 481 qla2x00_post_async_logout_work(vha, fcport, NULL); qla2x00_async_login_done() 482 qla2x00_post_async_login_work(vha, fcport, NULL); qla2x00_async_login_done() 485 fcport->loop_id++; qla2x00_async_login_done() 486 rval = qla2x00_find_new_loop_id(vha, fcport); qla2x00_async_login_done() 488 fcport->flags &= ~FCF_ASYNC_SENT; qla2x00_async_login_done() 489 qla2x00_mark_device_lost(vha, fcport, 1, 0); qla2x00_async_login_done() 492 qla2x00_post_async_login_work(vha, fcport, NULL); qla2x00_async_login_done() 499 qla2x00_async_logout_done(struct scsi_qla_host *vha, fc_port_t *fcport, qla2x00_async_logout_done() argument 503 if (!fcport->tgt_session) qla2x00_async_logout_done() 504 qla2x00_mark_device_lost(vha, fcport, 1, 0); qla2x00_async_logout_done() 505 qlt_logo_completion_handler(fcport, data[0]); qla2x00_async_logout_done() 510 qla2x00_async_adisc_done(struct scsi_qla_host *vha, fc_port_t *fcport, qla2x00_async_adisc_done() argument 514 qla2x00_update_fcport(vha, fcport); qla2x00_async_adisc_done() 520 fcport->flags &= ~FCF_ASYNC_SENT; qla2x00_async_adisc_done() 524 qla2x00_mark_device_lost(vha, fcport, 1, 0); qla2x00_async_adisc_done() 2926 fc_port_t *fcport = data; qla2x00_rport_del() local 2930 spin_lock_irqsave(fcport->vha->host->host_lock, flags); qla2x00_rport_del() 2931 rport = fcport->drport ? fcport->drport: fcport->rport; qla2x00_rport_del() 2932 fcport->drport = NULL; qla2x00_rport_del() 2933 spin_unlock_irqrestore(fcport->vha->host->host_lock, flags); qla2x00_rport_del() 2939 * qla2x00_alloc_fcport() - Allocate a generic fcport. 2943 * Returns a pointer to the allocated fcport, or NULL, if none available. 2948 fc_port_t *fcport; qla2x00_alloc_fcport() local 2950 fcport = kzalloc(sizeof(fc_port_t), flags); qla2x00_alloc_fcport() 2951 if (!fcport) qla2x00_alloc_fcport() 2954 /* Setup fcport template structure. */ qla2x00_alloc_fcport() 2955 fcport->vha = vha; qla2x00_alloc_fcport() 2956 fcport->port_type = FCT_UNKNOWN; qla2x00_alloc_fcport() 2957 fcport->loop_id = FC_NO_LOOP_ID; qla2x00_alloc_fcport() 2958 qla2x00_set_fcport_state(fcport, FCS_UNCONFIGURED); qla2x00_alloc_fcport() 2959 fcport->supported_classes = FC_COS_UNSPECIFIED; qla2x00_alloc_fcport() 2961 return fcport; qla2x00_alloc_fcport() 3097 fc_port_t *fcport, *new_fcport; qla2x00_configure_local_loop() local 3123 /* Allocate temporary fcport for any new fcports discovered. */ qla2x00_configure_local_loop() 3127 "Memory allocation failed for fcport.\n"); qla2x00_configure_local_loop() 3136 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_configure_local_loop() 3137 if (atomic_read(&fcport->state) == FCS_ONLINE && qla2x00_configure_local_loop() 3138 fcport->port_type != FCT_BROADCAST && qla2x00_configure_local_loop() 3139 (fcport->flags & FCF_FABRIC_DEVICE) == 0) { qla2x00_configure_local_loop() 3143 fcport->loop_id); qla2x00_configure_local_loop() 3145 qla2x00_set_fcport_state(fcport, FCS_DEVICE_LOST); qla2x00_configure_local_loop() 3186 "Failed to retrieve fcport information " qla2x00_configure_local_loop() 3197 fcport = NULL; qla2x00_configure_local_loop() 3198 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_configure_local_loop() 3199 if (memcmp(new_fcport->port_name, fcport->port_name, qla2x00_configure_local_loop() 3203 fcport->flags &= ~FCF_FABRIC_DEVICE; qla2x00_configure_local_loop() 3204 fcport->loop_id = new_fcport->loop_id; qla2x00_configure_local_loop() 3205 fcport->port_type = new_fcport->port_type; qla2x00_configure_local_loop() 3206 fcport->d_id.b24 = new_fcport->d_id.b24; qla2x00_configure_local_loop() 3207 memcpy(fcport->node_name, new_fcport->node_name, qla2x00_configure_local_loop() 3218 /* Allocate a new replacement fcport. */ qla2x00_configure_local_loop() 3219 fcport = new_fcport; qla2x00_configure_local_loop() 3223 "Failed to allocate memory for fcport.\n"); qla2x00_configure_local_loop() 3231 fcport->fp_speed = ha->link_data_rate; qla2x00_configure_local_loop() 3233 qla2x00_update_fcport(vha, fcport); qla2x00_configure_local_loop() 3250 qla2x00_iidma_fcport(scsi_qla_host_t *vha, fc_port_t *fcport) qla2x00_iidma_fcport() argument 3259 if (atomic_read(&fcport->state) != FCS_ONLINE) qla2x00_iidma_fcport() 3262 if (fcport->fp_speed == PORT_SPEED_UNKNOWN || qla2x00_iidma_fcport() 3263 fcport->fp_speed > ha->link_data_rate) qla2x00_iidma_fcport() 3266 rval = qla2x00_set_idma_speed(vha, fcport->loop_id, fcport->fp_speed, qla2x00_iidma_fcport() 3271 fcport->port_name, rval, fcport->fp_speed, mb[0], mb[1]); qla2x00_iidma_fcport() 3275 qla2x00_get_link_speed_str(ha, fcport->fp_speed), qla2x00_iidma_fcport() 3276 fcport->port_name); qla2x00_iidma_fcport() 3281 qla2x00_reg_remote_port(scsi_qla_host_t *vha, fc_port_t *fcport) qla2x00_reg_remote_port() argument 3287 rport_ids.node_name = wwn_to_u64(fcport->node_name); qla2x00_reg_remote_port() 3288 rport_ids.port_name = wwn_to_u64(fcport->port_name); qla2x00_reg_remote_port() 3289 rport_ids.port_id = fcport->d_id.b.domain << 16 | qla2x00_reg_remote_port() 3290 fcport->d_id.b.area << 8 | fcport->d_id.b.al_pa; qla2x00_reg_remote_port() 3292 fcport->rport = rport = fc_remote_port_add(vha->host, 0, &rport_ids); qla2x00_reg_remote_port() 3303 qlt_fc_port_added(vha, fcport); qla2x00_reg_remote_port() 3305 spin_lock_irqsave(fcport->vha->host->host_lock, flags); qla2x00_reg_remote_port() 3306 *((fc_port_t **)rport->dd_data) = fcport; qla2x00_reg_remote_port() 3307 spin_unlock_irqrestore(fcport->vha->host->host_lock, flags); qla2x00_reg_remote_port() 3309 rport->supported_classes = fcport->supported_classes; qla2x00_reg_remote_port() 3312 if (fcport->port_type == FCT_INITIATOR) qla2x00_reg_remote_port() 3314 if (fcport->port_type == FCT_TARGET) qla2x00_reg_remote_port() 3325 * fcport = port structure pointer. 3335 qla2x00_update_fcport(scsi_qla_host_t *vha, fc_port_t *fcport) qla2x00_update_fcport() argument 3337 fcport->vha = vha; qla2x00_update_fcport() 3340 qla2x00_set_fcport_state(fcport, FCS_ONLINE); qla2x00_update_fcport() 3343 fcport->login_retry = 0; qla2x00_update_fcport() 3344 fcport->flags &= ~(FCF_LOGIN_NEEDED | FCF_ASYNC_SENT); qla2x00_update_fcport() 3346 qla2x00_set_fcport_state(fcport, FCS_ONLINE); qla2x00_update_fcport() 3347 qla2x00_iidma_fcport(vha, fcport); qla2x00_update_fcport() 3348 qla24xx_update_fcport_fcp_prio(vha, fcport); qla2x00_update_fcport() 3352 qla2x00_reg_remote_port(vha, fcport); qla2x00_update_fcport() 3357 qlt_fc_port_added(vha, fcport); qla2x00_update_fcport() 3376 fc_port_t *fcport, *fcptemp; qla2x00_configure_fabric() local 3450 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_configure_fabric() 3451 fcport->scan_state = QLA_FCPORT_SCAN; qla2x00_configure_fabric() 3470 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_configure_fabric() 3474 if ((fcport->flags & FCF_FABRIC_DEVICE) == 0) qla2x00_configure_fabric() 3477 if (fcport->scan_state == QLA_FCPORT_SCAN) { qla2x00_configure_fabric() 3479 atomic_read(&fcport->state) == FCS_ONLINE) { qla2x00_configure_fabric() 3480 qla2x00_mark_device_lost(vha, fcport, qla2x00_configure_fabric() 3482 if (fcport->loop_id != FC_NO_LOOP_ID && qla2x00_configure_fabric() 3483 (fcport->flags & FCF_FCP2_DEVICE) == 0 && qla2x00_configure_fabric() 3484 fcport->port_type != FCT_INITIATOR && qla2x00_configure_fabric() 3485 fcport->port_type != FCT_BROADCAST) { qla2x00_configure_fabric() 3487 fcport->loop_id, qla2x00_configure_fabric() 3488 fcport->d_id.b.domain, qla2x00_configure_fabric() 3489 fcport->d_id.b.area, qla2x00_configure_fabric() 3490 fcport->d_id.b.al_pa); qla2x00_configure_fabric() 3491 qla2x00_clear_loop_id(fcport); qla2x00_configure_fabric() 3509 fcport->port_name, qla2x00_configure_fabric() 3510 atomic_read(&fcport->state), qla2x00_configure_fabric() 3511 fcport->flags, fcport->fc4_type, qla2x00_configure_fabric() 3512 fcport->scan_state); qla2x00_configure_fabric() 3513 qlt_fc_port_deleted(vha, fcport, qla2x00_configure_fabric() 3526 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_configure_fabric() 3531 if ((fcport->flags & FCF_FABRIC_DEVICE) == 0 || qla2x00_configure_fabric() 3532 (fcport->flags & FCF_LOGIN_NEEDED) == 0) qla2x00_configure_fabric() 3545 if (fcport->scan_state == QLA_FCPORT_FOUND) { qla2x00_configure_fabric() 3549 "login)\n", fcport->port_name, qla2x00_configure_fabric() 3550 atomic_read(&fcport->state), qla2x00_configure_fabric() 3551 fcport->flags, fcport->fc4_type, qla2x00_configure_fabric() 3552 fcport->scan_state); qla2x00_configure_fabric() 3557 if (fcport->loop_id == FC_NO_LOOP_ID) { qla2x00_configure_fabric() 3558 fcport->loop_id = next_loopid; qla2x00_configure_fabric() 3560 base_vha, fcport); qla2x00_configure_fabric() 3567 qla2x00_fabric_dev_login(vha, fcport, &next_loopid); qla2x00_configure_fabric() 3578 list_for_each_entry_safe(fcport, fcptemp, &new_fcports, list) { qla2x00_configure_fabric() 3594 fcport->loop_id = next_loopid; qla2x00_configure_fabric() 3596 fcport); qla2x00_configure_fabric() 3603 qla2x00_fabric_dev_login(vha, fcport, qla2x00_configure_fabric() 3610 fcport->port_name, qla2x00_configure_fabric() 3611 atomic_read(&fcport->state), qla2x00_configure_fabric() 3612 fcport->flags, fcport->fc4_type, qla2x00_configure_fabric() 3613 fcport->scan_state); qla2x00_configure_fabric() 3616 list_move_tail(&fcport->list, &vha->vp_fcports); qla2x00_configure_fabric() 3621 list_for_each_entry_safe(fcport, fcptemp, &new_fcports, list) { qla2x00_configure_fabric() 3622 list_del(&fcport->list); qla2x00_configure_fabric() 3623 kfree(fcport); qla2x00_configure_fabric() 3653 fc_port_t *fcport, *new_fcport, *fcptemp; qla2x00_find_all_fabric_devs() local 3693 /* Allocate temporary fcport for any new fcports discovered. */ qla2x00_find_all_fabric_devs() 3697 "Failed to allocate memory for fcport.\n"); qla2x00_find_all_fabric_devs() 3746 list_for_each_entry_safe(fcport, fcptemp, list_for_each_entry_safe() 3748 list_del(&fcport->list); list_for_each_entry_safe() 3749 kfree(fcport); list_for_each_entry_safe() 3795 list_for_each_entry(fcport, &vha->vp_fcports, list) { 3796 if (memcmp(new_fcport->port_name, fcport->port_name, 3800 fcport->scan_state = QLA_FCPORT_FOUND; 3805 memcpy(fcport->fabric_port_name, 3807 fcport->fp_speed = new_fcport->fp_speed; 3813 if (fcport->d_id.b24 == new_fcport->d_id.b24 && 3814 (atomic_read(&fcport->state) == FCS_ONLINE || 3822 if ((fcport->flags & FCF_FABRIC_DEVICE) == 0) { 3823 fcport->d_id.b24 = new_fcport->d_id.b24; 3824 qla2x00_clear_loop_id(fcport); 3825 fcport->flags |= (FCF_FABRIC_DEVICE | 3839 fcport->port_name, 3840 fcport->d_id.b.domain, 3841 fcport->d_id.b.area, 3842 fcport->d_id.b.al_pa, 3843 fcport->loop_id, 3847 fcport->d_id.b24 = new_fcport->d_id.b24; 3851 fcport->d_id.b24 = new_fcport->d_id.b24; 3852 fcport->flags |= FCF_LOGIN_NEEDED; 3853 if (fcport->loop_id != FC_NO_LOOP_ID && 3854 (fcport->flags & FCF_FCP2_DEVICE) == 0 && 3855 (fcport->flags & FCF_ASYNC_SENT) == 0 && 3856 fcport->port_type != FCT_INITIATOR && 3857 fcport->port_type != FCT_BROADCAST) { 3858 ha->isp_ops->fabric_logout(vha, fcport->loop_id, 3859 fcport->d_id.b.domain, fcport->d_id.b.area, 3860 fcport->d_id.b.al_pa); 3861 qla2x00_clear_loop_id(fcport); 3873 /* Allocate a new replacement fcport. */ 3878 "Memory allocation failed for fcport.\n"); 3944 * fcport: port structure list pointer. 3955 qla2x00_fabric_dev_login(scsi_qla_host_t *vha, fc_port_t *fcport, qla2x00_fabric_dev_login() argument 3965 if (fcport->flags & FCF_ASYNC_SENT) qla2x00_fabric_dev_login() 3967 fcport->flags |= FCF_ASYNC_SENT; qla2x00_fabric_dev_login() 3968 rval = qla2x00_post_async_login_work(vha, fcport, NULL); qla2x00_fabric_dev_login() 3973 fcport->flags &= ~FCF_ASYNC_SENT; qla2x00_fabric_dev_login() 3974 rval = qla2x00_fabric_login(vha, fcport, next_loopid); qla2x00_fabric_dev_login() 3978 if (fcport->flags & FCF_FCP2_DEVICE) qla2x00_fabric_dev_login() 3980 rval = qla2x00_get_port_database(vha, fcport, opts); qla2x00_fabric_dev_login() 3982 ha->isp_ops->fabric_logout(vha, fcport->loop_id, qla2x00_fabric_dev_login() 3983 fcport->d_id.b.domain, fcport->d_id.b.area, qla2x00_fabric_dev_login() 3984 fcport->d_id.b.al_pa); qla2x00_fabric_dev_login() 3985 qla2x00_mark_device_lost(vha, fcport, 1, 0); qla2x00_fabric_dev_login() 3987 qla2x00_update_fcport(vha, fcport); qla2x00_fabric_dev_login() 3991 qla2x00_mark_device_lost(vha, fcport, 1, 0); qla2x00_fabric_dev_login() 4012 qla2x00_fabric_login(scsi_qla_host_t *vha, fc_port_t *fcport, qla2x00_fabric_login() argument 4028 fcport->loop_id, fcport->d_id.b.domain, qla2x00_fabric_login() 4029 fcport->d_id.b.area, fcport->d_id.b.al_pa); qla2x00_fabric_login() 4031 /* Login fcport on switch. */ qla2x00_fabric_login() 4032 rval = ha->isp_ops->fabric_login(vha, fcport->loop_id, qla2x00_fabric_login() 4033 fcport->d_id.b.domain, fcport->d_id.b.area, qla2x00_fabric_login() 4034 fcport->d_id.b.al_pa, mb, BIT_0); qla2x00_fabric_login() 4047 tmp_loopid = fcport->loop_id; qla2x00_fabric_login() 4048 fcport->loop_id = mb[1]; qla2x00_fabric_login() 4053 fcport->loop_id, fcport->d_id.b.domain, qla2x00_fabric_login() 4054 fcport->d_id.b.area, fcport->d_id.b.al_pa); qla2x00_fabric_login() 4068 *next_loopid = (fcport->loop_id + 1); qla2x00_fabric_login() 4072 fcport->port_type = FCT_INITIATOR; qla2x00_fabric_login() 4074 fcport->port_type = FCT_TARGET; qla2x00_fabric_login() 4076 fcport->flags |= FCF_FCP2_DEVICE; qla2x00_fabric_login() 4081 fcport->supported_classes |= FC_COS_CLASS2; qla2x00_fabric_login() 4083 fcport->supported_classes |= FC_COS_CLASS3; qla2x00_fabric_login() 4087 fcport->flags |= qla2x00_fabric_login() 4097 fcport->loop_id++; qla2x00_fabric_login() 4098 rval = qla2x00_find_new_loop_id(vha, fcport); qla2x00_fabric_login() 4109 *next_loopid = fcport->loop_id; qla2x00_fabric_login() 4110 ha->isp_ops->fabric_logout(vha, fcport->loop_id, qla2x00_fabric_login() 4111 fcport->d_id.b.domain, fcport->d_id.b.area, qla2x00_fabric_login() 4112 fcport->d_id.b.al_pa); qla2x00_fabric_login() 4113 qla2x00_mark_device_lost(vha, fcport, 1, 0); qla2x00_fabric_login() 4123 "jiffies=%lx.\n", mb[0], fcport->d_id.b.domain, qla2x00_fabric_login() 4124 fcport->d_id.b.area, fcport->d_id.b.al_pa, qla2x00_fabric_login() 4125 fcport->loop_id, jiffies); qla2x00_fabric_login() 4127 *next_loopid = fcport->loop_id; qla2x00_fabric_login() 4128 ha->isp_ops->fabric_logout(vha, fcport->loop_id, qla2x00_fabric_login() 4129 fcport->d_id.b.domain, fcport->d_id.b.area, qla2x00_fabric_login() 4130 fcport->d_id.b.al_pa); qla2x00_fabric_login() 4131 qla2x00_clear_loop_id(fcport); qla2x00_fabric_login() 4132 fcport->login_retry = 0; qla2x00_fabric_login() 4156 qla2x00_local_device_login(scsi_qla_host_t *vha, fc_port_t *fcport) qla2x00_local_device_login() argument 4162 rval = qla2x00_login_local_device(vha, fcport, mb, BIT_0); qla2x00_local_device_login() 4275 fc_port_t *fcport; qla2x00_update_fcports() local 4284 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_update_fcports() 4285 if (fcport->drport && qla2x00_update_fcports() 4286 atomic_read(&fcport->state) != FCS_UNCONFIGURED) { qla2x00_update_fcports() 4288 qla2x00_rport_del(fcport); qla2x00_update_fcports() 4294 qlt_fc_port_deleted(vha, fcport, qla2x00_update_fcports() 4658 fc_port_t *fcport; qla2x00_abort_isp_cleanup() local 4702 list_for_each_entry(fcport, &vha->vp_fcports, list) qla2x00_abort_isp_cleanup() 4703 fcport->flags &= ~(FCF_LOGIN_NEEDED | FCF_ASYNC_SENT); qla2x00_abort_isp_cleanup() 4709 list_for_each_entry(fcport, &vp->vp_fcports, list) qla2x00_abort_isp_cleanup() 4710 fcport->flags &= ~(FCF_LOGIN_NEEDED | FCF_ASYNC_SENT); qla2x00_abort_isp_cleanup() 6414 * fcport = port structure pointer. 6424 qla24xx_get_fcp_prio(scsi_qla_host_t *vha, fc_port_t *fcport) qla24xx_get_fcp_prio() argument 6462 pid2 = fcport->d_id.b24 & INVALID_PORT_ID; qla24xx_get_fcp_prio() 6481 wwn1 = wwn_to_u64(fcport->port_name); qla24xx_get_fcp_prio() 6517 qla24xx_update_fcport_fcp_prio(scsi_qla_host_t *vha, fc_port_t *fcport) qla24xx_update_fcport_fcp_prio() argument 6523 if (fcport->port_type != FCT_TARGET || qla24xx_update_fcport_fcp_prio() 6524 fcport->loop_id == FC_NO_LOOP_ID) qla24xx_update_fcport_fcp_prio() 6527 priority = qla24xx_get_fcp_prio(vha, fcport); qla24xx_update_fcport_fcp_prio() 6532 fcport->fcp_prio = priority & 0xf; qla24xx_update_fcport_fcp_prio() 6536 ret = qla24xx_set_fcp_prio(vha, fcport->loop_id, priority, mb); qla24xx_update_fcport_fcp_prio() 6538 if (fcport->fcp_prio != priority) qla24xx_update_fcport_fcp_prio() 6542 fcport->loop_id, fcport->d_id.b.domain, qla24xx_update_fcport_fcp_prio() 6543 fcport->d_id.b.area, fcport->d_id.b.al_pa); qla24xx_update_fcport_fcp_prio() 6544 fcport->fcp_prio = priority & 0xf; qla24xx_update_fcport_fcp_prio() 6548 "loop_id=%d port_id=%02x%02x%02x.\n", ret, fcport->loop_id, qla24xx_update_fcport_fcp_prio() 6549 fcport->d_id.b.domain, fcport->d_id.b.area, qla24xx_update_fcport_fcp_prio() 6550 fcport->d_id.b.al_pa); qla24xx_update_fcport_fcp_prio() 6571 fc_port_t *fcport; qla24xx_update_all_fcp_prio() local 6575 list_for_each_entry(fcport, &vha->vp_fcports, list) qla24xx_update_all_fcp_prio() 6576 ret = qla24xx_update_fcport_fcp_prio(vha, fcport); qla24xx_update_all_fcp_prio()
|
H A D | qla_mr.c | 729 qlafx00_abort_target(fc_port_t *fcport, uint64_t l, int tag) qlafx00_abort_target() argument 731 return qla2x00_async_tm_cmd(fcport, TCF_TARGET_RESET, l, tag); qlafx00_abort_target() 735 qlafx00_lun_reset(fc_port_t *fcport, uint64_t l, int tag) qlafx00_lun_reset() argument 737 return qla2x00_async_tm_cmd(fcport, TCF_LUN_RESET, l, tag); qlafx00_lun_reset() 744 struct fc_port *fcport; qlafx00_loop_reset() local 748 list_for_each_entry(fcport, &vha->vp_fcports, list) { qlafx00_loop_reset() 749 if (fcport->port_type != FCT_TARGET) qlafx00_loop_reset() 752 ret = ha->isp_ops->target_reset(fcport, 0, 0); qlafx00_loop_reset() 756 "d_id=%x.\n", ret, fcport->d_id.b24); qlafx00_loop_reset() 1121 fc_port_t *fcport, *new_fcport; qlafx00_find_all_targets() local 1163 list_for_each_entry(fcport, &vha->vp_fcports, list) { qlafx00_find_all_targets() 1165 fcport->port_name, WWN_SIZE)) qlafx00_find_all_targets() 1174 if (fcport->tgt_id == new_fcport->tgt_id && qlafx00_find_all_targets() 1175 atomic_read(&fcport->state) == FCS_ONLINE) qlafx00_find_all_targets() 1185 __func__, fcport->tgt_id, qlafx00_find_all_targets() 1186 atomic_read(&fcport->state), qlafx00_find_all_targets() 1187 (unsigned long long)wwn_to_u64(fcport->node_name), qlafx00_find_all_targets() 1188 (unsigned long long)wwn_to_u64(fcport->port_name)); qlafx00_find_all_targets() 1199 if (atomic_read(&fcport->state) != FCS_ONLINE) { qlafx00_find_all_targets() 1200 fcport->old_tgt_id = fcport->tgt_id; qlafx00_find_all_targets() 1201 fcport->tgt_id = new_fcport->tgt_id; qlafx00_find_all_targets() 1203 "TGT-ID: New fcport Added: %p\n", fcport); qlafx00_find_all_targets() 1204 qla2x00_update_fcport(vha, fcport); qlafx00_find_all_targets() 1209 fcport->old_tgt_id); qlafx00_find_all_targets() 1210 qla2x00_mark_device_lost(vha, fcport, 0, 0); qlafx00_find_all_targets() 1224 /* Allocate a new replacement fcport. */ qlafx00_find_all_targets() 1249 fc_port_t *fcport, *rmptemp; qlafx00_configure_all_targets() local 1252 rval = qlafx00_fx_disc(vha, &vha->hw->mr.fcport, qlafx00_configure_all_targets() 1268 list_for_each_entry(fcport, &vha->vp_fcports, list) { qlafx00_configure_all_targets() 1272 if (atomic_read(&fcport->state) == FCS_DEVICE_LOST) { qlafx00_configure_all_targets() 1273 if (fcport->port_type != FCT_INITIATOR) qlafx00_configure_all_targets() 1274 qla2x00_mark_device_lost(vha, fcport, 0, 0); qlafx00_configure_all_targets() 1281 list_for_each_entry_safe(fcport, rmptemp, &new_fcports, list) { qlafx00_configure_all_targets() 1285 qla2x00_update_fcport(vha, fcport); qlafx00_configure_all_targets() 1286 list_move_tail(&fcport->list, &vha->vp_fcports); qlafx00_configure_all_targets() 1290 fcport->tgt_id, qlafx00_configure_all_targets() 1291 (unsigned long long)wwn_to_u64(fcport->node_name), qlafx00_configure_all_targets() 1292 (unsigned long long)wwn_to_u64(fcport->port_name)); qlafx00_configure_all_targets() 1296 list_for_each_entry_safe(fcport, rmptemp, &new_fcports, list) { qlafx00_configure_all_targets() 1297 list_del(&fcport->list); qlafx00_configure_all_targets() 1298 kfree(fcport); qlafx00_configure_all_targets() 1354 fc_port_t *fcport; qlafx00_abort_isp_cleanup() local 1379 list_for_each_entry(fcport, &vha->vp_fcports, list) { qlafx00_abort_isp_cleanup() 1380 fcport->flags = 0; qlafx00_abort_isp_cleanup() 1381 if (atomic_read(&fcport->state) == FCS_ONLINE) qlafx00_abort_isp_cleanup() 1382 qla2x00_set_fcport_state(fcport, FCS_DEVICE_LOST); qlafx00_abort_isp_cleanup() 1470 &vha->hw->mr.fcport, FXDISC_REG_HOST_INFO)) qlafx00_rescan_isp() 1678 fc_port_t *fcport; qlafx00_get_fcport() local 1681 list_for_each_entry(fcport, &vha->vp_fcports, list) { qlafx00_get_fcport() 1682 if (fcport->tgt_id == tgt_id) { qlafx00_get_fcport() 1684 "Matching fcport(%p) found with TGT-ID: 0x%x " qlafx00_get_fcport() 1686 fcport, fcport->tgt_id, tgt_id); qlafx00_get_fcport() 1687 return fcport; qlafx00_get_fcport() 1696 fc_port_t *fcport; qlafx00_tgt_detach() local 1701 fcport = qlafx00_get_fcport(vha, tgt_id); qlafx00_tgt_detach() 1702 if (!fcport) qlafx00_tgt_detach() 1705 qla2x00_mark_device_lost(vha, fcport, 0, 0); qlafx00_tgt_detach() 1806 qlafx00_fx_disc(scsi_qla_host_t *vha, fc_port_t *fcport, uint16_t fx_type) qlafx00_fx_disc() argument 1817 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); qlafx00_fx_disc() 1832 fdisc->u.fxiocb.req_data = cpu_to_le32(fcport->port_id); qlafx00_fx_disc() 1838 fdisc->u.fxiocb.req_data = cpu_to_le32(fcport->tgt_id); qlafx00_fx_disc() 1973 memcpy(fcport->node_name, pinfo->tgt_node_wwnn, WWN_SIZE); qlafx00_fx_disc() 1974 memcpy(fcport->port_name, pinfo->tgt_node_wwpn, WWN_SIZE); qlafx00_fx_disc() 1975 fcport->port_type = FCT_TARGET; qlafx00_fx_disc() 2130 struct scsi_qla_host *vha = sp->fcport->vha; qlafx00_handle_sense() 2165 sp->fcport->vha->host_no, cp->device->id, cp->device->lun, qlafx00_handle_sense() 2254 sp->fcport->vha, 0x5080, qlafx00_ioctl_iosb_entry() 2258 sp->fcport->vha, 0x5074, qlafx00_ioctl_iosb_entry() 2277 fc_port_t *fcport; qlafx00_status_entry() local 2344 fcport = sp->fcport; qlafx00_status_entry() 2381 ql_dbg(ql_dbg_io, fcport->vha, 0x3050, qlafx00_status_entry() 2394 ql_dbg(ql_dbg_io, fcport->vha, 0x3051, qlafx00_status_entry() 2420 ql_dbg(ql_dbg_io, fcport->vha, 0x3052, qlafx00_status_entry() 2433 ql_dbg(ql_dbg_io, fcport->vha, 0x3053, qlafx00_status_entry() 2450 ql_dbg(ql_dbg_io, fcport->vha, 0x3054, qlafx00_status_entry() 2458 ql_dbg(ql_dbg_io, fcport->vha, 0x3055, qlafx00_status_entry() 2474 ql_dbg(ql_dbg_io, fcport->vha, 0x3056, qlafx00_status_entry() 2508 ql_dbg(ql_dbg_io, fcport->vha, 0x3057, qlafx00_status_entry() 2510 atomic_read(&fcport->state)); qlafx00_status_entry() 2512 if (atomic_read(&fcport->state) == FCS_ONLINE) qlafx00_status_entry() 2513 qla2x00_mark_device_lost(fcport->vha, fcport, 1, 1); qlafx00_status_entry() 2526 ql_dbg(ql_dbg_io, fcport->vha, 0x3058, qlafx00_status_entry() 2532 cp->device->id, cp->device->lun, fcport->tgt_id, qlafx00_status_entry() 2998 vha = sp->fcport->vha; qlafx00_build_scsi_iocbs() 3082 struct scsi_qla_host *vha = sp->fcport->vha; qlafx00_start_scsi() 3149 lcmd_pkt.tgt_idx = cpu_to_le16(sp->fcport->tgt_id); qlafx00_start_scsi() 3206 scsi_qla_host_t *vha = sp->fcport->vha; qlafx00_tm_iocb() 3216 tm_iocb.tgt_id = cpu_to_le16(sp->fcport->tgt_id); qlafx00_tm_iocb() 3233 scsi_qla_host_t *vha = sp->fcport->vha; qlafx00_abort_iocb() 3243 abt_iocb.tgt_id_sts = cpu_to_le16(sp->fcport->tgt_id); qlafx00_abort_iocb() 3345 sp->fcport->vha->req, qlafx00_fxdisc_iocb() 3367 sp->fcport->vha, 0x3042, qlafx00_fxdisc_iocb() 3376 sp->fcport->vha, 0x3043, qlafx00_fxdisc_iocb() 3408 sp->fcport->vha->req, qlafx00_fxdisc_iocb() 3430 sp->fcport->vha, 0x3045, qlafx00_fxdisc_iocb() 3439 sp->fcport->vha, 0x3046, qlafx00_fxdisc_iocb() 3451 sp->fcport->vha, 0x3047, qlafx00_fxdisc_iocb()
|
H A D | qla_bsg.c | 30 struct scsi_qla_host *vha = sp->fcport->vha; qla2x00_bsg_sp_free() 59 kfree(sp->fcport); qla2x00_bsg_sp_free() 248 fc_port_t *fcport = NULL; qla2x00_process_els() local 260 fcport = *(fc_port_t **) rport->dd_data; qla2x00_process_els() 303 if (qla2x00_fabric_login(vha, fcport, &nextlid)) { qla2x00_process_els() 306 fcport->d_id.b24); qla2x00_process_els() 311 /* Allocate a dummy fcport structure, since functions qla2x00_process_els() 313 * specific information from fcport structure. For Host based qla2x00_process_els() 314 * ELS commands there will be no fcport structure allocated qla2x00_process_els() 316 fcport = qla2x00_alloc_fcport(vha, GFP_KERNEL); qla2x00_process_els() 317 if (!fcport) { qla2x00_process_els() 322 /* Initialize all required fields of fcport */ qla2x00_process_els() 323 fcport->vha = vha; qla2x00_process_els() 324 fcport->d_id.b.al_pa = qla2x00_process_els() 326 fcport->d_id.b.area = qla2x00_process_els() 328 fcport->d_id.b.domain = qla2x00_process_els() 330 fcport->loop_id = qla2x00_process_els() 331 (fcport->d_id.b.al_pa == 0xFD) ? qla2x00_process_els() 362 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); qla2x00_process_els() 381 bsg_job->request->rqst_data.h_els.command_code, fcport->loop_id, qla2x00_process_els() 382 fcport->d_id.b.domain, fcport->d_id.b.area, fcport->d_id.b.al_pa); qla2x00_process_els() 403 kfree(fcport); qla2x00_process_els() 432 struct fc_port *fcport; qla2x00_process_ct() local 488 /* Allocate a dummy fcport structure, since functions preparing the qla2x00_process_ct() 490 * from fcport structure. For Host based ELS commands there will be qla2x00_process_ct() 491 * no fcport structure allocated qla2x00_process_ct() 493 fcport = qla2x00_alloc_fcport(vha, GFP_KERNEL); qla2x00_process_ct() 494 if (!fcport) { qla2x00_process_ct() 496 "Failed to allocate fcport.\n"); qla2x00_process_ct() 501 /* Initialize all required fields of fcport */ qla2x00_process_ct() 502 fcport->vha = vha; qla2x00_process_ct() 503 fcport->d_id.b.al_pa = bsg_job->request->rqst_data.h_ct.port_id[0]; qla2x00_process_ct() 504 fcport->d_id.b.area = bsg_job->request->rqst_data.h_ct.port_id[1]; qla2x00_process_ct() 505 fcport->d_id.b.domain = bsg_job->request->rqst_data.h_ct.port_id[2]; qla2x00_process_ct() 506 fcport->loop_id = loop_id; qla2x00_process_ct() 509 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); qla2x00_process_ct() 528 fcport->loop_id, fcport->d_id.b.domain, fcport->d_id.b.area, qla2x00_process_ct() 529 fcport->d_id.b.al_pa); qla2x00_process_ct() 542 kfree(fcport); qla2x00_process_ct() 1281 fc_port_t *fcport = NULL; qla24xx_iidma() local 1298 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla24xx_iidma() 1299 if (fcport->port_type != FCT_TARGET) qla24xx_iidma() 1303 fcport->port_name, sizeof(fcport->port_name))) qla24xx_iidma() 1316 if (atomic_read(&fcport->state) != FCS_ONLINE) { qla24xx_iidma() 1322 if (fcport->flags & FCF_LOGIN_NEEDED) { qla24xx_iidma() 1324 "Remote port not logged in flags = 0x%x.\n", fcport->flags); qla24xx_iidma() 1329 rval = qla2x00_set_idma_speed(vha, fcport->loop_id, qla24xx_iidma() 1332 rval = qla2x00_get_idma_speed(vha, fcport->loop_id, qla24xx_iidma() 1338 "%04x %x %04x %04x.\n", fcport->port_name, qla24xx_iidma() 1339 rval, fcport->fp_speed, mb[0], mb[1]); qla24xx_iidma() 1794 /* Initialize all required fields of fcport */ qla24xx_process_bidir_cmd() 1812 /* Assign the self login loop id to fcport */ qla24xx_process_bidir_cmd() 1917 struct fc_port *fcport; qlafx00_mgmt_cmd() local 1964 /* Allocate a dummy fcport structure, since functions preparing the qlafx00_mgmt_cmd() 1966 * from fcport structure. For Host based ELS commands there will be qlafx00_mgmt_cmd() 1967 * no fcport structure allocated qlafx00_mgmt_cmd() 1969 fcport = qla2x00_alloc_fcport(vha, GFP_KERNEL); qlafx00_mgmt_cmd() 1970 if (!fcport) { qlafx00_mgmt_cmd() 1972 "Failed to allocate fcport.\n"); qlafx00_mgmt_cmd() 1978 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); qlafx00_mgmt_cmd() 1986 /* Initialize all required fields of fcport */ qlafx00_mgmt_cmd() 1987 fcport->vha = vha; qlafx00_mgmt_cmd() 1988 fcport->loop_id = piocb_rqst->dataword; qlafx00_mgmt_cmd() 1999 type, piocb_rqst->func_type, fcport->loop_id); qlafx00_mgmt_cmd() 2012 kfree(fcport); qlafx00_mgmt_cmd()
|
H A D | qla_iocb.c | 27 struct scsi_qla_host *vha = sp->fcport->vha; qla2x00_get_cmd_direction() 214 vha = sp->fcport->vha; qla2x00_build_scsi_iocbs_32() 271 vha = sp->fcport->vha; qla2x00_build_scsi_iocbs_64() 328 vha = sp->fcport->vha; qla2x00_start_scsi() 401 SET_TARGET_ID(ha, cmd_pkt->target, sp->fcport->loop_id); qla2x00_start_scsi() 605 vha = sp->fcport->vha; qla24xx_build_scsi_type_6_iocbs() 719 vha = sp->fcport->vha; qla24xx_build_scsi_iocbs() 1128 vha = sp->fcport->vha; qla24xx_walk_and_build_prot_sglist() 1235 vha = sp->fcport->vha; qla24xx_build_scsi_crc_2_iocbs() 1245 cmd_pkt->vp_index = sp->fcport->vha->vp_idx; qla24xx_build_scsi_crc_2_iocbs() 1435 struct scsi_qla_host *vha = sp->fcport->vha; qla24xx_start_scsi() 1508 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id); qla24xx_start_scsi() 1509 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa; qla24xx_start_scsi() 1510 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area; qla24xx_start_scsi() 1511 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain; qla24xx_start_scsi() 1512 cmd_pkt->vp_index = sp->fcport->vha->vp_idx; qla24xx_start_scsi() 1586 struct scsi_qla_host *vha = sp->fcport->vha; qla24xx_dif_start_scsi() 1712 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id); qla24xx_dif_start_scsi() 1713 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa; qla24xx_dif_start_scsi() 1714 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area; qla24xx_dif_start_scsi() 1715 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain; qla24xx_dif_start_scsi() 1771 struct qla_hw_data *ha = sp->fcport->vha->hw; qla25xx_set_que() 1885 logio->nport_handle = cpu_to_le16(sp->fcport->loop_id); qla24xx_login_iocb() 1886 logio->port_id[0] = sp->fcport->d_id.b.al_pa; qla24xx_login_iocb() 1887 logio->port_id[1] = sp->fcport->d_id.b.area; qla24xx_login_iocb() 1888 logio->port_id[2] = sp->fcport->d_id.b.domain; qla24xx_login_iocb() 1889 logio->vp_index = sp->fcport->vha->vp_idx; qla24xx_login_iocb() 1895 struct qla_hw_data *ha = sp->fcport->vha->hw; qla2x00_login_iocb() 1900 SET_TARGET_ID(ha, mbx->loop_id, sp->fcport->loop_id); qla2x00_login_iocb() 1905 mbx->mb1 = cpu_to_le16(sp->fcport->loop_id); qla2x00_login_iocb() 1908 mbx->mb1 = cpu_to_le16((sp->fcport->loop_id << 8) | opts); qla2x00_login_iocb() 1910 mbx->mb2 = cpu_to_le16(sp->fcport->d_id.b.domain); qla2x00_login_iocb() 1911 mbx->mb3 = cpu_to_le16(sp->fcport->d_id.b.area << 8 | qla2x00_login_iocb() 1912 sp->fcport->d_id.b.al_pa); qla2x00_login_iocb() 1913 mbx->mb9 = cpu_to_le16(sp->fcport->vha->vp_idx); qla2x00_login_iocb() 1922 if (!sp->fcport->tgt_session || qla24xx_logout_iocb() 1923 !sp->fcport->tgt_session->keep_nport_handle) qla24xx_logout_iocb() 1925 logio->nport_handle = cpu_to_le16(sp->fcport->loop_id); qla24xx_logout_iocb() 1926 logio->port_id[0] = sp->fcport->d_id.b.al_pa; qla24xx_logout_iocb() 1927 logio->port_id[1] = sp->fcport->d_id.b.area; qla24xx_logout_iocb() 1928 logio->port_id[2] = sp->fcport->d_id.b.domain; qla24xx_logout_iocb() 1929 logio->vp_index = sp->fcport->vha->vp_idx; qla24xx_logout_iocb() 1935 struct qla_hw_data *ha = sp->fcport->vha->hw; qla2x00_logout_iocb() 1938 SET_TARGET_ID(ha, mbx->loop_id, sp->fcport->loop_id); qla2x00_logout_iocb() 1941 cpu_to_le16(sp->fcport->loop_id): qla2x00_logout_iocb() 1942 cpu_to_le16(sp->fcport->loop_id << 8); qla2x00_logout_iocb() 1943 mbx->mb2 = cpu_to_le16(sp->fcport->d_id.b.domain); qla2x00_logout_iocb() 1944 mbx->mb3 = cpu_to_le16(sp->fcport->d_id.b.area << 8 | qla2x00_logout_iocb() 1945 sp->fcport->d_id.b.al_pa); qla2x00_logout_iocb() 1946 mbx->mb9 = cpu_to_le16(sp->fcport->vha->vp_idx); qla2x00_logout_iocb() 1955 logio->nport_handle = cpu_to_le16(sp->fcport->loop_id); qla24xx_adisc_iocb() 1956 logio->vp_index = sp->fcport->vha->vp_idx; qla24xx_adisc_iocb() 1962 struct qla_hw_data *ha = sp->fcport->vha->hw; qla2x00_adisc_iocb() 1965 SET_TARGET_ID(ha, mbx->loop_id, sp->fcport->loop_id); qla2x00_adisc_iocb() 1968 mbx->mb1 = cpu_to_le16(sp->fcport->loop_id); qla2x00_adisc_iocb() 1971 mbx->mb1 = cpu_to_le16((sp->fcport->loop_id << 8) | BIT_0); qla2x00_adisc_iocb() 1977 mbx->mb9 = cpu_to_le16(sp->fcport->vha->vp_idx); qla2x00_adisc_iocb() 1985 struct fc_port *fcport = sp->fcport; qla24xx_tm_iocb() local 1986 scsi_qla_host_t *vha = fcport->vha; qla24xx_tm_iocb() 1997 tsk->nport_handle = cpu_to_le16(fcport->loop_id); qla24xx_tm_iocb() 2000 tsk->port_id[0] = fcport->d_id.b.al_pa; qla24xx_tm_iocb() 2001 tsk->port_id[1] = fcport->d_id.b.area; qla24xx_tm_iocb() 2002 tsk->port_id[2] = fcport->d_id.b.domain; qla24xx_tm_iocb() 2003 tsk->vp_index = fcport->vha->vp_idx; qla24xx_tm_iocb() 2022 els_iocb->nport_handle = cpu_to_le16(sp->fcport->loop_id); qla24xx_els_iocb() 2024 els_iocb->vp_index = sp->fcport->vha->vp_idx; qla24xx_els_iocb() 2032 els_iocb->port_id[0] = sp->fcport->d_id.b.al_pa; qla24xx_els_iocb() 2033 els_iocb->port_id[1] = sp->fcport->d_id.b.area; qla24xx_els_iocb() 2034 els_iocb->port_id[2] = sp->fcport->d_id.b.domain; qla24xx_els_iocb() 2055 sp->fcport->vha->qla_stats.control_requests++; qla24xx_els_iocb() 2066 scsi_qla_host_t *vha = sp->fcport->vha; qla2x00_ct_iocb() 2076 SET_TARGET_ID(ha, ct_iocb->loop_id, sp->fcport->loop_id); qla2x00_ct_iocb() 2132 sp->fcport->vha->qla_stats.control_requests++; qla2x00_ct_iocb() 2143 scsi_qla_host_t *vha = sp->fcport->vha; qla24xx_ct_iocb() 2154 ct_iocb->nport_handle = cpu_to_le16(sp->fcport->loop_id); qla24xx_ct_iocb() 2155 ct_iocb->vp_index = sp->fcport->vha->vp_idx; qla24xx_ct_iocb() 2229 struct scsi_qla_host *vha = sp->fcport->vha; qla82xx_start_scsi() 2387 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id); qla82xx_start_scsi() 2388 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa; qla82xx_start_scsi() 2389 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area; qla82xx_start_scsi() 2390 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain; qla82xx_start_scsi() 2391 cmd_pkt->vp_index = sp->fcport->vha->vp_idx; qla82xx_start_scsi() 2413 sp->fcport->fcp_prio << 3; qla82xx_start_scsi() 2460 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id); qla82xx_start_scsi() 2461 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa; qla82xx_start_scsi() 2462 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area; qla82xx_start_scsi() 2463 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain; qla82xx_start_scsi() 2464 cmd_pkt->vp_index = sp->fcport->vha->vp_idx; qla82xx_start_scsi() 2472 cmd_pkt->task |= sp->fcport->fcp_prio << 3; qla82xx_start_scsi() 2550 scsi_qla_host_t *vha = sp->fcport->vha; qla24xx_abort_iocb() 2557 abt_iocb->nport_handle = cpu_to_le16(sp->fcport->loop_id); qla24xx_abort_iocb() 2560 abt_iocb->port_id[0] = sp->fcport->d_id.b.al_pa; qla24xx_abort_iocb() 2561 abt_iocb->port_id[1] = sp->fcport->d_id.b.area; qla24xx_abort_iocb() 2562 abt_iocb->port_id[2] = sp->fcport->d_id.b.domain; qla24xx_abort_iocb() 2573 struct qla_hw_data *ha = sp->fcport->vha->hw; qla2x00_start_sp() 2579 pkt = qla2x00_alloc_iocbs(sp->fcport->vha, sp); qla2x00_start_sp() 2581 ql_log(ql_log_warn, sp->fcport->vha, 0x700c, qla2x00_start_sp() 2631 qla2x00_start_iocbs(sp->fcport->vha, ha->req_q_map[0]); qla2x00_start_sp()
|
H A D | qla_isr.c | 566 fc_port_t *fcport; qla2x00_find_fcport_by_loopid() local 568 list_for_each_entry(fcport, &vha->vp_fcports, list) qla2x00_find_fcport_by_loopid() 569 if (fcport->loop_id == loop_id) qla2x00_find_fcport_by_loopid() 570 return fcport; qla2x00_find_fcport_by_loopid() 591 fc_port_t *fcport = NULL; qla2x00_async_event() local 921 fcport = qla2x00_find_fcport_by_loopid(vha, mb[1]); qla2x00_async_event() 922 if (!fcport) qla2x00_async_event() 924 if (atomic_read(&fcport->state) != FCS_ONLINE) qla2x00_async_event() 928 fcport->loop_id, fcport->d_id.b24); qla2x00_async_event() 929 qla2x00_mark_device_lost(fcport->vha, fcport, 1, 1); qla2x00_async_event() 1027 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_async_event() 1028 if (atomic_read(&fcport->state) != FCS_ONLINE) qla2x00_async_event() 1030 if (fcport->d_id.b24 == rscn_entry) { qla2x00_async_event() 1031 qla2x00_mark_device_lost(vha, fcport, 0, 0); qla2x00_async_event() 1257 fc_port_t *fcport; qla2x00_mbx_iocb_entry() local 1269 fcport = sp->fcport; qla2x00_mbx_iocb_entry() 1280 fcport->d_id.b.domain, fcport->d_id.b.area, qla2x00_mbx_iocb_entry() 1281 fcport->d_id.b.al_pa, mbx->entry_status, qla2x00_mbx_iocb_entry() 1298 type, sp->handle, fcport->d_id.b.domain, qla2x00_mbx_iocb_entry() 1299 fcport->d_id.b.area, fcport->d_id.b.al_pa, qla2x00_mbx_iocb_entry() 1304 fcport->port_type = FCT_TARGET; qla2x00_mbx_iocb_entry() 1306 fcport->port_type = FCT_INITIATOR; qla2x00_mbx_iocb_entry() 1308 fcport->flags |= FCF_FCP2_DEVICE; qla2x00_mbx_iocb_entry() 1328 fcport->d_id.b.domain, fcport->d_id.b.area, fcport->d_id.b.al_pa, qla2x00_mbx_iocb_entry() 1484 fc_port_t *fcport; qla24xx_logio_entry() local 1496 fcport = sp->fcport; qla24xx_logio_entry() 1503 ql_log(ql_log_warn, fcport->vha, 0x5034, qla24xx_logio_entry() 1506 type, sp->handle, fcport->d_id.b.domain, qla24xx_logio_entry() 1507 fcport->d_id.b.area, fcport->d_id.b.al_pa, qla24xx_logio_entry() 1516 ql_dbg(ql_dbg_async, fcport->vha, 0x5036, qla24xx_logio_entry() 1518 "iop0=%x.\n", type, sp->handle, fcport->d_id.b.domain, qla24xx_logio_entry() 1519 fcport->d_id.b.area, fcport->d_id.b.al_pa, qla24xx_logio_entry() 1528 fcport->port_type = FCT_TARGET; qla24xx_logio_entry() 1530 fcport->flags |= FCF_FCP2_DEVICE; qla24xx_logio_entry() 1532 fcport->port_type = FCT_INITIATOR; qla24xx_logio_entry() 1535 fcport->flags |= FCF_CONF_COMP_SUPPORTED; qla24xx_logio_entry() 1538 fcport->supported_classes |= FC_COS_CLASS2; qla24xx_logio_entry() 1540 fcport->supported_classes |= FC_COS_CLASS3; qla24xx_logio_entry() 1560 ql_dbg(ql_dbg_async, fcport->vha, 0x5037, qla24xx_logio_entry() 1562 "iop0=%x iop1=%x.\n", type, sp->handle, fcport->d_id.b.domain, qla24xx_logio_entry() 1563 fcport->d_id.b.area, fcport->d_id.b.al_pa, qla24xx_logio_entry() 1577 fc_port_t *fcport; qla24xx_tm_iocb_entry() local 1588 fcport = sp->fcport; qla24xx_tm_iocb_entry() 1592 ql_log(ql_log_warn, fcport->vha, 0x5038, qla24xx_tm_iocb_entry() 1597 ql_log(ql_log_warn, fcport->vha, 0x5039, qla24xx_tm_iocb_entry() 1604 ql_log(ql_log_warn, fcport->vha, 0x503b, qla24xx_tm_iocb_entry() 1608 ql_log(ql_log_warn, fcport->vha, 0x503c, qla24xx_tm_iocb_entry() 1707 struct scsi_qla_host *vha = sp->fcport->vha; qla2x00_handle_sense() 1735 sp->fcport->vha->host_no, cp->device->id, cp->device->lun, qla2x00_handle_sense() 1757 struct scsi_qla_host *vha = sp->fcport->vha; qla2x00_handle_dif_error() 2031 fc_port_t *fcport; qla2x00_status_entry() local 2129 fcport = sp->fcport; qla2x00_status_entry() 2170 ql_dbg(ql_dbg_io, fcport->vha, 0x3019, qla2x00_status_entry() 2190 qla2x00_set_retry_delay_timestamp(fcport, retry_delay); qla2x00_status_entry() 2209 ql_dbg(ql_dbg_io, fcport->vha, 0x301a, qla2x00_status_entry() 2221 ql_dbg(ql_dbg_io, fcport->vha, 0x301b, qla2x00_status_entry() 2243 ql_dbg(ql_dbg_io, fcport->vha, 0x301d, qla2x00_status_entry() 2255 ql_dbg(ql_dbg_io, fcport->vha, 0x301e, qla2x00_status_entry() 2270 ql_dbg(ql_dbg_io, fcport->vha, 0x301f, qla2x00_status_entry() 2278 ql_dbg(ql_dbg_io, fcport->vha, 0x3030, qla2x00_status_entry() 2293 ql_dbg(ql_dbg_io, fcport->vha, 0x3020, qla2x00_status_entry() 2333 ql_dbg(ql_dbg_io, fcport->vha, 0x3021, qla2x00_status_entry() 2334 "Port to be marked lost on fcport=%02x%02x%02x, current " qla2x00_status_entry() 2335 "port state= %s.\n", fcport->d_id.b.domain, qla2x00_status_entry() 2336 fcport->d_id.b.area, fcport->d_id.b.al_pa, qla2x00_status_entry() 2337 port_state_str[atomic_read(&fcport->state)]); qla2x00_status_entry() 2339 if (atomic_read(&fcport->state) == FCS_ONLINE) qla2x00_status_entry() 2340 qla2x00_mark_device_lost(fcport->vha, fcport, 1, 1); qla2x00_status_entry() 2371 ql_dbg(ql_dbg_io, fcport->vha, 0x3022, qla2x00_status_entry() 2376 cp->device->id, cp->device->lun, fcport->d_id.b.domain, qla2x00_status_entry() 2377 fcport->d_id.b.area, fcport->d_id.b.al_pa, ox_id, qla2x00_status_entry()
|
H A D | qla_os.c | 608 struct qla_hw_data *ha = sp->fcport->vha->hw; qla2x00_sp_free_dma() 647 qla2x00_rel_sp(sp->fcport->vha, sp); qla2x00_sp_free_dma() 660 ql_dbg(ql_dbg_io, sp->fcport->vha, 0x3015, qla2x00_sp_compl() 681 fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata; qla2xxx_queuecommand() local 720 if (!fcport) { qla2xxx_queuecommand() 725 if (atomic_read(&fcport->state) != FCS_ONLINE) { qla2xxx_queuecommand() 726 if (atomic_read(&fcport->state) == FCS_DEVICE_DEAD || qla2xxx_queuecommand() 730 atomic_read(&fcport->state), qla2xxx_queuecommand() 742 if (fcport->retry_delay_timestamp == 0) { qla2xxx_queuecommand() 744 } else if (time_after(jiffies, fcport->retry_delay_timestamp)) qla2xxx_queuecommand() 745 fcport->retry_delay_timestamp = 0; qla2xxx_queuecommand() 749 sp = qla2x00_get_sp(vha, fcport, GFP_ATOMIC); qla2xxx_queuecommand() 1034 if (vha->vp_idx != sp->fcport->vha->vp_idx) qla2x00_eh_wait_for_pending_commands() 1074 fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata; __qla2xxx_eh_generic_reset() local 1077 if (!fcport) { __qla2xxx_eh_generic_reset() 1096 if (do_reset(fcport, cmd->device->lun, cmd->request->cpu + 1) __qla2xxx_eh_generic_reset() 1163 fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata; qla2xxx_eh_bus_reset() local 1171 if (!fcport) { qla2xxx_eh_bus_reset() 1306 struct fc_port *fcport; qla2x00_loop_reset() local 1314 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_loop_reset() 1315 if (fcport->port_type != FCT_TARGET) qla2x00_loop_reset() 1318 ret = ha->isp_ops->target_reset(fcport, 0, 0); qla2x00_loop_reset() 1322 "d_id=%x.\n", ret, fcport->d_id.b24); qla2x00_loop_reset() 2591 /* Setup fcport template structure. */ qla2x00_probe_one() 2592 ha->mr.fcport.vha = base_vha; qla2x00_probe_one() 2593 ha->mr.fcport.port_type = FCT_UNKNOWN; qla2x00_probe_one() 2594 ha->mr.fcport.loop_id = FC_NO_LOOP_ID; qla2x00_probe_one() 2595 qla2x00_set_fcport_state(&ha->mr.fcport, FCS_UNCONFIGURED); qla2x00_probe_one() 2596 ha->mr.fcport.supported_classes = FC_COS_UNSPECIFIED; qla2x00_probe_one() 2597 ha->mr.fcport.scan_state = 1; qla2x00_probe_one() 2830 &base_vha->hw->mr.fcport, FXDISC_GET_CONFIG_INFO); qla2x00_probe_one() 2856 &base_vha->hw->mr.fcport, FXDISC_GET_PORT_INFO); qla2x00_probe_one() 2860 &base_vha->hw->mr.fcport, FXDISC_REG_HOST_INFO); qla2x00_probe_one() 3207 fc_port_t *fcport, *tfcport; qla2x00_free_fcports() local 3209 list_for_each_entry_safe(fcport, tfcport, &vha->vp_fcports, list) { qla2x00_free_fcports() 3210 list_del(&fcport->list); qla2x00_free_fcports() 3211 qla2x00_clear_loop_id(fcport); qla2x00_free_fcports() 3212 kfree(fcport); qla2x00_free_fcports() 3213 fcport = NULL; qla2x00_free_fcports() 3218 qla2x00_schedule_rport_del(struct scsi_qla_host *vha, fc_port_t *fcport, qla2x00_schedule_rport_del() argument 3225 if (!fcport->rport) qla2x00_schedule_rport_del() 3228 rport = fcport->rport; qla2x00_schedule_rport_del() 3232 fcport->drport = rport; qla2x00_schedule_rport_del() 3242 qlt_fc_port_deleted(vha, fcport, now); qla2x00_schedule_rport_del() 3247 * qla2x00_mark_device_lost Updates fcport state when device goes offline. 3249 * Input: ha = adapter block pointer. fcport = port structure pointer. 3255 void qla2x00_mark_device_lost(scsi_qla_host_t *vha, fc_port_t *fcport, qla2x00_mark_device_lost() argument 3259 qla2x00_set_fcport_state(fcport, FCS_DEVICE_LOST); qla2x00_mark_device_lost() 3260 qla2x00_schedule_rport_del(vha, fcport, defer); qla2x00_mark_device_lost() 3264 if (atomic_read(&fcport->state) == FCS_ONLINE && qla2x00_mark_device_lost() 3265 vha->vp_idx == fcport->vha->vp_idx) { qla2x00_mark_device_lost() 3266 qla2x00_set_fcport_state(fcport, FCS_DEVICE_LOST); qla2x00_mark_device_lost() 3267 qla2x00_schedule_rport_del(vha, fcport, defer); qla2x00_mark_device_lost() 3273 if (atomic_read(&fcport->state) != FCS_DEVICE_DEAD) qla2x00_mark_device_lost() 3274 qla2x00_set_fcport_state(fcport, FCS_DEVICE_LOST); qla2x00_mark_device_lost() 3281 if (fcport->login_retry == 0) { qla2x00_mark_device_lost() 3282 fcport->login_retry = vha->hw->login_retry_count; qla2x00_mark_device_lost() 3286 fcport->port_name, fcport->loop_id, fcport->login_retry); qla2x00_mark_device_lost() 3292 * Updates fcport state when device goes offline. 3296 * fcport = port structure pointer. 3306 fc_port_t *fcport; qla2x00_mark_all_devices_lost() local 3308 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_mark_all_devices_lost() 3309 if (vha->vp_idx != 0 && vha->vp_idx != fcport->vha->vp_idx) qla2x00_mark_all_devices_lost() 3316 if (atomic_read(&fcport->state) == FCS_DEVICE_DEAD) qla2x00_mark_all_devices_lost() 3318 if (atomic_read(&fcport->state) == FCS_ONLINE) { qla2x00_mark_all_devices_lost() 3319 qla2x00_set_fcport_state(fcport, FCS_DEVICE_LOST); qla2x00_mark_all_devices_lost() 3321 qla2x00_schedule_rport_del(vha, fcport, defer); qla2x00_mark_all_devices_lost() 3322 else if (vha->vp_idx == fcport->vha->vp_idx) qla2x00_mark_all_devices_lost() 3323 qla2x00_schedule_rport_del(vha, fcport, defer); qla2x00_mark_all_devices_lost() 3857 fc_port_t *fcport, uint16_t *data) \ 3865 e->u.logio.fcport = fcport; \ 3950 qla2x00_async_login(vha, e->u.logio.fcport, qla2x00_do_work() 3954 qla2x00_async_login_done(vha, e->u.logio.fcport, qla2x00_do_work() 3958 qla2x00_async_logout(vha, e->u.logio.fcport); qla2x00_do_work() 3961 qla2x00_async_logout_done(vha, e->u.logio.fcport, qla2x00_do_work() 3965 qla2x00_async_adisc(vha, e->u.logio.fcport, qla2x00_do_work() 3969 qla2x00_async_adisc_done(vha, e->u.logio.fcport, qla2x00_do_work() 3992 fc_port_t *fcport; qla2x00_relogin() local 3998 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_relogin() 4003 if (atomic_read(&fcport->state) != FCS_ONLINE && qla2x00_relogin() 4004 fcport->login_retry && !(fcport->flags & FCF_ASYNC_SENT)) { qla2x00_relogin() 4005 fcport->login_retry--; qla2x00_relogin() 4006 if (fcport->flags & FCF_FABRIC_DEVICE) { qla2x00_relogin() 4007 if (fcport->flags & FCF_FCP2_DEVICE) qla2x00_relogin() 4009 fcport->loop_id, qla2x00_relogin() 4010 fcport->d_id.b.domain, qla2x00_relogin() 4011 fcport->d_id.b.area, qla2x00_relogin() 4012 fcport->d_id.b.al_pa); qla2x00_relogin() 4014 if (fcport->loop_id == FC_NO_LOOP_ID) { qla2x00_relogin() 4015 fcport->loop_id = next_loopid = qla2x00_relogin() 4018 vha, fcport); qla2x00_relogin() 4026 fcport->flags |= FCF_ASYNC_SENT; qla2x00_relogin() 4030 vha, fcport, data); qla2x00_relogin() 4037 fcport, &next_loopid); qla2x00_relogin() 4043 if (fcport->flags & qla2x00_relogin() 4048 vha, fcport, opts); qla2x00_relogin() 4055 fcport); qla2x00_relogin() 4058 fcport->old_loop_id = fcport->loop_id; qla2x00_relogin() 4062 fcport->loop_id); qla2x00_relogin() 4064 qla2x00_update_fcport(vha, fcport); qla2x00_relogin() 4071 fcport->login_retry, fcport->loop_id); qla2x00_relogin() 4073 fcport->login_retry = 0; qla2x00_relogin() 4076 if (fcport->login_retry == 0 && status != QLA_SUCCESS) qla2x00_relogin() 4077 qla2x00_clear_loop_id(fcport); qla2x00_relogin() 4926 &base_vha->hw->mr.fcport, qla2x00_do_dpc() 5208 sfcp = sp->fcport; qla2x00_timer()
|
H A D | qla_attr.c | 1715 fc_port_t *fcport; qla2x00_get_starget_node_name() local 1718 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_get_starget_node_name() 1719 if (fcport->rport && qla2x00_get_starget_node_name() 1720 starget->id == fcport->rport->scsi_target_id) { qla2x00_get_starget_node_name() 1721 node_name = wwn_to_u64(fcport->node_name); qla2x00_get_starget_node_name() 1734 fc_port_t *fcport; qla2x00_get_starget_port_name() local 1737 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_get_starget_port_name() 1738 if (fcport->rport && qla2x00_get_starget_port_name() 1739 starget->id == fcport->rport->scsi_target_id) { qla2x00_get_starget_port_name() 1740 port_name = wwn_to_u64(fcport->port_name); qla2x00_get_starget_port_name() 1753 fc_port_t *fcport; qla2x00_get_starget_port_id() local 1756 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_get_starget_port_id() 1757 if (fcport->rport && qla2x00_get_starget_port_id() 1758 starget->id == fcport->rport->scsi_target_id) { qla2x00_get_starget_port_id() 1759 port_id = fcport->d_id.b.domain << 16 | qla2x00_get_starget_port_id() 1760 fcport->d_id.b.area << 8 | fcport->d_id.b.al_pa; qla2x00_get_starget_port_id() 1781 fc_port_t *fcport = *(fc_port_t **)rport->dd_data; qla2x00_dev_loss_tmo_callbk() local 1784 if (!fcport) qla2x00_dev_loss_tmo_callbk() 1787 /* Now that the rport has been deleted, set the fcport state to qla2x00_dev_loss_tmo_callbk() 1789 qla2x00_set_fcport_state(fcport, FCS_DEVICE_DEAD); qla2x00_dev_loss_tmo_callbk() 1796 fcport->rport = fcport->drport = NULL; qla2x00_dev_loss_tmo_callbk() 1800 if (test_bit(ABORT_ISP_ACTIVE, &fcport->vha->dpc_flags)) qla2x00_dev_loss_tmo_callbk() 1803 if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) { qla2x00_dev_loss_tmo_callbk() 1804 qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16); qla2x00_dev_loss_tmo_callbk() 1812 fc_port_t *fcport = *(fc_port_t **)rport->dd_data; qla2x00_terminate_rport_io() local 1814 if (!fcport) qla2x00_terminate_rport_io() 1817 if (test_bit(ABORT_ISP_ACTIVE, &fcport->vha->dpc_flags)) qla2x00_terminate_rport_io() 1820 if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) { qla2x00_terminate_rport_io() 1821 qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16); qla2x00_terminate_rport_io() 1825 * At this point all fcport's software-states are cleared. Perform any qla2x00_terminate_rport_io() 1828 if (fcport->loop_id != FC_NO_LOOP_ID) { qla2x00_terminate_rport_io() 1829 if (IS_FWI2_CAPABLE(fcport->vha->hw)) qla2x00_terminate_rport_io() 1830 fcport->vha->hw->isp_ops->fabric_logout(fcport->vha, qla2x00_terminate_rport_io() 1831 fcport->loop_id, fcport->d_id.b.domain, qla2x00_terminate_rport_io() 1832 fcport->d_id.b.area, fcport->d_id.b.al_pa); qla2x00_terminate_rport_io() 1834 qla2x00_port_logout(fcport->vha, fcport); qla2x00_terminate_rport_io()
|
H A D | qla_mbx.c | 929 fc_port_t *fcport = sp->fcport; qla2x00_abort_command() local 930 scsi_qla_host_t *vha = fcport->vha; qla2x00_abort_command() 952 mcp->mb[1] = fcport->loop_id; qla2x00_abort_command() 954 mcp->mb[1] = fcport->loop_id << 8; qla2x00_abort_command() 975 qla2x00_abort_target(struct fc_port *fcport, uint64_t l, int tag) qla2x00_abort_target() argument 985 vha = fcport->vha; qla2x00_abort_target() 995 mcp->mb[1] = fcport->loop_id; qla2x00_abort_target() 999 mcp->mb[1] = fcport->loop_id << 8; qla2x00_abort_target() 1014 rval2 = qla2x00_marker(vha, req, rsp, fcport->loop_id, 0, qla2x00_abort_target() 1028 qla2x00_lun_reset(struct fc_port *fcport, uint64_t l, int tag) qla2x00_lun_reset() argument 1037 vha = fcport->vha; qla2x00_lun_reset() 1047 mcp->mb[1] = fcport->loop_id; qla2x00_lun_reset() 1049 mcp->mb[1] = fcport->loop_id << 8; qla2x00_lun_reset() 1063 rval2 = qla2x00_marker(vha, req, rsp, fcport->loop_id, l, qla2x00_lun_reset() 1408 qla2x00_get_port_database(scsi_qla_host_t *vha, fc_port_t *fcport, uint8_t opt) qla2x00_get_port_database() argument 1441 mcp->mb[1] = fcport->loop_id; qla2x00_get_port_database() 1446 mcp->mb[1] = fcport->loop_id; qla2x00_get_port_database() 1450 mcp->mb[1] = fcport->loop_id << 8 | opt; qla2x00_get_port_database() 1471 pd24->last_login_state, fcport->loop_id); qla2x00_get_port_database() 1476 if (fcport->loop_id == FC_NO_LOOP_ID || qla2x00_get_port_database() 1477 (memcmp(fcport->port_name, (uint8_t *)&zero, 8) && qla2x00_get_port_database() 1478 memcmp(fcport->port_name, pd24->port_name, 8))) { qla2x00_get_port_database() 1485 memcpy(fcport->node_name, pd24->node_name, WWN_SIZE); qla2x00_get_port_database() 1486 memcpy(fcport->port_name, pd24->port_name, WWN_SIZE); qla2x00_get_port_database() 1489 fcport->d_id.b.domain = pd24->port_id[0]; qla2x00_get_port_database() 1490 fcport->d_id.b.area = pd24->port_id[1]; qla2x00_get_port_database() 1491 fcport->d_id.b.al_pa = pd24->port_id[2]; qla2x00_get_port_database() 1492 fcport->d_id.b.rsvd_1 = 0; qla2x00_get_port_database() 1496 fcport->port_type = FCT_INITIATOR; qla2x00_get_port_database() 1498 fcport->port_type = FCT_TARGET; qla2x00_get_port_database() 1501 fcport->supported_classes = (pd24->flags & PDF_CLASS_2) ? qla2x00_get_port_database() 1505 fcport->flags |= FCF_CONF_COMP_SUPPORTED; qla2x00_get_port_database() 1515 pd->slave_state, fcport->d_id.b.domain, qla2x00_get_port_database() 1516 fcport->d_id.b.area, fcport->d_id.b.al_pa); qla2x00_get_port_database() 1521 if (fcport->loop_id == FC_NO_LOOP_ID || qla2x00_get_port_database() 1522 (memcmp(fcport->port_name, (uint8_t *)&zero, 8) && qla2x00_get_port_database() 1523 memcmp(fcport->port_name, pd->port_name, 8))) { qla2x00_get_port_database() 1530 memcpy(fcport->node_name, pd->node_name, WWN_SIZE); qla2x00_get_port_database() 1531 memcpy(fcport->port_name, pd->port_name, WWN_SIZE); qla2x00_get_port_database() 1534 fcport->d_id.b.domain = pd->port_id[0]; qla2x00_get_port_database() 1535 fcport->d_id.b.area = pd->port_id[3]; qla2x00_get_port_database() 1536 fcport->d_id.b.al_pa = pd->port_id[2]; qla2x00_get_port_database() 1537 fcport->d_id.b.rsvd_1 = 0; qla2x00_get_port_database() 1541 fcport->port_type = FCT_INITIATOR; qla2x00_get_port_database() 1543 fcport->port_type = FCT_TARGET; qla2x00_get_port_database() 1546 fcport->supported_classes = (pd->options & BIT_4) ? qla2x00_get_port_database() 2089 qla2x00_login_local_device(scsi_qla_host_t *vha, fc_port_t *fcport, qla2x00_login_local_device() argument 2101 return qla24xx_login_fabric(vha, fcport->loop_id, qla2x00_login_local_device() 2102 fcport->d_id.b.domain, fcport->d_id.b.area, qla2x00_login_local_device() 2103 fcport->d_id.b.al_pa, mb_ret, opt); qla2x00_login_local_device() 2107 mcp->mb[1] = fcport->loop_id; qla2x00_login_local_device() 2109 mcp->mb[1] = fcport->loop_id << 8; qla2x00_login_local_device() 2634 fc_port_t *fcport = sp->fcport; qla24xx_abort_command() local 2635 struct scsi_qla_host *vha = fcport->vha; qla24xx_abort_command() 2667 abt->nport_handle = cpu_to_le16(fcport->loop_id); qla24xx_abort_command() 2669 abt->port_id[0] = fcport->d_id.b.al_pa; qla24xx_abort_command() 2670 abt->port_id[1] = fcport->d_id.b.area; qla24xx_abort_command() 2671 abt->port_id[2] = fcport->d_id.b.domain; qla24xx_abort_command() 2672 abt->vp_index = fcport->vha->vp_idx; qla24xx_abort_command() 2711 __qla24xx_issue_tmf(char *name, uint32_t type, struct fc_port *fcport, __qla24xx_issue_tmf() argument 2723 vha = fcport->vha; __qla24xx_issue_tmf() 2745 tsk->p.tsk.nport_handle = cpu_to_le16(fcport->loop_id); __qla24xx_issue_tmf() 2748 tsk->p.tsk.port_id[0] = fcport->d_id.b.al_pa; __qla24xx_issue_tmf() 2749 tsk->p.tsk.port_id[1] = fcport->d_id.b.area; __qla24xx_issue_tmf() 2750 tsk->p.tsk.port_id[2] = fcport->d_id.b.domain; __qla24xx_issue_tmf() 2751 tsk->p.tsk.vp_index = fcport->vha->vp_idx; __qla24xx_issue_tmf() 2789 rval2 = qla2x00_marker(vha, req, rsp, fcport->loop_id, l, __qla24xx_issue_tmf() 2805 qla24xx_abort_target(struct fc_port *fcport, uint64_t l, int tag) qla24xx_abort_target() argument 2807 struct qla_hw_data *ha = fcport->vha->hw; qla24xx_abort_target() 2810 return qla2x00_async_tm_cmd(fcport, TCF_TARGET_RESET, l, tag); qla24xx_abort_target() 2812 return __qla24xx_issue_tmf("Target", TCF_TARGET_RESET, fcport, l, tag); qla24xx_abort_target() 2816 qla24xx_lun_reset(struct fc_port *fcport, uint64_t l, int tag) qla24xx_lun_reset() argument 2818 struct qla_hw_data *ha = fcport->vha->hw; qla24xx_lun_reset() 2821 return qla2x00_async_tm_cmd(fcport, TCF_LUN_RESET, l, tag); qla24xx_lun_reset() 2823 return __qla24xx_issue_tmf("Lun", TCF_LUN_RESET, fcport, l, tag); qla24xx_lun_reset() 5264 qla2x00_port_logout(scsi_qla_host_t *vha, struct fc_port *fcport) qla2x00_port_logout() argument 5283 mcp->mb[1] = fcport->loop_id; qla2x00_port_logout()
|
H A D | qla_gs.c | 173 * @fcport: fcport entry to updated 178 qla2x00_ga_nxt(scsi_qla_host_t *vha, fc_port_t *fcport) qla2x00_ga_nxt() argument 188 return qla2x00_sns_ga_nxt(vha, fcport); qla2x00_ga_nxt() 201 ct_req->req.port_id.port_id[0] = fcport->d_id.b.domain; qla2x00_ga_nxt() 202 ct_req->req.port_id.port_id[1] = fcport->d_id.b.area; qla2x00_ga_nxt() 203 ct_req->req.port_id.port_id[2] = fcport->d_id.b.al_pa; qla2x00_ga_nxt() 217 fcport->d_id.b.domain = ct_rsp->rsp.ga_nxt.port_id[0]; qla2x00_ga_nxt() 218 fcport->d_id.b.area = ct_rsp->rsp.ga_nxt.port_id[1]; qla2x00_ga_nxt() 219 fcport->d_id.b.al_pa = ct_rsp->rsp.ga_nxt.port_id[2]; qla2x00_ga_nxt() 221 memcpy(fcport->node_name, ct_rsp->rsp.ga_nxt.node_name, qla2x00_ga_nxt() 223 memcpy(fcport->port_name, ct_rsp->rsp.ga_nxt.port_name, qla2x00_ga_nxt() 226 fcport->fc4_type = (ct_rsp->rsp.ga_nxt.fc4_types[2] & BIT_0) ? qla2x00_ga_nxt() 231 fcport->d_id.b.domain = 0xf0; qla2x00_ga_nxt() 236 fcport->node_name, fcport->port_name, qla2x00_ga_nxt() 237 fcport->d_id.b.domain, fcport->d_id.b.area, qla2x00_ga_nxt() 238 fcport->d_id.b.al_pa); qla2x00_ga_nxt() 741 * @fcport: fcport entry to updated 748 qla2x00_sns_ga_nxt(scsi_qla_host_t *vha, fc_port_t *fcport) qla2x00_sns_ga_nxt() argument 760 sns_cmd->p.cmd.param[0] = fcport->d_id.b.al_pa; qla2x00_sns_ga_nxt() 761 sns_cmd->p.cmd.param[1] = fcport->d_id.b.area; qla2x00_sns_ga_nxt() 762 sns_cmd->p.cmd.param[2] = fcport->d_id.b.domain; qla2x00_sns_ga_nxt() 780 fcport->d_id.b.domain = sns_cmd->p.gan_data[17]; qla2x00_sns_ga_nxt() 781 fcport->d_id.b.area = sns_cmd->p.gan_data[18]; qla2x00_sns_ga_nxt() 782 fcport->d_id.b.al_pa = sns_cmd->p.gan_data[19]; qla2x00_sns_ga_nxt() 784 memcpy(fcport->node_name, &sns_cmd->p.gan_data[284], WWN_SIZE); qla2x00_sns_ga_nxt() 785 memcpy(fcport->port_name, &sns_cmd->p.gan_data[20], WWN_SIZE); qla2x00_sns_ga_nxt() 789 fcport->d_id.b.domain = 0xf0; qla2x00_sns_ga_nxt() 794 fcport->node_name, fcport->port_name, qla2x00_sns_ga_nxt() 795 fcport->d_id.b.domain, fcport->d_id.b.area, qla2x00_sns_ga_nxt() 796 fcport->d_id.b.al_pa); qla2x00_sns_ga_nxt()
|
H A D | qla_mid.c | 117 * Updates fcport state when device goes offline. 121 * fcport = port structure pointer. 137 fc_port_t *fcport; qla2x00_mark_vp_devices_dead() local 139 list_for_each_entry(fcport, &vha->vp_fcports, list) { qla2x00_mark_vp_devices_dead() 142 fcport->loop_id, fcport->vha->vp_idx); qla2x00_mark_vp_devices_dead() 144 qla2x00_mark_device_lost(vha, fcport, 0, 0); qla2x00_mark_vp_devices_dead() 145 qla2x00_set_fcport_state(fcport, FCS_UNCONFIGURED); qla2x00_mark_vp_devices_dead()
|
H A D | qla_target.c | 401 fc_port_t fcport; qlt_free_session_done() local 416 memset(&fcport, 0, sizeof(fcport)); qlt_free_session_done() 417 fcport.loop_id = sess->loop_id; qlt_free_session_done() 418 fcport.d_id = sess->s_id; qlt_free_session_done() 419 memcpy(fcport.port_name, sess->port_name, WWN_SIZE); qlt_free_session_done() 420 fcport.vha = vha; qlt_free_session_done() 421 fcport.tgt_session = sess; qlt_free_session_done() 423 rc = qla2x00_post_async_logout_work(vha, &fcport, NULL); qlt_free_session_done() 711 fc_port_t *fcport, qlt_create_sess() 723 if (!memcmp(sess->port_name, fcport->port_name, WWN_SIZE)) { qlt_create_sess() 729 sess->loop_id, fcport->d_id.b.domain, qlt_create_sess() 730 fcport->d_id.b.al_pa, fcport->d_id.b.area, qlt_create_sess() 731 fcport->loop_id); qlt_create_sess() 744 ha->tgt.tgt_ops->update_sess(sess, fcport->d_id, fcport->loop_id, qlt_create_sess() 745 (fcport->flags & FCF_CONF_COMP_SUPPORTED)); qlt_create_sess() 764 fcport->port_name); qlt_create_sess() 770 sess->s_id = fcport->d_id; qlt_create_sess() 771 sess->loop_id = fcport->loop_id; qlt_create_sess() 796 &fcport->port_name[0], sess, &be_sid[0], fcport->loop_id) < 0) { qlt_create_sess() 806 sess->conf_compl_supported = (fcport->flags & FCF_CONF_COMP_SUPPORTED); qlt_create_sess() 807 BUILD_BUG_ON(sizeof(sess->port_name) != sizeof(fcport->port_name)); qlt_create_sess() 808 memcpy(sess->port_name, fcport->port_name, sizeof(sess->port_name)); qlt_create_sess() 819 vha->vp_idx, local ? "local " : "", fcport->port_name, qlt_create_sess() 820 fcport->loop_id, sess->s_id.b.domain, sess->s_id.b.area, qlt_create_sess() 829 void qlt_fc_port_added(struct scsi_qla_host *vha, fc_port_t *fcport) qlt_fc_port_added() argument 839 if (!tgt || (fcport->port_type != FCT_INITIATOR)) qlt_fc_port_added() 850 sess = qlt_find_sess_by_port_name(tgt, fcport->port_name); qlt_fc_port_added() 855 sess = qlt_create_sess(vha, fcport, false); qlt_fc_port_added() 878 ha->tgt.tgt_ops->update_sess(sess, fcport->d_id, fcport->loop_id, qlt_fc_port_added() 879 (fcport->flags & FCF_CONF_COMP_SUPPORTED)); qlt_fc_port_added() 886 fcport->port_name, sess->loop_id); qlt_fc_port_added() 898 qlt_fc_port_deleted(struct scsi_qla_host *vha, fc_port_t *fcport, int max_gen) qlt_fc_port_deleted() argument 912 sess = qlt_find_sess_by_port_name(tgt, fcport->port_name); qlt_fc_port_deleted() 4005 void qlt_logo_completion_handler(fc_port_t *fcport, int rc) qlt_logo_completion_handler() argument 4007 if (fcport->tgt_session) { qlt_logo_completion_handler() 4009 ql_dbg(ql_dbg_tgt_mgt, fcport->vha, 0xf093, qlt_logo_completion_handler() 4014 fcport->tgt_session->se_sess, qlt_logo_completion_handler() 4015 fcport->tgt_session, qlt_logo_completion_handler() 4016 fcport->port_name, fcport->loop_id, qlt_logo_completion_handler() 4017 fcport->d_id.b.domain, fcport->d_id.b.area, qlt_logo_completion_handler() 4018 fcport->d_id.b.al_pa, rc); qlt_logo_completion_handler() 4021 fcport->tgt_session->logout_completed = 1; qlt_logo_completion_handler() 5502 fc_port_t *fcport; qlt_get_port_database() local 5505 fcport = kzalloc(sizeof(*fcport), GFP_KERNEL); qlt_get_port_database() 5506 if (!fcport) { qlt_get_port_database() 5513 fcport->loop_id = loop_id; qlt_get_port_database() 5515 rc = qla2x00_get_port_database(vha, fcport, 0); qlt_get_port_database() 5518 "qla_target(%d): Failed to retrieve fcport " qlt_get_port_database() 5521 kfree(fcport); qlt_get_port_database() 5525 return fcport; qlt_get_port_database() 5533 fc_port_t *fcport = NULL; qlt_make_local_sess() local 5561 fcport = qlt_get_port_database(vha, loop_id); qlt_make_local_sess() 5562 if (!fcport) qlt_make_local_sess() 5576 sess = qlt_create_sess(vha, fcport, true); qlt_make_local_sess() 5578 kfree(fcport); qlt_make_local_sess() 709 qlt_create_sess( struct scsi_qla_host *vha, fc_port_t *fcport, bool local) qlt_create_sess() argument
|
H A D | qla_mr.h | 475 fc_port_t fcport; /* fcport used for requests member in struct:mr_data_fx00
|
H A D | qla_def.h | 389 struct fc_port *fcport; member in struct:srb 2738 struct fc_port *fcport; member in struct:qla_work_evt::__anon10054::__anon10057 3562 fc_port_t bidir_fcport; /* fcport used for bidir cmnds 3596 /* Time when global fcport update has been scheduled */
|
/linux-4.4.14/drivers/message/fusion/ |
H A D | mptfc.c | 847 /* get fcport page 1 header */ mptfc_WriteFcPortPage1() 890 /* get fcport page 1 header */ mptfc_GetFcPortPage1()
|