Lines Matching refs:karg

126 static int mptctl_do_mpt_command(MPT_ADAPTER *iocp, struct mpt_ioctl_command karg, void __user *mfPtr);
1227 struct mpt_ioctl_iocinfo *karg;
1249 karg = memdup_user(uarg, data_size);
1250 if (IS_ERR(karg)) {
1252 __FILE__, __LINE__, PTR_ERR(karg));
1253 return PTR_ERR(karg);
1257 if (karg->hdr.maxDataSize != data_size) {
1261 kfree(karg);
1272 karg->adapterType = MPT_IOCTL_INTERFACE_SAS;
1274 karg->adapterType = MPT_IOCTL_INTERFACE_FC;
1276 karg->adapterType = MPT_IOCTL_INTERFACE_SCSI;
1278 if (karg->hdr.port > 1) {
1279 kfree(karg);
1282 port = karg->hdr.port;
1284 karg->port = port;
1287 karg->pciId = pdev->device;
1288 karg->hwRev = pdev->revision;
1289 karg->subSystemDevice = pdev->subsystem_device;
1290 karg->subSystemVendor = pdev->subsystem_vendor;
1295 karg->pciInfo.u.bits.busNumber = pdev->bus->number;
1296 karg->pciInfo.u.bits.deviceNumber = PCI_SLOT( pdev->devfn );
1297 karg->pciInfo.u.bits.functionNumber = PCI_FUNC( pdev->devfn );
1301 karg->pciInfo.u.bits.busNumber = pdev->bus->number;
1302 karg->pciInfo.u.bits.deviceNumber = PCI_SLOT( pdev->devfn );
1303 karg->pciInfo.u.bits.functionNumber = PCI_FUNC( pdev->devfn );
1304 karg->pciInfo.segmentID = pci_domain_nr(pdev->bus);
1309 karg->numDevices = 0;
1318 karg->numDevices++;
1324 karg->FWVersion = ioc->facts.FWVersion.Word;
1325 karg->BIOSVersion = ioc->biosVersion;
1329 strncpy (karg->driverVersion, MPT_LINUX_PACKAGE_NAME, MPT_IOCTL_VERSION_LENGTH);
1330 karg->driverVersion[MPT_IOCTL_VERSION_LENGTH-1]='\0';
1332 karg->busChangeEvent = 0;
1333 karg->hostId = ioc->pfacts[port].PortSCSIID;
1334 karg->rsvd[0] = karg->rsvd[1] = 0;
1338 if (copy_to_user((char __user *)arg, karg, data_size)) {
1342 kfree(karg);
1346 kfree(karg);
1364 struct mpt_ioctl_targetinfo karg;
1375 if (copy_from_user(&karg, uarg, sizeof(struct mpt_ioctl_targetinfo))) {
1388 numBytes = karg.hdr.maxDataSize - sizeof(mpt_ioctl_header);
1390 port = karg.hdr.port;
1440 karg.numDevices = numDevices;
1444 if (copy_to_user((char __user *)arg, &karg,
1480 struct mpt_ioctl_test karg;
1482 if (copy_from_user(&karg, uarg, sizeof(struct mpt_ioctl_test))) {
1496 karg.chip_type = ioc->mfcnt;
1498 karg.chip_type = ioc->pcidev->device;
1500 strncpy (karg.name, ioc->name, MPT_MAX_NAME);
1501 karg.name[MPT_MAX_NAME-1]='\0';
1502 strncpy (karg.product, ioc->prod_name, MPT_PRODUCT_LENGTH);
1503 karg.product[MPT_PRODUCT_LENGTH-1]='\0';
1507 if (copy_to_user((char __user *)arg, &karg, sizeof(struct mpt_ioctl_test))) {
1532 struct mpt_ioctl_eventquery karg;
1534 if (copy_from_user(&karg, uarg, sizeof(struct mpt_ioctl_eventquery))) {
1543 karg.eventEntries = MPTCTL_EVENT_LOG_SIZE;
1544 karg.eventTypes = ioc->eventTypes;
1548 if (copy_to_user((char __user *)arg, &karg, sizeof(struct mpt_ioctl_eventquery))) {
1562 struct mpt_ioctl_eventenable karg;
1564 if (copy_from_user(&karg, uarg, sizeof(struct mpt_ioctl_eventenable))) {
1591 ioc->eventTypes = karg.eventTypes;
1601 struct mpt_ioctl_eventreport karg;
1604 if (copy_from_user(&karg, uarg, sizeof(struct mpt_ioctl_eventreport))) {
1614 numBytes = karg.hdr.maxDataSize - sizeof(mpt_ioctl_header);
1647 struct mpt_ioctl_replace_fw karg;
1650 if (copy_from_user(&karg, uarg, sizeof(struct mpt_ioctl_replace_fw))) {
1668 newFwSize = ALIGN(karg.newImageSize, 4);
1706 struct mpt_ioctl_command karg;
1710 if (copy_from_user(&karg, uarg, sizeof(struct mpt_ioctl_command))) {
1717 rc = mptctl_do_mpt_command (ioc, karg, &uarg->MF);
1735 mptctl_do_mpt_command (MPT_ADAPTER *ioc, struct mpt_ioctl_command karg, void __user *mfPtr)
1770 if (karg.maxReplyBytes < 0 ||
1771 karg.dataInSize < 0 ||
1772 karg.dataOutSize < 0 ||
1773 karg.dataSgeOffset < 0 ||
1774 karg.maxSenseBytes < 0 ||
1775 karg.dataSgeOffset > ioc->req_sz / 4)
1780 sz = karg.dataSgeOffset * 4;
1781 if (karg.dataInSize > 0)
1783 if (karg.dataOutSize > 0)
1806 if (copy_from_user(mf, mfPtr, karg.dataSgeOffset * 4)) {
1826 karg.dataOutSize = karg.dataInSize = 0;
1887 if (karg.maxSenseBytes > MPT_SENSE_BUFFER_SIZE)
1890 pScsiReq->SenseBufferLength = karg.maxSenseBytes;
1912 if (karg.dataOutSize > 0) {
1914 dataSize = karg.dataOutSize;
1917 dataSize = karg.dataInSize;
1974 if (karg.maxSenseBytes > MPT_SENSE_BUFFER_SIZE)
1977 pScsiReq->SenseBufferLength = karg.maxSenseBytes;
1989 if (karg.dataOutSize > 0) {
1991 dataSize = karg.dataOutSize;
1994 dataSize = karg.dataInSize;
2088 psge = (char *) (((int *) mf) + karg.dataSgeOffset);
2091 if (karg.dataOutSize > 0)
2094 if (karg.dataInSize > 0)
2100 if (karg.dataOutSize > 0) {
2101 if (karg.dataInSize > 0) {
2109 flagsLength |= karg.dataOutSize;
2110 bufOut.len = karg.dataOutSize;
2127 karg.dataOutBufPtr,
2133 ioc->name, __FILE__, __LINE__,karg.dataOutBufPtr);
2140 if (karg.dataInSize > 0) {
2142 flagsLength |= karg.dataInSize;
2144 bufIn.len = karg.dataInSize;
2197 timeout = (karg.timeout > 0) ? karg.timeout : MPT_IOCTL_DEFAULT_TIMEOUT;
2234 if (karg.maxReplyBytes < ioc->reply_sz) {
2235 sz = min(karg.maxReplyBytes,
2241 if (copy_to_user(karg.replyFrameBufPtr,
2246 ioc->name, __FILE__, __LINE__, karg.replyFrameBufPtr);
2256 sz = min(karg.maxSenseBytes, MPT_SENSE_BUFFER_SIZE);
2258 if (copy_to_user(karg.senseDataPtr,
2263 karg.senseDataPtr);
2274 (karg.dataInSize > 0) && (bufIn.kptr)) {
2276 if (copy_to_user(karg.dataInBufPtr,
2277 bufIn.kptr, karg.dataInSize)) {
2281 karg.dataInBufPtr);
2330 hp_host_info_t karg;
2349 if (copy_from_user(&karg, uarg, sizeof(hp_host_info_t))) {
2364 karg.vendor = pdev->vendor;
2365 karg.device = pdev->device;
2366 karg.subsystem_id = pdev->subsystem_device;
2367 karg.subsystem_vendor = pdev->subsystem_vendor;
2368 karg.devfn = pdev->devfn;
2369 karg.bus = pdev->bus->number;
2375 karg.host_no = ioc->sh->host_no;
2377 karg.host_no = -1;
2380 snprintf(karg.fw_version, sizeof(karg.fw_version),
2400 strncpy(karg.serial_number, " ", 24);
2412 strlcpy(karg.serial_number,
2424 karg.ioc_status = HP_STATUS_OK;
2428 karg.ioc_status = HP_STATUS_FAILED;
2434 karg.ioc_status = HP_STATUS_OTHER;
2438 karg.base_io_addr = pci_resource_start(pdev, 0);
2441 karg.bus_phys_width = HP_BUS_WIDTH_UNK;
2443 karg.bus_phys_width = HP_BUS_WIDTH_16;
2445 karg.hard_resets = 0;
2446 karg.soft_resets = 0;
2447 karg.timeouts = 0;
2452 karg.hard_resets = ioc->hard_resets;
2453 karg.soft_resets = ioc->soft_resets;
2454 karg.timeouts = ioc->timeouts;
2523 karg.rsvd = *(u32 *)pbuf;
2534 if (copy_to_user((char __user *)arg, &karg, sizeof(hp_host_info_t))) {
2563 hp_target_info_t karg;
2570 if (copy_from_user(&karg, uarg, sizeof(hp_target_info_t))) {
2577 if (karg.hdr.id >= MPT_MAX_FC_DEVICES)
2590 if (ioc->sh->host_no != karg.hdr.host)
2609 cfg.pageAddr = (karg.hdr.channel << 8) | karg.hdr.id;
2613 karg.negotiated_width = np & MPI_SCSIDEVPAGE0_NP_WIDE ?
2619 karg.negotiated_speed = HP_DEV_SPEED_ULTRA320;
2621 karg.negotiated_speed = HP_DEV_SPEED_ULTRA160;
2623 karg.negotiated_speed = HP_DEV_SPEED_ULTRA2;
2625 karg.negotiated_speed = HP_DEV_SPEED_ULTRA;
2627 karg.negotiated_speed = HP_DEV_SPEED_FAST;
2629 karg.negotiated_speed = HP_DEV_SPEED_ASYNC;
2631 karg.negotiated_speed = HP_DEV_SPEED_ASYNC;
2639 karg.message_rejects = -1;
2640 karg.phase_errors = -1;
2641 karg.parity_errors = -1;
2642 karg.select_timeouts = -1;
2663 cfg.pageAddr = (karg.hdr.channel << 8) | karg.hdr.id;
2665 karg.message_rejects = (u32) le16_to_cpu(pg3_alloc->MsgRejectCount);
2666 karg.phase_errors = (u32) le16_to_cpu(pg3_alloc->PhaseErrorCount);
2667 karg.parity_errors = (u32) le16_to_cpu(pg3_alloc->ParityErrorCount);
2674 karg.select_timeouts = hd->sel_timeout[karg.hdr.id];
2678 if (copy_to_user((char __user *)arg, &karg, sizeof(hp_target_info_t))) {
2756 struct mpt_ioctl_command karg;
2779 /* Copy data to karg */
2780 karg.hdr.iocnum = karg32.hdr.iocnum;
2781 karg.hdr.port = karg32.hdr.port;
2782 karg.timeout = karg32.timeout;
2783 karg.maxReplyBytes = karg32.maxReplyBytes;
2785 karg.dataInSize = karg32.dataInSize;
2786 karg.dataOutSize = karg32.dataOutSize;
2787 karg.maxSenseBytes = karg32.maxSenseBytes;
2788 karg.dataSgeOffset = karg32.dataSgeOffset;
2790 karg.replyFrameBufPtr = (char __user *)(unsigned long)karg32.replyFrameBufPtr;
2791 karg.dataInBufPtr = (char __user *)(unsigned long)karg32.dataInBufPtr;
2792 karg.dataOutBufPtr = (char __user *)(unsigned long)karg32.dataOutBufPtr;
2793 karg.senseDataPtr = (char __user *)(unsigned long)karg32.senseDataPtr;
2797 ret = mptctl_do_mpt_command (iocp, karg, &uarg->MF);