Re: About TRB_TO_EP_INDEX() macro using

2013-08-06 Thread 'gre...@linuxfoundation.org'
On Tue, Aug 06, 2013 at 08:59:32AM +, Du, ChangbinX wrote:
> > On Mon, Aug 05, 2013 at 08:07:25AM +, Du, ChangbinX wrote:
> > > Recently when I check xHCI code, find that some functions try to get EP 
> > > index
> > > from a Command Completion Event TRB via TRB_TO_EP_INDEX() macro.
> > >
> > > This is totally wrong. The macro definition is:
> > >
> > >   #define TRB_TO_EP_INDEX(p)  p) & (0x1f << 16)) >> 16) - 
> > > 1)
> > >
> > > TRB_TO_EP_INDEX only applies to Transfer Event TRB. But for Command
> > > Completion Event TRB, there is no Endpoint ID field. So, we cannot 
> > > directly
> > > get EP index from these TRBs, but we can find it by the TRB Pointer.
> > >
> > > Here list two functions for you to check:
> > >   handle_stopped_endpoint()
> > >   handle_reset_ep_completion()
> > 
> > Care to send a patch showing how you would change this if it is
> > incorrect?
> > 
> > thanks,
> > 
> > greg k-h
> > --
> 
> Hello, Greg k-h. I am not very sure about this issue. If this is true, kernel 
> will panic when 
> invoking above functions. I want someone help to confirm if I miss something. 
> If it's really 
> a bug, I will work out a patch to fix it.

That's not how kernel development works, sorry.  If you think this is an
issue, try to reproduce it and then create a patch.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: About TRB_TO_EP_INDEX() macro using

2013-08-06 Thread Du, ChangbinX
> On Mon, Aug 05, 2013 at 08:07:25AM +, Du, ChangbinX wrote:
> > Recently when I check xHCI code, find that some functions try to get EP 
> > index
> > from a Command Completion Event TRB via TRB_TO_EP_INDEX() macro.
> >
> > This is totally wrong. The macro definition is:
> >
> > #define TRB_TO_EP_INDEX(p)  p) & (0x1f << 16)) >> 16) - 
> > 1)
> >
> > TRB_TO_EP_INDEX only applies to Transfer Event TRB. But for Command
> > Completion Event TRB, there is no Endpoint ID field. So, we cannot directly
> > get EP index from these TRBs, but we can find it by the TRB Pointer.
> >
> > Here list two functions for you to check:
> > handle_stopped_endpoint()
> > handle_reset_ep_completion()
> 
> Care to send a patch showing how you would change this if it is
> incorrect?
> 
> thanks,
> 
> greg k-h
> --

Hello, Greg k-h. I am not very sure about this issue. If this is true, kernel 
will panic when 
invoking above functions. I want someone help to confirm if I miss something. 
If it's really 
a bug, I will work out a patch to fix it.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: About TRB_TO_EP_INDEX() macro using

2013-08-05 Thread gre...@linuxfoundation.org
On Mon, Aug 05, 2013 at 08:07:25AM +, Du, ChangbinX wrote:
> Recently when I check xHCI code, find that some functions try to get EP index 
> from a Command Completion Event TRB via TRB_TO_EP_INDEX() macro.
> 
> This is totally wrong. The macro definition is:
> 
>   #define TRB_TO_EP_INDEX(p)  p) & (0x1f << 16)) >> 16) - 
> 1)
> 
> TRB_TO_EP_INDEX only applies to Transfer Event TRB. But for Command 
> Completion Event TRB, there is no Endpoint ID field. So, we cannot directly 
> get EP index from these TRBs, but we can find it by the TRB Pointer.
> 
> Here list two functions for you to check:
>   handle_stopped_endpoint()
>   handle_reset_ep_completion()

Care to send a patch showing how you would change this if it is
incorrect?

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


About TRB_TO_EP_INDEX() macro using

2013-08-05 Thread Du, ChangbinX
Recently when I check xHCI code, find that some functions try to get EP index 
from a Command Completion Event TRB via TRB_TO_EP_INDEX() macro.

This is totally wrong. The macro definition is:

#define TRB_TO_EP_INDEX(p)  p) & (0x1f << 16)) >> 16) - 
1)

TRB_TO_EP_INDEX only applies to Transfer Event TRB. But for Command 
Completion Event TRB, there is no Endpoint ID field. So, we cannot directly 
get EP index from these TRBs, but we can find it by the TRB Pointer.

Here list two functions for you to check:
handle_stopped_endpoint()
handle_reset_ep_completion()

Regards & Thanks!
Changbin


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html