On Fri, Oct 1, 2010 at 08:49, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > On Fri, 2010-10-01 at 00:47 +0200, Johannes Berg wrote: >> On Fri, 2010-10-01 at 00:44 +0200, Johannes Berg wrote: >> > On Fri, 2010-10-01 at 08:41 +1000, Julian Calaby wrote: >> > >> > > > d) include two private pointers in each info >> > > > struct passed between all these operations >> > > > including doit(). (It's two because I'll >> > > > need two in nl80211 -- can be extended.) >> > > >> > > Stupid question: >> > > >> > > Why not have a priv struct rather than an arbitrary array of two pointers? >> > >> > It'd have to be dynamically allocated, and the "arbitrary" array of two >> > pointers can be on the stack. >> >> Maybe I should elaborate -- a priv struct basically means just a single >> pointer, and then I'd have to allocate something to hold two pointers in >> nl80211 and assign it to that single pointer. > > Come to think of it -- I could get away with a single pointer, since, if > both are assigned, > > user_ptr[0] == wiphy_to_rdev(((netdev *)user_ptr[1])->ieee80211_ptr->wiphy) > > but that's a lot of pointy things, and some functions only have the rdev > so it gets more complex. I think allowing two private pointers is a > decent compromise. Come to think of it -- if someone wanted to have a massive structure with 10 pointers and a set of random data structures, then they could easily create their priv struct and assign it to user_ptr[0], hence rendering my argument null and void. Thanks, -- Julian Calaby Email: julian.calaby@xxxxxxxxx Profile: http://www.google.com/profiles/julian.calaby/ .Plan: http://sites.google.com/site/juliancalaby/ -- 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