<div dir="ltr"><div class=""><img class="" id=":1cv" src="https://mail.google.com/mail/u/1/images/cleardot.gif" alt=""></div><div><div>Actually,
 I did cogitate a very similar solution, but I was wondering if there 
was some deferred radio work still being removed or cleaned, so that&#39;s 
why I decided to implement in radio_remove_works. <br>
</div>The work-&gt;wpa_s is just a sanity check for work-&gt;wpa_s-&gt;radio, actually. Just to be safer.<br><br></div>Regards.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Mar 19, 2014 at 4:21 AM, Otcheretianski, Andrei <span dir="ltr">&lt;<a href="mailto:andrei.otcheretianski@intel.com" target="_blank">andrei.otcheretianski@intel.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
Checking work-&gt;wpa_s doesn&#39;t make sense, since it is set in radio_add_work and never unset.<br>
Anyway I think the fix should be more like this:<br>
<br>
@@ -3259,6 +3259,7 @@ static void radio_remove_interface(struct wpa_supplicant *wpa_s)<br>
                   wpa_s-&gt;ifname, radio-&gt;name);<br>
        dl_list_del(&amp;wpa_s-&gt;radio_list);<br>
        if (!dl_list_empty(&amp;radio-&gt;ifaces)) {<br>
+               radio_remove_works(wpa_s, NULL, 0);<br>
                wpa_s-&gt;radio = NULL;<br>
                return; /* Interfaces remain for this radio */<br>
        }<br>
<br>
Regards,<br>
Andrei<br>
<div><div class="h5"><br>
<br>
&gt; -----Original Message-----<br>
&gt; From: <a href="mailto:hostap-bounces@lists.shmoo.com">hostap-bounces@lists.shmoo.com</a> [mailto:<a href="mailto:hostap-">hostap-</a><br>
&gt; <a href="mailto:bounces@lists.shmoo.com">bounces@lists.shmoo.com</a>] On Behalf Of Eduardo Abinader<br>
&gt; Sent: Tuesday, March 18, 2014 15:51<br>
&gt; To: <a href="mailto:hostap@lists.shmoo.com">hostap@lists.shmoo.com</a><br>
&gt; Subject: [PATCH 1/2] Fix radio remove works<br>
&gt;<br>
&gt; When radio has been previously removed and pending radio works related<br>
&gt; to an excluded interface remains, new works are not capable of being<br>
&gt; executed. That occurs when a potential P2P client fails to negotiate group<br>
&gt; formation. For some reason, the P2P device is no more capable of issuing<br>
&gt; radio works. Those checks prevent this situation, by allowing removal of<br>
&gt; previous radio works.<br>
&gt;<br>
&gt; Signed-off-by: Eduardo Abinader &lt;<a href="mailto:eduardo.abinader@openbossa.org">eduardo.abinader@openbossa.org</a>&gt;<br>
&gt; ---<br>
&gt;  wpa_supplicant/wpa_supplicant.c | 3 ++-<br>
&gt;  1 file changed, 2 insertions(+), 1 deletion(-)<br>
&gt;<br>
&gt; diff --git a/wpa_supplicant/wpa_supplicant.c<br>
&gt; b/wpa_supplicant/wpa_supplicant.c index 499dcb3..c74ac20 100644<br>
&gt; --- a/wpa_supplicant/wpa_supplicant.c<br>
&gt; +++ b/wpa_supplicant/wpa_supplicant.c<br>
&gt; @@ -3176,7 +3176,8 @@ void radio_remove_works(struct wpa_supplicant<br>
&gt; *wpa_s,<br>
&gt;<br>
&gt;       dl_list_for_each_safe(work, tmp, &amp;radio-&gt;work, struct<br>
&gt; wpa_radio_work,<br>
&gt;                             list) {<br>
&gt; -             if (type &amp;&amp; os_strcmp(type, work-&gt;type) != 0)<br>
&gt; +             if (work-&gt;wpa_s &amp;&amp; work-&gt;wpa_s-&gt;radio &amp;&amp; type &amp;&amp;<br>
&gt; +                             os_strcmp(type, work-&gt;type) != 0)<br>
&gt;                       continue;<br>
&gt;<br>
&gt;               /* skip other ifaces&#39; works */<br>
&gt; --<br>
&gt; 1.8.3.2<br>
&gt;<br>
</div></div>&gt; _______________________________________________<br>
&gt; HostAP mailing list<br>
&gt; <a href="mailto:HostAP@lists.shmoo.com">HostAP@lists.shmoo.com</a><br>
&gt; <a href="http://lists.shmoo.com/mailman/listinfo/hostap" target="_blank">http://lists.shmoo.com/mailman/listinfo/hostap</a><br>
---------------------------------------------------------------------<br>
A member of the Intel Corporation group of companies<br>
<br>
This e-mail and any attachments may contain confidential material for<br>
the sole use of the intended recipient(s). Any review or distribution<br>
by others is strictly prohibited. If you are not the intended<br>
recipient, please contact the sender and delete all copies.<br>
<br>
</blockquote></div><br></div>