[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 04/14] sdhci: use deposit64()
From: |
Alistair Francis |
Subject: |
Re: [Qemu-devel] [PATCH 04/14] sdhci: use deposit64() |
Date: |
Thu, 14 Dec 2017 09:28:34 -0800 |
On Wed, Dec 13, 2017 at 11:58 AM, Philippe Mathieu-Daudé
<address@hidden> wrote:
> This makes the code slightly safer, also easier to review.
>
> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> hw/sd/sdhci.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
> index e39623baba..295a89e5d3 100644
> --- a/hw/sd/sdhci.c
> +++ b/hw/sd/sdhci.c
> @@ -1123,12 +1123,10 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t
> val, unsigned size)
> MASKED_WRITE(s->admaerr, mask, value);
> break;
> case SDHC_ADMASYSADDR:
> - s->admasysaddr = (s->admasysaddr & (0xFFFFFFFF00000000ULL |
> - (uint64_t)mask)) | (uint64_t)value;
> + s->admasysaddr = deposit64(s->admasysaddr, 32, 0, value);
This doesn't look right.
Originally we were masking admasysaddr with (mask and
0xFFFFFFFF00000000). Then ORing in the value.
Now we are depositing value into a bit field that starts at bit 32 and
has 0 length. I don't see how value will be deposited at all with a 0
length.
Alistair
> break;
> case SDHC_ADMASYSADDR + 4:
> - s->admasysaddr = (s->admasysaddr & (0x00000000FFFFFFFFULL |
> - ((uint64_t)mask << 32))) | ((uint64_t)value << 32);
> + s->admasysaddr = deposit64(s->admasysaddr, 0, 32, value);
> break;
> case SDHC_FEAER:
> s->acmd12errsts |= value;
> --
> 2.15.1
>
>
- [Qemu-devel] [PATCH 00/14] SDHCI housekeeping, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 02/14] sdhci: clean up includes, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 04/14] sdhci: use deposit64(), Philippe Mathieu-Daudé, 2017/12/13
- Re: [Qemu-devel] [PATCH 04/14] sdhci: use deposit64(),
Alistair Francis <=
- Re: [Qemu-devel] [PATCH 04/14] sdhci: use deposit64(), Philippe Mathieu-Daudé, 2017/12/14
- Re: [Qemu-devel] [PATCH 04/14] sdhci: use deposit64(), Alistair Francis, 2017/12/14
- Re: [Qemu-devel] [PATCH 04/14] sdhci: use deposit64(), Philippe Mathieu-Daudé, 2017/12/14
- Re: [Qemu-devel] [PATCH 04/14] sdhci: use deposit64(), Alistair Francis, 2017/12/14
- Re: [Qemu-devel] [PATCH 04/14] sdhci: use deposit64(), Philippe Mathieu-Daudé, 2017/12/14
[Qemu-devel] [PATCH 03/14] sdhci: use the ldst_le_dma() API, Philippe Mathieu-Daudé, 2017/12/13