Patchwork ahci: Fix cpu_physical_memory_unmap() argument ordering

login
register
mail settings
Submitter Stefan Hajnoczi
Date Dec. 23, 2010, 8:53 a.m.
Message ID <1293094396-764-1-git-send-email-stefanha@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/76482/
State New
Headers show

Comments

Stefan Hajnoczi - Dec. 23, 2010, 8:53 a.m.
The len and is_write arguments to cpu_physical_memory_unmap() were
swapped.  This patch changes calls to use the correct argument ordering.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
---
This patch applies to agraf's ahci tree at git://repo.or.cz/qemu/ahci.git.

 hw/ide/ahci.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)
Alexander Graf - Dec. 23, 2010, 10:43 a.m.
On 23.12.2010, at 09:53, Stefan Hajnoczi wrote:

> The len and is_write arguments to cpu_physical_memory_unmap() were
> swapped.  This patch changes calls to use the correct argument ordering.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>

Ouch :).

Acked-by: Alexander Graf <agraf@suse.de>


Alex
Kevin Wolf - Jan. 26, 2011, 9:42 a.m.
Am 23.12.2010 09:53, schrieb Stefan Hajnoczi:
> The len and is_write arguments to cpu_physical_memory_unmap() were
> swapped.  This patch changes calls to use the correct argument ordering.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
> ---
> This patch applies to agraf's ahci tree at git://repo.or.cz/qemu/ahci.git.

Maybe it would make sense to rebase this patch to master if Alex' AHCI
series still takes some time.

Kevin
Alexander Graf - Jan. 26, 2011, 10:10 a.m.
Kevin Wolf wrote:
> Am 23.12.2010 09:53, schrieb Stefan Hajnoczi:
>   
>> The len and is_write arguments to cpu_physical_memory_unmap() were
>> swapped.  This patch changes calls to use the correct argument ordering.
>>
>> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
>> ---
>> This patch applies to agraf's ahci tree at git://repo.or.cz/qemu/ahci.git.
>>     
>
> Maybe it would make sense to rebase this patch to master if Alex' AHCI
> series still takes some time.
>   

IIRC I folded that patch into my patch set even. I'll try to get a new
version sent out next week.


Alex
Kevin Wolf - Jan. 26, 2011, 10:15 a.m.
Am 26.01.2011 11:10, schrieb Alexander Graf:
> Kevin Wolf wrote:
>> Am 23.12.2010 09:53, schrieb Stefan Hajnoczi:
>>   
>>> The len and is_write arguments to cpu_physical_memory_unmap() were
>>> swapped.  This patch changes calls to use the correct argument ordering.
>>>
>>> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
>>> ---
>>> This patch applies to agraf's ahci tree at git://repo.or.cz/qemu/ahci.git.
>>>     
>>
>> Maybe it would make sense to rebase this patch to master if Alex' AHCI
>> series still takes some time.
>>   
> 
> IIRC I folded that patch into my patch set even. I'll try to get a new
> version sent out next week.

Ok, I won't track it any more then. Please make sure that it's really
included in your series.

Kevin

Patch

diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index 4c920da..f618f16 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -175,12 +175,12 @@  static void map_page(uint8_t **ptr, uint64_t addr, uint32_t wanted)
     target_phys_addr_t len = wanted;
 
     if (*ptr) {
-        cpu_physical_memory_unmap(*ptr, 1, len, len);
+        cpu_physical_memory_unmap(*ptr, len, 1, len);
     }
 
     *ptr = cpu_physical_memory_map(addr, &len, 1);
     if (len < wanted) {
-        cpu_physical_memory_unmap(*ptr, 1, len, len);
+        cpu_physical_memory_unmap(*ptr, len, 1, len);
         *ptr = NULL;
     }
 }
@@ -639,7 +639,7 @@  static void ahci_write_fis_d2h(AHCIDevice *ad, uint8_t *cmd_fis)
     ahci_trigger_irq(ad->hba, ad, PORT_IRQ_D2H_REG_FIS);
 
     if (cmd_mapped) {
-        cpu_physical_memory_unmap(cmd_fis, 0, cmd_len, cmd_len);
+        cpu_physical_memory_unmap(cmd_fis, cmd_len, 0, cmd_len);
     }
 }
 
@@ -650,8 +650,8 @@  static int ahci_iov_destroy(AHCIDevice *ad, QEMUIOVector *qiov, int is_write)
 
     for (i = 0; i < qiov->niov; i++) {
         /* flags_size is zero-based */
-        cpu_physical_memory_unmap(iov[i].iov_base, !is_write,
-                                  iov[i].iov_len, iov[i].iov_len);
+        cpu_physical_memory_unmap(iov[i].iov_base, iov[i].iov_len,
+                                  !is_write, iov[i].iov_len);
     }
 
     return 0;
@@ -720,7 +720,7 @@  static int ahci_populate_iov(AHCIDevice *ad, NCQTransferState *ncq_tfs,
     }
 
 out:
-    cpu_physical_memory_unmap(prdt, 0, prdt_len, prdt_len);
+    cpu_physical_memory_unmap(prdt, prdt_len, 0, prdt_len);
     return r;
 }
 
@@ -766,7 +766,7 @@  static int ahci_populate_sglist(AHCIDevice *ad, QEMUSGList *sglist)
     }
 
 out:
-    cpu_physical_memory_unmap(prdt, 0, prdt_len, prdt_len);
+    cpu_physical_memory_unmap(prdt, prdt_len, 0, prdt_len);
     return r;
 }
 
@@ -995,7 +995,7 @@  static int handle_cmd(AHCIState *s, int port, int slot)
     }
 
 out:
-    cpu_physical_memory_unmap(cmd_fis, 1, cmd_len, cmd_len);
+    cpu_physical_memory_unmap(cmd_fis, cmd_len, 1, cmd_len);
 
     if (s->dev[port].port.ifs[0].status & (BUSY_STAT|DRQ_STAT)) {
         /* async command, complete later */