Multiple interface creation by invited GO

Jouni Malinen j
Sun Nov 11 10:51:29 PST 2012


On Wed, Aug 29, 2012 at 12:15:24AM +0900, Masashi Honma wrote:
> There are some drivers which create addtional interface for GO role.
> With such a driver I found a case that 2 times interface creation runs.

> 2. Connect them with "p2p_connect xx:xx:xx:xx:xx:xx pbc persistent".
..
> 7. Invite "P2P Device A" from "P2P Device B".

> Then we could see 2 interface creation messages and one removal message.
> P2P: Create a new interface p2p-wlan1-0 for the group
> P2P: Removing pending group interface p2p2
> P2P: Create a new interface p2p-wlan1-1 for the group

> First creation is driven by p2p_process_invitation_req().
> Removal and second creation is driven by wpas_p2p_group_add_persistent().
> 
> These multiple creation causes "Out of memory" error on Broadcom device driver +
> libnl combination. The "Out of memory" error occurs at send_and_recv_msgs() in
> nl80211_create_iface_once(). More precisely, nl_recvmsgs() in
> send_and_recv_msgs() returns -12 (Out of memory).
> 
> I think this is a device driver or libnl problem. But if I commented out the
> first interface creation, the "Out of memory" error didn't occur.

This part does indeed sound like a driver issue.

> My question is "Is there any reason for multiple creation ?".

No, that was not supposed to happen and is a regression (but quite an
old one). The two wpas_p2p_stop_find() calls in this particular sequence
remove the pending interface which is not needed (or desired) in this
case. I fixed this with the following commit:
http://w1.fi/gitweb/gitweb.cgi?p=hostap.git;a=commitdiff;h=8713a2e6ff0940c03de9f2289c5c875c4df7bc9b

-- 
Jouni Malinen                                            PGP id EFC895FA



More information about the Hostap mailing list