The patch titled netpoll: fix local_bh_enable() warning has been added to the -mm tree. Its filename is netpoll-fix-local_bh_enable-warning.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: netpoll: fix local_bh_enable() warning From: Andrew Morton <akpm@xxxxxxxx> During boot we get: netconsole: device eth0 not up yet, forcing it e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex WARNING (!__warned) at kernel/softirq.c:137 local_bh_enable() Call Trace: [<ffffffff80235baf>] local_bh_enable+0x41/0xa3 [<ffffffff8045ab8e>] netpoll_send_skb+0x116/0x144 [<ffffffff8045b1ee>] netpoll_send_udp+0x263/0x271 [<ffffffff803d41ec>] write_msg+0x42/0x5e [<ffffffff80230c9b>] __call_console_drivers+0x5f/0x70 [<ffffffff80230d19>] _call_console_drivers+0x6d/0x71 [<ffffffff802313f0>] release_console_sem+0x148/0x1ec [<ffffffff802316ce>] register_console+0x1b1/0x1ba [<ffffffff803d4178>] init_netconsole+0x54/0x68 [<ffffffff802071ae>] init+0x152/0x308 [<ffffffff804dac8b>] _spin_unlock_irq+0x14/0x30 [<ffffffff8022c15e>] schedule_tail+0x43/0x9f [<ffffffff8020a758>] child_rip+0xa/0x12 Herbert sayeth: Normally networking isn't invoked with interrupts turned off, but I suppose we don't have a choice here. This is unique being a place where you can get called with BH on, off, or IRQs off. Given that this is only used for printk, the easiest solution is probably just to disable local IRQs instead of BH. Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- net/core/netpoll.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff -puN net/core/netpoll.c~netpoll-fix-local_bh_enable-warning net/core/netpoll.c --- a/net/core/netpoll.c~netpoll-fix-local_bh_enable-warning +++ a/net/core/netpoll.c @@ -243,7 +243,9 @@ static void netpoll_send_skb(struct netp /* don't get messages out of order, and no recursion */ if (skb_queue_len(&npinfo->txq) == 0 && npinfo->poll_owner != smp_processor_id()) { - local_bh_disable(); /* Where's netif_tx_trylock_bh()? */ + unsigned long flags; + + local_irq_save(flags); if (netif_tx_trylock(dev)) { /* try until next clock tick */ for (tries = jiffies_to_usecs(1)/USEC_PER_POLL; @@ -261,7 +263,7 @@ static void netpoll_send_skb(struct netp } netif_tx_unlock(dev); } - local_bh_enable(); + local_irq_restore(flags); } if (status != NETDEV_TX_OK) { _ Patches currently in -mm which might be from akpm@xxxxxxxx are origin.patch x86-smp-export-smp_num_siblings-for-oprofile.patch revert-generic_file_buffered_write-handle-zero-length-iovec-segments.patch revert-generic_file_buffered_write-deadlock-on-vectored-write.patch generic_file_buffered_write-cleanup.patch mm-fix-pagecache-write-deadlocks.patch fs-prepare_write-fixes-fuse-fix.patch fs-prepare_write-fixes-fat-fix.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-acpi.patch acpi-dont-select-pm.patch implementation-of-acpi_video_get_next_level.patch video-sysfs-support-take-2-add-dev-argument-for-backlight_device_register.patch sony_apci-resume.patch sony_apci-resume-fix.patch video-sysfs-support-take-2-add-dev-argument-for-backlight_device_register-sony_acpi-fix.patch git-alsa.patch git-alsa-fixup.patch alsa-workqueue-fixes.patch git-cpufreq-prep.patch git-cpufreq.patch git-cpufreq-fixup.patch ia64-enable-config_debug_spinlock_sleep.patch git-input-vs-git-alsa.patch git-libata-all-fixup.patch pata_cs5530-suspend-resume-support-tweak.patch pata_sil680-suspend-resume-tidy.patch pata_via-suspend-resume-support-fix.patch pata_it8213-add-new-driver-for-the-it8213-card.patch git-lxdialog-fixup.patch git-mmc-fixup.patch git-mmc-tifm_sd-warning-fix.patch git-mtd.patch git-mtd-build-fix.patch git-ubi.patch ubi-versus-add-include-linux-freezerh-and-move-definitions-from.patch update-smc91x-driver-with-arm-versatile-board-info.patch driver-for-silan-sc92031-netdev-include-fix.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch git-net.patch net-use-bitrev8.patch net-uninline-skb_put.patch ioat-warning-fix.patch pci-legacy-resource-fix-tidy.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch scsi-in2000-scsi_cmnd-convertion.patch aic79xx-wrong-max-memory-at-driver-init.patch scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver-fix.patch revert-git-block.patch git-qla3xxx-fixup.patch nokia-e70-is-an-unusual-device.patch fix-gregkh-usb-usb-ehci-hcd-add-shadow-budget-code.patch revert-i386-fix-the-verify_quirk_intel_irqbalance.patch revert-x86_64-mm-add-genapic_force.patch revert-x86_64-mm-fix-the-irqbalance-quirk-for-e7320-e7520-e7525.patch convert-i386-pda-code-to-use-%fs-fixes.patch touchkit-ps-2-touchscreen-driver.patch virtual-memmap-on-sparsemem-v3-map-and-unmap-fix-2.patch virtual-memmap-on-sparsemem-v3-map-and-unmap-fix-3.patch slab-use-a-multiply-instead-of-a-divide-in-obj_to_index-tweaks.patch deprecate-smbfs-in-favour-of-cifs.patch edac-new-opteron-athlon64-memory-controller-driver.patch drivers-add-lcd-support-3-Kconfig-fix.patch drivers-add-lcd-support-workqueue-fixups.patch touch_atime-cleanup.patch ocfs2-relative-atime-support-tweaks.patch ecryptfs-public-key-packet-management-slab-fix.patch optimize-o_direct-on-block-device-v3-tweak.patch add-retain_initrd-boot-option-tweak.patch lockdep-fix-possible-races-while-disabling-lock-debugging-fix.patch workqueue-dont-hold-workqueue_mutex-in-flush_scheduled_work.patch move-page-writeback-acounting-out-of-macros.patch per-backing_dev-dirty-and-writeback-page-accounting.patch ext2-reservations.patch sched2-sched-domain-sysctl-use-ctl_unnumbered.patch mm-implement-swap-prefetching-use-ctl_unnumbered.patch swap_prefetch-vs-zoned-counters.patch add-include-linux-freezerh-and-move-definitions-from-prefetch.patch readahead-kconfig-options-fix.patch readahead-minmax_ra_pages.patch readahead-sysctl-parameters.patch readahead-sysctl-parameters-use-ctl_unnumbered.patch readahead-context-based-method-locking-fix.patch readahead-context-based-method-locking-fix-2.patch readahead-call-scheme-ifdef-fix.patch readahead-call-scheme-build-fix.patch readahead-nfsd-case-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch resier4-add-include-linux-freezerh-and-move-definitions-from.patch make-kmem_cache_destroy-return-void-reiser4.patch reiser4-hardirq-include-fix.patch reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch reiser4-get_sb_dev-fix.patch reiser4-vs-zoned-allocator.patch reiser4-temp-fix.patch reiser4-kmem_cache_t-removal.patch hpt3xx-rework-rate-filtering-tidy.patch jmicron-warning-fix.patch statistics-infrastructure-fix-buffer-overflow-in-histogram-with-linear-tidy.patch extend-notifier_call_chain-to-count-nr_calls-made.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch gtod-persistent-clock-support-i386.patch hrtimers-clean-up-locking-fix.patch updated-hrtimers-state-tracking.patch updated-i386-convert-to-clock-event-devices.patch updated-i386-convert-to-clock-event-devices-fix.patch updated-gtod-mark-tsc-unusable-for-highres-timers.patch slim-main-include-fix.patch nr_blockdev_pages-in_interrupt-warning.patch device-suspend-debug.patch mutex-subsystem-synchro-test-module-fix.patch slab-leaks3-default-y.patch vdso-print-fatal-signals-use-ctl_unnumbered.patch restore-rogue-readahead-printk.patch put_bh-debug.patch e1000-printk-warning-fixes.patch acpi_format_exception-debug.patch add-debugging-aid-for-memory-initialisation-problems-fix.patch kmap_atomic-debugging.patch squash-ipc-warnings.patch squash-udf-warnings.patch netpoll-fix-local_bh_enable-warning.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html