Lines Matching defs:hostrcb

949  * @hostrcb:	hostrcb struct
953 * place the hostrcb on the free queue.
959 struct ipr_hostrcb *hostrcb)
967 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_pending_q);
969 ipr_cmd->u.hostrcb = hostrcb;
976 ioarcb->cmd_pkt.cdb[7] = (sizeof(hostrcb->hcam) >> 8) & 0xff;
977 ioarcb->cmd_pkt.cdb[8] = sizeof(hostrcb->hcam) & 0xff;
979 ipr_init_ioadl(ipr_cmd, hostrcb->hostrcb_dma,
980 sizeof(hostrcb->hcam), IPR_IOADL_FLAGS_READ_LAST);
991 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q);
1250 * @hostrcb: hostrcb
1256 struct ipr_hostrcb *hostrcb)
1265 cfgtew.u.cfgte64 = &hostrcb->hcam.u.ccn.u.cfgte64;
1268 cfgtew.u.cfgte = &hostrcb->hcam.u.ccn.u.cfgte;
1283 hostrcb);
1297 if (hostrcb->hcam.notify_type == IPR_HOST_RCB_NOTIF_TYPE_REM_ENTRY) {
1313 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_CONFIG_CHANGE, hostrcb);
1329 struct ipr_hostrcb *hostrcb = ipr_cmd->u.hostrcb;
1332 list_del(&hostrcb->queue);
1340 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_CONFIG_CHANGE, hostrcb);
1342 ipr_handle_config_change(ioa_cfg, hostrcb);
1369 * @hostrcb: hostrcb pointer
1375 static void ipr_log_vpd_compact(char *prefix, struct ipr_hostrcb *hostrcb,
1390 ipr_hcam_err(hostrcb, "%s VPID/SN: %s\n", prefix, buffer);
1419 * @hostrcb: hostrcb pointer
1425 static void ipr_log_ext_vpd_compact(char *prefix, struct ipr_hostrcb *hostrcb,
1428 ipr_log_vpd_compact(prefix, hostrcb, &vpd->vpd);
1429 ipr_hcam_err(hostrcb, "%s WWN: %08X%08X\n", prefix,
1450 * @hostrcb: hostrcb struct
1456 struct ipr_hostrcb *hostrcb)
1461 error = &hostrcb->hcam.u.error64.u.type_12_error;
1463 error = &hostrcb->hcam.u.error.u.type_12_error;
1486 * @hostrcb: hostrcb struct
1492 struct ipr_hostrcb *hostrcb)
1495 &hostrcb->hcam.u.error.u.type_02_error;
1518 * @hostrcb: hostrcb struct
1524 struct ipr_hostrcb *hostrcb)
1530 error = &hostrcb->hcam.u.error.u.type_13_error;
1558 * @hostrcb: hostrcb struct
1564 struct ipr_hostrcb *hostrcb)
1571 error = &hostrcb->hcam.u.error64.u.type_23_error;
1601 * @hostrcb: hostrcb struct
1607 struct ipr_hostrcb *hostrcb)
1613 error = &hostrcb->hcam.u.error.u.type_03_error;
1648 * @hostrcb: hostrcb struct
1654 struct ipr_hostrcb *hostrcb)
1661 error = &hostrcb->hcam.u.error.u.type_14_error;
1699 * @hostrcb: hostrcb struct
1705 struct ipr_hostrcb *hostrcb)
1712 error = &hostrcb->hcam.u.error.u.type_04_error;
1782 * @hostrcb: hostrcb struct
1788 struct ipr_hostrcb *hostrcb)
1793 error = &hostrcb->hcam.u.error64.u.type_17_error;
1795 error = &hostrcb->hcam.u.error.u.type_17_error;
1800 ipr_hcam_err(hostrcb, "%s [PRC: %08X]\n", error->failure_reason,
1801 be32_to_cpu(hostrcb->hcam.u.error.prc));
1802 ipr_log_ext_vpd_compact("Remote IOA", hostrcb, &error->vpd);
1804 be32_to_cpu(hostrcb->hcam.length) -
1812 * @hostrcb: hostrcb struct
1818 struct ipr_hostrcb *hostrcb)
1822 error = &hostrcb->hcam.u.error.u.type_07_error;
1826 ipr_hcam_err(hostrcb, "%s [PRC: %08X]\n", error->failure_reason,
1827 be32_to_cpu(hostrcb->hcam.u.error.prc));
1828 ipr_log_vpd_compact("Remote IOA", hostrcb, &error->vpd);
1830 be32_to_cpu(hostrcb->hcam.length) -
1856 * @hostrcb: hostrcb struct
1862 static void ipr_log_fabric_path(struct ipr_hostrcb *hostrcb,
1879 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d\n",
1883 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Phy=%d\n",
1887 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Cascade=%d\n",
1891 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Cascade=%d, Phy=%d\n",
1905 * @hostrcb: hostrcb struct
1911 static void ipr_log64_fabric_path(struct ipr_hostrcb *hostrcb,
1928 ipr_hcam_err(hostrcb, "%s %s: Resource Path=%s\n",
1983 * @hostrcb: hostrcb struct
1989 static void ipr_log_path_elem(struct ipr_hostrcb *hostrcb,
2008 ipr_hcam_err(hostrcb, "%s %s: Phy=%d, Link rate=%s, WWN=%08X%08X\n",
2014 ipr_hcam_err(hostrcb, "%s %s: Link rate=%s, WWN=%08X%08X\n",
2019 ipr_hcam_err(hostrcb, "%s %s: Phy=%d, Link rate=%s, "
2025 ipr_hcam_err(hostrcb, "%s %s: Cascade=%d, Link rate=%s, "
2031 ipr_hcam_err(hostrcb, "%s %s: Cascade=%d, Phy=%d, Link rate=%s "
2042 ipr_hcam_err(hostrcb, "Path element=%02X: Cascade=%d Phy=%d Link rate=%s "
2050 * @hostrcb: hostrcb struct
2056 static void ipr_log64_path_elem(struct ipr_hostrcb *hostrcb,
2076 ipr_hcam_err(hostrcb, "%s %s: Resource Path=%s, Link rate=%s, WWN=%08X%08X\n",
2085 ipr_hcam_err(hostrcb, "Path element=%02X: Resource Path=%s, Link rate=%s "
2095 * @hostrcb: hostrcb struct
2101 struct ipr_hostrcb *hostrcb)
2108 error = &hostrcb->hcam.u.error.u.type_20_error;
2110 ipr_hcam_err(hostrcb, "%s\n", error->failure_reason);
2112 add_len = be32_to_cpu(hostrcb->hcam.length) -
2117 ipr_log_fabric_path(hostrcb, fabric);
2119 ipr_log_path_elem(hostrcb, cfg);
2132 * @hostrcb: hostrcb struct
2138 struct ipr_hostrcb *hostrcb)
2146 error = &hostrcb->hcam.u.error64.u.type_24_error;
2186 * @hostrcb: hostrcb struct
2192 struct ipr_hostrcb *hostrcb)
2199 error = &hostrcb->hcam.u.error64.u.type_30_error;
2202 ipr_hcam_err(hostrcb, "%s\n", error->failure_reason);
2204 add_len = be32_to_cpu(hostrcb->hcam.length) -
2209 ipr_log64_fabric_path(hostrcb, fabric);
2211 ipr_log64_path_elem(hostrcb, cfg);
2224 * @hostrcb: hostrcb struct
2230 struct ipr_hostrcb *hostrcb)
2232 ipr_log_hex_data(ioa_cfg, hostrcb->hcam.u.raw.data,
2233 be32_to_cpu(hostrcb->hcam.length));
2261 * @hostrcb: hostrcb struct
2269 struct ipr_hostrcb *hostrcb)
2274 if (hostrcb->hcam.notify_type != IPR_HOST_RCB_NOTIF_TYPE_ERROR_LOG_ENTRY)
2277 if (hostrcb->hcam.notifications_lost == IPR_HOST_RCB_NOTIFICATIONS_LOST)
2281 ioasc = be32_to_cpu(hostrcb->hcam.u.error64.fd_ioasc);
2283 ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc);
2289 hostrcb->hcam.u.error.fd_res_addr.bus);
2297 ipr_hcam_err(hostrcb, "%s\n", ipr_error_table[error_index].error);
2304 if (be32_to_cpu(hostrcb->hcam.length) > sizeof(hostrcb->hcam.u.raw))
2305 hostrcb->hcam.length = cpu_to_be32(sizeof(hostrcb->hcam.u.raw));
2307 switch (hostrcb->hcam.overlay_id) {
2309 ipr_log_cache_error(ioa_cfg, hostrcb);
2312 ipr_log_config_error(ioa_cfg, hostrcb);
2316 ipr_log_array_error(ioa_cfg, hostrcb);
2319 ipr_log_dual_ioa_error(ioa_cfg, hostrcb);
2322 ipr_log_enhanced_cache_error(ioa_cfg, hostrcb);
2325 ipr_log_enhanced_config_error(ioa_cfg, hostrcb);
2329 ipr_log_enhanced_array_error(ioa_cfg, hostrcb);
2332 ipr_log_enhanced_dual_ioa_error(ioa_cfg, hostrcb);
2335 ipr_log_fabric_error(ioa_cfg, hostrcb);
2338 ipr_log_sis64_config_error(ioa_cfg, hostrcb);
2342 ipr_log_sis64_array_error(ioa_cfg, hostrcb);
2345 ipr_log_sis64_fabric_error(ioa_cfg, hostrcb);
2350 ipr_log_generic_error(ioa_cfg, hostrcb);
2369 struct ipr_hostrcb *hostrcb = ipr_cmd->u.hostrcb;
2374 fd_ioasc = be32_to_cpu(hostrcb->hcam.u.error64.fd_ioasc);
2376 fd_ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc);
2378 list_del(&hostrcb->queue);
2382 ipr_handle_log_data(ioa_cfg, hostrcb);
2390 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_LOG_DATA, hostrcb);
6387 struct ipr_hostrcb *hostrcb, *temp;
6404 list_for_each_entry_safe(hostrcb, temp, &ioa_cfg->hostrcb_free_q, queue) {
6405 list_del(&hostrcb->queue);
6407 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_LOG_DATA, hostrcb);
6409 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_CONFIG_CHANGE, hostrcb);
7505 struct ipr_hostrcb *hostrcb;
7536 hostrcb = list_entry(ioa_cfg->hostrcb_free_q.next,
7538 list_del(&hostrcb->queue);
7539 memset(&hostrcb->hcam, 0, sizeof(hostrcb->hcam));
7543 (__be32 *)&hostrcb->hcam,
7544 min(length, (int)sizeof(hostrcb->hcam)) / sizeof(__be32));
7547 ipr_handle_log_data(ioa_cfg, hostrcb);
7548 ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc);
7555 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q);
8319 ioa_cfg->hostrcb[i],
8482 ioa_cfg->hostrcb[i] = pci_alloc_consistent(ioa_cfg->pdev,
8486 if (!ioa_cfg->hostrcb[i])
8489 ioa_cfg->hostrcb[i]->hostrcb_dma =
8491 ioa_cfg->hostrcb[i]->ioa_cfg = ioa_cfg;
8492 list_add_tail(&ioa_cfg->hostrcb[i]->queue, &ioa_cfg->hostrcb_free_q);
8509 ioa_cfg->hostrcb[i],