On 7 May 2014 14:13, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > On Wed, 2014-05-07 at 15:08 +0300, Luca Coelho wrote: > >> I was thinking about the case where you you need to involve 3 contexts. >> Let's say you have 2 vifs in the same context and after the switch you >> need to split them into 2 new ones (for instance, if there is some >> incompatibility in the new chandefs). >> >> With the generic transactions you could do: >> - new chanctx2 >> - new chanctx3 >> - switch vif1 chanctx1->chanctx2 >> - switch vif2 chanctx1->chanctx3 >> - del chanctx1 > > This isn't an interesting case, because it means you have a spare, so > you might as well do > > new chanctx3 > switch vif2 chanctx1->chanctx3 > switch_transaction(chanctx1, chanctx2, vif1) Don't you mean switch_chandef(chanctx1, chandef)? Or do you assume chanctx2 was prepared earlier? Don't you need to remove chanctx1 then? Oh, and the chanctx overcommit.. :-) I actually think Luca's example is a valid one as it shows the driver can freely handle things internally, no? Although I don't see when it would be required to make a transaction like that in real-world.. Michał -- 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