|
@@ -39,9 +39,9 @@
|
|
|
#include <asm/paca.h>
|
|
|
#include <asm/abs_addr.h>
|
|
|
#include <asm/firmware.h>
|
|
|
-#include <asm/iseries/vio.h>
|
|
|
#include <asm/iseries/mf.h>
|
|
|
#include <asm/iseries/hv_lp_config.h>
|
|
|
+#include <asm/iseries/hv_lp_event.h>
|
|
|
#include <asm/iseries/it_lp_queue.h>
|
|
|
|
|
|
#include "setup.h"
|
|
@@ -870,8 +870,7 @@ static int proc_mf_dump_cmdline(char *page, char **start, off_t off,
|
|
|
if ((off + count) > 256)
|
|
|
count = 256 - off;
|
|
|
|
|
|
- dma_addr = dma_map_single(iSeries_vio_dev, page, off + count,
|
|
|
- DMA_FROM_DEVICE);
|
|
|
+ dma_addr = iseries_hv_map(page, off + count, DMA_FROM_DEVICE);
|
|
|
if (dma_mapping_error(dma_addr))
|
|
|
return -ENOMEM;
|
|
|
memset(page, 0, off + count);
|
|
@@ -883,8 +882,7 @@ static int proc_mf_dump_cmdline(char *page, char **start, off_t off,
|
|
|
vsp_cmd.sub_data.kern.length = off + count;
|
|
|
mb();
|
|
|
rc = signal_vsp_instruction(&vsp_cmd);
|
|
|
- dma_unmap_single(iSeries_vio_dev, dma_addr, off + count,
|
|
|
- DMA_FROM_DEVICE);
|
|
|
+ iseries_hv_unmap(dma_addr, off + count, DMA_FROM_DEVICE);
|
|
|
if (rc)
|
|
|
return rc;
|
|
|
if (vsp_cmd.result_code != 0)
|
|
@@ -919,8 +917,7 @@ static int mf_getVmlinuxChunk(char *buffer, int *size, int offset, u64 side)
|
|
|
int len = *size;
|
|
|
dma_addr_t dma_addr;
|
|
|
|
|
|
- dma_addr = dma_map_single(iSeries_vio_dev, buffer, len,
|
|
|
- DMA_FROM_DEVICE);
|
|
|
+ dma_addr = iseries_hv_map(buffer, len, DMA_FROM_DEVICE);
|
|
|
memset(buffer, 0, len);
|
|
|
memset(&vsp_cmd, 0, sizeof(vsp_cmd));
|
|
|
vsp_cmd.cmd = 32;
|
|
@@ -938,7 +935,7 @@ static int mf_getVmlinuxChunk(char *buffer, int *size, int offset, u64 side)
|
|
|
rc = -ENOMEM;
|
|
|
}
|
|
|
|
|
|
- dma_unmap_single(iSeries_vio_dev, dma_addr, len, DMA_FROM_DEVICE);
|
|
|
+ iseries_hv_unmap(dma_addr, len, DMA_FROM_DEVICE);
|
|
|
|
|
|
return rc;
|
|
|
}
|
|
@@ -1149,8 +1146,7 @@ static int proc_mf_change_cmdline(struct file *file, const char __user *buffer,
|
|
|
goto out;
|
|
|
|
|
|
dma_addr = 0;
|
|
|
- page = dma_alloc_coherent(iSeries_vio_dev, count, &dma_addr,
|
|
|
- GFP_ATOMIC);
|
|
|
+ page = iseries_hv_alloc(count, &dma_addr, GFP_ATOMIC);
|
|
|
ret = -ENOMEM;
|
|
|
if (page == NULL)
|
|
|
goto out;
|
|
@@ -1170,7 +1166,7 @@ static int proc_mf_change_cmdline(struct file *file, const char __user *buffer,
|
|
|
ret = count;
|
|
|
|
|
|
out_free:
|
|
|
- dma_free_coherent(iSeries_vio_dev, count, page, dma_addr);
|
|
|
+ iseries_hv_free(count, page, dma_addr);
|
|
|
out:
|
|
|
return ret;
|
|
|
}
|
|
@@ -1190,8 +1186,7 @@ static ssize_t proc_mf_change_vmlinux(struct file *file,
|
|
|
goto out;
|
|
|
|
|
|
dma_addr = 0;
|
|
|
- page = dma_alloc_coherent(iSeries_vio_dev, count, &dma_addr,
|
|
|
- GFP_ATOMIC);
|
|
|
+ page = iseries_hv_alloc(count, &dma_addr, GFP_ATOMIC);
|
|
|
rc = -ENOMEM;
|
|
|
if (page == NULL) {
|
|
|
printk(KERN_ERR "mf.c: couldn't allocate memory to set vmlinux chunk\n");
|
|
@@ -1219,7 +1214,7 @@ static ssize_t proc_mf_change_vmlinux(struct file *file,
|
|
|
*ppos += count;
|
|
|
rc = count;
|
|
|
out_free:
|
|
|
- dma_free_coherent(iSeries_vio_dev, count, page, dma_addr);
|
|
|
+ iseries_hv_free(count, page, dma_addr);
|
|
|
out:
|
|
|
return rc;
|
|
|
}
|