aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/hptmv
diff options
context:
space:
mode:
authorSam Leffler <sam@FreeBSD.org>2005-03-31 05:15:27 +0000
committerSam Leffler <sam@FreeBSD.org>2005-03-31 05:15:27 +0000
commit6e3a31bd67bcc9d7fb16ddbd0df4d6eecef9dd4b (patch)
tree71be040c1d3547f058978c8a252499f4c018feb2 /sys/dev/hptmv
parent5587897d92b8ead3a7e1dafbb51ae7b0c2ed0c0b (diff)
Notes
Diffstat (limited to 'sys/dev/hptmv')
-rw-r--r--sys/dev/hptmv/hptproc.c22
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;