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
| ||
|
Date: Wed, 5 Mar 2014 15:06:13 +0000 From: Haiyang Zhang <haiyangz@...rosoft.com> To: Jason Wang <jasowang@...hat.com>, "davem@...emloft.net" <davem@...emloft.net>, "netdev@...r.kernel.org" <netdev@...r.kernel.org> CC: KY Srinivasan <kys@...rosoft.com>, "olaf@...fle.de" <olaf@...fle.de>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "driverdev-devel@...uxdriverproject.org" <driverdev-devel@...uxdriverproject.org> Subject: RE: [PATCH net-next] hyperv: Move state setting for link query > -----Original Message----- > From: Jason Wang [mailto:jasowang@...hat.com] > Sent: Wednesday, March 5, 2014 12:57 AM > To: Haiyang Zhang; davem@...emloft.net; netdev@...r.kernel.org > Cc: KY Srinivasan; olaf@...fle.de; linux-kernel@...r.kernel.org; driverdev- > devel@...uxdriverproject.org > Subject: Re: [PATCH net-next] hyperv: Move state setting for link query > > On 03/05/2014 12:57 AM, Haiyang Zhang wrote: > > > >> -----Original Message----- > >> From: Jason Wang [mailto:jasowang@...hat.com] > >> Sent: Monday, March 3, 2014 10:10 PM > >> To: Haiyang Zhang; davem@...emloft.net; netdev@...r.kernel.org > >> Cc: KY Srinivasan; olaf@...fle.de; linux-kernel@...r.kernel.org; > >> driverdev- devel@...uxdriverproject.org > >> Subject: Re: [PATCH net-next] hyperv: Move state setting for link > >> query > >> > >> On 03/04/2014 07:54 AM, Haiyang Zhang wrote: > >>> It moves the state setting for query into rndis_filter_receive_response(). > >>> All callbacks including query-complete and status-callback are > >>> synchronized by channel->inbound_lock. This prevents pentential race > >> between them. > >> > >> This still looks racy to me. The problem is workqueue is not > >> synchronized with those here. > >> > >> Consider the following case in netvsc_link_change(): > >> > >> if (rdev->link_state) { > >> ... receive interrupt ... > >> rndis_filter_receice_response() which changes rdev->link_state > >> ... > >> netif_carrier_off() > >> } > >> > >> And also it need to schedule a work otherwise the link status is out of sync. > > The rndis_filter_query_device_link_status() makes the query and wait > > for the complete message, including set state, before returning. > > > > The rndis_filter_query_device_link_status() is called from > > rndis_filter_device_add(), which is called from either netvsc_change_mtu() > or netvsc_probe(). > > > > The change_mtu() and netvsc_link_change() are synchronized by > rtnl_lock(). > > In netvsc_probe(), the status query & complete happens before > > register_netdev(), and the netvsc_linkstatus_callback() schedules the work > only after netdevice is registered. > > So, there are no race in either case. > > > > The carrier_on/off work will be scheduled when netvsc_open() is > > called. Then, the status will be updated based on the latest link_state. > > > > Thanks, > > - Haiyang > > > > I see. Then if the link status is changing during mtu changing in guest. > Looks like we may miss a link status updating? When changing mtu, rndis_filter_device_add() is called, and host will send a link status call back immediately after connect-to-netvsp, no matter the link is changing or not. This will schedule a work to update the status. Thanks, - Haiyang -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists