> +static struct ib_ucm { > + struct semaphore mutex; > + struct idr ctx_id_table; > + struct list_head device_list; > +} ucm; Just out of curiousity, why put these in a struct? It seems like you might as well just use three static variables. You could even use DEFINE_IDR() and avoid a call to idr_init()... - R.