Re: igb_down from bottom half context
anil dahiya <[email protected]>
| Newsgroups | org.kernel.vger.linux-newbie,org.kernel.vger.netdev |
|---|---|
| Message-ID | <CAHGPgw0EV3-U+h5S0SFdEweUVcT68h5tdRkZbAwRqrNG5z2P+w@mail.gmail.com> |
You know, you are doing wrong thing i.e sleeping in interrupt context. As suggested by Ben, move code work queue or somewhere else. Other option is dont sleep here. --Anil On Wed, Mar 6, 2013 at 11:08 PM, Ben Hutchings <[email protected]>wrote: > On Wed, 2013-03-06 at 09:38 +0530, ratheesh kannoth wrote: > > I have kernel timer which check for flag. > > > > if(flag ) { > > igb_down(adapter); > > } else { > > igb_up(adapter); > > } > > > > > > I could see a kernel crash; because there are a lot of msleep() in > > igb_down function. > > > > #define msleep(x) do { set_current_state(TASK_UNINTERRUPTIBLE); \ > > schedule_timeout((x * HZ)/1000 + 2); \ > > } while (0) > > > > sleep() is called from bottom half context; this is the cause of kernel > crash. > > > > 1) Since timer call back dont have process context associated with it; > > i think , "current" points to the last preempted task ? > > 2) How can i introduce delays in interrupt context to avoid the kernel > > crash. mdelay() will work ? > > 3) is there any better mechanism to do this job ? > > Use a work item and schedule_work(). > > Ben. > > -- > Ben Hutchings, Staff Engineer, Solarflare > Not speaking for my employer; that's the marketing department's job. > They asked us to note that Solarflare product names are trademarked. > > -- > To unsubscribe from this list: send the line "unsubscribe linux-newbie" in > the body of a message to [email protected] > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.linux-learn.org/faqs > ------------------------------------------------------------------------------ Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the endpoint security space. For insight on selecting the right partner to tackle endpoint security challenges, access the full report. http://p.sf.net/sfu/symantec-dev2dev _______________________________________________ E1000-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired