Hi Pradeep,
> > > Can you please recheck if you are not holding any spinlocks.Also check
> > > if you are not doing a memory allocation with spinlock held or in
> > > interrupt context.May be you are doing something like printk which may
> > > sleep IMO.Rechcek any methods you are calling which may sleep.
> >
> > printk will not sleep. Thus it is safe to call printk from any where
> > except from very few restricted locations like some scheduler etc.
>
> Can you please help me out in understanding why?
> Printk involves allocating buffer for the message to be printed,
> right?Which can sleep, isnt it?
> What am i missing here?
No, printk does not allocate any buffer. printk has a compile time
circular buffer (log_buf) whose size is determined by compile time
constant. So what prink does is mere dump the message in this circular
buffer.