Lines Matching refs:hostrcb

1046  * @hostrcb:	hostrcb struct
1050 * place the hostrcb on the free queue.
1056 struct ipr_hostrcb *hostrcb)
1064 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_pending_q);
1066 ipr_cmd->u.hostrcb = hostrcb;
1073 ioarcb->cmd_pkt.cdb[7] = (sizeof(hostrcb->hcam) >> 8) & 0xff;
1074 ioarcb->cmd_pkt.cdb[8] = sizeof(hostrcb->hcam) & 0xff;
1076 ipr_init_ioadl(ipr_cmd, hostrcb->hostrcb_dma,
1077 sizeof(hostrcb->hcam), IPR_IOADL_FLAGS_READ_LAST);
1088 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q);
1334 * @hostrcb: hostrcb
1340 struct ipr_hostrcb *hostrcb)
1349 cfgtew.u.cfgte64 = &hostrcb->hcam.u.ccn.u.cfgte64;
1352 cfgtew.u.cfgte = &hostrcb->hcam.u.ccn.u.cfgte;
1367 hostrcb);
1381 if (hostrcb->hcam.notify_type == IPR_HOST_RCB_NOTIF_TYPE_REM_ENTRY) {
1395 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_CONFIG_CHANGE, hostrcb);
1411 struct ipr_hostrcb *hostrcb = ipr_cmd->u.hostrcb;
1414 list_del_init(&hostrcb->queue);
1423 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_CONFIG_CHANGE, hostrcb);
1425 ipr_handle_config_change(ioa_cfg, hostrcb);
1451 * @hostrcb: hostrcb pointer
1457 static void ipr_log_vpd_compact(char *prefix, struct ipr_hostrcb *hostrcb,
1473 ipr_hcam_err(hostrcb, "%s VPID/SN: %s %s %s\n", prefix,
1503 * @hostrcb: hostrcb pointer
1509 static void ipr_log_ext_vpd_compact(char *prefix, struct ipr_hostrcb *hostrcb,
1512 ipr_log_vpd_compact(prefix, hostrcb, &vpd->vpd);
1513 ipr_hcam_err(hostrcb, "%s WWN: %08X%08X\n", prefix,
1534 * @hostrcb: hostrcb struct
1540 struct ipr_hostrcb *hostrcb)
1545 error = &hostrcb->hcam.u.error64.u.type_12_error;
1547 error = &hostrcb->hcam.u.error.u.type_12_error;
1570 * @hostrcb: hostrcb struct
1576 struct ipr_hostrcb *hostrcb)
1579 &hostrcb->hcam.u.error.u.type_02_error;
1602 * @hostrcb: hostrcb struct
1608 struct ipr_hostrcb *hostrcb)
1614 error = &hostrcb->hcam.u.error.u.type_13_error;
1642 * @hostrcb: hostrcb struct
1648 struct ipr_hostrcb *hostrcb)
1655 error = &hostrcb->hcam.u.error64.u.type_23_error;
1685 * @hostrcb: hostrcb struct
1691 struct ipr_hostrcb *hostrcb)
1697 error = &hostrcb->hcam.u.error.u.type_03_error;
1732 * @hostrcb: hostrcb struct
1738 struct ipr_hostrcb *hostrcb)
1745 error = &hostrcb->hcam.u.error.u.type_14_error;
1783 * @hostrcb: hostrcb struct
1789 struct ipr_hostrcb *hostrcb)
1796 error = &hostrcb->hcam.u.error.u.type_04_error;
1866 * @hostrcb: hostrcb struct
1872 struct ipr_hostrcb *hostrcb)
1877 error = &hostrcb->hcam.u.error64.u.type_17_error;
1879 error = &hostrcb->hcam.u.error.u.type_17_error;
1884 ipr_hcam_err(hostrcb, "%s [PRC: %08X]\n", error->failure_reason,
1885 be32_to_cpu(hostrcb->hcam.u.error.prc));
1886 ipr_log_ext_vpd_compact("Remote IOA", hostrcb, &error->vpd);
1888 be32_to_cpu(hostrcb->hcam.length) -
1896 * @hostrcb: hostrcb struct
1902 struct ipr_hostrcb *hostrcb)
1906 error = &hostrcb->hcam.u.error.u.type_07_error;
1910 ipr_hcam_err(hostrcb, "%s [PRC: %08X]\n", error->failure_reason,
1911 be32_to_cpu(hostrcb->hcam.u.error.prc));
1912 ipr_log_vpd_compact("Remote IOA", hostrcb, &error->vpd);
1914 be32_to_cpu(hostrcb->hcam.length) -
1940 * @hostrcb: hostrcb struct
1946 static void ipr_log_fabric_path(struct ipr_hostrcb *hostrcb,
1963 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d\n",
1967 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Phy=%d\n",
1971 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Cascade=%d\n",
1975 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Cascade=%d, Phy=%d\n",
1989 * @hostrcb: hostrcb struct
1995 static void ipr_log64_fabric_path(struct ipr_hostrcb *hostrcb,
2012 ipr_hcam_err(hostrcb, "%s %s: Resource Path=%s\n",
2014 ipr_format_res_path(hostrcb->ioa_cfg,
2022 ipr_format_res_path(hostrcb->ioa_cfg, fabric->res_path,
2069 * @hostrcb: hostrcb struct
2075 static void ipr_log_path_elem(struct ipr_hostrcb *hostrcb,
2094 ipr_hcam_err(hostrcb, "%s %s: Phy=%d, Link rate=%s, WWN=%08X%08X\n",
2100 ipr_hcam_err(hostrcb, "%s %s: Link rate=%s, WWN=%08X%08X\n",
2105 ipr_hcam_err(hostrcb, "%s %s: Phy=%d, Link rate=%s, "
2111 ipr_hcam_err(hostrcb, "%s %s: Cascade=%d, Link rate=%s, "
2117 ipr_hcam_err(hostrcb, "%s %s: Cascade=%d, Phy=%d, Link rate=%s "
2128 ipr_hcam_err(hostrcb, "Path element=%02X: Cascade=%d Phy=%d Link rate=%s "
2136 * @hostrcb: hostrcb struct
2142 static void ipr_log64_path_elem(struct ipr_hostrcb *hostrcb,
2162 ipr_hcam_err(hostrcb, "%s %s: Resource Path=%s, Link rate=%s, WWN=%08X%08X\n",
2164 ipr_format_res_path(hostrcb->ioa_cfg,
2172 ipr_hcam_err(hostrcb, "Path element=%02X: Resource Path=%s, Link rate=%s "
2174 ipr_format_res_path(hostrcb->ioa_cfg,
2183 * @hostrcb: hostrcb struct
2189 struct ipr_hostrcb *hostrcb)
2196 error = &hostrcb->hcam.u.error.u.type_20_error;
2198 ipr_hcam_err(hostrcb, "%s\n", error->failure_reason);
2200 add_len = be32_to_cpu(hostrcb->hcam.length) -
2205 ipr_log_fabric_path(hostrcb, fabric);
2207 ipr_log_path_elem(hostrcb, cfg);
2220 * @hostrcb: hostrcb struct
2226 struct ipr_hostrcb *hostrcb)
2234 error = &hostrcb->hcam.u.error64.u.type_24_error;
2276 * @hostrcb: hostrcb struct
2282 struct ipr_hostrcb *hostrcb)
2289 error = &hostrcb->hcam.u.error64.u.type_30_error;
2292 ipr_hcam_err(hostrcb, "%s\n", error->failure_reason);
2294 add_len = be32_to_cpu(hostrcb->hcam.length) -
2299 ipr_log64_fabric_path(hostrcb, fabric);
2301 ipr_log64_path_elem(hostrcb, cfg);
2314 * @hostrcb: hostrcb struct
2320 struct ipr_hostrcb *hostrcb)
2324 error = &hostrcb->hcam.u.error64.u.type_41_error;
2329 be32_to_cpu(hostrcb->hcam.length) -
2336 * @hostrcb: hostrcb struct
2342 struct ipr_hostrcb *hostrcb)
2344 ipr_log_hex_data(ioa_cfg, hostrcb->hcam.u.raw.data,
2345 be32_to_cpu(hostrcb->hcam.length));
2351 * @hostrcb: hostrcb struct
2357 struct ipr_hostrcb *hostrcb)
2362 error = &hostrcb->hcam.u.error64.u.type_21_error;
2409 * @hostrcb: hostrcb struct
2417 struct ipr_hostrcb *hostrcb)
2423 if (hostrcb->hcam.notify_type != IPR_HOST_RCB_NOTIF_TYPE_ERROR_LOG_ENTRY)
2426 if (hostrcb->hcam.notifications_lost == IPR_HOST_RCB_NOTIFICATIONS_LOST)
2430 ioasc = be32_to_cpu(hostrcb->hcam.u.error64.fd_ioasc);
2432 ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc);
2438 hostrcb->hcam.u.error.fd_res_addr.bus);
2447 hostrcb->hcam.overlay_id == IPR_HOST_RCB_OVERLAY_ID_21) {
2448 error = &hostrcb->hcam.u.error64.u.type_21_error;
2455 ipr_hcam_err(hostrcb, "%s\n", ipr_error_table[error_index].error);
2462 if (be32_to_cpu(hostrcb->hcam.length) > sizeof(hostrcb->hcam.u.raw))
2463 hostrcb->hcam.length = cpu_to_be32(sizeof(hostrcb->hcam.u.raw));
2465 switch (hostrcb->hcam.overlay_id) {
2467 ipr_log_cache_error(ioa_cfg, hostrcb);
2470 ipr_log_config_error(ioa_cfg, hostrcb);
2474 ipr_log_array_error(ioa_cfg, hostrcb);
2477 ipr_log_dual_ioa_error(ioa_cfg, hostrcb);
2480 ipr_log_enhanced_cache_error(ioa_cfg, hostrcb);
2483 ipr_log_enhanced_config_error(ioa_cfg, hostrcb);
2487 ipr_log_enhanced_array_error(ioa_cfg, hostrcb);
2490 ipr_log_enhanced_dual_ioa_error(ioa_cfg, hostrcb);
2493 ipr_log_fabric_error(ioa_cfg, hostrcb);
2496 ipr_log_sis64_device_error(ioa_cfg, hostrcb);
2499 ipr_log_sis64_config_error(ioa_cfg, hostrcb);
2503 ipr_log_sis64_array_error(ioa_cfg, hostrcb);
2506 ipr_log_sis64_fabric_error(ioa_cfg, hostrcb);
2509 ipr_log_sis64_service_required_error(ioa_cfg, hostrcb);
2514 ipr_log_generic_error(ioa_cfg, hostrcb);
2521 struct ipr_hostrcb *hostrcb;
2523 hostrcb = list_first_entry_or_null(&ioa->hostrcb_free_q,
2526 if (unlikely(!hostrcb)) {
2528 hostrcb = list_first_entry_or_null(&ioa->hostrcb_report_q,
2532 list_del_init(&hostrcb->queue);
2533 return hostrcb;
2550 struct ipr_hostrcb *hostrcb = ipr_cmd->u.hostrcb;
2555 fd_ioasc = be32_to_cpu(hostrcb->hcam.u.error64.fd_ioasc);
2557 fd_ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc);
2559 list_del_init(&hostrcb->queue);
2563 ipr_handle_log_data(ioa_cfg, hostrcb);
2572 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_report_q);
2574 hostrcb = ipr_get_free_hostrcb(ioa_cfg);
2576 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_LOG_DATA, hostrcb);
4095 struct ipr_hostrcb *hostrcb;
4100 hostrcb = list_first_entry_or_null(&ioa_cfg->hostrcb_report_q,
4102 if (!hostrcb) {
4106 ret = memory_read_from_buffer(buf, count, &off, &hostrcb->hcam,
4107 sizeof(hostrcb->hcam));
4119 struct ipr_hostrcb *hostrcb;
4123 hostrcb = list_first_entry_or_null(&ioa_cfg->hostrcb_report_q,
4125 if (!hostrcb) {
4130 /* Reclaim hostrcb before exit */
4131 list_move_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q);
6529 list_del_init(&ioa_cfg->hostrcb[j]->queue);
6533 ioa_cfg->hostrcb[j]);
6537 ioa_cfg->hostrcb[j]);
7783 struct ipr_hostrcb *hostrcb;
7814 hostrcb = list_entry(ioa_cfg->hostrcb_free_q.next,
7816 list_del_init(&hostrcb->queue);
7817 memset(&hostrcb->hcam, 0, sizeof(hostrcb->hcam));
7821 (__be32 *)&hostrcb->hcam,
7822 min(length, (int)sizeof(hostrcb->hcam)) / sizeof(__be32));
7825 ipr_handle_log_data(ioa_cfg, hostrcb);
7826 ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc);
7833 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q);
8812 ioa_cfg->hostrcb[i],
9039 ioa_cfg->hostrcb[i] = dma_alloc_coherent(&pdev->dev,
9044 if (!ioa_cfg->hostrcb[i])
9047 ioa_cfg->hostrcb[i]->hostrcb_dma =
9049 ioa_cfg->hostrcb[i]->ioa_cfg = ioa_cfg;
9050 list_add_tail(&ioa_cfg->hostrcb[i]->queue, &ioa_cfg->hostrcb_free_q);
9068 ioa_cfg->hostrcb[i],