[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 2/9] hw/i2c: pmbus: guard against out of range accesses
From: |
Titus Rwantare |
Subject: |
Re: [PATCH v3 2/9] hw/i2c: pmbus: guard against out of range accesses |
Date: |
Mon, 7 Mar 2022 11:30:00 -0800 |
Ack. All errors for PMBus should
ideally be reflected in status and status_cml registers instead of
carrying meaning in return values. I'll have to separately go through
the existing code to make it consistent.
On Fri, 4 Mar 2022 at 16:08, Philippe Mathieu-Daudé
<philippe.mathieu.daude@gmail.com> wrote:
>
> On 2/3/22 02:50, Titus Rwantare wrote:
> > Signed-off-by: Titus Rwantare <titusr@google.com>
> > ---
> > hw/i2c/pmbus_device.c | 41 ++++++++++++++++++++++++++++++++++++++++-
> > 1 file changed, 40 insertions(+), 1 deletion(-)
>
> > static uint8_t pmbus_receive_byte(SMBusDevice *smd)
> > {
> > PMBusDevice *pmdev = PMBUS_DEVICE(smd);
> > PMBusDeviceClass *pmdc = PMBUS_DEVICE_GET_CLASS(pmdev);
> > uint8_t ret = 0xFF;
> > - uint8_t index = pmdev->page;
> > + uint8_t index;
> >
> > if (pmdev->out_buf_len != 0) {
> > ret = pmbus_out_buf_pop(pmdev);
> > return ret;
> > }
> >
> > + /*
> > + * Reading from all pages will return the value from page 0,
> > + * this is unspecified behaviour in general.
> > + */
> > + if (pmdev->page == PB_ALL_PAGES) {
> > + index = 0;
> > + qemu_log_mask(LOG_GUEST_ERROR,
> > + "%s: tried to read from all pages\n",
> > + __func__);
> > + pmbus_cml_error(pmdev);
> > + } else if (pmdev->page > pmdev->num_pages - 1) {
> > + qemu_log_mask(LOG_GUEST_ERROR,
> > + "%s: page %d is out of range\n",
> > + __func__, pmdev->page);
> > + pmbus_cml_error(pmdev);
> > + return -1;
>
> This file returns a mix of 0xFF/-1 for error. It would be nice
> to pick one. Adding a definition (PMBUS_ERR_BYTE?) could help.
>
> Preferably with error unified:
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
- [PATCH v3 8/9] hw/sensor: add Renesas raa229004 PMBus device, (continued)
- [PATCH v3 8/9] hw/sensor: add Renesas raa229004 PMBus device, Titus Rwantare, 2022/03/01
- [PATCH v3 4/9] hw/i2c: pmbus: refactor uint handling, Titus Rwantare, 2022/03/01
- [PATCH v3 9/9] hw/sensor: add Renesas raa228000 device, Titus Rwantare, 2022/03/01
- [PATCH v3 1/9] hw/i2c: pmbus: add registers, Titus Rwantare, 2022/03/01
- [PATCH v3 2/9] hw/i2c: pmbus: guard against out of range accesses, Titus Rwantare, 2022/03/01
- [PATCH v3 5/9] hw/i2c: pmbus: update MAINTAINERS, Titus Rwantare, 2022/03/01
- Re: [PATCH v3 0/9] This patch series contains updates to PMBus in QEMU along with some PMBus device models for Renesas regulators. I have also added myself to MAINTAINERS as this code is in use daily, where I am responsible for it., Corey Minyard, 2022/03/04