Lines Matching refs:hostrcb

1099  * @hostrcb:	hostrcb struct
1103 * place the hostrcb on the free queue.
1109 struct ipr_hostrcb *hostrcb)
1117 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_pending_q);
1119 ipr_cmd->u.hostrcb = hostrcb;
1126 ioarcb->cmd_pkt.cdb[7] = (sizeof(hostrcb->hcam) >> 8) & 0xff;
1127 ioarcb->cmd_pkt.cdb[8] = sizeof(hostrcb->hcam) & 0xff;
1129 ipr_init_ioadl(ipr_cmd, hostrcb->hostrcb_dma,
1130 sizeof(hostrcb->hcam), IPR_IOADL_FLAGS_READ_LAST);
1141 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q);
1423 * @hostrcb: hostrcb
1429 struct ipr_hostrcb *hostrcb)
1438 cfgtew.u.cfgte64 = &hostrcb->hcam.u.ccn.u.cfgte64;
1441 cfgtew.u.cfgte = &hostrcb->hcam.u.ccn.u.cfgte;
1456 hostrcb);
1470 if (hostrcb->hcam.notify_type == IPR_HOST_RCB_NOTIF_TYPE_REM_ENTRY) {
1484 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_CONFIG_CHANGE, hostrcb);
1500 struct ipr_hostrcb *hostrcb = ipr_cmd->u.hostrcb;
1503 list_del_init(&hostrcb->queue);
1512 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_CONFIG_CHANGE, hostrcb);
1514 ipr_handle_config_change(ioa_cfg, hostrcb);
1540 * @hostrcb: hostrcb pointer
1546 static void ipr_log_vpd_compact(char *prefix, struct ipr_hostrcb *hostrcb,
1562 ipr_hcam_err(hostrcb, "%s VPID/SN: %s %s %s\n", prefix,
1592 * @hostrcb: hostrcb pointer
1598 static void ipr_log_ext_vpd_compact(char *prefix, struct ipr_hostrcb *hostrcb,
1601 ipr_log_vpd_compact(prefix, hostrcb, &vpd->vpd);
1602 ipr_hcam_err(hostrcb, "%s WWN: %08X%08X\n", prefix,
1623 * @hostrcb: hostrcb struct
1629 struct ipr_hostrcb *hostrcb)
1634 error = &hostrcb->hcam.u.error64.u.type_12_error;
1636 error = &hostrcb->hcam.u.error.u.type_12_error;
1659 * @hostrcb: hostrcb struct
1665 struct ipr_hostrcb *hostrcb)
1668 &hostrcb->hcam.u.error.u.type_02_error;
1691 * @hostrcb: hostrcb struct
1697 struct ipr_hostrcb *hostrcb)
1703 error = &hostrcb->hcam.u.error.u.type_13_error;
1731 * @hostrcb: hostrcb struct
1737 struct ipr_hostrcb *hostrcb)
1744 error = &hostrcb->hcam.u.error64.u.type_23_error;
1774 * @hostrcb: hostrcb struct
1780 struct ipr_hostrcb *hostrcb)
1786 error = &hostrcb->hcam.u.error.u.type_03_error;
1821 * @hostrcb: hostrcb struct
1827 struct ipr_hostrcb *hostrcb)
1834 error = &hostrcb->hcam.u.error.u.type_14_error;
1872 * @hostrcb: hostrcb struct
1878 struct ipr_hostrcb *hostrcb)
1885 error = &hostrcb->hcam.u.error.u.type_04_error;
1955 * @hostrcb: hostrcb struct
1961 struct ipr_hostrcb *hostrcb)
1966 error = &hostrcb->hcam.u.error64.u.type_17_error;
1968 error = &hostrcb->hcam.u.error.u.type_17_error;
1973 ipr_hcam_err(hostrcb, "%s [PRC: %08X]\n", error->failure_reason,
1974 be32_to_cpu(hostrcb->hcam.u.error.prc));
1975 ipr_log_ext_vpd_compact("Remote IOA", hostrcb, &error->vpd);
1977 be32_to_cpu(hostrcb->hcam.length) -
1985 * @hostrcb: hostrcb struct
1991 struct ipr_hostrcb *hostrcb)
1995 error = &hostrcb->hcam.u.error.u.type_07_error;
1999 ipr_hcam_err(hostrcb, "%s [PRC: %08X]\n", error->failure_reason,
2000 be32_to_cpu(hostrcb->hcam.u.error.prc));
2001 ipr_log_vpd_compact("Remote IOA", hostrcb, &error->vpd);
2003 be32_to_cpu(hostrcb->hcam.length) -
2029 * @hostrcb: hostrcb struct
2035 static void ipr_log_fabric_path(struct ipr_hostrcb *hostrcb,
2052 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d\n",
2056 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Phy=%d\n",
2060 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Cascade=%d\n",
2064 ipr_hcam_err(hostrcb, "%s %s: IOA Port=%d, Cascade=%d, Phy=%d\n",
2078 * @hostrcb: hostrcb struct
2084 static void ipr_log64_fabric_path(struct ipr_hostrcb *hostrcb,
2101 ipr_hcam_err(hostrcb, "%s %s: Resource Path=%s\n",
2103 ipr_format_res_path(hostrcb->ioa_cfg,
2111 ipr_format_res_path(hostrcb->ioa_cfg, fabric->res_path,
2158 * @hostrcb: hostrcb struct
2164 static void ipr_log_path_elem(struct ipr_hostrcb *hostrcb,
2183 ipr_hcam_err(hostrcb, "%s %s: Phy=%d, Link rate=%s, WWN=%08X%08X\n",
2189 ipr_hcam_err(hostrcb, "%s %s: Link rate=%s, WWN=%08X%08X\n",
2194 ipr_hcam_err(hostrcb, "%s %s: Phy=%d, Link rate=%s, "
2200 ipr_hcam_err(hostrcb, "%s %s: Cascade=%d, Link rate=%s, "
2206 ipr_hcam_err(hostrcb, "%s %s: Cascade=%d, Phy=%d, Link rate=%s "
2217 ipr_hcam_err(hostrcb, "Path element=%02X: Cascade=%d Phy=%d Link rate=%s "
2225 * @hostrcb: hostrcb struct
2231 static void ipr_log64_path_elem(struct ipr_hostrcb *hostrcb,
2251 ipr_hcam_err(hostrcb, "%s %s: Resource Path=%s, Link rate=%s, WWN=%08X%08X\n",
2253 ipr_format_res_path(hostrcb->ioa_cfg,
2261 ipr_hcam_err(hostrcb, "Path element=%02X: Resource Path=%s, Link rate=%s "
2263 ipr_format_res_path(hostrcb->ioa_cfg,
2272 * @hostrcb: hostrcb struct
2278 struct ipr_hostrcb *hostrcb)
2285 error = &hostrcb->hcam.u.error.u.type_20_error;
2287 ipr_hcam_err(hostrcb, "%s\n", error->failure_reason);
2289 add_len = be32_to_cpu(hostrcb->hcam.length) -
2294 ipr_log_fabric_path(hostrcb, fabric);
2296 ipr_log_path_elem(hostrcb, cfg);
2309 * @hostrcb: hostrcb struct
2315 struct ipr_hostrcb *hostrcb)
2323 error = &hostrcb->hcam.u.error64.u.type_24_error;
2365 * @hostrcb: hostrcb struct
2371 struct ipr_hostrcb *hostrcb)
2378 error = &hostrcb->hcam.u.error64.u.type_30_error;
2381 ipr_hcam_err(hostrcb, "%s\n", error->failure_reason);
2383 add_len = be32_to_cpu(hostrcb->hcam.length) -
2388 ipr_log64_fabric_path(hostrcb, fabric);
2390 ipr_log64_path_elem(hostrcb, cfg);
2403 * @hostrcb: hostrcb struct
2409 struct ipr_hostrcb *hostrcb)
2413 error = &hostrcb->hcam.u.error64.u.type_41_error;
2418 be32_to_cpu(hostrcb->hcam.length) -
2425 * @hostrcb: hostrcb struct
2431 struct ipr_hostrcb *hostrcb)
2433 ipr_log_hex_data(ioa_cfg, hostrcb->hcam.u.raw.data,
2434 be32_to_cpu(hostrcb->hcam.length));
2440 * @hostrcb: hostrcb struct
2446 struct ipr_hostrcb *hostrcb)
2451 error = &hostrcb->hcam.u.error64.u.type_21_error;
2498 * @hostrcb: hostrcb struct
2506 struct ipr_hostrcb *hostrcb)
2512 if (hostrcb->hcam.notify_type != IPR_HOST_RCB_NOTIF_TYPE_ERROR_LOG_ENTRY)
2515 if (hostrcb->hcam.notifications_lost == IPR_HOST_RCB_NOTIFICATIONS_LOST)
2519 ioasc = be32_to_cpu(hostrcb->hcam.u.error64.fd_ioasc);
2521 ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc);
2527 hostrcb->hcam.u.error.fd_res_addr.bus);
2536 hostrcb->hcam.overlay_id == IPR_HOST_RCB_OVERLAY_ID_21) {
2537 error = &hostrcb->hcam.u.error64.u.type_21_error;
2544 ipr_hcam_err(hostrcb, "%s\n", ipr_error_table[error_index].error);
2551 if (be32_to_cpu(hostrcb->hcam.length) > sizeof(hostrcb->hcam.u.raw))
2552 hostrcb->hcam.length = cpu_to_be32(sizeof(hostrcb->hcam.u.raw));
2554 switch (hostrcb->hcam.overlay_id) {
2556 ipr_log_cache_error(ioa_cfg, hostrcb);
2559 ipr_log_config_error(ioa_cfg, hostrcb);
2563 ipr_log_array_error(ioa_cfg, hostrcb);
2566 ipr_log_dual_ioa_error(ioa_cfg, hostrcb);
2569 ipr_log_enhanced_cache_error(ioa_cfg, hostrcb);
2572 ipr_log_enhanced_config_error(ioa_cfg, hostrcb);
2576 ipr_log_enhanced_array_error(ioa_cfg, hostrcb);
2579 ipr_log_enhanced_dual_ioa_error(ioa_cfg, hostrcb);
2582 ipr_log_fabric_error(ioa_cfg, hostrcb);
2585 ipr_log_sis64_device_error(ioa_cfg, hostrcb);
2588 ipr_log_sis64_config_error(ioa_cfg, hostrcb);
2592 ipr_log_sis64_array_error(ioa_cfg, hostrcb);
2595 ipr_log_sis64_fabric_error(ioa_cfg, hostrcb);
2598 ipr_log_sis64_service_required_error(ioa_cfg, hostrcb);
2603 ipr_log_generic_error(ioa_cfg, hostrcb);
2610 struct ipr_hostrcb *hostrcb;
2612 hostrcb = list_first_entry_or_null(&ioa->hostrcb_free_q,
2615 if (unlikely(!hostrcb)) {
2617 hostrcb = list_first_entry_or_null(&ioa->hostrcb_report_q,
2621 list_del_init(&hostrcb->queue);
2622 return hostrcb;
2639 struct ipr_hostrcb *hostrcb = ipr_cmd->u.hostrcb;
2644 fd_ioasc = be32_to_cpu(hostrcb->hcam.u.error64.fd_ioasc);
2646 fd_ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc);
2648 list_del_init(&hostrcb->queue);
2652 ipr_handle_log_data(ioa_cfg, hostrcb);
2661 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_report_q);
2663 hostrcb = ipr_get_free_hostrcb(ioa_cfg);
2665 ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_LOG_DATA, hostrcb);
4189 struct ipr_hostrcb *hostrcb;
4194 hostrcb = list_first_entry_or_null(&ioa_cfg->hostrcb_report_q,
4196 if (!hostrcb) {
4200 ret = memory_read_from_buffer(buf, count, &off, &hostrcb->hcam,
4201 sizeof(hostrcb->hcam));
4213 struct ipr_hostrcb *hostrcb;
4217 hostrcb = list_first_entry_or_null(&ioa_cfg->hostrcb_report_q,
4219 if (!hostrcb) {
4224 /* Reclaim hostrcb before exit */
4225 list_move_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q);
7302 list_del_init(&ioa_cfg->hostrcb[j]->queue);
7306 ioa_cfg->hostrcb[j]);
7310 ioa_cfg->hostrcb[j]);
8556 struct ipr_hostrcb *hostrcb;
8587 hostrcb = list_entry(ioa_cfg->hostrcb_free_q.next,
8589 list_del_init(&hostrcb->queue);
8590 memset(&hostrcb->hcam, 0, sizeof(hostrcb->hcam));
8594 (__be32 *)&hostrcb->hcam,
8595 min(length, (int)sizeof(hostrcb->hcam)) / sizeof(__be32));
8598 ipr_handle_log_data(ioa_cfg, hostrcb);
8599 ioasc = be32_to_cpu(hostrcb->hcam.u.error.fd_ioasc);
8606 list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q);
9588 ioa_cfg->hostrcb[i],
9815 ioa_cfg->hostrcb[i] = dma_alloc_coherent(&pdev->dev,
9820 if (!ioa_cfg->hostrcb[i])
9823 ioa_cfg->hostrcb[i]->hostrcb_dma =
9825 ioa_cfg->hostrcb[i]->ioa_cfg = ioa_cfg;
9826 list_add_tail(&ioa_cfg->hostrcb[i]->queue, &ioa_cfg->hostrcb_free_q);
9844 ioa_cfg->hostrcb[i],