From: Haiyang Zhang <haiyangz@microsoft.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: "davem@davemloft.net" <davem@davemloft.net>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"olaf@aepfle.de" <olaf@aepfle.de>,
"jasowang@redhat.com" <jasowang@redhat.com>,
"driverdev-devel@linuxdriverproject.org"
<driverdev-devel@linuxdriverproject.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH net-next] hyperv: Add handler for RNDIS_STATUS_NETWORK_CHANGE event
Date: Fri, 20 Jun 2014 15:48:56 +0000 [thread overview]
Message-ID: <5174e5cab2b84decaa903dcf3215bce9@DFM-DB3MBX15-06.exchange.corp.microsoft.com> (raw)
In-Reply-To: <20140620084158.GR5500@mwanda>
> -----Original Message-----
> From: Dan Carpenter [mailto:dan.carpenter@oracle.com]
> Sent: Friday, June 20, 2014 4:42 AM
> To: Haiyang Zhang
> Cc: davem@davemloft.net; netdev@vger.kernel.org; olaf@aepfle.de;
> jasowang@redhat.com; driverdev-devel@linuxdriverproject.org; linux-
> kernel@vger.kernel.org
> Subject: Re: [PATCH net-next] hyperv: Add handler for
> RNDIS_STATUS_NETWORK_CHANGE event
>
> On Thu, Jun 19, 2014 at 06:34:36PM -0700, Haiyang Zhang wrote:
> > @@ -589,7 +590,19 @@ void netvsc_linkstatus_callback(struct hv_device
> *device_obj,
> > net_device = hv_get_drvdata(device_obj);
> > rdev = net_device->extension;
> >
> > - rdev->link_state = status != 1;
> > + switch (indicate->status) {
> > + case RNDIS_STATUS_MEDIA_CONNECT:
> > + rdev->link_state = false;
>
> link_state false means that we want to connect?
Yes
>
> > + break;
> > + case RNDIS_STATUS_MEDIA_DISCONNECT:
> > + rdev->link_state = true;
>
> link_state true means that we are disconnecting.
Yes.
> > @@ -782,10 +797,17 @@ static void netvsc_link_change(struct
> work_struct *w)
> > } else {
> > netif_carrier_on(net);
> > notify = true;
> > + if (rdev->link_change) {
> > + rdev->link_change = false;
> > + refresh = true;
> > + }
>
> How do we know that we received a RNDIS_STATUS_MEDIA_CONNECT before we
> received the RNDIS_STATUS_NETWORK_CHANGE? In other words, why does
> RNDIS_STATUS_NETWORK_CHANGE imply that the link_state is false?
After host sleep, both RNDIS_STATUS_MEDIA_CONNECT and
RNDIS_STATUS_NETWORK_CHANGE events are received, but not necessarily in
this order. If RNDIS_STATUS_MEDIA_CONNECT arrives later, the flag saved
in rdev->link_change previously will trigger the refresh, not in the
RNDIS_STATUS_NETWORK_CHANGE event, but in the latter RNDIS_STATUS_MEDIA_CONNECT
event.
>
> > }
> >
> > rtnl_unlock();
> >
> > + if (refresh)
> > + call_usermodehelper(argv[0], argv, envp, UMH_WAIT_EXEC);
>
> You may as well use UMH_NO_WAIT since there is no error handling if
> /etc/init.d/network is not found.
I previously tried UMH_NO_WAIT, but not working. We need to wait for the
exec (not process completion) in this case. Since it's in the work queue,
a bit of waiting is OK.
Thanks,
- Haiyang
prev parent reply other threads:[~2014-06-20 15:49 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-20 1:34 Haiyang Zhang
2014-06-20 4:21 ` David Miller
2014-06-20 4:57 ` Olaf Hering
2014-06-20 5:12 ` Greg KH
2014-06-20 16:09 ` Haiyang Zhang
2014-06-23 8:02 ` Olaf Hering
2014-06-23 12:47 ` Haiyang Zhang
2014-06-23 13:17 ` Olaf Hering
2014-06-23 16:09 ` Haiyang Zhang
2014-06-23 16:27 ` Olaf Hering
2014-06-23 18:21 ` Haiyang Zhang
2014-06-26 8:45 ` Olaf Hering
2014-06-26 14:55 ` Haiyang Zhang
2014-06-23 16:29 ` Greg KH
2014-06-23 18:23 ` Haiyang Zhang
2014-06-23 20:11 ` David Miller
2014-06-23 20:10 ` David Miller
2014-06-23 20:17 ` Haiyang Zhang
2015-10-27 22:36 ` Richard Weinberger
2015-10-28 17:59 ` Haiyang Zhang
2015-10-29 19:09 ` Haiyang Zhang
2015-10-30 10:56 ` Vitaly Kuznetsov
2015-10-30 22:03 ` Haiyang Zhang
2015-10-30 22:10 ` Richard Weinberger
2014-06-23 20:06 ` David Miller
2014-06-20 8:41 ` Dan Carpenter
2014-06-20 15:48 ` Haiyang Zhang [this message]
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=5174e5cab2b84decaa903dcf3215bce9@DFM-DB3MBX15-06.exchange.corp.microsoft.com \
--to=haiyangz@microsoft.com \
--cc=dan.carpenter@oracle.com \
--cc=davem@davemloft.net \
--cc=driverdev-devel@linuxdriverproject.org \
--cc=jasowang@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=olaf@aepfle.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®