mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
pci: Let ld*_pci_dma() take MemTxAttrs argument
Let devices specify transaction attributes when calling ld*_pci_dma(). Keep the default MEMTXATTRS_UNSPECIFIED in the few callers. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20211223115554.3155328-22-philmd@redhat.com>
This commit is contained in:
parent
a423a1b523
commit
398f9a84ac
8 changed files with 46 additions and 29 deletions
|
@ -172,14 +172,15 @@ static const int mpi_request_sizes[] = {
|
|||
static dma_addr_t mptsas_ld_sg_base(MPTSASState *s, uint32_t flags_and_length,
|
||||
dma_addr_t *sgaddr)
|
||||
{
|
||||
const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED;
|
||||
PCIDevice *pci = (PCIDevice *) s;
|
||||
dma_addr_t addr;
|
||||
|
||||
if (flags_and_length & MPI_SGE_FLAGS_64_BIT_ADDRESSING) {
|
||||
addr = ldq_le_pci_dma(pci, *sgaddr + 4);
|
||||
addr = ldq_le_pci_dma(pci, *sgaddr + 4, attrs);
|
||||
*sgaddr += 12;
|
||||
} else {
|
||||
addr = ldl_le_pci_dma(pci, *sgaddr + 4);
|
||||
addr = ldl_le_pci_dma(pci, *sgaddr + 4, attrs);
|
||||
*sgaddr += 8;
|
||||
}
|
||||
return addr;
|
||||
|
@ -203,7 +204,7 @@ static int mptsas_build_sgl(MPTSASState *s, MPTSASRequest *req, hwaddr addr)
|
|||
dma_addr_t addr, len;
|
||||
uint32_t flags_and_length;
|
||||
|
||||
flags_and_length = ldl_le_pci_dma(pci, sgaddr);
|
||||
flags_and_length = ldl_le_pci_dma(pci, sgaddr, MEMTXATTRS_UNSPECIFIED);
|
||||
len = flags_and_length & MPI_SGE_LENGTH_MASK;
|
||||
if ((flags_and_length & MPI_SGE_FLAGS_ELEMENT_TYPE_MASK)
|
||||
!= MPI_SGE_FLAGS_SIMPLE_ELEMENT ||
|
||||
|
@ -234,7 +235,8 @@ static int mptsas_build_sgl(MPTSASState *s, MPTSASRequest *req, hwaddr addr)
|
|||
break;
|
||||
}
|
||||
|
||||
flags_and_length = ldl_le_pci_dma(pci, next_chain_addr);
|
||||
flags_and_length = ldl_le_pci_dma(pci, next_chain_addr,
|
||||
MEMTXATTRS_UNSPECIFIED);
|
||||
if ((flags_and_length & MPI_SGE_FLAGS_ELEMENT_TYPE_MASK)
|
||||
!= MPI_SGE_FLAGS_CHAIN_ELEMENT) {
|
||||
return MPI_IOCSTATUS_INVALID_SGL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue