All of lore.kernel.org
 help / color / mirror / Atom feed
From: Florian Fainelli <f.fainelli@gmail.com>
To: Guenter Roeck <linux@roeck-us.net>, netdev@vger.kernel.org
Cc: davem@davemloft.net, vivien.didelot@savoirfairelinux.com,
	jerome.oufella@savoirfairelinux.com, andrew@lunn.ch,
	cphealy@gmail.com, mathieu@codeaurora.org, jonasj76@gmail.com,
	andrey.volkov@nexvision.fr, Chris.Packham@alliedtelesis.co.nz
Subject: Re: [PATCH net-next 1/2] net: core: add of_find_net_device_by_node()
Date: Mon, 09 Mar 2015 12:31:00 -0700	[thread overview]
Message-ID: <54FDF4F4.5000503@gmail.com> (raw)
In-Reply-To: <54FDF2EE.4070700@roeck-us.net>

On 09/03/15 12:22, Guenter Roeck wrote:
> On 03/09/2015 12:02 PM, Florian Fainelli wrote:
>> Add a helper function which allows getting the struct net_device pointer
>> associated with a given struct device_node pointer. This is useful for
>> instance for DSA Ethernet devices not backed by a platform_device, but
>> a PCI
>> device.
>>
>> Since we need to access net_class which is not accessible outside of
>> net/core/net-sysfs.c, this helper function is also added here and gated
>> with CONFIG_OF_NET.
>>
>> Network devices initialized with SET_NETDEV_DEV() are also taken into
>> account by checking for dev->parent first and then falling back to
>> checking the device pointer within struct net_device.
>>
>> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
>> ---
>>   include/linux/of_net.h |  8 ++++++++
>>   net/core/net-sysfs.c   | 25 +++++++++++++++++++++++++
>>   2 files changed, 33 insertions(+)
>>
>> diff --git a/include/linux/of_net.h b/include/linux/of_net.h
>> index 34597c8c1a4c..395e2d55c16e 100644
>> --- a/include/linux/of_net.h
>> +++ b/include/linux/of_net.h
>> @@ -9,8 +9,11 @@
>>
>>   #ifdef CONFIG_OF_NET
>>   #include <linux/of.h>
>> +
>> +struct net_device;
>>   extern int of_get_phy_mode(struct device_node *np);
>>   extern const void *of_get_mac_address(struct device_node *np);
>> +extern struct net_device *of_find_net_device_by_node(struct
>> device_node *np);
>>   #else
>>   static inline int of_get_phy_mode(struct device_node *np)
>>   {
>> @@ -21,6 +24,11 @@ static inline const void *of_get_mac_address(struct
>> device_node *np)
>>   {
>>       return NULL;
>>   }
>> +
>> +static inline struct net_device *of_find_net_device_by_node(struct
>> device_node *np)
> 
> Checkpatch warning (line too long)
> 
>> +{
>> +    return NULL
>> +};
> 
> ; after } is unusual, and you need to add ; after NULL to get this to
> compile.

Good catch, thanks, I can't pretend I compiled the !OF_NET case, can I?

> 
>>   #endif
>>
>>   #endif /* __LINUX_OF_NET_H */
>> diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
>> index f2aa73bfb0e4..cf30620a88e1 100644
>> --- a/net/core/net-sysfs.c
>> +++ b/net/core/net-sysfs.c
>> @@ -23,6 +23,7 @@
>>   #include <linux/export.h>
>>   #include <linux/jiffies.h>
>>   #include <linux/pm_runtime.h>
>> +#include <linux/of.h>
>>
>>   #include "net-sysfs.h"
>>
>> @@ -1374,6 +1375,30 @@ static struct class net_class = {
>>       .namespace = net_namespace,
>>   };
>>
>> +#ifdef CONFIG_OF_NET
>> +static int of_dev_node_match(struct device *dev, const void *data)
>> +{
>> +    int ret = 0;
>> +
>> +    if (dev->parent)
>> +        ret = dev->parent->of_node == data;
>> +
>> +    return ret == 0 ? dev->of_node == data : ret;
> 
>     return ret ? : dev->of_node == data;
> 
> but that is really a matter of personal preference.

I kind of prefer treating the positive case as explicit, but either way
is fine.
-- 
Florian

  reply	other threads:[~2015-03-09 19:31 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-09 19:02 [PATCH net-next 0/2] net: dsa: remove restriction on platform_device Florian Fainelli
2015-03-09 19:02 ` [PATCH net-next 1/2] net: core: add of_find_net_device_by_node() Florian Fainelli
2015-03-09 19:22   ` Guenter Roeck
2015-03-09 19:31     ` Florian Fainelli [this message]
2015-03-09 19:02 ` [PATCH net-next 2/2] net: dsa: utilize of_find_net_device_by_node Florian Fainelli
2015-03-09 20:12 ` [PATCH net-next 0/2] net: dsa: remove restriction on platform_device David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54FDF4F4.5000503@gmail.com \
    --to=f.fainelli@gmail.com \
    --cc=Chris.Packham@alliedtelesis.co.nz \
    --cc=andrew@lunn.ch \
    --cc=andrey.volkov@nexvision.fr \
    --cc=cphealy@gmail.com \
    --cc=davem@davemloft.net \
    --cc=jerome.oufella@savoirfairelinux.com \
    --cc=jonasj76@gmail.com \
    --cc=linux@roeck-us.net \
    --cc=mathieu@codeaurora.org \
    --cc=netdev@vger.kernel.org \
    --cc=vivien.didelot@savoirfairelinux.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.