aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/spibus/spigen.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/spibus/spigen.c')
-rw-r--r--sys/dev/spibus/spigen.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/dev/spibus/spigen.c b/sys/dev/spibus/spigen.c
index 94f276d239f3..400ae1e139ad 100644
--- a/sys/dev/spibus/spigen.c
+++ b/sys/dev/spibus/spigen.c
@@ -73,7 +73,7 @@ struct spigen_softc {
struct spigen_mmap {
vm_object_t bufobj;
- vm_offset_t kvaddr;
+ void *kvaddr;
size_t bufsize;
};
@@ -235,10 +235,10 @@ spigen_transfer_mmapped(struct cdev *cdev, struct spigen_transfer_mmapped *stm)
if (mmap->bufsize < stm->stm_command_length + stm->stm_data_length)
return (E2BIG);
- transfer.tx_cmd = transfer.rx_cmd = (void *)((uintptr_t)mmap->kvaddr);
+ transfer.tx_cmd = transfer.rx_cmd = mmap->kvaddr;
transfer.tx_cmd_sz = transfer.rx_cmd_sz = stm->stm_command_length;
transfer.tx_data = transfer.rx_data =
- (void *)((uintptr_t)mmap->kvaddr + stm->stm_command_length);
+ (void *)((char *)mmap->kvaddr + stm->stm_command_length);
transfer.tx_data_sz = transfer.rx_data_sz = stm->stm_data_length;
error = SPIBUS_TRANSFER(device_get_parent(dev), dev, &transfer);
@@ -283,9 +283,9 @@ spigen_mmap_cleanup(void *arg)
{
struct spigen_mmap *mmap = arg;
- if (mmap->kvaddr != 0) {
+ if (mmap->kvaddr != NULL) {
pmap_qremove(mmap->kvaddr, mmap->bufsize / PAGE_SIZE);
- kva_free(mmap->kvaddr, mmap->bufsize);
+ kva_free((vm_offset_t)mmap->kvaddr, mmap->bufsize);
}
if (mmap->bufobj != NULL)
vm_object_deallocate(mmap->bufobj);
@@ -312,7 +312,7 @@ spigen_mmap_single(struct cdev *cdev, vm_ooffset_t *offset,
return (EBUSY);
mmap = malloc(sizeof(*mmap), M_DEVBUF, M_ZERO | M_WAITOK);
- if ((mmap->kvaddr = kva_alloc(size)) == 0) {
+ if ((mmap->kvaddr = (void *)kva_alloc(size)) == 0) {
spigen_mmap_cleanup(mmap);
return (ENOMEM);
}