On Thu, 4 Oct 2007, Yoshihiro Shimoda wrote:
> Thank you very much for your comment.
> I understand it.
>
> > Why do you see register accesses after the unmapping? At this point in
> > the driver, nothing should be trying to access the controller hardware.
>
> Because r8a66597_stop() is called by hcd->driver->stop() in usb_remove_hcd().
> And because r8a66597_stop() call disable_controller(), original code
> accessed register after having called iounmap().
Okay, yes.
> I made a new patch. I would appreciate it if you could check this patch.
>
> Thanks,
> Yoshihiro Shimoda
>
> ---
> diff -uprN a/drivers/usb/host/r8a66597-hcd.c b/drivers/usb/host/r8a66597-hcd.c
> --- a/drivers/usb/host/r8a66597-hcd.c 2007-10-04 10:34:58.000000000 +0900
> +++ b/drivers/usb/host/r8a66597-hcd.c 2007-10-04 10:40:20.000000000 +0900
> @@ -2126,8 +2126,8 @@ static int __init_or_module r8a66597_rem
> struct usb_hcd *hcd = r8a66597_to_hcd(r8a66597);
>
> del_timer_sync(&r8a66597->rh_timer);
> - iounmap((void *)r8a66597->reg);
> usb_remove_hcd(hcd);
> + iounmap((void *)r8a66597->reg);
> usb_put_hcd(hcd);
> return 0;
> }
This is right. This is how the other HCDs work; they release resources
and I/O mappings between the calls to usb_remove_hcd and usb_put_hcd.
Alan Stern
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-devel@xxxxxxxxxxxxxxxxxxxxx
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[Home]
[Video for Linux]
[Photo]
[Yosemite Forum]
[Yosemite Photos]
[Video Projectors]
[PDAs]
[Hacking TiVo]
[Linux Kernel]
[Linux SCSI]
[XFree86]
[Devices]
[Big List of Linux Books]
[Free Dating]