lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <45E65DCF.8050903@mvista.com>
Date:	Wed, 28 Feb 2007 21:59:59 -0700
From:	Mark Huth <mhuth@...sta.com>
To:	"Kok, Auke" <auke-jan.h.kok@...el.com>
Cc:	netdev@...r.kernel.org,
	Jesse Brandeburg <jesse.brandeburg@...el.com>
Subject: Re: [PATCH] e1000 stop raw interrupts disabled nag from RT

Kok, Auke wrote:
> Mark Huth wrote:
>> Current e1000_xmit_frame spews raw interrupt disabled nag messages when
>> used with RT kernel patches.  This patch uses spin_trylock_irqsave,
>> which allows RT patches to properly manage the irq semantics.
>
> Looks OK with me on first sight, I'll keep it on my stack and push it 
> upstream after Jesse looks it over.
>
> Which -RT paches make this pop up btw? I'd like to repro it.
>
> Thanks,
>
> Auke
Auke,

Well, I'm not an expert on the realtime patches - but most any patch set 
from Ingo seems to set this off - we've run through a bunch all the way 
since 2.6.10. It's a standard warning to get drivers to not mess with 
the processor interrupt function, since RT threads both the hard and 
soft irqs, and except for rare instances, the drivers and critical 
region protection no longer require the processor interrupt to be off.  
The XX_irqsave functions get turned into pre-empt disable, which is 
adequate for most things.  But the local_irq_save is recognized and 
warned, and then if it is really necessary it can be converted to an RT 
varient that won't warn.
>
>
>
>
>> Signed-off-by: Mark Huth <mhuth@...sta.com>
>> ---
>> diff --git a/drivers/net/e1000/e1000_main.c 
>> b/drivers/net/e1000/e1000_main.c
>> index 619c892..48f94ee 100644
>> --- a/drivers/net/e1000/e1000_main.c
>> +++ b/drivers/net/e1000/e1000_main.c
>> @@ -3363,12 +3363,9 @@ e1000_xmit_frame(struct sk_buff *skb, struct 
>> net_device *netdev)
>>          (adapter->hw.mac_type == e1000_82573))
>>          e1000_transfer_dhcp_info(adapter, skb);
>>  
>> -    local_irq_save(flags);
>> -    if (!spin_trylock(&tx_ring->tx_lock)) {
>> +    if (!spin_trylock_irqsave(&tx_ring->tx_lock, flags))
>>          /* Collision - tell upper layer to requeue */
>> -        local_irq_restore(flags);
>>          return NETDEV_TX_LOCKED;
>> -    }
>>  
>>      /* need: count + 2 desc gap to keep tail from touching
>>       * head, otherwise try next time */
>

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ