Manu Abraham writes: > diff -Naurp bt8xx.orig/dst.c bt8xx/dst.c > --- bt8xx.orig/dst.c 2005-09-21 20:29:09.000000000 +0400 > +++ bt8xx/dst.c 2005-10-18 19:38:27.000000000 +0400 > @@ -910,6 +910,7 @@ static int dst_get_device_id(struct dst_ > > static int dst_probe(struct dst_state *state) > { > + sema_init(&state->dst_mutex, 1); > if ((rdc_8820_reset(state)) < 0) { > dprintk(verbose, DST_ERROR, 1, "RDC 8820 RESET Failed."); > return -1; > @@ -960,21 +961,23 @@ static int dst_probe(struct dst_state *s > int dst_command(struct dst_state *state, u8 *data, u8 len) > { > u8 reply; > + > + up(&state->dst_mutex); > if ((dst_comm_init(state)) < 0) { > dprintk(verbose, DST_NOTICE, 1, "DST Communication Initialization Failed."); This should be down()? Ralph