Lines Matching defs:hostrcb

1047  * @hostrcb:	hostrcb struct
1051 * place the hostrcb on the free queue.
1057 struct ipr_hostrcb *hostrcb)
1065 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_pending_q);
1067 ipr_cmd->u.hostrcb = hostrcb;
1074 ioarcb->cmd_pkt.cdb[7] = (sizeof(hostrcb->hcam) >> 8) & 0xff;
1075 ioarcb->cmd_pkt.cdb[8] = sizeof(hostrcb->hcam) & 0xff;
1077 ipr_init_ioadl(ipr_cmd, hostrcb->hostrcb_dma,
1078 sizeof(hostrcb->hcam), IPR_IOADL_FLAGS_READ_LAST);
1089 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q);
1335 * @hostrcb: hostrcb
1341 struct ipr_hostrcb *hostrcb)
1350 cfgtew.u.cfgte64 = &hostrcb->hcam.u.ccn.u.cfgte64;
1353 cfgtew.u.cfgte = &hostrcb->hcam.u.ccn.u.cfgte;
1368 hostrcb);
1382 if (hostrcb->hcam.notify_type == IPR_HOST_RCB_NOTIF_TYPE_REM_ENTRY) {
1396 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_CONFIG_CHANGE, hostrcb);
1412 struct ipr_hostrcb *hostrcb = ipr_cmd->u.hostrcb;
1415 list_del_init(&hostrcb->queue);
1424 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_CONFIG_CHANGE, hostrcb);
1426 ipr_handle_config_change(ioa_cfg, hostrcb);
1452 * @hostrcb: hostrcb pointer
1458 static void ipr_log_vpd_compact(char *prefix, struct ipr_hostrcb *hostrcb,
1474 ipr_hcam_err(hostrcb, "%s VPID/SN: %s %s %s\n", prefix,
1504 * @hostrcb: hostrcb pointer
1510 static void ipr_log_ext_vpd_compact(char *prefix, struct ipr_hostrcb *hostrcb,
1513 ipr_log_vpd_compact(prefix, hostrcb, &vpd->vpd);
1514 ipr_hcam_err(hostrcb, "%s WWN: %08X%08X\n", prefix,
1535 * @hostrcb: hostrcb struct
1541 struct ipr_hostrcb *hostrcb)
1546 error = &hostrcb->hcam.u.error64.u.type_12_error;
1548 error = &hostrcb->hcam.u.error.u.type_12_error;
1571 * @hostrcb: hostrcb struct
1577 struct ipr_hostrcb *hostrcb)
1580 &hostrcb->hcam.u.error.u.type_02_error;
1603 * @hostrcb: hostrcb struct
1609 struct ipr_hostrcb *hostrcb)
1615 error = &hostrcb->hcam.u.error.u.type_13_error;
1643 * @hostrcb: hostrcb struct
1649 struct ipr_hostrcb *hostrcb)
1656 error = &hostrcb->hcam.u.error64.u.type_23_error;
1686 * @hostrcb: hostrcb struct
1692 struct ipr_hostrcb *hostrcb)
1698 error = &hostrcb->hcam.u.error.u.type_03_error;
1733 * @hostrcb: hostrcb struct
1739 struct ipr_hostrcb *hostrcb)
1746 error = &hostrcb->hcam.u.error.u.type_14_error;
1784 * @hostrcb: hostrcb struct
1790 struct ipr_hostrcb *hostrcb)
1797 error = &hostrcb->hcam.u.error.u.type_04_error;
1867 * @hostrcb: hostrcb struct
1873 struct ipr_hostrcb *hostrcb)
1878 error = &hostrcb->hcam.u.error64.u.type_17_error;
1880 error = &hostrcb->hcam.u.error.u.type_17_error;
1885 ipr_hcam_err(hostrcb, "%s [PRC: %08X]\n", error->failure_reason,
1886 be32_to_cpu(hostrcb->hcam.u.error.prc));
1887 ipr_log_ext_vpd_compact("Remote IOA", hostrcb, &error->vpd);
1889 be32_to_cpu(hostrcb->hcam.length) -
1897 * @hostrcb: hostrcb struct
1903 struct ipr_hostrcb *hostrcb)
1907 error = &hostrcb->hcam.u.error.u.type_07_error;
1911 ipr_hcam_err(hostrcb, "%s [PRC: %08X]\n", error->failure_reason,
1912 be32_to_cpu(hostrcb->hcam.u.error.prc));
1913 ipr_log_vpd_compact("Remote IOA", hostrcb, &error->vpd);
1915 be32_to_cpu(hostrcb->hcam.length) -
1941 * @hostrcb: hostrcb struct
1947 static void ipr_log_fabric_path(struct ipr_hostrcb *hostrcb,
1964 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d\n",
1968 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Phy=%d\n",
1972 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Cascade=%d\n",
1976 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Cascade=%d, Phy=%d\n",
1990 * @hostrcb: hostrcb struct
1996 static void ipr_log64_fabric_path(struct ipr_hostrcb *hostrcb,
2013 ipr_hcam_err(hostrcb, "%s %s: Resource Path=%s\n",
2015 ipr_format_res_path(hostrcb->ioa_cfg,
2023 ipr_format_res_path(hostrcb->ioa_cfg, fabric->res_path,
2070 * @hostrcb: hostrcb struct
2076 static void ipr_log_path_elem(struct ipr_hostrcb *hostrcb,
2095 ipr_hcam_err(hostrcb, "%s %s: Phy=%d, Link rate=%s, WWN=%08X%08X\n",
2101 ipr_hcam_err(hostrcb, "%s %s: Link rate=%s, WWN=%08X%08X\n",
2106 ipr_hcam_err(hostrcb, "%s %s: Phy=%d, Link rate=%s, "
2112 ipr_hcam_err(hostrcb, "%s %s: Cascade=%d, Link rate=%s, "
2118 ipr_hcam_err(hostrcb, "%s %s: Cascade=%d, Phy=%d, Link rate=%s "
2129 ipr_hcam_err(hostrcb, "Path element=%02X: Cascade=%d Phy=%d Link rate=%s "
2137 * @hostrcb: hostrcb struct
2143 static void ipr_log64_path_elem(struct ipr_hostrcb *hostrcb,
2163 ipr_hcam_err(hostrcb, "%s %s: Resource Path=%s, Link rate=%s, WWN=%08X%08X\n",
2165 ipr_format_res_path(hostrcb->ioa_cfg,
2173 ipr_hcam_err(hostrcb, "Path element=%02X: Resource Path=%s, Link rate=%s "
2175 ipr_format_res_path(hostrcb->ioa_cfg,
2184 * @hostrcb: hostrcb struct
2190 struct ipr_hostrcb *hostrcb)
2197 error = &hostrcb->hcam.u.error.u.type_20_error;
2199 ipr_hcam_err(hostrcb, "%s\n", error->failure_reason);
2201 add_len = be32_to_cpu(hostrcb->hcam.length) -
2206 ipr_log_fabric_path(hostrcb, fabric);
2208 ipr_log_path_elem(hostrcb, cfg);
2221 * @hostrcb: hostrcb struct
2227 struct ipr_hostrcb *hostrcb)
2235 error = &hostrcb->hcam.u.error64.u.type_24_error;
2277 * @hostrcb: hostrcb struct
2283 struct ipr_hostrcb *hostrcb)
2290 error = &hostrcb->hcam.u.error64.u.type_30_error;
2293 ipr_hcam_err(hostrcb, "%s\n", error->failure_reason);
2295 add_len = be32_to_cpu(hostrcb->hcam.length) -
2300 ipr_log64_fabric_path(hostrcb, fabric);
2302 ipr_log64_path_elem(hostrcb, cfg);
2315 * @hostrcb: hostrcb struct
2321 struct ipr_hostrcb *hostrcb)
2325 error = &hostrcb->hcam.u.error64.u.type_41_error;
2330 be32_to_cpu(hostrcb->hcam.length) -
2337 * @hostrcb: hostrcb struct
2343 struct ipr_hostrcb *hostrcb)
2345 ipr_log_hex_data(ioa_cfg, hostrcb->hcam.u.raw.data,
2346 be32_to_cpu(hostrcb->hcam.length));
2352 * @hostrcb: hostrcb struct
2358 struct ipr_hostrcb *hostrcb)
2363 error = &hostrcb->hcam.u.error64.u.type_21_error;
2410 * @hostrcb: hostrcb struct
2418 struct ipr_hostrcb *hostrcb)
2424 if (hostrcb->hcam.notify_type != IPR_HOST_RCB_NOTIF_TYPE_ERROR_LOG_ENTRY)
2427 if (hostrcb->hcam.notifications_lost == IPR_HOST_RCB_NOTIFICATIONS_LOST)
2431 ioasc = be32_to_cpu(hostrcb->hcam.u.error64.fd_ioasc);
2433 ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc);
2439 hostrcb->hcam.u.error.fd_res_addr.bus);
2448 hostrcb->hcam.overlay_id == IPR_HOST_RCB_OVERLAY_ID_21) {
2449 error = &hostrcb->hcam.u.error64.u.type_21_error;
2456 ipr_hcam_err(hostrcb, "%s\n", ipr_error_table[error_index].error);
2463 if (be32_to_cpu(hostrcb->hcam.length) > sizeof(hostrcb->hcam.u.raw))
2464 hostrcb->hcam.length = cpu_to_be32(sizeof(hostrcb->hcam.u.raw));
2466 switch (hostrcb->hcam.overlay_id) {
2468 ipr_log_cache_error(ioa_cfg, hostrcb);
2471 ipr_log_config_error(ioa_cfg, hostrcb);
2475 ipr_log_array_error(ioa_cfg, hostrcb);
2478 ipr_log_dual_ioa_error(ioa_cfg, hostrcb);
2481 ipr_log_enhanced_cache_error(ioa_cfg, hostrcb);
2484 ipr_log_enhanced_config_error(ioa_cfg, hostrcb);
2488 ipr_log_enhanced_array_error(ioa_cfg, hostrcb);
2491 ipr_log_enhanced_dual_ioa_error(ioa_cfg, hostrcb);
2494 ipr_log_fabric_error(ioa_cfg, hostrcb);
2497 ipr_log_sis64_device_error(ioa_cfg, hostrcb);
2500 ipr_log_sis64_config_error(ioa_cfg, hostrcb);
2504 ipr_log_sis64_array_error(ioa_cfg, hostrcb);
2507 ipr_log_sis64_fabric_error(ioa_cfg, hostrcb);
2510 ipr_log_sis64_service_required_error(ioa_cfg, hostrcb);
2515 ipr_log_generic_error(ioa_cfg, hostrcb);
2522 struct ipr_hostrcb *hostrcb;
2524 hostrcb = list_first_entry_or_null(&ioa->hostrcb_free_q,
2527 if (unlikely(!hostrcb)) {
2529 hostrcb = list_first_entry_or_null(&ioa->hostrcb_report_q,
2533 list_del_init(&hostrcb->queue);
2534 return hostrcb;
2551 struct ipr_hostrcb *hostrcb = ipr_cmd->u.hostrcb;
2556 fd_ioasc = be32_to_cpu(hostrcb->hcam.u.error64.fd_ioasc);
2558 fd_ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc);
2560 list_del_init(&hostrcb->queue);
2564 ipr_handle_log_data(ioa_cfg, hostrcb);
2573 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_report_q);
2575 hostrcb = ipr_get_free_hostrcb(ioa_cfg);
2577 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_LOG_DATA, hostrcb);
4096 struct ipr_hostrcb *hostrcb;
4101 hostrcb = list_first_entry_or_null(&ioa_cfg->hostrcb_report_q,
4103 if (!hostrcb) {
4107 ret = memory_read_from_buffer(buf, count, &off, &hostrcb->hcam,
4108 sizeof(hostrcb->hcam));
4120 struct ipr_hostrcb *hostrcb;
4124 hostrcb = list_first_entry_or_null(&ioa_cfg->hostrcb_report_q,
4126 if (!hostrcb) {
4131 /* Reclaim hostrcb before exit */
4132 list_move_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q);
6493 list_del_init(&ioa_cfg->hostrcb[j]->queue);
6497 ioa_cfg->hostrcb[j]);
6501 ioa_cfg->hostrcb[j]);
7734 struct ipr_hostrcb *hostrcb;
7765 hostrcb = list_entry(ioa_cfg->hostrcb_free_q.next,
7767 list_del_init(&hostrcb->queue);
7768 memset(&hostrcb->hcam, 0, sizeof(hostrcb->hcam));
7772 (__be32 *)&hostrcb->hcam,
7773 min(length, (int)sizeof(hostrcb->hcam)) / sizeof(__be32));
7776 ipr_handle_log_data(ioa_cfg, hostrcb);
7777 ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc);
7784 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q);
8763 ioa_cfg->hostrcb[i],
8990 ioa_cfg->hostrcb[i] = dma_alloc_coherent(&pdev->dev,
8995 if (!ioa_cfg->hostrcb[i])
8998 ioa_cfg->hostrcb[i]->hostrcb_dma =
9000 ioa_cfg->hostrcb[i]->ioa_cfg = ioa_cfg;
9001 list_add_tail(&ioa_cfg->hostrcb[i]->queue, &ioa_cfg->hostrcb_free_q);
9019 ioa_cfg->hostrcb[i],