Am 15.11.2007 23:50 schrieb Andrew Morton: >> ... >> >> + if (atomic_read(&cs->hw.bas->basstate) & BS_SUSPEND) { > > that's pretty peculiar. We'd only expect to see atomics being used in > conjunction with atomic_add/sub/inc/etc. Here the driver is using an > atomic_t as a state variable. And here's the magic bit: > > spin_lock_irqsave(&ucs->lock, flags); > state = atomic_read(&ucs->basstate); > atomic_set(&ucs->basstate, (state & ~clear) | set); > spin_unlock_irqrestore(&ucs->lock, flags); > > I'm suspecting that a plain old `int' would be more appropriate here. You're right. That's a prehistoric leftover. That variable was originally accessed using atomic_set_mask() and atomic_clear_mask() which are unfortunately x86 platform specific. I'll prepare a cleanup patch. Thanks, Tilman -- Tilman Schmidt E-Mail: [email protected] Bonn, Germany Diese Nachricht besteht zu 100% aus wiederverwerteten Bits. Ungeöffnet mindestens haltbar bis: (siehe Rückseite)
Attachment:
signature.asc
Description: OpenPGP digital signature
- References:
- Re: [PATCH 3/4] bas_gigaset: suspend support (v2)
- From: Andrew Morton <[email protected]>
- Re: [PATCH 3/4] bas_gigaset: suspend support (v2)
- Prev by Date: mm creation/destruction hooks
- Next by Date: Re: [RFC 4/7] LTTng instrumentation kernel
- Previous by thread: Re: [PATCH 3/4] bas_gigaset: suspend support (v2)
- Next by thread: mm creation/destruction hooks
- Index(es):