No subject


Thu Sep 1 17:20:09 CEST 2011


IRQs, so, doing that is either impossible, or would require a _much_ 
deeper change to the driver and _this_ would indeed be a much bigger 
change than just fixing the Oops.

Thanks
Guennadi

> > Shimoda-san, this is the problem, that you were observing. However, it 
> > exists with the present version of shdma just as well as with the new one 
> > - on top of the simple DMA library. I marked it an RFC because (1) I only 
> > lightly tested it with the gadget device on mackerel with the mass storage 
> > gadget, and (2) I am somewhat concerned about races. Currently the work 
> > function runs with no locking and there are no usual cancel_work_sync() 
> > points in the patch. However, it has also been like this before with the 
> > tasklet implementation, which is not much better, and it looks like there 
> > are no asynchronous operations on the same packets like timeouts. Only 
> > asynchronous events, that I can think about are things like unloading the 
> > driver or unplugging the cable, but these have been there before too. It 
> > would become worse on SMP, I think. Comments welcome.
> > 
> > diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c
> > index 72339bd..4d739ec 100644
> > --- a/drivers/usb/renesas_usbhs/fifo.c
> > +++ b/drivers/usb/renesas_usbhs/fifo.c
> > @@ -75,8 +75,7 @@ void usbhs_pkt_push(struct usbhs_pipe *pipe, struct usbhs_pkt *pkt,
> >  		pipe->handler = &usbhsf_null_handler;
> >  	}
> >  
> > -	list_del_init(&pkt->node);
> > -	list_add_tail(&pkt->node, &pipe->list);
> > +	list_move_tail(&pkt->node, &pipe->list);
> >  
> >  	/*
> >  	 * each pkt must hold own handler.
> > @@ -106,7 +105,7 @@ static struct usbhs_pkt *__usbhsf_pkt_get(struct usbhs_pipe *pipe)
> >  	if (list_empty(&pipe->list))
> >  		return NULL;
> >  
> > -	return list_entry(pipe->list.next, struct usbhs_pkt, node);
> > +	return list_first_entry(&pipe->list, struct usbhs_pkt, node);
> 
> these two hunks are not part of $SUBJECT
> 
> -- 
> balbi
> 

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/


More information about the Alsa-devel mailing list