aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/hptrr/hptrr_osm_bsd.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/hptrr/hptrr_osm_bsd.c')
-rw-r--r--sys/dev/hptrr/hptrr_osm_bsd.c27
1 files changed, 9 insertions, 18 deletions
diff --git a/sys/dev/hptrr/hptrr_osm_bsd.c b/sys/dev/hptrr/hptrr_osm_bsd.c
index 4208dd620e37..78a051d54cf8 100644
--- a/sys/dev/hptrr/hptrr_osm_bsd.c
+++ b/sys/dev/hptrr/hptrr_osm_bsd.c
@@ -144,9 +144,9 @@ static __inline void *__get_free_pages(int order)
M_DEVBUF, M_WAITOK, BUS_SPACE_MAXADDR_24BIT, BUS_SPACE_MAXADDR, PAGE_SIZE, 0);
}
-static __inline void free_pages(void *p, int order)
+static __inline void free_pages(void *p)
{
- contigfree(p, PAGE_SIZE<<order, M_DEVBUF);
+ free(p, M_DEVBUF);
}
static int hpt_alloc_mem(PVBUS_EXT vbus_ext)
@@ -228,7 +228,7 @@ static void hpt_free_mem(PVBUS_EXT vbus_ext)
for (i=0; i<os_max_cache_pages; i++) {
p = dmapool_get_page((PVBUS)vbus_ext->vbus, &bus);
HPT_ASSERT(p);
- free_pages(p, 0);
+ free_pages(p);
}
for (f=vbus_ext->freelist_dma_head; f; f=f->next) {
@@ -242,7 +242,7 @@ static void hpt_free_mem(PVBUS_EXT vbus_ext)
while ((p=freelist_get_dma(f, &bus))) {
if (order)
- free_pages(p, order);
+ free_pages(p);
else {
/* can't free immediately since other blocks in this page may still be in the list */
if (((HPT_UPTR)p & (PAGE_SIZE-1))==0)
@@ -252,7 +252,7 @@ static void hpt_free_mem(PVBUS_EXT vbus_ext)
}
while ((p = dmapool_get_page((PVBUS)vbus_ext->vbus, &bus)))
- free_pages(p, 0);
+ free_pages(p);
}
static int hpt_init_vbus(PVBUS_EXT vbus_ext)
@@ -463,7 +463,7 @@ static void os_cmddone(PCOMMAND pCmd)
ccb->ccb_h.status = CAM_BUSY;
break;
default:
- ccb->ccb_h.status = CAM_SCSI_STATUS_ERROR;
+ ccb->ccb_h.status = CAM_AUTOSENSE_FAIL;
break;
}
@@ -557,7 +557,7 @@ static void hpt_scsi_io(PVBUS_EXT vbus_ext, union ccb *ccb)
ccb->ccb_h.target_id >= osm_max_targets ||
(ccb->ccb_h.flags & CAM_CDB_PHYS))
{
- ccb->ccb_h.status = CAM_TID_INVALID;
+ ccb->ccb_h.status = CAM_SEL_TIMEOUT;
xpt_done(ccb);
return;
}
@@ -1032,10 +1032,6 @@ static void hpt_final_init(void *dummy)
for (i=0; i<os_max_queue_comm; i++) {
POS_CMDEXT ext = (POS_CMDEXT)malloc(sizeof(OS_CMDEXT), M_DEVBUF, M_WAITOK);
- if (!ext) {
- os_printk("Can't alloc cmdext(%d)", i);
- return ;
- }
ext->vbus_ext = vbus_ext;
ext->next = vbus_ext->cmdext_list;
vbus_ext->cmdext_list = ext;
@@ -1252,19 +1248,14 @@ static int hpt_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, stru
if (ioctl_args.nInBufferSize) {
ioctl_args.lpInBuffer = malloc(ioctl_args.nInBufferSize, M_DEVBUF, M_WAITOK);
- if (!ioctl_args.lpInBuffer)
- goto invalid;
if (copyin((void*)piop->lpInBuffer,
ioctl_args.lpInBuffer, piop->nInBufferSize))
goto invalid;
}
- if (ioctl_args.nOutBufferSize) {
+ if (ioctl_args.nOutBufferSize)
ioctl_args.lpOutBuffer = malloc(ioctl_args.nOutBufferSize, M_DEVBUF, M_WAITOK | M_ZERO);
- if (!ioctl_args.lpOutBuffer)
- goto invalid;
- }
-
+
hpt_do_ioctl(&ioctl_args);
if (ioctl_args.result==HPT_IOCTL_RESULT_OK) {