Search Linux Wireless

Re: [ipw3945-devel] [PATCH 2/5] iwlwifi: iwl3945 synchronize interruptand tasklet for down iwlwifi

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

 



2008/1/11, Chatre, Reinette <reinette.chatre@xxxxxxxxx>:
>
> On Thursday, January 10, 2008 5:25 PM, Joonwoo Park  wrote:
>
> > 2008/1/11, Chatre, Reinette <reinette.chatre@xxxxxxxxx>:
> >>
> >> Could synchronize_irq() be moved into iwl_disable_interrupts() ? I am
> >
> > At this time, iwl_disable_interrupts() can be called with irq
> > disabled, so for do that I think additional modification would be
> > needed.
>
> If this is the case where iwl_disable_interrupts() is called while in
> the ISR (where interrupts are disabled), then this behavior may be what
> we want as synchronize_irq() (as I understand) waits for the handler to
> complete irrespective of irq enable/disable.

I agree with you and it's what I want. the meaning 'irq disabled' was local irq.
I'm sorry for confusing.

>
> What modification are you considering?

Roughly, I'm considering make synchronize_irq() be moved into
iwl_disable_interrupts() and fix iwl_irq_tasket not to call
iwl_disable_interrupts with irq disabled.
For now iwl_irq_tasklet calls iwl_disable_interrupts() with local irq disabled.
like this:

static void iwl_irq_tasklet(struct iwl_priv *priv)
{
        ...
        spin_lock_irqsave(&priv->lock, flags);

        ...
        /* Now service all interrupt bits discovered above. */
        if (inta & CSR_INT_BIT_HW_ERR) {
                IWL_ERROR("Microcode HW error detected.  Restarting.\n");

                /* Tell the device to stop sending interrupts */
                iwl_disable_interrupts(priv);
                ...
                spin_unlock_irqrestore(&priv->lock, flags);
                return;
        }


>
> >> also wondering if we cannot call tasklet_kill() before
> >> iwl_disable_interrupts() ... thus preventing it from being scheduled
> >> when we are going down.
> >
> > Thanks for your catch, it seems tasklet can re-enable interrupts.
> > I'll handle and make an another patch for them at this weekend :)
>
> Please think it through also as I am exploring with you ...

Thanks again your comments.

Thanks,
Joonwoo
-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux