diff options
| author | Sam Leffler <sam@FreeBSD.org> | 2005-03-31 05:15:27 +0000 |
|---|---|---|
| committer | Sam Leffler <sam@FreeBSD.org> | 2005-03-31 05:15:27 +0000 |
| commit | 6e3a31bd67bcc9d7fb16ddbd0df4d6eecef9dd4b (patch) | |
| tree | 71be040c1d3547f058978c8a252499f4c018feb2 /sys/dev/hptmv | |
| parent | 5587897d92b8ead3a7e1dafbb51ae7b0c2ed0c0b (diff) | |
Notes
Diffstat (limited to 'sys/dev/hptmv')
| -rw-r--r-- | sys/dev/hptmv/hptproc.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/sys/dev/hptmv/hptproc.c b/sys/dev/hptmv/hptproc.c index 1c4fb90b0082..997183fa2cca 100644 --- a/sys/dev/hptmv/hptproc.c +++ b/sys/dev/hptmv/hptproc.c @@ -293,22 +293,28 @@ static int hpt_set_info(int length) return -EINVAL; } + err = 0; if (piop->nInBufferSize) - copyin((void*)(ULONG_PTR)piop->lpInBuffer, ke_area, piop->nInBufferSize); + err = copyin((void*)(ULONG_PTR)piop->lpInBuffer, ke_area, piop->nInBufferSize); /* * call kernel handler. */ - err = Kernel_DeviceIoControl(&gIal_Adapter->VBus, - piop->dwIoControlCode, ke_area, piop->nInBufferSize, - ke_area + piop->nInBufferSize, piop->nOutBufferSize, &dwRet); + if (err==0) + err = Kernel_DeviceIoControl(&gIal_Adapter->VBus, + piop->dwIoControlCode, ke_area, piop->nInBufferSize, + ke_area + piop->nInBufferSize, piop->nOutBufferSize, &dwRet); if (err==0) { - if (piop->nOutBufferSize) - copyout(ke_area + piop->nInBufferSize, (void*)(ULONG_PTR)piop->lpOutBuffer, piop->nOutBufferSize); + if (piop->nOutBufferSize) { + err = copyout(ke_area + piop->nInBufferSize, (void*)(ULONG_PTR)piop->lpOutBuffer, piop->nOutBufferSize); + if (err) KdPrintW(("Kernel_ioctl(): copyout (1) return %d\n", err)); + } - if (piop->lpBytesReturned) - copyout(&dwRet, (void*)(ULONG_PTR)piop->lpBytesReturned, sizeof(DWORD)); + if (piop->lpBytesReturned) { + err = copyout(&dwRet, (void*)(ULONG_PTR)piop->lpBytesReturned, sizeof(DWORD)); + if (err) KdPrintW(("Kernel_ioctl(): copyout (2) return %d\n", err)); + } free(ke_area, M_DEVBUF); return length; |
