Hi Chas, I'm working on a series of patches to make all protocol families use private slab caches for its socks, this is needed to introduce struct connection_sock, to move the connection specific members out of struct sock and save bytes/cachelines in non connected protocols, such as UDP. Take a look at the attached patch that does this work on pfkey, basically I need that struct atm_sock (now called atm_vcc) contains as its first member a struct sock, so a pointer to an struct atm_sock is a pointer to an struct sock. This approach eliminates the need for a struct sock backpointer in atm_sock. The approach I'm using in ax25/netrom/rose is to make all functions receive struct sock pointers, and from it, if needed, obtain the ax25_sock pointer using ax25_sk(sk). I'm coordinating with Ralf Baechle, the ham radio protocols maintainer, that is reviewing my changes. Do you have any mixed feelings about doing the same with atm? Regards, - Arnaldo