Re: Bug in 2.6.11.11 - udp_poll(), fragments + CONFIG_HIGHMEM

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

 



From: Andrew Morton <akpm@xxxxxxxx>
Date: Mon, 30 May 2005 14:17:14 -0700

> That local_bh_disable() in kmap_skb_frag() looks weird and might be
> unnecessary.  Does anyone know what it's there for?  Replace it with
> local_irq_save()?

The SKB kmap types are to be used only from BH context.
So the local_bh_disable() is really necessary.

This limitation causes problems elsewhere too, for example if the tg3
driver has to do the 4GB DMA boundary workaround on transmit, then it
tries to do a skb_copy() in IRQ disabled context, which thusly also
tries to do some SKB kmapping and triggers the same assertion seen
here.

Both UDP and tg3 need to be fixed to not do these operations from such
illegal contexts.

It really stinks that this error on triggers with highmem enabled.
We would have seen both bugs much earlier on otherwise.
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux