ichsmb - correct locking strategy?

Svatopluk Kraus onwahe at gmail.com
Mon Feb 21 10:38:16 UTC 2011


On Fri, Feb 18, 2011 at 4:09 PM, Hans Petter Selasky <hselasky at c2i.net> wrote:
> On Friday 18 February 2011 15:10:47 Svatopluk Kraus wrote:
>> Hi,
>>
>>   I try to figure out locking strategy in FreeBSD and found 'ichsmb'
>> device. There is a mutex which protects smb bus (ichsmb device). For
>> example in ichsmb_readw() in sys/dev/ichsmb/ichsmb.c, the mutex is
>> locked and a command is written to bus, then unbounded (but with
>> timeout) sleep is done (mutex is unlocked during sleep). After sleep a
>> word is read from bus and the mutex is unlocked.
>>
>>   1. If an use of the device IS NOT serialized by layers around then
>> more calls to this function (or others) can be started or even done
>> before the first one is finished. The mutex don't protect sms bus.
>>
>>   2. If an use of the device IS serialized by layers around then the
>> mutex is useless.
>>
>>   Moreover, I don't mension interrupt routine which uses the mutex and
>> smb bus too.
>>
>>   Am I right? Or did I miss something?
>
> man sx ?
>
> struct sx ?
>
> --HPS
>

Thanks for your reply. It seems that everybody knows that ichsmb
driver is not in good shape but nobody cares for ...

    Svata


More information about the freebsd-hackers mailing list