From: Wang Chen <wangchen@cn.fujitsu.com>
To: "John W. Linville" <linville@tuxdriver.com>
Cc: Dan Williams <dcbw@redhat.com>,
"David S. Miller" <davem@davemloft.net>,
Jeff Garzik <jgarzik@pobox.com>, NETDEV <netdev@vger.kernel.org>,
linux-wireless@vger.kernel.org
Subject: Re: [PATCH 14/18] netdevice airo: Convert directly reference of netdev->priv to netdev->ml_priv
Date: Fri, 26 Sep 2008 16:37:05 +0800 [thread overview]
Message-ID: <48DC9F31.4010807@cn.fujitsu.com> (raw)
In-Reply-To: <48C24F66.1090803@cn.fujitsu.com>
Wang Chen said the following on 2008-9-6 17:37:
>>>> We have some reasons to kill netdev->priv:
>>>> 1. netdev->priv is equal to netdev_priv().
>>>> 2. netdev_priv() wraps the calculation of netdev->priv's offset, obviously
>>>> netdev_priv() is more flexible than netdev->priv.
>>>> But we cann't kill netdev->priv, because so many drivers reference to it
>>>> directly.
>>>>
>>>> OK, becasue Dave S. Miller said, "every direct netdev->priv usage is a bug",
>>>> and I want to kill netdev->priv later, I decided to convert all the direct
>>>> reference of netdev->priv first.
>>>>
>>>> Different to readonly reference of netdev->priv, in this driver, netdev->priv
>>>> was changed. I use netdev->ml_priv to replace netdev->priv.
>>>>
>>>> Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
>>> Thank you for your patch. However, I do not understand why you didn't
>>> simply replace netdev->priv with netdev_priv()? Can you explain?
>> Yeah, that would have been my first choice too...
>>
>
> 1. Why I don't use netdev_priv() to replace netdev->priv here?
> Because, here
>> @@ -2665,7 +2666,7 @@ static struct net_device *init_wifidev(struct airo_info *ai,
>> struct net_device *dev = alloc_netdev(0, "wifi%d", wifi_setup);
>> if (!dev)
>> return NULL;
>> - dev->priv = ethdev->priv;
>> + dev->ml_priv = ethdev->ml_priv;
>> @@ -2766,7 +2767,7 @@ static struct net_device *_init_airo_card( unsigned short irq, int port,
>> return NULL;
>> }
>>
>> - ai = dev->priv;
>> + ai = dev->ml_priv = netdev_priv(dev);
> netdev->priv was changed here, but it shouldn't, the memory was allocated when alloc_netdev and
> netdev->priv should always pointed to that memory.
>
> 2. Why I use netdev->ml_priv here to replace netdev->priv?
> In this driver, netdev->priv are shared by multi wifidevs, that means wifidevs need
> mid-layer private data, which are all same as their parent netdev.
> This usage is same as Dave's commit "syncppp: Fix crashes."
>
John, do you have any comments about my answer?
next prev parent reply other threads:[~2008-09-26 8:39 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <48C0A219.2030004@cn.fujitsu.com>
2008-09-05 3:27 ` [PATCH 14/18] netdevice airo: Convert directly reference of netdev->priv to netdev->ml_priv Wang Chen
2008-09-05 12:50 ` John W. Linville
2008-09-05 17:06 ` Dan Williams
2008-09-06 9:37 ` Wang Chen
2008-09-26 8:37 ` Wang Chen [this message]
2008-09-05 3:28 ` [PATCH 15/18] netdevice libertas: Fix directly reference of netdev->priv Wang Chen
2008-09-05 17:07 ` Dan Williams
2008-10-31 19:17 ` John W. Linville
2008-09-05 3:29 ` [PATCH 16/18] netdevice zd1201: Convert directly reference of netdev->priv to netdev->ml_priv Wang Chen
2008-09-05 12:56 ` John W. Linville
2008-10-31 18:22 ` John W. Linville
2008-10-31 18:48 ` [PATCH] netdevice zd1201: Convert directly reference of netdev->priv to netdev_priv() John W. Linville
2008-10-31 19:00 ` Stephen Hemminger
2008-11-03 2:06 ` Wang Chen
2008-12-18 6:53 ` [PATCH -next] netdevice zd1201: Use after free Wang Chen
2008-12-18 13:58 ` John W. Linville
2008-12-19 3:37 ` 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=48DC9F31.4010807@cn.fujitsu.com \
--to=wangchen@cn.fujitsu.com \
--cc=davem@davemloft.net \
--cc=dcbw@redhat.com \
--cc=jgarzik@pobox.com \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=netdev@vger.kernel.org \
/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.