Johannes Berg wrote: > Many drivers would like to sleep during station > addition and removal, and currently have a high > complexity there from not being able to. > > This introduces two new callbacks sta_add() and > sta_remove() that drivers can implement instead > of using sta_notify() and that can sleep, and > the new sta_add() callback is also allowed to > fail. > > The reason we didn't do this previously is that > the IBSS code wants to insert stations from the > RX path, which is a tasklet, so cannot sleep. > This patch will keep the station allocation in > that path, but moves adding the station to the > driver out of line. Since the addition can now > fail, we can have IBSS peer structs the driver > rejected -- in that case we still talk to the > station but never tell the driver about it in > the control.sta pointer. If there will ever be > a driver that has a low limit on the number of > stations and that cannot talk to any stations > that are not known to it, we need to do come up > with a new strategy of handling larger IBSSs, > maybe quicker expiry or rejecting peers. Tested in STA mode with ath9k_htc. Thanks. Sujith -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html