On sg_miter_next sg_miter_stop

Mulyadi Santosa mulyadi.santosa at gmail.com
Wed Mar 16 13:49:02 EDT 2011


Hi...

On Thu, Mar 17, 2011 at 00:26, va stg2010 <va.storage2010 at gmail.com> wrote:
> I also looked into sg_miter_next()   and sg_miter_stop()
> implementations.  They  are calling  kmap_atomic()   and
> kunmap_atomic() respectively.    Based on comment --  Is following an
> illegal operation? and why?
> 1)  IRQ disabled
> 2) sg_miter_next , meaning kmap_atomic
> 3) IRQ enabled
> 4)  IRQ  disabled again little later
> 5) sg_miter_stop, meaning kunmap_atomic()
>
> The above sequence caused following scheduler messages (if
> sg_miter_stop()  is moved between step1 & step3 then following error
> messages disappeared) :--------
> BUG: scheduling while atomic: swapper/0/0xffffffff
> Modules linked in: my_scsi_lld

quite likely the error was triggered not due to kmap_atomic() and
kunmap_atomic(), but due to something that you do toward the page
allocated via kmap_atomic() itself.

kmap_atomic() theoritically should not be affected by the state of
interrupt delivery....
-- 
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com



More information about the Kernelnewbies mailing list