Lines Matching refs:hostrcb

1123 			  struct ipr_hostrcb *hostrcb)  in ipr_send_hcam()  argument
1131 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_pending_q); in ipr_send_hcam()
1133 ipr_cmd->u.hostrcb = hostrcb; in ipr_send_hcam()
1140 ioarcb->cmd_pkt.cdb[7] = (sizeof(hostrcb->hcam) >> 8) & 0xff; in ipr_send_hcam()
1141 ioarcb->cmd_pkt.cdb[8] = sizeof(hostrcb->hcam) & 0xff; in ipr_send_hcam()
1143 ipr_init_ioadl(ipr_cmd, hostrcb->hostrcb_dma, in ipr_send_hcam()
1144 sizeof(hostrcb->hcam), IPR_IOADL_FLAGS_READ_LAST); in ipr_send_hcam()
1155 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q); in ipr_send_hcam()
1444 struct ipr_hostrcb *hostrcb) in ipr_handle_config_change() argument
1453 cfgtew.u.cfgte64 = &hostrcb->hcam.u.ccn.u.cfgte64; in ipr_handle_config_change()
1456 cfgtew.u.cfgte = &hostrcb->hcam.u.ccn.u.cfgte; in ipr_handle_config_change()
1471 hostrcb); in ipr_handle_config_change()
1485 if (hostrcb->hcam.notify_type == IPR_HOST_RCB_NOTIF_TYPE_REM_ENTRY) { in ipr_handle_config_change()
1499 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_CONFIG_CHANGE, hostrcb); in ipr_handle_config_change()
1515 struct ipr_hostrcb *hostrcb = ipr_cmd->u.hostrcb; in ipr_process_ccn() local
1518 list_del_init(&hostrcb->queue); in ipr_process_ccn()
1527 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_CONFIG_CHANGE, hostrcb); in ipr_process_ccn()
1529 ipr_handle_config_change(ioa_cfg, hostrcb); in ipr_process_ccn()
1562 static void ipr_log_vpd_compact(char *prefix, struct ipr_hostrcb *hostrcb, in ipr_log_vpd_compact() argument
1577 ipr_hcam_err(hostrcb, "%s VPID/SN: %s\n", prefix, buffer); in ipr_log_vpd_compact()
1612 static void ipr_log_ext_vpd_compact(char *prefix, struct ipr_hostrcb *hostrcb, in ipr_log_ext_vpd_compact() argument
1615 ipr_log_vpd_compact(prefix, hostrcb, &vpd->vpd); in ipr_log_ext_vpd_compact()
1616 ipr_hcam_err(hostrcb, "%s WWN: %08X%08X\n", prefix, in ipr_log_ext_vpd_compact()
1643 struct ipr_hostrcb *hostrcb) in ipr_log_enhanced_cache_error() argument
1648 error = &hostrcb->hcam.u.error64.u.type_12_error; in ipr_log_enhanced_cache_error()
1650 error = &hostrcb->hcam.u.error.u.type_12_error; in ipr_log_enhanced_cache_error()
1679 struct ipr_hostrcb *hostrcb) in ipr_log_cache_error() argument
1682 &hostrcb->hcam.u.error.u.type_02_error; in ipr_log_cache_error()
1711 struct ipr_hostrcb *hostrcb) in ipr_log_enhanced_config_error() argument
1717 error = &hostrcb->hcam.u.error.u.type_13_error; in ipr_log_enhanced_config_error()
1751 struct ipr_hostrcb *hostrcb) in ipr_log_sis64_config_error() argument
1758 error = &hostrcb->hcam.u.error64.u.type_23_error; in ipr_log_sis64_config_error()
1794 struct ipr_hostrcb *hostrcb) in ipr_log_config_error() argument
1800 error = &hostrcb->hcam.u.error.u.type_03_error; in ipr_log_config_error()
1841 struct ipr_hostrcb *hostrcb) in ipr_log_enhanced_array_error() argument
1848 error = &hostrcb->hcam.u.error.u.type_14_error; in ipr_log_enhanced_array_error()
1892 struct ipr_hostrcb *hostrcb) in ipr_log_array_error() argument
1899 error = &hostrcb->hcam.u.error.u.type_04_error; in ipr_log_array_error()
1975 struct ipr_hostrcb *hostrcb) in ipr_log_enhanced_dual_ioa_error() argument
1980 error = &hostrcb->hcam.u.error64.u.type_17_error; in ipr_log_enhanced_dual_ioa_error()
1982 error = &hostrcb->hcam.u.error.u.type_17_error; in ipr_log_enhanced_dual_ioa_error()
1987 ipr_hcam_err(hostrcb, "%s [PRC: %08X]\n", error->failure_reason, in ipr_log_enhanced_dual_ioa_error()
1988 be32_to_cpu(hostrcb->hcam.u.error.prc)); in ipr_log_enhanced_dual_ioa_error()
1989 ipr_log_ext_vpd_compact("Remote IOA", hostrcb, &error->vpd); in ipr_log_enhanced_dual_ioa_error()
1991 be32_to_cpu(hostrcb->hcam.length) - in ipr_log_enhanced_dual_ioa_error()
2005 struct ipr_hostrcb *hostrcb) in ipr_log_dual_ioa_error() argument
2009 error = &hostrcb->hcam.u.error.u.type_07_error; in ipr_log_dual_ioa_error()
2013 ipr_hcam_err(hostrcb, "%s [PRC: %08X]\n", error->failure_reason, in ipr_log_dual_ioa_error()
2014 be32_to_cpu(hostrcb->hcam.u.error.prc)); in ipr_log_dual_ioa_error()
2015 ipr_log_vpd_compact("Remote IOA", hostrcb, &error->vpd); in ipr_log_dual_ioa_error()
2017 be32_to_cpu(hostrcb->hcam.length) - in ipr_log_dual_ioa_error()
2049 static void ipr_log_fabric_path(struct ipr_hostrcb *hostrcb, in ipr_log_fabric_path() argument
2066 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d\n", in ipr_log_fabric_path()
2070 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Phy=%d\n", in ipr_log_fabric_path()
2074 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Cascade=%d\n", in ipr_log_fabric_path()
2078 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Cascade=%d, Phy=%d\n", in ipr_log_fabric_path()
2098 static void ipr_log64_fabric_path(struct ipr_hostrcb *hostrcb, in ipr_log64_fabric_path() argument
2115 ipr_hcam_err(hostrcb, "%s %s: Resource Path=%s\n", in ipr_log64_fabric_path()
2117 ipr_format_res_path(hostrcb->ioa_cfg, in ipr_log64_fabric_path()
2125 ipr_format_res_path(hostrcb->ioa_cfg, fabric->res_path, in ipr_log64_fabric_path()
2178 static void ipr_log_path_elem(struct ipr_hostrcb *hostrcb, in ipr_log_path_elem() argument
2197 ipr_hcam_err(hostrcb, "%s %s: Phy=%d, Link rate=%s, WWN=%08X%08X\n", in ipr_log_path_elem()
2203 ipr_hcam_err(hostrcb, "%s %s: Link rate=%s, WWN=%08X%08X\n", in ipr_log_path_elem()
2208 ipr_hcam_err(hostrcb, "%s %s: Phy=%d, Link rate=%s, " in ipr_log_path_elem()
2214 ipr_hcam_err(hostrcb, "%s %s: Cascade=%d, Link rate=%s, " in ipr_log_path_elem()
2220 ipr_hcam_err(hostrcb, "%s %s: Cascade=%d, Phy=%d, Link rate=%s " in ipr_log_path_elem()
2231 ipr_hcam_err(hostrcb, "Path element=%02X: Cascade=%d Phy=%d Link rate=%s " in ipr_log_path_elem()
2245 static void ipr_log64_path_elem(struct ipr_hostrcb *hostrcb, in ipr_log64_path_elem() argument
2265 ipr_hcam_err(hostrcb, "%s %s: Resource Path=%s, Link rate=%s, WWN=%08X%08X\n", in ipr_log64_path_elem()
2267 ipr_format_res_path(hostrcb->ioa_cfg, in ipr_log64_path_elem()
2275 ipr_hcam_err(hostrcb, "Path element=%02X: Resource Path=%s, Link rate=%s " in ipr_log64_path_elem()
2277 ipr_format_res_path(hostrcb->ioa_cfg, in ipr_log64_path_elem()
2292 struct ipr_hostrcb *hostrcb) in ipr_log_fabric_error() argument
2299 error = &hostrcb->hcam.u.error.u.type_20_error; in ipr_log_fabric_error()
2301 ipr_hcam_err(hostrcb, "%s\n", error->failure_reason); in ipr_log_fabric_error()
2303 add_len = be32_to_cpu(hostrcb->hcam.length) - in ipr_log_fabric_error()
2308 ipr_log_fabric_path(hostrcb, fabric); in ipr_log_fabric_error()
2310 ipr_log_path_elem(hostrcb, cfg); in ipr_log_fabric_error()
2329 struct ipr_hostrcb *hostrcb) in ipr_log_sis64_array_error() argument
2337 error = &hostrcb->hcam.u.error64.u.type_24_error; in ipr_log_sis64_array_error()
2385 struct ipr_hostrcb *hostrcb) in ipr_log_sis64_fabric_error() argument
2392 error = &hostrcb->hcam.u.error64.u.type_30_error; in ipr_log_sis64_fabric_error()
2395 ipr_hcam_err(hostrcb, "%s\n", error->failure_reason); in ipr_log_sis64_fabric_error()
2397 add_len = be32_to_cpu(hostrcb->hcam.length) - in ipr_log_sis64_fabric_error()
2402 ipr_log64_fabric_path(hostrcb, fabric); in ipr_log_sis64_fabric_error()
2404 ipr_log64_path_elem(hostrcb, cfg); in ipr_log_sis64_fabric_error()
2423 struct ipr_hostrcb *hostrcb) in ipr_log_sis64_service_required_error() argument
2427 error = &hostrcb->hcam.u.error64.u.type_41_error; in ipr_log_sis64_service_required_error()
2432 be32_to_cpu(hostrcb->hcam.length) - in ipr_log_sis64_service_required_error()
2445 struct ipr_hostrcb *hostrcb) in ipr_log_generic_error() argument
2447 ipr_log_hex_data(ioa_cfg, hostrcb->hcam.u.raw.data, in ipr_log_generic_error()
2448 be32_to_cpu(hostrcb->hcam.length)); in ipr_log_generic_error()
2460 struct ipr_hostrcb *hostrcb) in ipr_log_sis64_device_error() argument
2465 error = &hostrcb->hcam.u.error64.u.type_21_error; in ipr_log_sis64_device_error()
2520 struct ipr_hostrcb *hostrcb) in ipr_handle_log_data() argument
2526 if (hostrcb->hcam.notify_type != IPR_HOST_RCB_NOTIF_TYPE_ERROR_LOG_ENTRY) in ipr_handle_log_data()
2529 if (hostrcb->hcam.notifications_lost == IPR_HOST_RCB_NOTIFICATIONS_LOST) in ipr_handle_log_data()
2533 ioasc = be32_to_cpu(hostrcb->hcam.u.error64.fd_ioasc); in ipr_handle_log_data()
2535 ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc); in ipr_handle_log_data()
2541 hostrcb->hcam.u.error.fd_res_addr.bus); in ipr_handle_log_data()
2550 hostrcb->hcam.overlay_id == IPR_HOST_RCB_OVERLAY_ID_21) { in ipr_handle_log_data()
2551 error = &hostrcb->hcam.u.error64.u.type_21_error; in ipr_handle_log_data()
2558 ipr_hcam_err(hostrcb, "%s\n", ipr_error_table[error_index].error); in ipr_handle_log_data()
2565 if (be32_to_cpu(hostrcb->hcam.length) > sizeof(hostrcb->hcam.u.raw)) in ipr_handle_log_data()
2566 hostrcb->hcam.length = cpu_to_be32(sizeof(hostrcb->hcam.u.raw)); in ipr_handle_log_data()
2568 switch (hostrcb->hcam.overlay_id) { in ipr_handle_log_data()
2570 ipr_log_cache_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2573 ipr_log_config_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2577 ipr_log_array_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2580 ipr_log_dual_ioa_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2583 ipr_log_enhanced_cache_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2586 ipr_log_enhanced_config_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2590 ipr_log_enhanced_array_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2593 ipr_log_enhanced_dual_ioa_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2596 ipr_log_fabric_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2599 ipr_log_sis64_device_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2602 ipr_log_sis64_config_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2606 ipr_log_sis64_array_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2609 ipr_log_sis64_fabric_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2612 ipr_log_sis64_service_required_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2617 ipr_log_generic_error(ioa_cfg, hostrcb); in ipr_handle_log_data()
2624 struct ipr_hostrcb *hostrcb; in ipr_get_free_hostrcb() local
2626 hostrcb = list_first_entry_or_null(&ioa->hostrcb_free_q, in ipr_get_free_hostrcb()
2629 if (unlikely(!hostrcb)) { in ipr_get_free_hostrcb()
2631 hostrcb = list_first_entry_or_null(&ioa->hostrcb_report_q, in ipr_get_free_hostrcb()
2635 list_del_init(&hostrcb->queue); in ipr_get_free_hostrcb()
2636 return hostrcb; in ipr_get_free_hostrcb()
2653 struct ipr_hostrcb *hostrcb = ipr_cmd->u.hostrcb; in ipr_process_error() local
2658 fd_ioasc = be32_to_cpu(hostrcb->hcam.u.error64.fd_ioasc); in ipr_process_error()
2660 fd_ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc); in ipr_process_error()
2662 list_del_init(&hostrcb->queue); in ipr_process_error()
2666 ipr_handle_log_data(ioa_cfg, hostrcb); in ipr_process_error()
2675 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_report_q); in ipr_process_error()
2677 hostrcb = ipr_get_free_hostrcb(ioa_cfg); in ipr_process_error()
2679 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_LOG_DATA, hostrcb); in ipr_process_error()
4187 struct ipr_hostrcb *hostrcb; in ipr_read_async_err_log() local
4192 hostrcb = list_first_entry_or_null(&ioa_cfg->hostrcb_report_q, in ipr_read_async_err_log()
4194 if (!hostrcb) { in ipr_read_async_err_log()
4198 ret = memory_read_from_buffer(buf, count, &off, &hostrcb->hcam, in ipr_read_async_err_log()
4199 sizeof(hostrcb->hcam)); in ipr_read_async_err_log()
4211 struct ipr_hostrcb *hostrcb; in ipr_next_async_err_log() local
4215 hostrcb = list_first_entry_or_null(&ioa_cfg->hostrcb_report_q, in ipr_next_async_err_log()
4217 if (!hostrcb) { in ipr_next_async_err_log()
4223 list_move_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q); in ipr_next_async_err_log()
7294 list_del_init(&ioa_cfg->hostrcb[j]->queue); in ipr_ioa_reset_done()
7298 ioa_cfg->hostrcb[j]); in ipr_ioa_reset_done()
7302 ioa_cfg->hostrcb[j]); in ipr_ioa_reset_done()
8543 struct ipr_hostrcb *hostrcb; in ipr_get_unit_check_buffer() local
8574 hostrcb = list_entry(ioa_cfg->hostrcb_free_q.next, in ipr_get_unit_check_buffer()
8576 list_del_init(&hostrcb->queue); in ipr_get_unit_check_buffer()
8577 memset(&hostrcb->hcam, 0, sizeof(hostrcb->hcam)); in ipr_get_unit_check_buffer()
8581 (__be32 *)&hostrcb->hcam, in ipr_get_unit_check_buffer()
8582 min(length, (int)sizeof(hostrcb->hcam)) / sizeof(__be32)); in ipr_get_unit_check_buffer()
8585 ipr_handle_log_data(ioa_cfg, hostrcb); in ipr_get_unit_check_buffer()
8586 ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc); in ipr_get_unit_check_buffer()
8593 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q); in ipr_get_unit_check_buffer()
9578 ioa_cfg->hostrcb[i], in ipr_free_mem()
9805 ioa_cfg->hostrcb[i] = dma_alloc_coherent(&pdev->dev, in ipr_alloc_mem()
9810 if (!ioa_cfg->hostrcb[i]) in ipr_alloc_mem()
9813 ioa_cfg->hostrcb[i]->hostrcb_dma = in ipr_alloc_mem()
9815 ioa_cfg->hostrcb[i]->ioa_cfg = ioa_cfg; in ipr_alloc_mem()
9816 list_add_tail(&ioa_cfg->hostrcb[i]->queue, &ioa_cfg->hostrcb_free_q); in ipr_alloc_mem()
9834 ioa_cfg->hostrcb[i], in ipr_alloc_mem()