lkml.org 
[lkml]   [2012]   [Oct]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [RFC 3/3] libata: don't perform HW activity in devres
From
On Thu, Oct 25, 2012 at 10:25 AM, Tejun Heo <tj@kernel.org> wrote:
> On Thu, Oct 25, 2012 at 09:56:01AM -0700, Brian Norris wrote:
>> devres functions are intended for simplified cleanup of memory and other
>> software resources on device exit, not for hardware shutdown sequences.
>> In addition, inducing hardware activity at device removal hamstrings
>> some drivers (particularly ahci_platform) so that they cannot totally
>> power off their hardware before removal, as devres cleanup occurs after
>> the driver's exit() sequence.
>>
>> More concretely, I experience the following bus error when using rmmod
>> to remove (and power off) the SATA block on my SoC:
>
> Shouldn't poweroff happen from ->port/host_stop()?

Hmm, I guess that makes more sense. I was using the ahci_platform
ahci_platform_data->exit() function. Would it be safe to call the
platform init()/exit() functions as part of a
ata_port_operations.host_{start,stop}() hook? These functions aren't
currently implemented at all in ahci_platform, but I don't see why
they couldn't be.

Brian


\
 
 \ /
  Last update: 2012-10-25 21:01    [W:1.395 / U:0.084 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site