From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eugen.Hristev at microchip.com Date: Tue, 23 Oct 2018 06:51:59 +0000 Subject: [U-Boot] [PATCH] w1-eeprom: ds24xxx: fix data abort in ds24xxx_probe() In-Reply-To: <1540225879-17841-1-git-send-email-martin.fuzzey@flowbird.group> References: <1540225879-17841-1-git-send-email-martin.fuzzey@flowbird.group> Message-ID: <7f3a45a8-62e5-e0d0-ea7f-83f25bde7f89@microchip.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 22.10.2018 19:31, Martin Fuzzey wrote: > Data abort was occurring when using "w1 bus" with a DS24B33 present. > > The abort occurred in the ds24xxx_probe() because the struct w1_device > pointer was NULL. This is because that structure is allocated by > the parent device uclass (by .per_child_platdata_auto_alloc_size) > and thus the correct accessor is dev_get_parent_platdata() not > dev_get_platdata() > > Signed-off-by: Martin Fuzzey Reviewed-by: Eugen Hristev Hi Martin, At some point during development I switched from holding the data in platdata to parent platdata, and this slipped. Thanks for the fix. Eugen > --- > drivers/w1-eeprom/ds24xxx.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/w1-eeprom/ds24xxx.c b/drivers/w1-eeprom/ds24xxx.c > index 56186e5..0967acc 100644 > --- a/drivers/w1-eeprom/ds24xxx.c > +++ b/drivers/w1-eeprom/ds24xxx.c > @@ -31,7 +31,7 @@ static int ds24xxx_probe(struct udevice *dev) > { > struct w1_device *w1; > > - w1 = dev_get_platdata(dev); > + w1 = dev_get_parent_platdata(dev); > w1->id = 0; > return 0; > } >