[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 02/10] cuda: don't allow writes to port output p
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH 02/10] cuda: don't allow writes to port output pins |
Date: |
Mon, 5 Feb 2018 16:53:25 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 |
On 02/03/2018 07:37 AM, Mark Cave-Ayland wrote:
> Use the direction registers as a mask to ensure that only input pins are
> updated upon write.
>
> Signed-off-by: Mark Cave-Ayland <address@hidden>
> ---
> hw/misc/macio/cuda.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c
> index 23b7e0f5b0..7214e7adcb 100644
> --- a/hw/misc/macio/cuda.c
> +++ b/hw/misc/macio/cuda.c
> @@ -359,11 +359,11 @@ static void cuda_write(void *opaque, hwaddr addr,
> uint64_t val, unsigned size)
>
> switch(addr) {
> case CUDA_REG_B:
> - s->b = val;
> + s->b = (s->b & ~s->dirb) | (val & s->dirb);
I personally find it easier to read in 2 lines (&=~, |=)
It might be useful to log invalid guest values:
if (val & ~s->dirb) {
GUEST_ERROR();
val &= s->dirb;
}
s->b |= val;
> cuda_update(s);
> break;
> case CUDA_REG_A:
> - s->a = val;
> + s->a = (s->a & ~s->dira) | (val & s->dira);
Ditto.
Regardless:
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
> break;
> case CUDA_REG_DIRB:
> s->dirb = val;
>
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [PATCH 00/10] cuda: various fixes, and move 6522 to separate device, Mark Cave-Ayland, 2018/02/03
- [Qemu-devel] [PATCH 03/10] cuda: don't call cuda_update() when writing to ACR register, Mark Cave-Ayland, 2018/02/03
- [Qemu-devel] [PATCH 07/10] cuda: set timer 1 frequency property to CUDA_TIMER_FREQ, Mark Cave-Ayland, 2018/02/03
- [Qemu-devel] [PATCH 01/10] cuda: do not use old_mmio accesses, Mark Cave-Ayland, 2018/02/03
- [Qemu-devel] [PATCH 02/10] cuda: don't allow writes to port output pins, Mark Cave-Ayland, 2018/02/03
- [Qemu-devel] [PATCH 08/10] cuda: factor out timebase-derived counter value and load time, Mark Cave-Ayland, 2018/02/03
- [Qemu-devel] [PATCH 04/10] cuda: introduce CUDAState parameter to get_counter(), Mark Cave-Ayland, 2018/02/03
- [Qemu-devel] [PATCH 06/10] cuda: minor cosmetic tidy-ups to get_next_irq_time(), Mark Cave-Ayland, 2018/02/03
- [Qemu-devel] [PATCH 05/10] cuda: rename frequency property to tb_frequency, Mark Cave-Ayland, 2018/02/03
- [Qemu-devel] [PATCH 09/10] misc: introduce new mos6522 VIA device and enable it for ppc builds, Mark Cave-Ayland, 2018/02/03