lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20160428.174823.1730461951458323563.davem@davemloft.net>
Date:	Thu, 28 Apr 2016 17:48:23 -0400 (EDT)
From:	David Miller <davem@...emloft.net>
To:	Linux.HWI@...min.com
Cc:	linux-kernel@...r.kernel.org, netdev@...r.kernel.org,
	Grygorii.Strashko@...aro.org, jay.schroeder@...min.com,
	ben.mccauley@...min.com
Subject: Re: [PATCH] net: davinci_mdio: Set of_node in the mdio bus

From: "J.D. Schroeder" <Linux.HWI@...min.com>
Date: Thu, 28 Apr 2016 16:39:36 -0500

> On 04/28/2016 02:44 PM, David Miller wrote:
>>> --- a/drivers/net/ethernet/ti/davinci_mdio.c
>>> +++ b/drivers/net/ethernet/ti/davinci_mdio.c
>>> @@ -343,6 +343,7 @@ static int davinci_mdio_probe(struct platform_device *pdev)
>>>  		if (davinci_mdio_probe_dt(&data->pdata, pdev))
>>>  			data->pdata = default_pdata;
>>>  		snprintf(data->bus->id, MII_BUS_ID_SIZE, "%s", pdev->name);
>>> +		data->bus->dev.of_node = dev->of_node;
>>>  	} else {
>>>  		data->pdata = pdata ? (*pdata) : default_pdata;
>>>  		snprintf(data->bus->id, MII_BUS_ID_SIZE, "%s-%x",
>> 
>> You can't do this.
>> 
>> First of all, of_node objects are reference counted.  So even if this was a
>> legal thing to do you would have to drop the reference to the existing of_node
>> pointer and gain a reference to dev->of_node.
>> 
>> But even more importantly, it is the job of the bus driver to set that
>> bus->dev.of_node correctly, you should never override it in a driver like
>> this.
> 
> David, thanks for your review. I understand your point about the reference count.
> 
> One thing to note is that it is always null for the davinci mdio bus when
> going through this path. I'm not trying to override it. I'm trying to make
> sure it has a way to find the davinci mdio bus. Do you see the problem I'm
> trying to solve?
> 
> Is there another way to be able to make the of_mdio_find_bus() call be able to
> find the davinci mdio bus?

You should reference the device which actually has an OF node attached with it,
rather than pretending that the MDIO bus does.

Don't fake this stuff, reference the proper device to get the OF node.

Thanks.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ