Re: [PATCH 2.6.17-rc1] [SERIAL] DCC(JTAG) serial and the console emulation support(revised#2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday 04 April 2006 05:20 pm, Russell King wrote:
> On Tue, Apr 04, 2006 at 11:27:06AM +0900, Hyok S. Choi wrote:
> > On Tuesday 04 April 2006 04:44 am, Russell King wrote:
> > > On Mon, Apr 03, 2006 at 08:24:10PM +0900, Hyok S. Choi wrote:
> > > 
> > > > +static void dcc_shutdown(struct uart_port *port)
> > > > +{
> > > > +#ifdef DCC_IRQ_USED /* real IRQ used */
> > > > +	free_irq(port->irq, port);
> > > > +#else
> > > > +	spin_lock(&port->lock);
> > > > +	cancel_rearming_delayed_work(&dcc_poll_task);
> > > 
> > > cancel_rearming_delayed_work() might sleep due to it calling
> > > flush_workqueue.  Therefore, you must not be holding a spinlock.
> > 
> > Thus, I've just revised the code to lock around a counter variable
> > operation, which is used for life control of the polling task.
> > I've just posted the revised #3. :-)
> 
> Why do you think you need such complexity?
> 
> cancel_rearming_delayed_work() will wait until the poll task has
> completed and has been removed from the system.  It's explicitly
> designed for work handlers which self-rearm.

Hmm.. Maybe you're right, because dcc_shutdown and dcc_startup, which
are the only functions that initiate or stop the work, will never be
called concurrently by different callers?

-- 
Hyok
ARM Linux 2.6 MPU/noMMU Project http://opensrc.sec.samsung.com/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" 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.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux