H A D | mptctl.c | 629 MPT_ADAPTER *iocp = NULL; __mptctl_ioctl() local 640 * pointer (iocp) __mptctl_ioctl() 643 if (((iocnum = mpt_verify_adapter(iocnumX, &iocp)) < 0) || __mptctl_ioctl() 644 (iocp == NULL)) __mptctl_ioctl() 647 if (!iocp->active) { __mptctl_ioctl() 677 if ((ret = mptctl_syscall_down(iocp, nonblock)) != 0) __mptctl_ioctl() 693 mutex_unlock(&iocp->ioctl_cmds.mutex); __mptctl_ioctl() 712 MPT_ADAPTER *iocp; mptctl_do_reset() local 721 if (mpt_verify_adapter(krinfo.hdr.iocnum, &iocp) < 0) { mptctl_do_reset() 727 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "mptctl_do_reset called.\n", mptctl_do_reset() 728 iocp->name)); mptctl_do_reset() 730 if (mpt_HardResetHandler(iocp, CAN_SLEEP) != 0) { mptctl_do_reset() 732 iocp->name, __FILE__, __LINE__); mptctl_do_reset() 791 MPT_ADAPTER *iocp; mptctl_do_fw_download() local 811 if (mpt_verify_adapter(ioc, &iocp) < 0) { mptctl_do_fw_download() 819 if ((mf = mpt_get_msg_frame(mptctl_id, iocp)) == NULL) mptctl_do_fw_download() 823 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT mptctl_do_fw_download() 824 "mptctl_do_fwdl called. mptctl_id = %xh.\n", iocp->name, mptctl_id)); mptctl_do_fw_download() 825 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "DbG: kfwdl.bufp = %p\n", mptctl_do_fw_download() 826 iocp->name, ufwbuf)); mptctl_do_fw_download() 827 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "DbG: kfwdl.fwlen = %d\n", mptctl_do_fw_download() 828 iocp->name, (int)fwlen)); mptctl_do_fw_download() 829 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "DbG: kfwdl.ioc = %04xh\n", mptctl_do_fw_download() 830 iocp->name, ioc)); mptctl_do_fw_download() 844 if (iocp->facts.MsgVersion >= MPI_VERSION_01_05) mptctl_do_fw_download() 879 &numfrags, &buflist, &sgl_dma, iocp)) == NULL) mptctl_do_fw_download() 893 maxfrags = (iocp->req_sz - sizeof(MPIHeader_t) - mptctl_do_fw_download() 895 / iocp->SGE_size; mptctl_do_fw_download() 901 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "DbG: sgl buffer = %p, sgfrags = %d\n", mptctl_do_fw_download() 902 iocp->name, sgl, numfrags)); mptctl_do_fw_download() 923 iocp->add_sge(sgOut, sgIn->FlagsLength, sgIn->Address); mptctl_do_fw_download() 928 iocp->name, __FILE__, __LINE__, n, ufwbuf); mptctl_do_fw_download() 935 sgOut += iocp->SGE_size; mptctl_do_fw_download() 938 DBG_DUMP_FW_DOWNLOAD(iocp, (u32 *)mf, numfrags); mptctl_do_fw_download() 944 SET_MGMT_MSG_CONTEXT(iocp->ioctl_cmds.msg_context, dlmsg->MsgContext); mptctl_do_fw_download() 945 INITIALIZE_MGMT_STATUS(iocp->ioctl_cmds.status) mptctl_do_fw_download() 946 mpt_put_msg_frame(mptctl_id, iocp, mf); mptctl_do_fw_download() 950 timeleft = wait_for_completion_timeout(&iocp->ioctl_cmds.done, HZ*60); mptctl_do_fw_download() 951 if (!(iocp->ioctl_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) { mptctl_do_fw_download() 953 printk(MYIOC_s_WARN_FMT "%s: failed\n", iocp->name, __func__); mptctl_do_fw_download() 954 if (iocp->ioctl_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET) { mptctl_do_fw_download() 955 mpt_free_msg_frame(iocp, mf); mptctl_do_fw_download() 961 iocp->name, mpt_GetIocState(iocp, 0)); mptctl_do_fw_download() 962 mptctl_timeout_expired(iocp, mf); mptctl_do_fw_download() 968 if (!(iocp->ioctl_cmds.status & MPT_MGMT_STATUS_RF_VALID)) { mptctl_do_fw_download() 969 printk(MYIOC_s_WARN_FMT "%s: failed\n", iocp->name, __func__); mptctl_do_fw_download() 970 mpt_free_msg_frame(iocp, mf); mptctl_do_fw_download() 976 kfree_sgl(sgl, sgl_dma, buflist, iocp); mptctl_do_fw_download() 978 ReplyMsg = (pFWDownloadReply_t)iocp->ioctl_cmds.reply; mptctl_do_fw_download() 981 printk(MYIOC_s_INFO_FMT "F/W update successful!\n", iocp->name); mptctl_do_fw_download() 985 iocp->name); mptctl_do_fw_download() 987 iocp->name); mptctl_do_fw_download() 990 printk(MYIOC_s_WARN_FMT "IOC_BUSY!\n", iocp->name); mptctl_do_fw_download() 991 printk(MYIOC_s_WARN_FMT "(try again later?)\n", iocp->name); mptctl_do_fw_download() 995 iocp->name, iocstat); mptctl_do_fw_download() 996 printk(MYIOC_s_WARN_FMT "(bad VooDoo)\n", iocp->name); mptctl_do_fw_download() 1003 CLEAR_MGMT_STATUS(iocp->ioctl_cmds.status); mptctl_do_fw_download() 1004 SET_MGMT_MSG_CONTEXT(iocp->ioctl_cmds.msg_context, 0); mptctl_do_fw_download() 1005 kfree_sgl(sgl, sgl_dma, buflist, iocp); mptctl_do_fw_download() 2839 MPT_ADAPTER *iocp = NULL; compat_mptfwxfer_ioctl() local 2850 if (((iocnum = mpt_verify_adapter(iocnumX, &iocp)) < 0) || compat_mptfwxfer_ioctl() 2851 (iocp == NULL)) { compat_mptfwxfer_ioctl() 2857 if ((ret = mptctl_syscall_down(iocp, nonblock)) != 0) compat_mptfwxfer_ioctl() 2860 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "compat_mptfwxfer_ioctl() called\n", compat_mptfwxfer_ioctl() 2861 iocp->name)); compat_mptfwxfer_ioctl() 2868 mutex_unlock(&iocp->ioctl_cmds.mutex); compat_mptfwxfer_ioctl() 2880 MPT_ADAPTER *iocp = NULL; compat_mpt_command() local 2890 if (((iocnum = mpt_verify_adapter(iocnumX, &iocp)) < 0) || compat_mpt_command() 2891 (iocp == NULL)) { compat_mpt_command() 2897 if ((ret = mptctl_syscall_down(iocp, nonblock)) != 0) compat_mpt_command() 2900 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "compat_mpt_command() called\n", compat_mpt_command() 2901 iocp->name)); compat_mpt_command() 2922 mutex_unlock(&iocp->ioctl_cmds.mutex); compat_mpt_command()
|