mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-04 02:56:21 +00:00
s390x: Replace PAGE_SIZE, PAGE_SHIFT and PAGE_MASK
The PAGE_SIZE macro is causing trouble on Alpine Linux since it clashes with a macro from a system header there. We already have the TARGET_PAGE_SIZE, TARGET_PAGE_MASK and TARGET_PAGE_BITS macros in QEMU anyway, so let's simply replace the PAGE_SIZE, PAGE_MASK and PAGE_SHIFT macro with their TARGET_* counterparts. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/572 Message-Id: <20210901125800.611183-1-thuth@redhat.com> Reviewed-by: Halil Pasic <pasic@linux.ibm.com> Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: David Hildenbrand <david@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
c35622387e
commit
ed3288ff8f
@ -330,7 +330,7 @@ static unsigned int calc_sx(dma_addr_t ptr)
|
|||||||
|
|
||||||
static unsigned int calc_px(dma_addr_t ptr)
|
static unsigned int calc_px(dma_addr_t ptr)
|
||||||
{
|
{
|
||||||
return ((unsigned long) ptr >> PAGE_SHIFT) & ZPCI_PT_MASK;
|
return ((unsigned long) ptr >> TARGET_PAGE_BITS) & ZPCI_PT_MASK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint64_t get_rt_sto(uint64_t entry)
|
static uint64_t get_rt_sto(uint64_t entry)
|
||||||
@ -506,7 +506,7 @@ uint16_t s390_guest_io_table_walk(uint64_t g_iota, hwaddr addr,
|
|||||||
int8_t ett = 1;
|
int8_t ett = 1;
|
||||||
uint16_t error = 0;
|
uint16_t error = 0;
|
||||||
|
|
||||||
entry->iova = addr & PAGE_MASK;
|
entry->iova = addr & TARGET_PAGE_MASK;
|
||||||
entry->translated_addr = 0;
|
entry->translated_addr = 0;
|
||||||
entry->perm = IOMMU_RW;
|
entry->perm = IOMMU_RW;
|
||||||
|
|
||||||
@ -526,7 +526,7 @@ static IOMMUTLBEntry s390_translate_iommu(IOMMUMemoryRegion *mr, hwaddr addr,
|
|||||||
{
|
{
|
||||||
S390PCIIOMMU *iommu = container_of(mr, S390PCIIOMMU, iommu_mr);
|
S390PCIIOMMU *iommu = container_of(mr, S390PCIIOMMU, iommu_mr);
|
||||||
S390IOTLBEntry *entry;
|
S390IOTLBEntry *entry;
|
||||||
uint64_t iova = addr & PAGE_MASK;
|
uint64_t iova = addr & TARGET_PAGE_MASK;
|
||||||
uint16_t error = 0;
|
uint16_t error = 0;
|
||||||
IOMMUTLBEntry ret = {
|
IOMMUTLBEntry ret = {
|
||||||
.target_as = &address_space_memory,
|
.target_as = &address_space_memory,
|
||||||
@ -562,7 +562,7 @@ static IOMMUTLBEntry s390_translate_iommu(IOMMUMemoryRegion *mr, hwaddr addr,
|
|||||||
ret.perm = entry->perm;
|
ret.perm = entry->perm;
|
||||||
} else {
|
} else {
|
||||||
ret.iova = iova;
|
ret.iova = iova;
|
||||||
ret.addr_mask = ~PAGE_MASK;
|
ret.addr_mask = ~TARGET_PAGE_MASK;
|
||||||
ret.perm = IOMMU_NONE;
|
ret.perm = IOMMU_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -868,7 +868,7 @@ static int s390_pci_msix_init(S390PCIBusDevice *pbdev)
|
|||||||
|
|
||||||
name = g_strdup_printf("msix-s390-%04x", pbdev->uid);
|
name = g_strdup_printf("msix-s390-%04x", pbdev->uid);
|
||||||
memory_region_init_io(&pbdev->msix_notify_mr, OBJECT(pbdev),
|
memory_region_init_io(&pbdev->msix_notify_mr, OBJECT(pbdev),
|
||||||
&s390_msi_ctrl_ops, pbdev, name, PAGE_SIZE);
|
&s390_msi_ctrl_ops, pbdev, name, TARGET_PAGE_SIZE);
|
||||||
memory_region_add_subregion(&pbdev->iommu->mr,
|
memory_region_add_subregion(&pbdev->iommu->mr,
|
||||||
pbdev->pci_group->zpci_group.msia,
|
pbdev->pci_group->zpci_group.msia,
|
||||||
&pbdev->msix_notify_mr);
|
&pbdev->msix_notify_mr);
|
||||||
|
@ -613,7 +613,7 @@ static uint32_t s390_pci_update_iotlb(S390PCIIOMMU *iommu,
|
|||||||
.iova = entry->iova,
|
.iova = entry->iova,
|
||||||
.translated_addr = entry->translated_addr,
|
.translated_addr = entry->translated_addr,
|
||||||
.perm = entry->perm,
|
.perm = entry->perm,
|
||||||
.addr_mask = ~PAGE_MASK,
|
.addr_mask = ~TARGET_PAGE_MASK,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -640,7 +640,7 @@ static uint32_t s390_pci_update_iotlb(S390PCIIOMMU *iommu,
|
|||||||
cache = g_new(S390IOTLBEntry, 1);
|
cache = g_new(S390IOTLBEntry, 1);
|
||||||
cache->iova = entry->iova;
|
cache->iova = entry->iova;
|
||||||
cache->translated_addr = entry->translated_addr;
|
cache->translated_addr = entry->translated_addr;
|
||||||
cache->len = PAGE_SIZE;
|
cache->len = TARGET_PAGE_SIZE;
|
||||||
cache->perm = entry->perm;
|
cache->perm = entry->perm;
|
||||||
g_hash_table_replace(iommu->iotlb, &cache->iova, cache);
|
g_hash_table_replace(iommu->iotlb, &cache->iova, cache);
|
||||||
dec_dma_avail(iommu);
|
dec_dma_avail(iommu);
|
||||||
@ -725,8 +725,8 @@ int rpcit_service_call(S390CPU *cpu, uint8_t r1, uint8_t r2, uintptr_t ra)
|
|||||||
while (entry.iova < start && entry.iova < end &&
|
while (entry.iova < start && entry.iova < end &&
|
||||||
(dma_avail > 0 || entry.perm == IOMMU_NONE)) {
|
(dma_avail > 0 || entry.perm == IOMMU_NONE)) {
|
||||||
dma_avail = s390_pci_update_iotlb(iommu, &entry);
|
dma_avail = s390_pci_update_iotlb(iommu, &entry);
|
||||||
entry.iova += PAGE_SIZE;
|
entry.iova += TARGET_PAGE_SIZE;
|
||||||
entry.translated_addr += PAGE_SIZE;
|
entry.translated_addr += TARGET_PAGE_SIZE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err:
|
err:
|
||||||
|
@ -51,7 +51,7 @@ static bool sccb_verify_boundary(uint64_t sccb_addr, uint16_t sccb_len,
|
|||||||
uint32_t code)
|
uint32_t code)
|
||||||
{
|
{
|
||||||
uint64_t sccb_max_addr = sccb_addr + sccb_len - 1;
|
uint64_t sccb_max_addr = sccb_addr + sccb_len - 1;
|
||||||
uint64_t sccb_boundary = (sccb_addr & PAGE_MASK) + PAGE_SIZE;
|
uint64_t sccb_boundary = (sccb_addr & TARGET_PAGE_MASK) + TARGET_PAGE_SIZE;
|
||||||
|
|
||||||
switch (code & SCLP_CMD_CODE_MASK) {
|
switch (code & SCLP_CMD_CODE_MASK) {
|
||||||
case SCLP_CMDW_READ_SCP_INFO:
|
case SCLP_CMDW_READ_SCP_INFO:
|
||||||
|
@ -81,9 +81,6 @@ OBJECT_DECLARE_SIMPLE_TYPE(S390PCIIOMMU, S390_PCI_IOMMU)
|
|||||||
#define ZPCI_SDMA_ADDR 0x100000000ULL
|
#define ZPCI_SDMA_ADDR 0x100000000ULL
|
||||||
#define ZPCI_EDMA_ADDR 0x1ffffffffffffffULL
|
#define ZPCI_EDMA_ADDR 0x1ffffffffffffffULL
|
||||||
|
|
||||||
#define PAGE_SHIFT 12
|
|
||||||
#define PAGE_SIZE (1 << PAGE_SHIFT)
|
|
||||||
#define PAGE_MASK (~(PAGE_SIZE-1))
|
|
||||||
#define PAGE_DEFAULT_ACC 0
|
#define PAGE_DEFAULT_ACC 0
|
||||||
#define PAGE_DEFAULT_KEY (PAGE_DEFAULT_ACC << 4)
|
#define PAGE_DEFAULT_KEY (PAGE_DEFAULT_ACC << 4)
|
||||||
|
|
||||||
@ -137,7 +134,7 @@ enum ZpciIoatDtype {
|
|||||||
|
|
||||||
#define ZPCI_TABLE_BITS 11
|
#define ZPCI_TABLE_BITS 11
|
||||||
#define ZPCI_PT_BITS 8
|
#define ZPCI_PT_BITS 8
|
||||||
#define ZPCI_ST_SHIFT (ZPCI_PT_BITS + PAGE_SHIFT)
|
#define ZPCI_ST_SHIFT (ZPCI_PT_BITS + TARGET_PAGE_BITS)
|
||||||
#define ZPCI_RT_SHIFT (ZPCI_ST_SHIFT + ZPCI_TABLE_BITS)
|
#define ZPCI_RT_SHIFT (ZPCI_ST_SHIFT + ZPCI_TABLE_BITS)
|
||||||
|
|
||||||
#define ZPCI_RTE_FLAG_MASK 0x3fffULL
|
#define ZPCI_RTE_FLAG_MASK 0x3fffULL
|
||||||
|
Loading…
x
Reference in New Issue
Block a user