ichsmb(4) and msleep()
Hans Petter Selasky
hps at selasky.org
Wed Aug 28 09:47:53 UTC 2019
On 2019-08-28 11:44, Yuri Pankov wrote:
> Hans Petter Selasky wrote:
>> On 2019-08-28 11:07, Yuri Pankov wrote:
>>> I have a "timed sleep before timers are working" panic in ichsmb_readb()
>>> calling ichsmb_wait() which uses msleep(). That is trying to
>>> jedec_dimm(4) module so it's trying to attach pretty early in boot.
>>> What would be the correct replacement for msleep() here?
>>>
>>
>> If you only need a sleep-delay, pause() is the right one. It handles
>> cold-boot.
>
> I guess that won't work here as we need to be waked up by interrupt
> handler on command completion, and pause() seems to sleep
> unconditionally for the given time in 'cold' case (if I'm reading the
> code correctly).
If you are too early inside a SYSINIT() path, then you cannot use
sleeping. You will have to use polling in a loop with a fixed DELAY() to
know the timeout.
--HPS
More information about the freebsd-hackers
mailing list