Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[GIT]: Networking

91 views
Skip to first unread message

David Miller

unread,
Jul 20, 2008, 1:50:15 PM7/20/08
to

Hello Linus. This is the main networking merge for 2.6.27

Highlights:

1) Explicit support for multiple hardware TX queues, from your's
truly.

2) Making MIB statistics namespace aware, from Pavel Emelyanov.

3) GVRP support from Patrick McHardy.

4) Packet capture tools can now recreate the VLAN header even
when hardware offloading of VLAN decapsulation is being
performed. Also from Patrick McHardy.

5) Dynamic queueing discipline hash table sizing from Patrick
McHardy.

6) Lots of wireless stack and driver updates from John Linville
and the wireless crew.

7) IPV6 stack improvements from Yoshifuji Hideaki and co.

8) Various wired driver updates via Jeff Garzik and all the various
driver maintainers.

Please pull, thanks a lot!

The following changes since commit 5b664cb235e97afbf34db9c4d77f08ebd725335e:
Linus Torvalds (1):
Merge branch 'upstream-linus' of git://git.kernel.org/.../mfasheh/ocfs2

are available in the git repository at:

master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6.git master

Abhijeet Kolekar (6):
iwlwifi : Set monitor mode for 4965
iwlwifi : Set monitor mode for 3945
iwlwifi : Patch adds rfkill subsystem for 3945
iwlwifi: Remove unnecessary code
iwlwifi: Fix LEDs for 3945
iwlwifi: make index unsigned int for iwl_send_led_cmd

Adam Langley (3):
tcp: Fix MD5 signatures for non-linear skbs
tcp: options clean up
tcp: Remove redundant checks when setting eff_sacks

Adel Gadllah (5):
iwlwifi: fix rfkill deps and remove input device usage
b43/b43legacy: use RFKILL_STATE_UNBLOCKED instead of RFKILL_STATE_ON
b43/b43legacy: add RFKILL_STATE_HARD_BLOCKED support
iwlwifi: remove input device and fix rfkill state
iwl3965: remove useless network and duplicate checking

Adrian Bunk (13):
make sta_rx_agg_session_timer_expired() static
remove ieee80211_tx_frame()
remove ieee80211_wx_{get,set}_auth()
make drivers/net/atarilance.c:lance_addr_list[] static
make hplance_{init,cleanup}_module() static
drivers/net/mac8390.c: make functions static
drivers/net/: remove write-only "last_dev"
drivers/net/macsonic.c: make functions static
net: remove CVS keywords
irda: remove CVS keywords
remove the strip driver
build algorithms into the mac80211 module
netfilter: cleanup netfilter_ipv6.h userspace header

Akinobu Mita (2):
airo: use simple_read_from_buffer()
iucv: fix memory leak in cpu hotplug error path.

Al Viro (1):
misc drivers/net endianness noise

Alan Cox (5):
ppp: push BKL down into the driver
wanrouter: Push down BKL
irda: Push BKL down into irda ioctl handlers
atm: [iphase] 64-bit cleanup
8390: Split 8390 support into a pausing and a non pausing driver core

Alexander Duyck (11):
igb: fix parameter options
igb: fix init on 82575 with MNG enabled
igb: update ethtool stats to support multiqueue
igb: add 82576 MAC support
igb: Add support for quad port WOL and feature flags
igb: add page recycling support
igb: add support for in kernel LRO
net: add netif_napi_del function to allow for removal of napistructs
igb: update suspend resume
igb: unused variable warning in igb remove
igb: Improve multiqueue AIM support

Alexey Dobriyan (2):
netfilter: use correct namespace in ip6table_security
netfilter: ip6table_filter in netns for real

Allan Stephens (41):
tipc: Simplify log buffer resizing
tipc: Provide feedback when log buffer resizing fails
tipc: Fix recursive spinlock invocation in print buffer code
tipc: Fix null pointer dereference in debug code
tipc: Elimination of print buffer chaining
[TIPC]: Cosmetic cleanup of print buffer code
tipc: Cosmetic cleanup of system & debug output declarations
tipc: Exclude debug-only print buffer code when not debugging
tipc: Update version number to TIPC 1.6.4
tipc: Enhancements to name table initialization
tipc: Fix race condition when creating socket or native port
tipc: Add support for customized subscription overlap handling
tipc: Add support for customized subscription endianness
tipc: Fix bug in topology server byte swapping routine
tipc: Consolidate subscriber & subscriber port references
tipc: Cosmetic cleanup of topology service code
tipc: Fix skb_under_panic when configuring TIPC without privileges
tipc: Prevent node object duplication due to simultaneous discovery
tipc: Optimize null pointer check during neighbor discovery
tipc: Update "previous node" indicators when node address changes
tipc: Fix initialization sequence problems when entering network mode
tipc: Fix bug in connection setup via native API
tipc: Standardize error checking on incoming messages via native API
tipc: Fix bugs in message error code display when debugging
tipc: Fix minor bugs in link session number handling
tipc: Minor optimizations to received message processing
tipc: Prevent access of non-existent field in short message header
tipc: Optimize message initialization routine
tipc: Prevent display of name table types with no publications
tipc: Add missing spinlock in name table display code
tipc: Expand link sequence gap field to 13 bits
tipc: Message header creation optimizations
tipc: Fix bugs in rejection of message with short header
tipc: Message rejection rework preparatory changes
tipc: Remove unneeded parameter to tipc_createport_raw()
tipc: Optimize pointer dereferencing when receiving stream data
tipc: Fix race condition that could cause accept() to fail
tipc: Eliminate improper use of TIPC_OK error code
tipc: Fix bug in scope checking for multicast messages
tipc: Add missing locks when inspecting node list & link list
tipc: Optimization to multicast name lookup algorithm

Andrew Morton (1):
wireless: fix "iwlwifi: unify init driver flow"

Andy Gospodarek (1):
e1000: remove e1000_clean_tx_irq call from e1000_netpoll

Assaf Krauss (6):
iwlwifi enabling IBSS (Ad-Hoc) mode
iwlwifi: Fix mode changes (ad-hoc <--> managed)
mac80211: 11h Infrastructure - Parsing
mac80211: 11h - Handling measurement request
mac80211: add beacon timestamp to beacon template in IBSS
iwlwifi: adjust TSF in IBSS

Atsushi Nemoto (1):
zd1211rw: Use DMA-aware buffer for usb transfer

Auke Kok (4):
e1000: remove PCI Express device IDs
igb: eliminate hw from the hw_dbg macro arguments
igb: reenable CRC stripping in hardware
igb: Increment driver version

Ben Dooks (10):
DM9000: Add support for DM9000A and DM9000B chips
DM9000: Cleanups after the resource changes
DM9000: Cleanup source code
DM9000: Cleanup source code - remove forward declerations
DM9000: Use NSR to determine link-status on internal PHY
DM9000: Allow the use of the NSR register to get link status.
DM9000: Add missing msleep() in EEPROM wait code.
DM9000: Re-unite menuconfig entries for DM9000 driver
DM9000: Remove DEFAULT_TRIGGER for request_irq() flags.
DM9000: Add documentation for the driver.

Ben Hutchings (5):
sfc: Use kernel I2C system and i2c-algo-bit driver
sfc: Reduce I2C udelay to 5 resulting in a clock frequency of 100 kHz
net: Disable LRO on devices that are forwarding
net: Discard and warn about LRO'd skbs received for forwarding
e1000: resolve tx multiqueue bug

Benjamin Li (8):
bnx2: Remove the rx_offset field from the bnx2 structure.
bnx2: Rename RX_COPY_THRESH to BNX2_RX_COPY_THRESH.
bnx2: Pre-initialize struct cpu_reg.
bnx2: Support secondary MAC addresses.
bnx2: Update TPAT firmware
bnx2: Add TX multiqueue support.
bnx2: Fix Sparse warnings
bnx2: Update version to 1.7.9.

Benjamin Thery (1):
ipv6 netns: Address labels per namespace

Bernard Pidoux (1):
rose: improving AX25 routing frames via ROSE network

Bill Moss (1):
iwl3945: do not delay hardware scan if it is a direct scan

Bob Copeland (2):
ath5k: Fix loop variable initializations
ath5k: convert LED code to use mac80211 triggers

Brian Haley (1):
net: change proto destroy method to return void

Brice Goglin (3):
myri10ge: add routines for multislices
myri10ge: add multislices support
myri10ge: add Direct Cache Access support

Bruno Randolf (3):
zd1211rw: initial IBSS support
mac80211: use hardware flags for signal/noise units
mac80211: make rx radiotap header more flexible

Chas Williams (3):
atm: [suni] add support for setting loopback and framing modes
atm: [he] remove #ifdef clutter
atm: [fore200e] convert to use request_firmware()

Dale Farnsworth (1):
mv643xx_eth: new maintainer

Daniel Drake (1):
zd1211rw: beacon config error checking

Daniel Lezcano (1):
tcp: fix kernel panic with listening_get_next

Daniel Walker (6):
ps3: gelic: scan_lock semaphore to mutex
ps3: gelic: assoc_stat_lock semaphore to mutex
ps3: gelic: updown_lock semaphore to mutex
ps3: gelic: scan_lock semaphore to mutex
ps3: gelic: assoc_stat_lock semaphore to mutex
ps3: gelic: updown_lock semaphore to mutex

David S. Miller (118):
Merge branch 'upstream-next' of master.kernel.org:/.../jgarzik/netdev-2.6
Merge branch 'master' of git://git.kernel.org/.../davem/net-2.6
Merge branch 'master' of git://git.kernel.org/.../linville/wireless-next-2.6
Merge branch 'master' of master.kernel.org:/.../davem/net-2.6
wanrouter: Fix ioctl handler declaration.
Merge branch 'upstream-next-davem' of master.kernel.org:/.../jgarzik/netdev-2.6
Merge branch 'master' of master.kernel.org:/.../linville/wireless-next-2.6
Merge branch 'master' of master.kernel.org:/.../davem/net-2.6
Merge branch 'net-next-2.6-misc-20080612a' of git://git.linux-ipv6.org/gitroot/yoshfuji/linux-2.6-next
Merge branch 'davem-next' of master.kernel.org:/.../jgarzik/netdev-2.6
Merge branch 'master' of master.kernel.org:/.../davem/net-2.6
Merge branch 'master' of master.kernel.org:/.../linville/wireless-next-2.6
Merge branch 'master' of master.kernel.org:/.../davem/net-2.6
wext: Remove inline from get_priv_size() and adjust_priv_size().
wext: Make adjust_priv_size() take a "struct iw_point *".
wext: Extract standard call iw_point handling into seperate function.
wext: Extract private call iw_point handling into seperate functions.
wext: Pull ioctl permission checking out into helper function.
wext: Parameterize the standard/private handlers.
wext: Pass iwreq pointer down into standard/private handlers.
wext: Pull top-level ioctl dispatch logic into helper function.
wext: Dispatch and handle compat ioctls entirely in net/wireless/wext.c
wext: Remove compat handling from fs/compat_ioctl.c
wext: Create IW_REQUEST_FLAG_COMPAT and set it as needed.
wext: Emit event stream entries correctly when compat.
sctp: Kill SCTP_SOCK_SLEEP_{PRE,POST}, unused.
decnet: Remove SOCK_SLEEP_{PRE,POST} usage.
net: Kill SOCK_SLEEP_PRE and SOCK_SLEEP_POST, no users.
llc: Use sock_graft() instead of by-hand version.
ax25: Use sock_graft() and remove bogus sk_socket and sk_sleep init.
netrom: Use sock_graft() and remove bogus sk_socket and sk_sleep init.
rose: Use sock_graft() and remove bogus sk_socket and sk_sleep init.
x25: Use sock_graft() and remove bogus sk_socket and sk_sleep init.
econet: Use sock_orphan() instead of open-coded (and buggy) variant.
x25: Use sock_orphan() instead of open-coded (and buggy) variant.
netrom: Kill spurious NULL'ing of sk->sk_socket.
ax25: Fix std timer socket destroy handling.
Merge branch 'davem-next' of master.kernel.org:/.../jgarzik/netdev-2.6
net: Add sk_set_socket() helper.
Merge branch 'master' of master.kernel.org:/.../davem/net-2.6
Merge branch 'master' of master.kernel.org:/.../davem/net-2.6
Merge branch 'davem-next' of master.kernel.org:/.../jgarzik/netdev-2.6
Merge branch 'master' of master.kernel.org:/.../linville/wireless-next-2.6
Merge branch 'net-next-2.6-v6ready-20080703' of git://git.linux-ipv6.org/gitroot/yoshfuji/linux-2.6-next
Merge branch 'davem-next' of master.kernel.org:/.../jgarzik/netdev-2.6
Merge branch 'master' of master.kernel.org:/.../linville/wireless-next-2.6
Merge branch 'master' of master.kernel.org:/.../davem/net-2.6
Merge branch 'master' of master.kernel.org:/.../linville/wireless-next-2.6
Merge branch 'master' of master.kernel.org:/.../davem/net-2.6
pkt_sched: Remove comment reference to old style TX locking.
netdev: Create netdev_queue abstraction.
pkt_sched: Remove 'dev' member of struct Qdisc.
netdev: Move queue_lock into struct netdev_queue.
netdev: The ingress_lock member is no longer needed.
netdev: Move rest of qdisc state into struct netdev_queue
netdev: Kill qdisc_ingress, use netdev->rx_queue.qdisc instead.
pkt_sched: Kill stats_lock member of struct Qdisc.
pkt_sched: Make netem queue agnostic.
netdev: Move next_sched into struct netdev_queue.
pkt_sched: Add qdisc_reset_all_tx().
pkt_sched: Add qdisc_all_tx_empty()
net: Clean up explicit ->tx_queue references in link watch.
pkt_sched: Add qdisc_tx_is_noop() helper and use in IPV6.
mac80211: Decrease number of explicit ->tx_queue references.
netdev: Move gso_skb into netdev_queue.
netdev: Make netif_schedule() routines work with netdev_queue objects.
pkt_sched: Make qdisc_run take a netdev_queue.
netdev: Move _xmit_lock and xmit_lock_owner into netdev_queue.
net: Delete NETDEVICES_MULTIQUEUE kconfig option.
netdev: Move atomic queue state bits into netdev_queue.
netfilter: Let nf_ct_kill() callers know if del_timer() returned true.
Merge branch 'master' of master.kernel.org:/.../davem/net-2.6
Merge branch 'master' of git://eden-feed.erg.abdn.ac.uk/net-next-2.6
Merge branch 'master' of git://git.kernel.org/.../linville/wireless-next-2.6
Merge branch 'davem-next' of master.kernel.org:/.../jgarzik/netdev-2.6
netdev: Add addr_list_lock to struct net_device.
netdev: Add netdev->addr_list_lock protection.
netdev: Do not use TX lock to protect address lists.
Merge branch 'stealer/ipvs/sync-daemon-cleanup-for-next' of git://git.stealer.net/linux-2.6
igb: Kill CONFIG_NETDEVICES_MULTIQUEUE references, no longer exists.
netdev: Allocate multiple queues for TX.
netdev: Kill NETIF_F_MULTI_QUEUE.
pkt_sched: Remove RR scheduler.
mac80211: Temporarily mark QoS support BROKEN.
net: Use queue aware tests throughout.
netdev: Kill struct net_device_subqueue and netdev->egress_subqueue*
netdev: netdev_priv() can now be sane again.
netdev: Add netdev->select_queue() method.
mac80211: Reimplement WME using ->select_queue().
net: Implement simple sw TX hashing.
netdev: Convert all drivers away from netif_schedule().
netdev: Kill plain netif_schedule()
niu: Add TX multiqueue support.
pkt_sched: Move gso_skb into Qdisc.
pkt_sched: Make QDISC_RUNNING a qdisc state.
pkt_sched: Add and use qdisc_root() and qdisc_root_lock().
pkt_sched: Schedule qdiscs instead of netdev_queue.
pkt_sched: dev_init_scheduler() does not need to lock qdisc tree.
pkt_sched: Perform bulk of qdisc destruction in RCU.
pkt_sched: Use per-queue locking in shutdown_scheduler_queue.
pkt_sched: Remove qdisc_lock_tree usage in cls_api.c
pkt_sched: Kill qdisc_lock_tree usage in cls_route.c
netdevice: Move qdisc_list back into net_device proper.
pkt_sched: Make qdisc grafting locking more specific.
pkt_sched: Rework {sch,tbf}_tree_lock().
pkt_sched: Kill qdisc_lock_tree and qdisc_unlock_tree.
pkt_sched: Kill netdev_queue lock.
pkt_sched: Add multiqueue handling to qdisc_graft().
pkt_sched: Don't used locked skb_queue_purge() in __qdisc_reset_queue()
pkt_sched: Make default qdisc nonshared-multiqueue safe.
Merge branch 'master' of master.kernel.org:/.../torvalds/linux-2.6
Revert "remove the strip driver"
pkt_sched: Get rid of u32_list.
pkt_sched: Manage qdisc list inside of root qdisc.
pkt_sched: Fix noqueue_qdisc initialization.
Merge branch 'master' of git://git.kernel.org/.../holtmann/bluetooth-2.6
highmem: Export totalhigh_pages.
iucv: Fix bad merging.

David Woodhouse (4):
libertas: Increase priority of 'unknown command' warnings
libertas: fix multicast filtering on eth and msh interfaces
libertas: Add reset_card() callback to hardware driver
libertas: provide reset_card() callback on OLPC

Denis V. Lunev (14):
netlink: Remove nonblock parameter from netlink_attachskb
netns: add namespace parameter to rt_cache_flush
net: add fib_rules_ops to flush_cache method
ipv4: remove static flush_delay variable
netns: register net.ipv4.route.flush in each namespace
netns: make rt_secret_rebuild timer per namespace
netns: add struct net parameter to rt_cache_invalidate
ipv4: pass current value of rt_genid into rt_hash
netns: place rt_genid into struct net
netns: selective flush of rt_cache
ipv4: remove flush_mutex from ipv4_sysctl_rtcache_flush
netlabel: return msg overflow error from netlbl_cipsov4_list faster
ipv6: remove unused parameter from ip6_ra_control
ipv6: remove unused macros from net/ipv6.h

Divy Le Ray (4):
cxgb3 - Fix dma mapping error path
cxgb3 - Add page support to jumbo frame Rx queue
cxgb3 - Add LRO support
cxgb3 - add missing adapter type for RDMA

Eilon Greenstein (9):
bnx2x: Rename bnx2x.c to bnx2x_main.c
bnx2x: New init infrastructure
bnx2x: Remove old microcode
bnx2x: New microcode part 1/3
bnx2x: New microcode part 2/3
bnx2x: New microcode part 3/3
bnx2x: Add support for BCM57711 HW
bnx2x: Re-factor Tx code
bnx2x: Update version

Emmanuel Grumbach (53):
iwlwifi: HW dependent run time calibration
iwlwifi: HW crypto acceleration fixes
iwlwifi: remove uneeded callback
iwlwifi: CT-Kill configuration fix
iwlwifi: HT IE in probe request clean up
iwlwifi: clean up register names and defines
iwlwifi: move Flow Handlers define to iwl-fh.h
iwlwifi: move verify_ucode functions to iwl-core
iwlwifi: move hw_rx_handler_setup to iwl-4965.c
iwlwifi-5000: update the CT-Kill value for 5000 series
iwlwifi-5000: add run time calibrations for 5000
iwlwifi-5000: update the byte count in SCD
iwlwifi: move iwl4965_init_alive_start to iwl-4965.c
iwlwifi: don't switch to SGI if not supported by AP
iwlwifi: clean up and bug fix for security
mac80211: sends HT IE to user level through wext
mac80211: allow disable FAT in specific configurations
iwlwifi: disable FAT channel when not permitted
iwlwifi: fix a memory leak in scan
iwlwifi: remove debugfs entries before cfg80211
iwlwifi: send calibration results as HUGE commands
iwlwifi: removes the RUN_TIME_CALIB ifdef
iwlwifi: clean up in setup/cancel deferred work
iwlwifi: add possibility to disable tx_power calibration
iwlwifi: remove redundant flags regarding to FAT channel
iwlwifi: fix bug when moving from 11gn to 11a or 11an to 11g
iwlwifi: fix resart flow after fw error
iwlwifi: add bad length check for WEP keys
iwlwifi: move iwl4965_rf_kill_ct_config to iwl-core.c
iwlwifi: retfactor get_temperature functions
iwlwifi: remove dead code iwl4965_calc_db_from_ratio
iwlwifi: general code clean up
iwlwifi: remove iwlcore_low_level_notify
iwlwifi: unify SW rf-kill flow
mac80211: don't return -EINVAL upon iwconfig wlan0 rts auto
mac80211: update the authentication method
mac80211: add last beacon time in scan list
iwlwifi: better station table maintenance
iwlwifi: add REPLY_TX_POWER_DBM_CMD to get_cmd_string
iwlwifi: send ADD_STA before RXON with assoc bit
iwlwifi: move RX stats to core, and move temperature to handler
iwlwifi: don't send REPLY_REMOVE_ALL_STA upon exit
iwlwifi: move RX handlers to iwl-rx.c
iwlwifi: remove useless network and duplicate checking
iwlwifi: setup compressed BA handler
iwlwifi: don't bring up interface if RF-kill avoids radio
iwlwifi: blocking mac_start until uCode is complete
iwlwifi: clean up HW RF-kill state machine and restarts
mac80211: add support for iwconfig wlanX frag auto
mac80211: Fix ieee80211_rx_reorder_ampdu: ignore QoS null packets
mac80211: dont add a STA which is not in the same IBSS
iwlwifi: fixes RTS / CTS support
iwlwifi: make iwl4965_mac_conf_tx in atomic context

Eric Dumazet (1):
udp: sk_drops handling

Eric W. Biederman (1):
wireless: Add missing locking to cfg80211_dev_rename

Ester Kummer (9):
mac80211: correct skb allocation
iwlwifi: move per driverdebug_level to per device
iwlwifi: move debug_level to sysfs/bus/pci/devices
iwlwifi: update levels of debug prints
iwlwifi: adding parameter of fw_restart
iwlwifi: trigger event log from debugfs
iwlwifi: move iwl_dump_nic_error_log to iwlcore module
iwlwifi: adding channels to sysfs
mac80211: removing duplicated parsing of information elements

Esti Kummer (1):
iwlwifi: adding pci device ids to iwl_hw_card_ids

Fabian Hugelshofer (2):
netfilter: nf_conntrack: properly account terminating packets
netfilter: ctnetlink: include conntrack status in destroy event message

Fabien Crespel (1):
rfkill: drop current_state from tasks in rfkill-input

Florian Westphal (2):
sctp: Don't abort initialization when CONFIG_PROC_FS=n
sctp: Prevent uninitialized memory access

Francois Romieu (13):
r8169: multicast register update (sync with Realtek's 8.004.00 8168 driver)
r8169: remove non-napi code
netdev: remove unused S2IO_NAPI
starfire: delete non NAPI code from the driver.
amd8111e: delete non NAPI code from the driver.
via-velocity: remove the bounce buffers
via-velocity: lean and clean velocity_init_rings
via-velocity: move residual free rx descriptors count register update
via-velocity: add velocity_set_rxbufsize helper
cxgb: delete non NAPI code from the driver.
via-rhine: delete non NAPI code from the driver.
gianfar: delete non NAPI code from the driver.
ucc_geth: delete non NAPI code from the driver.

Gerrit Renker (4):
dccp ccid-3: Fix error in loss detection
dccp: Upgrade NDP count from 3 to 6 bytes
dccp ccid-3: Fix a loss detection bug
dccp ccid-3: Length of loss intervals

Gertjan van Wingerde (10):
rt2x00: Fix queue related oops in case of deselected mac80211 multi-queue feature.
rt2x00: Only initialize the minimum needed fields of PCI TX descriptors.
rt2x00: Cleanup struct skb_frame_desc.
rt2x00: Centralize RX packet alignment handling in rt2x00lib.
rt2x00: Fix double usage of skb->cb in USB RX path.
rt2x00: Rework alignment check.
rt2x00: Properly clean up beacon skbs.
rt2x00: Convert rt2x00 to use generic DMA-mapping API
rt2x00: Centralize allocation of RX skbs.
rt2x00: Replace statically allocated DMA buffers with mapped skb's.

Grant Grundler (1):
drivers/net/tulip: update first comment in tulip files

Greg Kroah-Hartman (1):
HSO: add option hso driver

Gregory Greenman (3):
iwlwifi: get_hw_cmd_size
iwlwifi: use uCode error and event tables pointer w.r.t loaded image
iwlwifi: configure uCode to use open loop tx power algorithm

Guy Cohen (9):
iwlwifi: remove support for Narrow Channel (10Mhz)
iwlwifi: HT antenna/chains overhaul
iwlwifi: TLC modifications
iwlwifi: rate scale module cleanups
iwlwifi: rate scale restructure toggle_antenna functions
iwlwifi: rs fix wrong parenthesizing in rs_get_lower_rate function
iwlwifi: rate sacaling fixes
iwlwifi: more RS improvements
iwlwifi: fix in-column rate scaling

Harvey Harrison (44):
mac80211: remove unnecessary byteshifts in frame control testing
wireless: use get/put_unaligned_* helpers
mac80211: tkip.c use kernel-provided infrastructure
b43: replace limit_value macro with clamp_val
b43legacy: replace limit_value macro with clamp_val
b43: use the bitrev helpers rather than rolling a private one
mac80211: michael.c use kernel-provided infrastructure
mac80211: introduce struct michael_mic_ctx and static helpers
mac80211: add const, remove unused function, make one function static
mac80211: add a struct to hold tkip context
mac80211: tkip.c use struct tkip_ctx in phase 1 key mixing
mac80211: tkip.c use struct tkip_ctx in phase 2 key mixing
bluetooth: hci_bcsp.c small cleanups/api users
mac80211: add helpers for frame control testing
mac80211: remove ieee80211_get_morefrag
mac80211: make ieee80211_get_hdrlen_from_skb return unsigned
mac80211: add utility function to get header length
mac80211: wpa.c use new access helpers
mac80211: use new helpers in util.c - ieee80211_get_bssid()
mac80211: wme.c use new helpers
mac80211: rx.c use new helpers
mac80211: tkip.c consolidate tkip IV writing in helper
mac80211: tkip.c fold ieee80211_gen_rc4key into its one caller
mac80211: tkip.c use a local struct tkip_ctx in ieee80211_get_tkip_key
ath5k: use frame control helpers
zd1211rw: use frame control helpers
b43: use frame control helpers
b43legacy: use frame control helpers
adm8211: remove unnecessary protected bit mask/check
mac80211: wep.c use new frame control helpers
mac80211: tx.c use new frame control helpers
mac80211: rx.c use new frame control helpers
mac80211: mlme.c use new frame control helpers
tulip: remove wrapper around get_unaligned
mac80211: move QOS control helpers into ieee80211.h
mac80211: use symbolic defines in wpa.c
mac80211: remove one user of ieee80211_get_hdr_info
mac80211: remove ieee80211_get_hdr_info
mac80211: remove trivial rx_data->fc users
mac80211: wpa.c remove rx/tx_data ->fc users
mac80211: pass scratch buffer directly, remove additional pointers
mac80211: aes_ccm.c remove crypto wrapper and extra args
net: make __skb_splice_bits static
sctp: remove unnecessary byteshifting, calculate directly in big-endian

Heiko Carstens (2):
iucv: fix section mismatch warning.
iucv: prevent cpu hotplug when walking cpu_online_map.

Helmut Schaa (1):
iwlwifi: fix typo which caused iwl_get_tx_fail_reason to ever return an empty string

Henrique de Moraes Holschuh (16):
rfkill: clarify meaning of rfkill states
rfkill: fix minor typo in kernel doc
rfkill: handle SW_RFKILL_ALL events
rfkill: add parameter to disable radios by default
rfkill: add read-write rfkill switch support
rfkill: add the WWAN radio type
rfkill: rework suspend and resume handlers
rfkill: add notifier chains support
rfkill: add type string helper
rfkill: add uevent notifications
rfkill: do not allow userspace to override ALL RADIOS OFF
rfkill: document rw rfkill switches and clarify input subsystem interactions
rfkill: rename the rfkill_state states and add block-locked state
rfkill: improve documentation for kernel drivers
rfkill: some minor kernel-doc changes for rfkill_toggle_radio
rfkill: ignore errors from rfkill_toggle_radio in rfkill_add_switch

Herton Ronaldo Krzesinski (1):
rtl8187: use different ANAPARAM*_OFF values for 8187B

Hin-Tak Leung (6):
rtl8187: updating rtl8187.h to support RTL8187B
rtl8187: updating rtl818x.h to support RTL8187B
rtl8187: updating rtl8187_rtl8225.c to support RTL8187B
rtl8187: change rtl8187_dev.c to support RTL8187B (part 1)
rtl8187: change rtl8187_dev.c to support RTL8187B (part 2)
rtl8187: updating Kconfig to support RTL8187B

Holger Schurig (15):
libertas: debug output tweaks for lbs_thread
libertas: make some functions void
libertas: allow removal of card at any time
libertas: remove lbs_get_data_rate()
libertas: reduce command retry time
libertas: don't spin_unlock_irq() twice
libertas: speeds up downloading of CF firmware
libertas: use lbs_pr_XX instead of printk
libertas: before sleeping, check for a command result
libertas: fix compact flash interrupt handling
libertas: unify various CF-related defines
libertas: fix interrupt issue
libertas: document register meanings
libertas: check for old, unsupported hardware
libertas: rename some registers to clarify their meaning

Huang Weiyi (1):
b43: nphy.c remove duplicated include

Ihar Hrachyshka (1):
rtl8187: Fixed section mismatch in rtl8187_dev.c

Ilpo Järvinen (1):
tcp: Reorganize tcp_sock to fill 64-bit holes & improve locality

Ivo van Doorn (51):
mac80211: Replace ieee80211_tx_control->key_idx with ieee80211_key_conf
mac80211: Add IEEE80211_KEY_FLAG_PAIRWISE
rt2x00: Support hardware RTS and CTS-to-self frames
rt2x00: Remove DRIVER_SUPPORT_MIXED_INTERFACES
rt2x00: Use rt2x00 queue numbering
rt2x00: Add helper macros
rt2x00: Fix kernel-doc
rt2x00: Release rt2x00 2.1.5
rt2x00: Clarify supported chipsets in Kconfig
mac80211: Set IEEE80211_TXPD_REQ_TX_STATUS for all TX frames
rt2x00: trim skb_frame_desc to 32 bytes
rt2x00: Fix TX status reporting
rt2x00: Remove ieee80211_tx_control argument from write_tx_desc()
rt2x00: Preserve descriptor information after memmove()
rt2x00: Split rt2x00lib_write_tx_desc()
rt2x00: Remove redundant flags/dev_flags initializations
rt2x00: Merge RX and TX entry private data
rt2x00: Remove extra +
rt2x00: Release rt2x00 2.1.6
rt2x00: Calculate register offset during compile time
rt2x00: Cleanup/optimize set_state() function callback function
rt2x00: Move led initialization into function
rt2x00: Remove CTS/RTS check in tx()
rt2x00: Removed unused descriptor read in txdone
rt2x00: Make rt2x00_set/get_field macros
rt2x00: Release rt2x00 2.1.7
rt2x00: Fix queue initialization
rt2x00: Implement rt2x00usb_kick_tx_queue()
rt2x00: Move generic TX frame writing code into rt2x00queue
rt2x00: Don't kick TX queue after each frame
rt2x00: Use __builtin_choose_expr() instead of ?:
rt2x00: Clear IEEE80211_TX_CTL_USE_RTS_CTS flag for RTS frame
rt2x00: Remove unused defines
rt2x00: Use ieee80211 fc handlers
rt2x00: Cleanup symbol exports
rt2x00: Fix sparse warning on nested container_of()
rt2x00: Increase queue size
rt2x00: Release rt2x00 2.1.8
rt2x00: Remove duplicate deinitialization
rt2x00: kill URB for all TX queues during disable_radio()
mac80211: Add RTNL warning for workqueue
mac80211: Don't request encryption for probe response
rt2x00: Remove input_polldev requirements for rfkill
rt2x00: Decrease alignment headroom
rt2x00: Use ieee80211_hw->workqueue again
rt2x00: Report RX end time for rt2400pci
rt2x00: Fix register comments
rt2x00: Fix NULL pointer error in adhoc/master mode
rt2x00: Add support for CTS protection in rt2x00lib
rt2x00: Reorganize beacon handling
rt2x00: Reset LED assoc status after firmware update

James Morris (2):
netfilter: ip_tables: add iptables security table for mandatory access control rules
netfilter: ip6_tables: add ip6tables security table

Javier Cardona (4):
libertas: Extend MESH_CONFIG command to access non-volatile configuration
libertas: sysfs interface for accessing non-volatile configuration
libertas: sysfs interface for accessing default mesh channel
libertas: rate adaptation configuration via iwconfig.

Jay Vosburgh (6):
bonding: Use msecs_to_jiffies, eliminate panic
bonding: remove test for IP in ARP monitor
bonding: refactor ARP active-backup monitor
bonding: Add "follow" option to fail_over_mac
bonding: Rework / fix multiple gratuitous ARP support
bonding: Allow setting max_bonds to zero

Jeb Cramer (1):
igb: add DCA support

Jeff Garzik (6):
drivers/net/lib8390: fix warning, trim trailing whitespace
[netdrvr] Trim trailing whitespace for several drivers
Merge branch 'for-2.6.27' of git://git.marvell.com/mv643xx_eth into upstream-next
[netdrvr] fealnx: clean up nasty mess of arch ifdefs
[netdrvr] kill sync_irq-before-freq_irq pattern
Merge branch 'r8169-next' of git://git.kernel.org/.../romieu/netdev-2.6 into upstream-next

Jeff Kirsher (7):
ixbge: allow vlan devices to use TSO and TCP CSUM offload
igb: allow vlan devices to use TSO and TCP CSUM offload
e1000e: allow VLAN devices to use TSO and TCP CSUM offload
MAINTAINERS
igb: limit EEPROM access
igb: cleanup function header comments
igb/ixgbe/e1000e: resolve tx multiqueue bug

Jesse Brandeburg (25):
ixgb: maybe stop tx port missed a piece
ixgb: repeat 32 bit ioremap cleanup
ixgb: fix bug in descriptor ring due to prefetch corruption
ixgb: leave room for extra hardware memory usage
ixgb: check down state before enable irq
ixgb: don't allow too small MTU
ixgb: move time stamp set before setting dma pointer
ixgb: fix race on rx_buffer_len in mtu change
ixgb: fix unload race with timers
ixgb: remove lltx support and update tx routine
ixgb: update readme text
ixgb: add copybreak parameter
ixgb: clean up un-necessary declarations
ixgb: format all if( to be if (
ixgb: cleanup space after while
ixgb: whitespace fixups
ixgb: fix spelling errors
ixgb: trivial fix space after for
ixgb: cleanup checkpatch suggestions that are relevant
ixgb: rx cleanup performance improvements
ixgb: clean up assignments inside if statements
ixgb: audit use of dev_kfree_skb_any
ixgb: cleanup header
ixgb: make NAPI the only option and the default
ixgb: update copyright dates and versions

Johann Felix Soden (1):
net: Remove references to wan-router.txt in Kconfigs

Johannes Berg (41):
mac80211: a few code cleanups
mac80211: clean up get_tx_stats callback
mac80211: remove queue info from ieee80211_tx_status
mac80211: QoS related cleanups
mac80211: fix wme code
mac80211: require four hardware queues for QoS/HT
mac80211: proper STA info locking
mac80211: fix queue constant confusion
mac80211: fix bugs in queue handling functions
mac80211: let drivers wake but not start queues
mac80211: use rate index in TX control
mac80211: reorder some transmit handlers
mac80211: move TX info into skb->cb
mac80211: dont allow fragmentation and requeuing on A-MPDU queues
mac80211: use multi-queue master netdevice
mac80211: remove channel use statistics
b43: enable mesh
mac80211: clean up skb reallocation code
ath5k: use IEEE80211_SKB_CB
b43legacy: fix build errors when DMA or PIO are not selected
p54: fix skb->cb tx info conversion
mac80211: fix rate control initialisation
mac80211: remove shared key todo
mac80211: use separate spinlock for sta flags
mac80211: add single function calling tx handlers
mac80211: rename TKIP debugging Kconfig symbol
mac80211: make workqueue freezable
mac80211: fix tx fragmentation
mac80211: get rid of function pointers in TX path
mac80211: get rid of function pointers in RX path
mac80211: rework debug settings and make debugging safer
mac80211: make master netdev handling sane
mac80211: revamp virtual interface handling
mac80211: push interface checks down
mac80211: revamp beacon configuration
mac80211: fix RX sequence number check
wext: make sysfs bits optional and deprecate them
mac80211: fix TX sequence numbers
mac80211: fix struct ieee80211_tx_queue_params
mac80211 hwsim: fix endianness bug
wireless: fix warnings from QoS patch

John W. Linville (7):
wireless: fix warning introduced by "mac80211: QoS related cleanups"
rt2x00dev.c: fix-up merge damage
net/mac80211/ieee80211_i.h: fix-up merge damage
Merge master.kernel.org:/.../davem/wireless-2.6
ath5k: remove now unused variable declared in ath5k_tx
wireless: remove RFKILL_STATE_HARD_BLOCKED warnings
iwl-rfkill.c: correct 'recieved' typo

Joonwoo Park (7):
textsearch: support for case insensitive searching
textsearch: ts_bm: support case insensitive searching in Boyer-Moore algorithm
textsearch: ts_kmp: support case insensitive searching in Knuth-Morris-Pratt algorithm
textsearch: ts_fsm: return error on request for case insensitive search
textsearch: convert kmalloc + memset to kzalloc
netfilter: fix string extension for case insensitive pattern matching
vlan: Use is_vlan_dev()

Jorge Boncompte [DTI2] (1):
atm: [iphase] move struct suni_priv to suni.h

Josh Boyer (1):
ibm_emac: Remove the ibm_emac driver

Jouni Malinen (4):
mac80211_hwsim: 802.11 radio simulator for mac80211
mac80211_hwsim: Clean up documentation
mac80211_hwsim: Minor cleanup
mac80211_hwsim: Shared TX code for received frames and Beacons

Julius Volz (1):
net/wireless/nl80211.c: fix endless Netlink callback loop.

Jussi Kivilinna (10):
rndis_wlan: do link-down state change in worker thread
rndis_wlan: update carrier flag when link state changes
rndis_wlan: check if set_multicast_list work is already scheduled
rndis_wlan: cleanup: rename and remove local pointers
rndis_wlan: use kzalloc to allocate private data
rndis_wlan: preallocate command buffer for set/get_oid
rndis_host: pass buffer length to rndis_command
net_sched: Add qdisc_enqueue wrapper
net_sched: Add accessor function for packet length for qdiscs
net_sched: Add size table for qdiscs

Karen Xie (1):
cxgb3 - Add iscsi support

Krzysztof Halasa (3):
WAN: convert drivers to use built-in netdev_stats
WAN: Remove no longer needed pvc_desc in FR code.
ARM: IXP4xx Ethernet NAPI fix

Kuo-lang Tseng (1):
netfilter: ebtables: add IPv6 support

Larry Finger (2):
b43legacy: Remove switch statement with 64-bit index
rtl8187: Change detection of RTL8187B with USB ID of 8187

Larry....@lwfinger.net (3):
ssb: Allow reading of 440-byte SPROM that is not rev 4
b43: Fix typo in firmware file name for 802.11 cores with rev 13
p54: Add quality output to iwlist and iwconfig

Laurent Pinchart (4):
net: OpenFirmware GPIO based MDIO bitbang driver
fs_enet: MDIO on GPIO support
DM9000: Remove the 2 resources probe scheme.
DM9000: Fixup blackfin after removing 2 resource usage

Lennert Buytenhek (38):
mv643xx_eth: reverse topological sort of functions
mv643xx_eth: trim unnecessary includes
mv643xx_eth: shorten reg names
mv643xx_eth: get rid of individual port config register bit defines
mv643xx_eth: get rid of individual port config extend register bit defines
mv643xx_eth: delete unused SDMA config register bit defines
mv643xx_eth: delete unused port serial control register bit defines
mv643xx_eth: nuke port status register bit defines
mv643xx_eth: remove unused DESC_SIZE define
mv643xx_eth: clarify irq masking and unmasking
mv643xx_eth: move PHY wait defines into callers
mv643xx_eth: get rid of RX_BUF_OFFSET
mv643xx_eth: move MIB offset defines into their only user
mv643xx_eth: remove port serial status register bit defines
mv643xx_eth: clean up rx/tx descriptor field defines
mv643xx_eth: get rid of ETH_/ethernet_/eth_ prefixes
mv643xx_eth: use 'mv643xx_eth_' prefix consistently
mv643xx_eth: kill superfluous comments
mv643xx_eth: kill ->rx_resource_err
mv643xx_eth: get rid of hungarian variable naming
mv643xx_eth: move port_receive() into its only caller
mv643xx_eth: move rx_return_buff() into its only caller
mv643xx_eth: kill FUNC_RET_STATUS/pkt_info
mv643xx_eth: kill private unused instance of struct net_device_stats
mv643xx_eth: massively simplify multicast address crc8 computation
mv643xx_eth: split out rx queue state
mv643xx_eth: split out tx queue state
mv643xx_eth: remove write-only interrupt coalescing variables
mv643xx_eth: general cleanup
mv643xx_eth: add tx rate control
mv643xx_eth: allow multiple RX queues
mv643xx_eth: allow multiple TX queues
mv643xx_eth: work around TX hang hardware issue
mv643xx_eth: detect extended rx coal register field
mv643xx_eth: detect alternate TX BW control register location
mv643xx_eth: be more agressive about RX refill
mv643xx_eth: add PHY-less mode
mv643xx_eth: update driver version and author fields

Luis R. Rodriguez (1):
mac80211: Let drivers have access to TKIP key offets for TX and RX MIC

Maciej W. Rozycki (2):
PHYLIB: Kconfig: Complete the list of Broadcom PHYs supported
sb1250: use netdev_alloc_skb

Magnus Damm (5):
smc911x: remove unused 8-bit I/O operations
smc911x: fix 16-bit I/O operations
smc911x: pass along private data and use iomem
smc911x: introduce platform data flags
smc911x: SuperH architecture support

Mallikarjuna R Chilakala (1):
ixgbe: add LRO support

Marcel Holtmann (26):
[Bluetooth] Change retrieval of L2CAP features mask
[Bluetooth] Enforce security for outgoing RFCOMM connections
[Bluetooth] Disconnect when encryption gets disabled
[Bluetooth] Update authentication status after successful encryption
[Bluetooth] Support the case when headset falls back to SCO link
[Bluetooth] Track connection packet type changes
[Bluetooth] Make use of the default link policy settings
[Bluetooth] Some cleanups for HCI event handling
[Bluetooth] Update class of device value whenever possible
[Bluetooth] Disable disconnect timer during Simple Pairing
[Bluetooth] Track status of Simple Pairing mode
[Bluetooth] Track status of remote Simple Pairing mode
[Bluetooth] Export remote Simple Pairing mode via sysfs
[Bluetooth] Use ACL config stage to retrieve remote features
[Bluetooth] Initiate authentication during connection establishment
[Bluetooth] Export details about authentication requirements
[Bluetooth] Add timestamp support to L2CAP, RFCOMM and SCO
[Bluetooth] Add support for TIOCOUTQ and TIOCINQ ioctls
[Bluetooth] Use a more unique bus name for connections
[Bluetooth] Update Bluetooth core version number
[Bluetooth] Use non-canonical TTY by default for RFCOMM
[Bluetooth] Store remote modem status for RFCOMM TTY
[Bluetooth] Move pending packets from RFCOMM socket to TTY
[Bluetooth] Signal user-space for HIDP and BNEP socket errors
[Bluetooth] Add option to disable eSCO connection creation
[Bluetooth] Allow security for outgoing L2CAP connections

Marcin Slusarz (1):
net/s2io: set_rxd_buffer_pointer returns -ENOMEM, not ENOMEM

Mark McLoughlin (1):
virtio_net: Set VIRTIO_NET_F_GUEST_CSUM feature

Masakazu Mokuno (6):
PS3: gelic: Allocate the bounce buffer dynamically
PS3: gelic: Kill the static bounce buffer
WEXT: Add support for passing PMK and capability flags to WEXT
PS3: gelic: Use the new PMK interface in the gelic driver
PS3: gelic: Deprecate the private ioctls in the gelic driver
PS3: gelic: Add support for ESSID scan

Matt Carlson (8):
tg3: Pure code movement.
tg3: Code cleanup.
tg3: Add TG3_FLG3_USE_PHYLIB
tg3: Add mdio bus registration
tg3: Add libphy support.
tg3: Add 5785 ASIC revision
tg3: Add shmem options.
tg3: Update version to 3.93

Max Krasnyansky (1):
tun: Fix/rewrite packet filtering logic

Michael Buesch (17):
b43: Rewrite LO calibration algorithm
b43: Remove some dead code
b43: Don't disable IRQs in mac_suspend
b43: Add hooks for firmware debugging
b43: Allow running without PCM firmware
b43: Add panic reason code that doesn't trigger restart
b43: Add firmware markers support
nl80211: Fix comment merge error
b43: Add debugfs files for MMIO register access
b43: Add debugfs files for random SHM access
b43: Add mask/set capability to debugfs MMIO interface
b43: Remove "shm" and "ucode_regs" debugfs files
ssb, b43, b43legacy, b44: Rewrite SSB DMA API
b43: Add simple firmware watchdog
b43: Add debugfs firmware debugging knob
b43: Fix PIO skb clobber
ssb: Include dma-mapping.h

Michael Chan (15):
bnx2: Allow phy reset to be skipped during chip reset.
bnx2: Update version to 1.7.6.
bnx2: Put tx ring variables in a separate struct.
bnx2: Put rx ring variables in a separate struct.
bnx2: Optimize fast-path tx and rx work.
bnx2: Use one handler for all MSI-X vectors.
bnx2: Update firmware to support multi rx rings.
bnx2: Turn on multi rx rings.
bnx2: Cleanup error handling in bnx2_open().
bnx2: Update driver version to 1.7.7.
bnx2: Prevent ethtool -s from crashing when device is down.
bnx2: Add PCI ID for 5716.
bnx2: Add ack parameter to bnx2_fw_sync().
bnx2: Allow flexible VLAN tag settings.
bnx2: Update version to 1.7.8.

Mitch Williams (1):
igb: Remove adapter struct from these function call parameters

Mitchell Blank Jr (1):
atm: use const where reasonable

Mohamed Abbas (3):
iwlwifi: Add power level support
iwlwifi: fix resume SW RF-kill
iwlwifi: keep the STATUS_EXIT_PENDING flag till the end of down flow

Moni Shoua (1):
bonding: Send more than one gratuitous ARP when slave takes over

Márton Németh (1):
8139too: some style cleanups

Nate Case (1):
PHYLIB: Add 1000Base-X support for Broadcom bcm5482

Neil Horman (2):
sctp: add sctp/remaddr table to complete RFC remote address table OID
core: add stat to track unresolved discards in neighbor cache

Nobuhiro Iwamatsu (2):
net: sh_eth: add support for Renesas SuperH Ethernet
net: sh_eth: Fix compile error sh_eth

Octavian Purdila (1):
net: refactor tcp splice receive path to improve readability

Or Gerlitz (3):
net/core: add NETDEV_BONDING_FAILOVER event
bonding: bond_change_active_slave() cleanup under active-backup
bonding: deliver netdev event for fail-over under the active-backup mode

PJ Waskiewicz (1):
igb: add NAPI Rx queue support

Pablo Neira Ayuso (3):
netfilter: ctnetlink: group errors into logical errno sets
netfilter: ctnetlink: add full support for SCTP to ctnetlink
netfilter: nf_conntrack: add allocation flag to nf_conntrack_alloc

Patrick McHardy (38):
netfilter: nf_conntrack: add nf_ct_kill()
net: Add STP demux layer
bridge: Use STP demux
net: Add GARP applicant-only participant
vlan: Change vlan_dev_set_vlan_flag() to handle multiple flags at once
vlan: Move device unregistration before lower dev cleanup
vlan: Add GVRP support
net-sched: add dynamically sized qdisc class hash helpers
net-sched: sch_hfsc: use dynamic class hash helpers
net-sched: sch_cbq: use dynamic class hash helpers
net-sched: sch_htb: move hash and sibling list removal to htb_delete
net-sched: sch_htb: use dynamic class hash helpers
net-sched: sch_htb: remove child and sibling lists
net-sched: sch_htb: remove write-only qdisc filter_cnt
net-sched: consolidate default fifo qdisc setup
net: fix dev_set_promiscuity() breakage
netdrv: don't truncate VLAN TCI with VLAN stripping
netfilter: ebt_nflog: fix Kconfig typo
vlan: fix network_header/mac_header adjustments
vlan: Add ethtool support
vlan: uninline __vlan_hwaccel_rx
vlan: move struct vlan_dev_info to private header
vlan: remove useless struct hlist_node declaration from if_vlan.h
vlan: TCI related type and naming cleanups
vlan: avoid header copying and linearisation where possible
net-sched: cls_flow: add perturbation support
vlan: Don't store VLAN tag in cb
vlan: deliver packets received with VLAN acceleration to network taps
packet: support extensible, 64 bit clean mmaped ring structure
packet: deliver VLAN TCI to userspace
vlan: ethtool ->get_flags support
vlan: clean up vlan_dev_hard_header()
vlan: clean up hard_start_xmit functions
vlan: remove unnecessary include statements
netdrv intel: disable VLAN filtering in promiscous mode
netdrv intel: always enable VLAN filtering except in promiscous mode
garp: retry sending JoinIn messages after allocation failures
packet: add PACKET_RESERVE sockopt

Paulius Zaleckas (15):
axnet_cs: use netstats in net_device structure
lib8390: use netstats in net_device structure
8390.h: remove net_device_stats
8139cp: use netstats in net_device structure
8139too: use netstats in net_device structure
3c574_cs: use netstats in net_device structure
3c589_cs: use netstats in net_device structure
6pack: use netstats in net_device structure
acenic: use netstats in net_device structure
3c523: use netstats in net_device structure
3c527: use netstats in net_device structure
3c359: use netstats in net_device structure
airo: use netstats in net_device structure
arlan: use netstats in net_device structure
atmel: use netstats in net_device structure

Pavel Emelyanov (84):
netns: Introduce sysctl root for read-only net sysctls.
netns: Register net/core/ sysctls at read-only root.
inet: Rename fragmentation sysctl-related functions/variables.
ipv6: In fragmentation code, handle error returned from register_pernet_subsys.
inet: Register fragmentation some ctls at read-only root.
ipv6: Register some net/ipv6/ core sysctls at read-only root.
net: The dev->get_stats pointer is not NULL nowadays.
bridge: Use on-device stats instead of private ones.
ipgre: Use on-device stats instead of private ones.
ipip: Use on-device stats instead of private ones.
sit: Use on-device stats instead of private ones.
ipmr: Ipip tunnel uses on-device stats.
tunnels: Remove stat member from ip_tunnel struct.
ip6tnl: Use on-device stats instead of private ones.
ipmr: Use on-device stats instead of private ones.
ip6mr: Use on-device stats instead of private ones.
mac80211: Brush up error paths in mesh_path_add.
mac80211: Fix one more call to synchronize_rcu in atomic context.
mac80211: Prepare mesh_table_grow to failing copy_node callback.
mac80211: Report allocation failure from mesh_path_node_copy.
mac80211: Fix sleeping allocation under lock in mesh_path_node_copy.
mac80211: Do not report false error from mesh_path_add.
mac80211: Merge error paths in mesh_table_grow().
mac80211: Consolidate hash kfree-ing in mesh.c.
bonding: Remove redundant argument from bond_create.
bonding: Relax unneeded _safe lists iterations.
bonding: Remove unneeded list_empty checks.
udp: introduce a udp_hashfn function
udp: provide a struct net pointer for __udp[46]_lib_mcast_deliver
udp: add struct net argument to udp_hashfn
inet: add struct net argument to inet_bhashfn
inet: add struct net argument to inet_lhashfn
inet: add struct net argument to inet_ehashfn
inet6: add struct net argument to inet6_ehashfn
netns: introduce the net_hash_mix "salt" for hashes
sctp: fix error path in sctp_proc_init
tcp: de-bloat a bit with factoring NET_INC_STATS_BH out
MIB: add struct net to UDP_INC_STATS_USER
MIB: add struct net to UDP_INC_STATS_BH
MIB: add struct net to UDP6_INC_STATS_USER
MIB: add struct net to UDP6_INC_STATS_BH
icmp: add struct net argument to icmp_out_count
inet: toss struct net initialization around
icmp: drop unused MIB accounting wrappers
mib: add struct net to ICMP_INC_STATS
mib: add struct net to ICMP_INC_STATS_BH
mib: add struct net to ICMPMSGOUT_INC_STATS
mib: add struct net to ICMPMSGIN_INC_STATS_BH
ipv4: prepare net initialization for IP accounting
mib: drop unused IP_INC_STATS_USER
mib: add net to IP_INC_STATS
mib: add net to IP_INC_STATS_BH
mib: add net to IP_ADD_STATS_BH
inet: prepare struct net for TCP MIB accounting
mib: drop unused TCP_XXX_STATS macros
tcp: add net to tcp_mib_init
mib: add net to TCP_INC_STATS
mib: add net to TCP_INC_STATS_BH
mib: add net to TCP_DEC_STATS
mib: add net to TCP_ADD_STATS_USER
sock: add net to prot->enter_memory_pressure callback
inet: prepare net on the stack for NET accounting macros
tcp: replace tcp_sock argument with sock in some places
mib: add net to NET_INC_STATS
mib: add net to NET_INC_STATS_BH
mib: add net to NET_INC_STATS_USER
mib: add net to NET_ADD_STATS_BH
mib: add net to NET_ADD_STATS_USER
mib: add netns/mib.h file
ipv4: add pernet mib operations
mib: put tcp statistics on struct net
mib: put ip statistics on struct net
mib: put net statistics on struct net
mib: put udp statistics on struct net
mib: put udplite statistics on struct net
mib: put icmp statistics on struct net
mib: put icmpmsg statistics on struct net
ipv4: clean the init_ipv4_mibs error paths
proc: create /proc/net/netstat file in each net
proc: create /proc/net/snmp file in each net
proc: show per-net ip_devconf.forwarding in /proc/net/snmp
proc: clean the ip_misc_proc_init and ip_proc_init_net error paths
proc: consolidate per-net single_open callers
proc: consolidate per-net single-release callers

Pavel Machek (1):
wireless: Small cleanups

Pavel Roskin (5):
mac80211: fix panic when using hardware WEP
hostap: don't skip any headers in hostap_80211_header_parse()
hostap: add radiotap support in monitor mode
hostap: use radiotap headers by default
hostap: don't compile prism2_suspend() for hostap_pci without CONFIG_PM

Pekka Enberg (7):
netfilter: nf_conntrack_extend: use krealloc() in nf_conntrack_extend.c V2
ipg: always compile in jumbo frame support
ipg: remove jumbo frame #ifdef from mtu
ipg: per-device rxfrag_size
ipg: per-device rxsupport_size
ipg: per-device max_rxframe_size
ipg: run-time configurable jumbo frame support

Peter P Waskiewicz Jr (1):
igb: Introduce multiple TX queues with infrastructure

Rafael J. Wysocki (1):
irda: Remove useless pm_dev references

Ralf Baechle (1):
SAA9730: Remove driver

Rami Rosen (7):
netfilter: nf_conntrack: remove unnecessary function declaration
netfilter: {ip,ip6,nfnetlink}_queue: misc cleanups
ipv6 mcast: Remove unused macro (MLDV2_QQIC) from mcast.c.
ipv6 mroute: Use MRT6_VERSION instead of MRT_VERSION in ip6mr.c.
ipv6 addrconf: Remove IFA_GLOBAL definition from include/net/if_inet6.h.
ipv6: minor cleanup in net/ipv6/tcp_ipv6.c [RESEND ].
mac80211: remove MAC80211_DEBUG from net/mac80211/Kconfig.

Randy Dunlap (6):
3c515: fix using pnp_get_resource when CONFIG_ISAPNP=n
cxgb3: fix build error when INET=n
bridge: fix IPV6=n build
iwlwifi: fix build for CONFIG_INPUT=n
mac80211: fix lots of kernel-doc
bluetooth/hci_bcsp: fix bitrev Kconfig

Richard Kennedy (2):
udp: reorder udp_iter_state to remove padding on 64bit builds
net: remove padding from struct socket on 64bit & increase objects/cache

Rick Farrington (1):
iwlwifi: fix incorrect monitor mode operation

Robert P. J. Day (1):
rndis_wlan: Use kernel-supplied ARRAY_SIZE() macro.

Ron Rindjunsky (45):
iwlwifi: arranging aggregation actions
iwlwifi: expanding HW parameters control
iwlwifi: support 64 bit DMA masks
iwlwifi: handle shared memory
iwlwifi: unify init driver flow
iwlwifi: iwl-sta redundant includes clean up
iwlwifi-5000: add iwl 5000 shared memory handlers
iwlwifi: map A-MPDU HW queue to mac80211 A-MPDU SW queue
iwlwifi-5000: rename iwl5000_init_nic to iwl5000_init_config
iwlwifi: create disable SCD Tx FIFOs handler
iwlwifi: move NIC init and Tx queues init to iwlcore
iwlwifi: handle shared memory Rx index access
iwlwifi: remove 4965 prefix from iwl4965_kw and iwl4965_tx_queue
iwlwifi: fix spinlock used before initialized
iwlwifi: changing irrelevant comment
iwlwifi: remove iwl4965_nic_start function
mac80211: separate Tx and Rx MCS when configuring HT
iwlwifi: filling Tx MCS set
iwlwifi: rename and move Tx queue activation/deactivation
iwlwifi: add rx_handlers stub for iwl5000
iwlwifi: add ucode loaders for iwl5000
iwlwifi: add ucode init flow handling for iwl5000
iwlwifi: iwl5000 WiFi/WiMax coexistence
iwlwifi: add RTC data address for iwl5000
iwlwifi: increase max payload of iwl_cmd
iwlwifi: activate status ready timeout only for run time ucode
iwlwifi: add iwl5000_tx_response structure
iwlwlifi: impelemnt 5000 tx response path
iwlwifi: iwl-5000 add rxon_assoc
iwlwifi: Rx handlers common use for 4965 and 5000
iwlwifi: move iwl_get_hw_mode to iwl-core.h
iwlwifi: removing IWL4965_HT config
iwlwifi: map sw and hw ampdu queues
iwlwifi: use ieee80211_conf to examine rate capabilities
iwlwifi: fix allow iwlwifi to aggregate according to tid load
mac80211: do not fragment while aggregation is in use
iwlwifi: remove 4965 prefix from iwl4965_ucode
iwlwifi: use iwl_is_associated when possible
iwlwifi: move rx aggregation functions to iwl-rx.c
iwlwifi: remove obsolete lq_ready use
iwlwifi: unite common settings of HW params
iwlwifi: control 11n capabilities through module param
iwlwifi: eliminate iwl4965_mac_get_tsf
mac80211: add block ack request capability
iwlwifi: request Tx of block ack request if necessary

Rumen G. Bogdanovski (1):
ipvs: More reliable synchronization on connection close

Russ Dill (1):
netfilter: Get rid of refrences to no longer existant Fast NAT.

Rusty Russell (3):
tun: Interface to query tun/tap features.
tun: TUNSETFEATURES to set gso features.
tun: Allow GSO using virtio_net_hdr

Samuel Ortiz (1):
mac80211: power management wext hooks

Santwona Behera (2):
netdev: Add support for rx flow hash configuration, using ethtool.
niu: Add support for rx flow hash configuration.

Scott Ashcroft (1):
rndis_wlan: use ARRAY_SIZE instead of sizeof when adding 11g rates

Sreenivasa Honnur (3):
S2io: Fix IOMMU overflow checking.
S2io: Enable msi-x link interrupts.
S2io: Version update for IOMMU overflow checking and enable msi-x link interrupts patches.

Stefanik Gábor (1):
iwlwifi: enable packet injection for iwl3945

Stephen Hemminger (28):
tg3: remove unneeded semicolons
atl1: use netdev_alloc_skb
ixp2000: use netdev_alloc_skb
hamachi: use netdev_alloc_skb
dl2k: use netdev_alloc_skb
via-velocity: use netdev_alloc_skb
via-velocity: use memmove
tlan: get rid of padding buffer
tlan: use netdevice stats
tlan: remove unused devName field
tlan: 64bit conversion
tlan: manage rx allocation failure better
tlan: proper shared IRQ support
tlan: wrap source lines
sky2: split phy power into two functions
sky2: put PHY in sleep when down
sky2: pci power savings
ts108: use netdev_alloc_skb
ns8320: use netdev_alloc_skb
bridge: handle process all link-local frames
bridge: make bridge address settings sticky
sky2: phy setup changes
sky2: chip version printout
sky2: use DEFINE_PCI_DEVICE_TABLE
sky2: 88E8057 chip support
sky2: version 1.22
icmp: fix units for ratelimit
tcp: RTT metrics scaling

Stephen Rothwell (2):
[netdrvr] Fix 8390 build breakage
wireless: fix fallout from device_create removal

Sven Schnelle (1):
macb: use random mac if stored address in EEPROM is invalid

Sven Wegener (5):
ipvs: Initialize mcast addr at compile time
ipvs: Use ERR_PTR for returning errors from make_receive_sock() and make_send_sock()
ipvs: Use kthread_run() instead of doing a double-fork via kernel_thread()
ipvs: Put backup thread on mcast socket wait queue
ipvs: Use schedule_timeout_interruptible() instead of msleep_interruptible()

Takashi Iwai (1):
Fix missing exports for net/phy/mdio-bitbang.c

Taku Izumi (2):
e1000e: make ioport free
igb: make ioport free

Thomas Graf (1):
ipv4 addr: Send netlink notification for address label changes

Tobias Diedrich (5):
[netdrvr] forcedeth: setup wake-on-lan before shutting down
[netdrvr] forcedeth: save/restore device configuration space
[netdrvr] forcedeth: reorder suspend/resume code
Fix forcedeth hibernate/wake-on-lan problems
Fix forcedeth hibernate/wake-on-lan problems

Tomas Winkler (103):
iwlwifi: move find station to iwl-sta.c
iwlwifi: cleanup set_pwr_src
iwlwifi: define ANA_PLL values in iwl-csr.h
iwlwifi: export int iwl4965_set_pwr_src
iwlwifi: changing EEPROM layout handling
iwlwifi: remove includes to net/ieee80211.h
iwlwifi: add apm init handler
iwlwifi: add iwl_hw_detect function to iwl core
iwlwifi: check eeprom version in pci probe time
iwlwifi: reorganize TX RX constatns
iwlwifi: 3945 remove unused SCD definitions
iwlwifi: remove 49 prefix from general CSR values
iwlwifi: remove unnecessary apmg settings
iwlwifi: wrapping nic configuration in iwl core handler
iwlwifi-5000: adding initial recognition for the 5000 family
iwlwifi-5000: add ops infrastructure for 5000
iwlwifi-5000: add apm_init handler for 5000 HW family
iwlwifi-5000: use iwl4965_set_pwr_src in 5000
iwlwifi-5000: EEPROM settings for 5000
iwlwifi-5000: adding iwl5000 HW parameters
iwlwifi-5000: adjust antennas names in 5000 HW family
iwlwifi-5000: Add HW REV of 5000 HW family
iwlwifi-5000: add eeprom check version handler
iwlwifi-5000: add nic config handler for 5000 HW
iwlwifi: rename iwl-4965-commands to iwl-commands.h
iwlwifi: rename iwl-4965.h to iwl-dev.h
iwlwifi: move RX code to iwl-rx.c
iwlwifi: don't override association channel with control channel
iwlwifi: remove 4965 from station_entry
iwlwifi: debugfs EEPROM dump
iwlwifi: remove 4965 from rx_packet
iwlwifi: generalize iwl4965_send_add_station function
iwlwifi-5000: add build_addsta_hcmd handler for 5000 HW
iwlwifi: move iwl4965_set_rxon_ht into iwlcore
iwlwifi: compile iwl-sta into iwlcore
iwlwifi: add device sysfs version entry
iwlwifi: rename iwl4965_queue to iwl_queue
iwlwifi: rename iwl4965_tx_info to iwl_tx_info
iwlwifi: remove 4965 from iwl4965_tx_queue_update_write_ptr
iwlwifi: remove 4965 prefix from iwl4965_frame
iwlwifi: remove 4965 from iwl4965_rate_info
iwlwifi: move iwl_bcast_addr to iwlcore
iwlwifi: move more station managment into iwl-sta.c
iwlwifi: remove 4956 form iwl4965_tx_cmd
iwlwifi: refactor ieee80211_get_qos_ctrl
iwlwifi: move TX code into iwl-tx.c
iwlwifi: remove 4965 remainings in iwl-eeprom.c file
iwlwifi: add debugfs to disable/enable run time calibration
iwlwifi: refactor pci prob flow
mac80211: fix ieee80211_get_buffered_bc
mac80211: fix deadlock in sta->lock
iwlwifi: mark 4965 ucode types
iwlwifi: remove unused variable form __iwl4965_down
iwlwifi: remove notif_missed_beacons variable
iwlwifi: clean up alive_start routine
iwlwifi: remove 4965 from alive_resp structures
iwlwifi: setup correctly L1 L0S pi link values
iwlwifi: implement apm reset flow
iwlwifi: implement apm stop function
iwlwifi: refactor stop master function
iwlwifi: move txq_ctx_stop into iwl-tx.c
iwlwifi: move iwl_rxq_stop into iwl-rx.c
iwlwifi: add remove station functionality
iwlwifi: move add sta handler to iwl-sta.c
iwlwifi: move iwl_rx_missed_beacon_notif to iwl-rx.c
iwlwifi-5000: implement initial calibration for 5000
iwlwifi: move tx response common handlers to iwlcore
iwlwifi: move 4965 tx response into iwl-4965.c
iwlwifi: move tx reclaim flow into iwl-tx
iwlwifi: implement txq invalidate byte count table
iwlwifi: move iwl_sta_modify_enable_tid_tx to iwl-sta.c
iwlwifi: move aggregation code to iwl-tx.c
iwlwifi: add frame count limit to link quality command
iwlwifi: clean iwl4965_mac_config
mac80211: fix unbalanced locking in ieee80211_get_buffered_bc
mac80211: removing shadowed sband
iwlwifi: add TX aggregation code for 5000 HW
iwlwifi: remove unused flag
iwlwifi: format log prints for easier parsing
iwlwifi: refactor tx aggregation response flow
iwlwifi: refactor setting tx power
iwlwifi: move scan to iwl-scan.c iwlcore
iwlwifi: move rate helpers to iwlcore
iwlwifi: cleans up scanning code
mac80211: fix beacon interval value
mac80211: add phy information to giwname
mac80211: add spectrum capabilities
mac80211: fix warning: unused variable invoke_tx_handlers
iwlwifi: Add eeprom version to the version file in sysfs
iwlwifi: fix IBSS association flow
iwlwifi: fix 4965 uCode load
iwlwifi: fix error path of iwl_rfkill_init
mac80211: remove useless tid assignment for management and control frames
mac80211: fix warning: unused variable ifsta
mac80211: call bss_info_change only once upon disassociation
iwlwif: remove compilation warnings iwl_add_radiotap
iwlwifi: remove post associate work
iwlwifi: rs always set lq_sta->priv
iwlwifi: differentiate 4965 and 5000 hw ampdu queues number
iwlwifi: fix LED stall
iwlwifi: LED use correctly blink table
iwlwifi: unify 4965 and 5000 scanning code
iwlwifi: enable active scanning

Tony Vroon (1):
mac80211: implement EU regulatory domain

Ursula Braun (1):
af_iucv: exploit target message class support of IUCV

Vlad Yasevich (9):
sctp: Support the new specification of sctp_connectx()
sctp: Fix problems with the new SCTP_DELAYED_ACK code
sctp: Follow security requirement of responding with 1 packet
sctp: Kill unused variable in sctp_assoc_bh_rcv()
sctp: Mark GET_PEER|LOCAL_ADDR_OLD deprecated.
sctp: Support ipv6only AF_INET6 sockets.
sctp: Do not leak memory on multiple listen() calls
sctp: Allow only 1 listening socket with SO_REUSEADDR
sctp: Update sctp global memory limit allocations.

Vladimir Koutny (1):
mac80211: eliminate IBSS warning in rate_lowest_index()

Vladislav Zolotarov (1):
bnx2x: Add TPA, Broadcoms HW LRO

Wang Chen (13):
netdevice: change net_device->promiscuity/allmulti to unsigned int
netdevice: Fix promiscuity and allmulti overflow
ipv6: Do cleanup for ip6_mr_init.
ipv4: Do cleanup for ip_mr_init
af_packet: Check return of dev_set_promiscuity/allmulti
bonding: Check return of dev_set_promiscuity/allmulti
bridge: Check return of dev_set_promiscuity
ipv6: Check return of dev_set_allmulti
ipv6: Fix using after dev_put()
ipv4: Check return of dev_set_allmulti
ipv4: Fix ipmr unregister device oops
macvlan: Check return of dev_set_allmulti
8021q: Check return of dev_set_promiscuity/allmulti

Wei Yongjun (2):
sctp: Bring SCTP_DELAYED_ACK socket option into API compliance
sctp: Validate Initiate Tag when handling ICMP message

Wendy Xiong (2):
bnx2: Add EEH PCI recovery.
bnx2x: Add PCIE EEH support

Will Newton (1):
net/ipv4/tcp.c: Fix use of PULLHUP instead of POLLHUP in comments.

YOSHIFUJI Hideaki (20):
ipv6 addrconf: Introduce addrconf_is_prefix_route() helper.
key: Introduce pfkey_sockaddr_len() for raw sockaddr{} length.
key: Share common code path to fill sockaddr{}.
key: Share common code path to extract address from sockaddr{}.
key: Use xfrm_addr_cmp() where appropriate.
tcp md5sig: Share MD5 Signature option parser between IPv4 and IPv6.
tcp md5sig: Remove redundant protocol argument.
tcp md5sig: Share most of hash calcucaltion bits between IPv4 and IPv6.
tcp md5sig: Let the caller pass appropriate key for tcp_v{4,6}_do_calc_md5_hash().
ipv6: Do not assign non-valid address on interface.
ipv6: Do not forward packets with the unspecified source address.
ipv6: Assume the loopback address in link-local scope.
ipv6: Add disable_ipv6 sysctl to disable IPv6 operaion on specific interface.
ipv6 addrconf: add accept_dad sysctl to control DAD operation.
ipv6 route: Prefer outgoing interface with source address assigned.
ipv4,ipv6 mroute: Add some helper inline functions to remove ugly ifdefs.
netns: Use net_eq() to compare net-namespaces for optimization.
ipv6 netns: Make several "global" sysctl variables namespace aware.
net: Use standard structures for generic socket address structures.
ipv6 mcast: Omit redundant address family checks in ip6_mc_source().

Yaniv Rosner (2):
bnx2x: Adding bnx2x_link
bnx2x: New link code

Yi Zhu (1):
mac80211: add MAC80211_VERBOSE_SPECT_MGMT_DEBUG Kconfig option

Yitchak Gertner (2):
bnx2x: New statistics code
bnx2x: Enhanced self test

Zhu Yi (5):
iwlwifi: create drivers debugfs dir under wiphy->debugfsdir
iwlwifi: fix software rf_kill problem when interface is down
iwlwifi: fix iwl4965 temperature callback calibration issue
iwl3945: remove RFKILL_STATE_HARD_BLOCKED warnings
iwlwifi: send TXPOWER command after a new RXON command

Documentation/feature-removal-schedule.txt | 22 +
Documentation/networking/bonding.txt | 110 +-
Documentation/networking/dm9000.txt | 167 +
Documentation/networking/ip-sysctl.txt | 21 +-
Documentation/networking/ixgb.txt | 419 +-
Documentation/networking/mac80211_hwsim/README | 67 +
.../networking/mac80211_hwsim/hostapd.conf | 11 +
.../networking/mac80211_hwsim/wpa_supplicant.conf | 10 +
Documentation/networking/multiqueue.txt | 90 +-
Documentation/networking/s2io.txt | 7 +-
Documentation/powerpc/booting-without-of.txt | 78 +-
Documentation/rfkill.txt | 547 +-
MAINTAINERS | 18 +-
arch/blackfin/mach-bf527/boards/ezkit.c | 7 +-
arch/blackfin/mach-bf533/boards/H8606.c | 7 +-
arch/blackfin/mach-bf537/boards/generic_board.c | 7 +-
drivers/atm/Kconfig | 79 +-
drivers/atm/Makefile | 39 -
drivers/atm/fore200e.c | 130 +-
drivers/atm/fore200e.h | 3 -
drivers/atm/fore200e_firmware_copyright | 31 -
drivers/atm/fore200e_mkfirm.c | 154 -
drivers/atm/he.c | 152 -
drivers/atm/he.h | 26 -
drivers/atm/iphase.c | 30 +-
drivers/atm/pca200e.data | 850 -
drivers/atm/pca200e_ecd.data | 906 -
drivers/atm/sba200e_ecd.data | 928 -
drivers/atm/suni.c | 130 +-
drivers/atm/suni.h | 40 +-
drivers/bluetooth/Kconfig | 1 +
drivers/bluetooth/hci_bcsp.c | 44 +-
drivers/char/pcmcia/synclink_cs.c | 28 +-
drivers/char/synclink.c | 33 +-
drivers/char/synclink_gt.c | 28 +-
drivers/char/synclinkmp.c | 31 +-
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 4 +-
drivers/isdn/i4l/isdn_net.c | 2 +-
drivers/media/dvb/dvb-core/dvb_net.c | 4 +-
drivers/net/3c503.c | 14 +-
drivers/net/3c515.c | 4 +
drivers/net/3c523.c | 37 +-
drivers/net/3c527.c | 45 +-
drivers/net/8139cp.c | 44 +-
drivers/net/8139too.c | 66 +-
drivers/net/8390.h | 19 +-
drivers/net/8390p.c | 66 +
drivers/net/Kconfig | 191 +-
drivers/net/Makefile | 15 +-
drivers/net/a2065.c | 4 -
drivers/net/acenic.c | 21 +-
drivers/net/acenic.h | 1 -
drivers/net/amd8111e.c | 137 +-
drivers/net/arm/ixp4xx_eth.c | 3 +-
drivers/net/atarilance.c | 2 +-
drivers/net/atlx/atl1.c | 3 +-
drivers/net/au1000_eth.c | 2 +-
drivers/net/b44.c | 140 +-
drivers/net/bfin_mac.c | 2 +-
drivers/net/bnx2.c | 1339 +-
drivers/net/bnx2.h | 115 +-
drivers/net/bnx2_fw.h | 80 +
drivers/net/bnx2_fw2.h | 8858 +++++-----
drivers/net/bnx2x.c | 9988 ----------
drivers/net/bnx2x.h | 1585 +-
drivers/net/bnx2x_fw_defs.h | 483 +-
drivers/net/bnx2x_hsi.h | 1101 +-
drivers/net/bnx2x_init.h | 352 +-
drivers/net/bnx2x_init_values.h |19186 ++++++++++++++------
drivers/net/bnx2x_link.c | 4527 +++++
drivers/net/bnx2x_link.h | 168 +
drivers/net/bnx2x_main.c |10294 +++++++++++
drivers/net/bnx2x_reg.h | 1969 ++-
drivers/net/bonding/bond_alb.c | 6 +-
drivers/net/bonding/bond_main.c | 824 +-
drivers/net/bonding/bond_sysfs.c | 103 +-
drivers/net/bonding/bonding.h | 17 +-
drivers/net/chelsio/cxgb2.c | 2 -
drivers/net/chelsio/sge.c | 70 +-
drivers/net/cpmac.c | 35 +-
drivers/net/cxgb3/adapter.h | 18 +
drivers/net/cxgb3/common.h | 1 +
drivers/net/cxgb3/cxgb3_ctl_defs.h | 5 +-
drivers/net/cxgb3/cxgb3_ioctl.h | 1 +
drivers/net/cxgb3/cxgb3_main.c | 19 +
drivers/net/cxgb3/cxgb3_offload.c | 32 +-
drivers/net/cxgb3/l2t.c | 2 +-
drivers/net/cxgb3/regs.h | 10 +-
drivers/net/cxgb3/sge.c | 391 +-
drivers/net/cxgb3/t3_cpl.h | 51 +
drivers/net/cxgb3/t3cdev.h | 4 +-
drivers/net/declance.c | 4 -
drivers/net/dl2k.c | 10 +-
drivers/net/dm9000.c | 1161 +-
drivers/net/dm9000.h | 11 +
drivers/net/e1000/e1000_main.c | 64 +-
drivers/net/e1000e/e1000.h | 4 +
drivers/net/e1000e/netdev.c | 84 +-
drivers/net/fealnx.c | 43 +-
drivers/net/fec_mpc52xx.c | 2 +-
drivers/net/forcedeth.c | 82 +-
drivers/net/fs_enet/fs_enet-main.c | 33 +-
drivers/net/gianfar.c | 82 +-
drivers/net/gianfar.h | 11 -
drivers/net/hamachi.c | 12 +-
drivers/net/hamradio/6pack.c | 26 +-
drivers/net/hamradio/bpqether.c | 14 +-
drivers/net/hamradio/mkiss.c | 2 +
drivers/net/hp.c | 14 +-
drivers/net/hplance.c | 4 +-
drivers/net/ibm_emac/Kconfig | 70 -
drivers/net/ibm_emac/Makefile | 11 -
drivers/net/ibm_emac/ibm_emac.h | 329 -
drivers/net/ibm_emac/ibm_emac_core.c | 2263 ---
drivers/net/ibm_emac/ibm_emac_core.h | 222 -
drivers/net/ibm_emac/ibm_emac_debug.c | 211 -
drivers/net/ibm_emac/ibm_emac_debug.h | 62 -
drivers/net/ibm_emac/ibm_emac_mal.c | 570 -
drivers/net/ibm_emac/ibm_emac_mal.h | 267 -
drivers/net/ibm_emac/ibm_emac_phy.c | 398 -
drivers/net/ibm_emac/ibm_emac_phy.h | 80 -
drivers/net/ibm_emac/ibm_emac_rgmii.c | 200 -
drivers/net/ibm_emac/ibm_emac_rgmii.h | 64 -
drivers/net/ibm_emac/ibm_emac_tah.c | 110 -
drivers/net/ibm_emac/ibm_emac_tah.h | 87 -
drivers/net/ibm_emac/ibm_emac_zmii.c | 253 -
drivers/net/ibm_emac/ibm_emac_zmii.h | 82 -
drivers/net/ibm_newemac/core.c | 4 +
drivers/net/ifb.c | 14 -
drivers/net/igb/e1000_82575.c | 446 +-
drivers/net/igb/e1000_82575.h | 36 +-
drivers/net/igb/e1000_defines.h | 38 +-
drivers/net/igb/e1000_hw.h | 16 +-
drivers/net/igb/e1000_mac.c | 144 +-
drivers/net/igb/e1000_mac.h | 1 +
drivers/net/igb/e1000_nvm.c | 52 +-
drivers/net/igb/e1000_phy.c | 138 +-
drivers/net/igb/e1000_regs.h | 9 +-
drivers/net/igb/igb.h | 51 +-
drivers/net/igb/igb_ethtool.c | 203 +-
drivers/net/igb/igb_main.c | 1284 +-
drivers/net/ipg.c | 105 +-
drivers/net/ipg.h | 83 +-
drivers/net/irda/ali-ircc.h | 2 -
drivers/net/irda/au1000_ircc.h | 1 -
drivers/net/irda/donauboe.c | 6 +-
drivers/net/irda/smsc-ircc2.c | 1 -
drivers/net/irda/smsc-ircc2.h | 1 -
drivers/net/irda/via-ircc.h | 1 -
drivers/net/ixgb/Makefile | 2 +-
drivers/net/ixgb/ixgb.h | 21 +-
drivers/net/ixgb/ixgb_ee.c | 28 +-
drivers/net/ixgb/ixgb_ee.h | 12 +-
drivers/net/ixgb/ixgb_ethtool.c | 120 +-
drivers/net/ixgb/ixgb_hw.c | 40 +-
drivers/net/ixgb/ixgb_hw.h | 2 +-
drivers/net/ixgb/ixgb_ids.h | 10 +-
drivers/net/ixgb/ixgb_main.c | 499 +-
drivers/net/ixgb/ixgb_osdep.h | 4 +-
drivers/net/ixgb/ixgb_param.c | 44 +-
drivers/net/ixgbe/ixgbe.h | 9 +
drivers/net/ixgbe/ixgbe_ethtool.c | 27 +-
drivers/net/ixgbe/ixgbe_main.c | 191 +-
drivers/net/ixp2000/ixpdev.c | 4 +-
drivers/net/lib8390.c | 100 +-
drivers/net/loopback.c | 8 +-
drivers/net/mac8390.c | 8 +-
drivers/net/macb.c | 8 +-
drivers/net/macsonic.c | 19 +-
drivers/net/macvlan.c | 30 +-
drivers/net/mv643xx_eth.c | 4557 ++---
drivers/net/myri10ge/myri10ge.c | 1076 +-
drivers/net/natsemi.c | 4 +-
drivers/net/ne.c | 14 +-
drivers/net/ne2.c | 16 +-
drivers/net/niu.c | 203 +-
drivers/net/niu.h | 2 +-
drivers/net/ns83820.c | 9 +-
drivers/net/pci-skeleton.c | 1 -
drivers/net/pcmcia/3c574_cs.c | 47 +-
drivers/net/pcmcia/3c589_cs.c | 49 +-
drivers/net/pcmcia/axnet_cs.c | 70 +-
drivers/net/pcnet32.c | 6 +-
drivers/net/phy/Kconfig | 9 +-
drivers/net/phy/Makefile | 1 +
drivers/net/phy/broadcom.c | 201 +-
drivers/net/phy/mdio-bitbang.c | 2 +
drivers/net/phy/mdio-ofgpio.c | 205 +
drivers/net/ppp_generic.c | 22 +-
drivers/net/ps3_gelic_net.c | 10 +-
drivers/net/ps3_gelic_net.h | 2 +-
drivers/net/ps3_gelic_wireless.c | 236 +-
drivers/net/ps3_gelic_wireless.h | 7 +-
drivers/net/qla3xxx.c | 4 +-
drivers/net/r8169.c | 145 +-
drivers/net/s2io.c | 183 +-
drivers/net/s2io.h | 3 +-
drivers/net/saa9730.c | 1139 --
drivers/net/saa9730.h | 384 -
drivers/net/sb1250-mac.c | 2 +-
drivers/net/sfc/Kconfig | 2 +
drivers/net/sfc/Makefile | 2 +-
drivers/net/sfc/boards.c | 2 +-
drivers/net/sfc/boards.h | 3 +-
drivers/net/sfc/efx.c | 6 +-
drivers/net/sfc/falcon.c | 74 +-
drivers/net/sfc/i2c-direct.c | 381 -
drivers/net/sfc/i2c-direct.h | 91 -
drivers/net/sfc/net_driver.h | 11 +-
drivers/net/sfc/sfe4001.c | 126 +-
drivers/net/sh_eth.c | 1174 ++
drivers/net/sh_eth.h | 464 +
drivers/net/sis190.c | 2 +-
drivers/net/sis900.c | 2 +-
drivers/net/sky2.c | 241 +-
drivers/net/sky2.h | 24 +-
drivers/net/smc911x.c | 422 +-
drivers/net/smc911x.h | 494 +-
drivers/net/spider_net.c | 4 +-
drivers/net/starfire.c | 111 +-
drivers/net/sunlance.c | 4 -
drivers/net/tc35815.c | 2 +-
drivers/net/tehuti.c | 2 +-
drivers/net/tehuti.h | 1 +
drivers/net/tg3.c | 1268 +-
drivers/net/tg3.h | 40 +-
drivers/net/tlan.c | 490 +-
drivers/net/tlan.h | 26 +-
drivers/net/tokenring/3c359.c | 20 +-
drivers/net/tokenring/3c359.h | 2 -
drivers/net/tsi108_eth.c | 11 +-
drivers/net/tulip/21142.c | 6 +-
drivers/net/tulip/de2104x.c | 10 +-
drivers/net/tulip/eeprom.c | 6 +-
drivers/net/tulip/interrupt.c | 5 +-
drivers/net/tulip/media.c | 5 +-
drivers/net/tulip/pnic.c | 5 +-
drivers/net/tulip/pnic2.c | 5 +-
drivers/net/tulip/timer.c | 6 +-
drivers/net/tulip/tulip.h | 4 +-
drivers/net/tulip/tulip_core.c | 8 +-
drivers/net/tun.c | 458 +-
drivers/net/typhoon.c | 3 -
drivers/net/ucc_geth.c | 33 +-
drivers/net/ucc_geth_ethtool.c | 4 +-
drivers/net/usb/Kconfig | 10 +
drivers/net/usb/Makefile | 1 +
drivers/net/usb/hso.c | 2836 +++
drivers/net/usb/rndis_host.c | 14 +-
drivers/net/via-rhine.c | 27 +-
drivers/net/via-velocity.c | 183 +-
drivers/net/via-velocity.h | 5 -
drivers/net/virtio_net.c | 3 +-
drivers/net/wan/Kconfig | 3 +-
drivers/net/wan/c101.c | 6 +-
drivers/net/wan/dscc4.c | 22 +-
drivers/net/wan/farsync.c | 70 +-
drivers/net/wan/hd6457x.c | 33 +-
drivers/net/wan/hdlc.c | 2 +-
drivers/net/wan/hdlc_cisco.c | 4 +-
drivers/net/wan/hdlc_fr.c | 54 +-
drivers/net/wan/hdlc_raw_eth.c | 2 +-
drivers/net/wan/hdlc_x25.c | 6 +-
drivers/net/wan/pc300_drv.c | 71 +-
drivers/net/wan/pc300_tty.c | 6 +-
drivers/net/wan/wanxl.c | 26 +-
drivers/net/wireless/Kconfig | 25 +-
drivers/net/wireless/Makefile | 2 +
drivers/net/wireless/adm8211.c | 58 +-
drivers/net/wireless/adm8211.h | 1 -
drivers/net/wireless/airo.c | 156 +-
drivers/net/wireless/arlan-main.c | 40 +-
drivers/net/wireless/arlan.h | 1 -
drivers/net/wireless/ath5k/Kconfig | 3 +
drivers/net/wireless/ath5k/base.c | 377 +-
drivers/net/wireless/ath5k/base.h | 36 +-
drivers/net/wireless/ath5k/hw.c | 4 +-
drivers/net/wireless/atmel.c | 70 +-
drivers/net/wireless/b43/b43.h | 49 +-
drivers/net/wireless/b43/debugfs.c | 436 +-
drivers/net/wireless/b43/debugfs.h | 24 +-
drivers/net/wireless/b43/dma.c | 119 +-
drivers/net/wireless/b43/dma.h | 3 +-
drivers/net/wireless/b43/lo.c | 731 +-
drivers/net/wireless/b43/lo.h | 115 +-
drivers/net/wireless/b43/main.c | 450 +-
drivers/net/wireless/b43/main.h | 7 +
drivers/net/wireless/b43/nphy.c | 2 -
drivers/net/wireless/b43/phy.c | 291 +-
drivers/net/wireless/b43/phy.h | 16 +-
drivers/net/wireless/b43/pio.c | 44 +-
drivers/net/wireless/b43/pio.h | 8 +-
drivers/net/wireless/b43/rfkill.c | 27 +-
drivers/net/wireless/b43/xmit.c | 88 +-
drivers/net/wireless/b43/xmit.h | 4 +-
drivers/net/wireless/b43legacy/b43legacy.h | 17 -
drivers/net/wireless/b43legacy/dma.c | 172 +-
drivers/net/wireless/b43legacy/dma.h | 7 +-
drivers/net/wireless/b43legacy/main.c | 72 +-
drivers/net/wireless/b43legacy/phy.c | 14 +-
drivers/net/wireless/b43legacy/pio.c | 27 +-
drivers/net/wireless/b43legacy/pio.h | 7 +-
drivers/net/wireless/b43legacy/radio.c | 12 +-
drivers/net/wireless/b43legacy/rfkill.c | 28 +-
drivers/net/wireless/b43legacy/xmit.c | 70 +-
drivers/net/wireless/b43legacy/xmit.h | 2 +-
drivers/net/wireless/hostap/hostap.h | 3 +-
drivers/net/wireless/hostap/hostap_80211_rx.c | 21 +
drivers/net/wireless/hostap/hostap_ap.c | 32 +-
drivers/net/wireless/hostap/hostap_hw.c | 19 +-
drivers/net/wireless/hostap/hostap_ioctl.c | 63 +-
drivers/net/wireless/hostap/hostap_main.c | 20 +-
drivers/net/wireless/hostap/hostap_wlan.h | 14 +-
drivers/net/wireless/iwlwifi/Kconfig | 32 +-
drivers/net/wireless/iwlwifi/Makefile | 11 +-
drivers/net/wireless/iwlwifi/iwl-3945-hw.h | 13 +-
drivers/net/wireless/iwlwifi/iwl-3945-led.c | 146 +-
drivers/net/wireless/iwlwifi/iwl-3945-led.h | 2 +-
drivers/net/wireless/iwlwifi/iwl-3945-rs.c | 17 +-
drivers/net/wireless/iwlwifi/iwl-3945.c | 131 +-
drivers/net/wireless/iwlwifi/iwl-3945.h | 51 +-
drivers/net/wireless/iwlwifi/iwl-4965-hw.h | 634 +-
drivers/net/wireless/iwlwifi/iwl-4965-rs.c | 1233 +-
drivers/net/wireless/iwlwifi/iwl-4965-rs.h | 105 +-
drivers/net/wireless/iwlwifi/iwl-4965.c | 4004 +----
drivers/net/wireless/iwlwifi/iwl-5000-hw.h | 134 +
drivers/net/wireless/iwlwifi/iwl-5000.c | 1580 ++
drivers/net/wireless/iwlwifi/iwl-calib.c | 802 +
drivers/net/wireless/iwlwifi/iwl-calib.h | 84 +
.../{iwl-4965-commands.h => iwl-commands.h} | 462 +-
drivers/net/wireless/iwlwifi/iwl-core.c | 1259 ++-
drivers/net/wireless/iwlwifi/iwl-core.h | 219 +-
drivers/net/wireless/iwlwifi/iwl-csr.h | 38 +-
drivers/net/wireless/iwlwifi/iwl-debug.h | 31 +-
drivers/net/wireless/iwlwifi/iwl-debugfs.c | 103 +-
.../net/wireless/iwlwifi/{iwl-4965.h => iwl-dev.h} | 567 +-
drivers/net/wireless/iwlwifi/iwl-eeprom.c | 171 +-
drivers/net/wireless/iwlwifi/iwl-eeprom.h | 206 +-
drivers/net/wireless/iwlwifi/iwl-fh.h | 391 +
drivers/net/wireless/iwlwifi/iwl-hcmd.c | 15 +-
drivers/net/wireless/iwlwifi/iwl-helpers.h | 92 +-
drivers/net/wireless/iwlwifi/iwl-led.c | 209 +-
drivers/net/wireless/iwlwifi/iwl-led.h | 5 +-
drivers/net/wireless/iwlwifi/iwl-power.c | 423 +
drivers/net/wireless/iwlwifi/iwl-power.h | 76 +
drivers/net/wireless/iwlwifi/iwl-prph.h | 333 +-
drivers/net/wireless/iwlwifi/iwl-rfkill.c | 106 +-
drivers/net/wireless/iwlwifi/iwl-rfkill.h | 6 -
drivers/net/wireless/iwlwifi/iwl-rx.c | 1321 ++
drivers/net/wireless/iwlwifi/iwl-scan.c | 931 +
drivers/net/wireless/iwlwifi/iwl-sta.c | 712 +-
drivers/net/wireless/iwlwifi/iwl-sta.h | 28 +-
drivers/net/wireless/iwlwifi/iwl-tx.c | 1519 ++
drivers/net/wireless/iwlwifi/iwl3945-base.c | 535 +-
drivers/net/wireless/iwlwifi/iwl4965-base.c | 5004 +-----
drivers/net/wireless/libertas/Makefile | 8 +-
drivers/net/wireless/libertas/assoc.c | 8 +-
drivers/net/wireless/libertas/cmd.c | 192 +-
drivers/net/wireless/libertas/cmd.h | 8 +-
drivers/net/wireless/libertas/cmdresp.c | 25 +-
drivers/net/wireless/libertas/decl.h | 8 +-
drivers/net/wireless/libertas/defs.h | 14 +-
drivers/net/wireless/libertas/dev.h | 8 +-
drivers/net/wireless/libertas/host.h | 17 +
drivers/net/wireless/libertas/hostcmd.h | 4 +-
drivers/net/wireless/libertas/if_cs.c | 315 +-
drivers/net/wireless/libertas/if_usb.c | 22 +
drivers/net/wireless/libertas/main.c | 254 +-
drivers/net/wireless/libertas/persistcfg.c | 453 +
drivers/net/wireless/libertas/rx.c | 4 +-
drivers/net/wireless/libertas/scan.c | 36 +-
drivers/net/wireless/libertas/types.h | 30 +
drivers/net/wireless/libertas/wext.c | 32 +-
drivers/net/wireless/mac80211_hwsim.c | 515 +
drivers/net/wireless/orinoco.c | 30 +-
drivers/net/wireless/p54/p54.h | 2 +-
drivers/net/wireless/p54/p54common.c | 138 +-
drivers/net/wireless/p54/p54common.h | 1 -
drivers/net/wireless/p54/p54pci.c | 2 +-
drivers/net/wireless/prism54/isl_ioctl.c | 49 +-
drivers/net/wireless/rndis_wlan.c | 205 +-
drivers/net/wireless/rt2x00/Kconfig | 63 +-
drivers/net/wireless/rt2x00/rt2400pci.c | 352 +-
drivers/net/wireless/rt2x00/rt2400pci.h | 7 +-
drivers/net/wireless/rt2x00/rt2500pci.c | 312 +-
drivers/net/wireless/rt2x00/rt2500pci.h | 11 +-
drivers/net/wireless/rt2x00/rt2500usb.c | 307 +-
drivers/net/wireless/rt2x00/rt2500usb.h | 47 +-
drivers/net/wireless/rt2x00/rt2x00.h | 105 +-
drivers/net/wireless/rt2x00/rt2x00config.c | 2 +
drivers/net/wireless/rt2x00/rt2x00debug.c | 10 +-
drivers/net/wireless/rt2x00/rt2x00dev.c | 362 +-
drivers/net/wireless/rt2x00/rt2x00firmware.c | 8 +
drivers/net/wireless/rt2x00/rt2x00lib.h | 78 +-
drivers/net/wireless/rt2x00/rt2x00mac.c | 172 +-
drivers/net/wireless/rt2x00/rt2x00pci.c | 231 +-
drivers/net/wireless/rt2x00/rt2x00pci.h | 45 +-
drivers/net/wireless/rt2x00/rt2x00queue.c | 413 +-
drivers/net/wireless/rt2x00/rt2x00queue.h | 136 +-
drivers/net/wireless/rt2x00/rt2x00reg.h | 145 +-
drivers/net/wireless/rt2x00/rt2x00rfkill.c | 114 +-
drivers/net/wireless/rt2x00/rt2x00usb.c | 361 +-
drivers/net/wireless/rt2x00/rt2x00usb.h | 69 +-
drivers/net/wireless/rt2x00/rt61pci.c | 344 +-
drivers/net/wireless/rt2x00/rt61pci.h | 7 +-
drivers/net/wireless/rt2x00/rt73usb.c | 270 +-
drivers/net/wireless/rt2x00/rt73usb.h | 7 +-
drivers/net/wireless/rtl8180_dev.c | 71 +-
drivers/net/wireless/rtl8187.h | 119 +-
drivers/net/wireless/rtl8187_dev.c | 558 +-
drivers/net/wireless/rtl8187_rtl8225.c | 250 +-
drivers/net/wireless/rtl8187_rtl8225.h | 15 +-
drivers/net/wireless/rtl818x.h | 36 +-
drivers/net/wireless/wl3501_cs.c | 10 +-
drivers/net/wireless/zd1201.c | 21 +-
drivers/net/wireless/zd1211rw/zd_mac.c | 262 +-
drivers/net/wireless/zd1211rw/zd_mac.h | 16 -
drivers/net/wireless/zd1211rw/zd_usb.c | 29 +-
drivers/s390/net/qeth_l3_main.c | 4 +-
drivers/ssb/Kconfig | 2 +-
drivers/ssb/main.c | 75 +-
drivers/ssb/pci.c | 20 +-
fs/compat_ioctl.c | 114 +-
fs/proc/proc_net.c | 32 +
include/linux/brcmphy.h | 6 +
include/linux/dccp.h | 6 +-
include/linux/dm9000.h | 1 +
include/linux/ethtool.h | 33 +
include/linux/hdlc.h | 7 -
include/linux/ieee80211.h | 499 +-
include/linux/if_bridge.h | 2 -
include/linux/if_packet.h | 24 +
include/linux/if_ppp.h | 2 -
include/linux/if_tun.h | 34 +-
include/linux/if_vlan.h | 238 +-
include/linux/igmp.h | 1 -
include/linux/ip6_tunnel.h | 4 -
include/linux/ipv6.h | 4 +
include/linux/mroute.h | 28 +-
include/linux/mroute6.h | 35 +-
include/linux/mv643xx_eth.h | 65 +-
include/linux/net.h | 4 +-
include/linux/netdevice.h | 330 +-
include/linux/netfilter/nfnetlink_conntrack.h | 10 +
include/linux/netfilter/xt_string.h | 15 +-
include/linux/netfilter_bridge/ebt_ip6.h | 40 +
include/linux/netfilter_bridge/ebt_log.h | 3 +-
include/linux/netfilter_ipv4.h | 1 +
include/linux/netfilter_ipv6.h | 5 +
include/linux/netlink.h | 2 +-
include/linux/nl80211.h | 13 +-
include/linux/notifier.h | 1 +
include/linux/pci_ids.h | 3 +
include/linux/pkt_cls.h | 1 +
include/linux/pkt_sched.h | 29 +-
include/linux/ppp-comp.h | 2 -
include/linux/ppp_defs.h | 2 -
include/linux/rfkill.h | 46 +-
include/linux/rtnetlink.h | 1 +
include/linux/seq_file_net.h | 3 +
include/linux/skbuff.h | 27 +-
include/linux/smc911x.h | 12 +
include/linux/socket.h | 6 +-
include/linux/sonet.h | 2 +-
include/linux/ssb/ssb.h | 144 +-
include/linux/sunrpc/auth_gss.h | 2 -
include/linux/sunrpc/gss_api.h | 2 -
include/linux/sunrpc/svcauth_gss.h | 3 -
include/linux/tcp.h | 56 +-
include/linux/textsearch.h | 13 +-
include/linux/tipc_config.h | 10 +-
include/linux/udp.h | 6 +
include/linux/usb/rndis_host.h | 3 +-
include/linux/wanrouter.h | 2 +-
include/linux/wireless.h | 30 +
include/net/addrconf.h | 3 +-
include/net/bluetooth/bluetooth.h | 1 +
include/net/bluetooth/hci.h | 68 +-
include/net/bluetooth/hci_core.h | 19 +-
include/net/bluetooth/rfcomm.h | 2 +
include/net/compat.h | 2 +-
include/net/dst.h | 12 +
include/net/fib_rules.h | 2 +-
include/net/garp.h | 128 +
include/net/icmp.h | 18 +-
include/net/ieee80211.h | 11 -
include/net/if_inet6.h | 1 -
include/net/inet6_hashtables.h | 10 +-
include/net/inet_hashtables.h | 12 +-
include/net/inet_sock.h | 9 +-
include/net/inetpeer.h | 2 -
include/net/ip.h | 19 +-
include/net/ip6_tunnel.h | 5 -
include/net/ipconfig.h | 2 -
include/net/ipip.h | 1 -
include/net/ipv6.h | 12 +-
include/net/irda/irda_device.h | 2 +-
include/net/iw_handler.h | 151 +-
include/net/mac80211.h | 591 +-
include/net/neighbour.h | 4 +-
include/net/net_namespace.h | 5 +
include/net/netfilter/ipv4/nf_conntrack_ipv4.h | 2 -
include/net/netfilter/nf_conntrack.h | 22 +-
include/net/netns/hash.h | 21 +
include/net/netns/ipv4.h | 5 +
include/net/netns/ipv6.h | 1 +
include/net/netns/mib.h | 16 +
include/net/pkt_sched.h | 14 +-
include/net/rose.h | 2 +-
include/net/route.h | 2 +-
include/net/sch_generic.h | 196 +-
include/net/sctp/checksum.h | 23 +-
include/net/sctp/sctp.h | 4 +-
include/net/sctp/structs.h | 8 +-
include/net/sctp/user.h | 36 +-
include/net/snmp.h | 2 -
include/net/sock.h | 41 +-
include/net/stp.h | 14 +
include/net/tcp.h | 65 +-
include/net/tipc/tipc_port.h | 10 +-
include/net/transp_v6.h | 2 +-
include/net/udp.h | 28 +-
include/net/wext.h | 7 +
include/net/wireless.h | 6 +
ipc/mqueue.c | 2 +-
lib/textsearch.c | 14 +-
lib/ts_bm.c | 26 +-
lib/ts_fsm.c | 6 +-
lib/ts_kmp.c | 29 +-
mm/highmem.c | 1 +
net/802/Kconfig | 7 +
net/802/Makefile | 2 +
net/802/garp.c | 636 +
net/802/stp.c | 102 +
net/8021q/Kconfig | 10 +
net/8021q/Makefile | 12 +-
net/8021q/vlan.c | 80 +-
net/8021q/vlan.h | 86 +-
net/8021q/vlan_core.c | 64 +
net/8021q/vlan_dev.c | 298 +-
net/8021q/vlan_gvrp.c | 66 +
net/8021q/vlan_netlink.c | 7 +-
net/8021q/vlanproc.c | 13 +-
net/Kconfig | 1 +
net/Makefile | 4 +-
net/appletalk/aarp.c | 4 +-
net/appletalk/ddp.c | 6 +-
net/atm/addr.c | 10 +-
net/atm/addr.h | 4 +-
net/atm/br2684.c | 14 +-
net/atm/clip.c | 2 +-
net/atm/common.c | 8 +-
net/atm/lec.c | 55 +-
net/atm/lec.h | 10 +-
net/atm/mpc.c | 2 +-
net/ax25/af_ax25.c | 8 +-
net/ax25/ax25_in.c | 2 +-
net/ax25/ax25_std_timer.c | 8 +-
net/bluetooth/af_bluetooth.c | 53 +-
net/bluetooth/bnep/bnep.h | 4 -
net/bluetooth/bnep/core.c | 9 +-
net/bluetooth/bnep/netdev.c | 4 -
net/bluetooth/bnep/sock.c | 4 -
net/bluetooth/hci_conn.c | 96 +-
net/bluetooth/hci_core.c | 42 +-
net/bluetooth/hci_event.c | 512 +-
net/bluetooth/hci_sock.c | 18 +-
net/bluetooth/hci_sysfs.c | 31 +-
net/bluetooth/hidp/core.c | 10 +
net/bluetooth/l2cap.c | 337 +-
net/bluetooth/rfcomm/core.c | 94 +-
net/bluetooth/rfcomm/sock.c | 25 +-
net/bluetooth/rfcomm/tty.c | 61 +-
net/bluetooth/sco.c | 14 +-
net/bridge/Kconfig | 1 +
net/bridge/br.c | 18 +-
net/bridge/br_device.c | 14 +-
net/bridge/br_fdb.c | 2 -
net/bridge/br_forward.c | 6 +-
net/bridge/br_if.c | 12 +-
net/bridge/br_input.c | 25 +-
net/bridge/br_ioctl.c | 2 -
net/bridge/br_notify.c | 4 +-
net/bridge/br_private.h | 10 +-
net/bridge/br_private_stp.h | 2 -
net/bridge/br_stp.c | 2 -
net/bridge/br_stp_bpdu.c | 16 +-
net/bridge/br_stp_if.c | 6 +-
net/bridge/br_stp_timer.c | 2 -
net/bridge/netfilter/Kconfig | 11 +-
net/bridge/netfilter/Makefile | 1 +
net/bridge/netfilter/ebt_ip6.c | 144 +
net/bridge/netfilter/ebt_log.c | 66 +-
net/can/af_can.c | 4 +-
net/can/bcm.c | 2 +-
net/can/raw.c | 2 +-
net/compat.c | 2 +-
net/core/dev.c | 380 +-
net/core/dev_mcast.c | 24 +-
net/core/ethtool.c | 37 +
net/core/fib_rules.c | 2 +-
net/core/iovec.c | 2 +-
net/core/link_watch.c | 11 +-
net/core/neighbour.c | 8 +-
net/core/net-sysfs.c | 26 +-
net/core/netpoll.c | 24 +-
net/core/pktgen.c | 71 +-
net/core/rtnetlink.c | 26 +-
net/core/skbuff.c | 166 +-
net/core/sock.c | 8 +-
net/core/sysctl_net_core.c | 39 +-
net/dccp/ccids/ccid3.c | 14 +-
net/dccp/ccids/lib/loss_interval.c | 10 +-
net/dccp/ccids/lib/packet_history.c | 103 +-
net/dccp/ccids/lib/packet_history.h | 30 +-
net/dccp/dccp.h | 17 +-
net/dccp/ipv4.c | 19 +-
net/dccp/ipv6.c | 15 +-
net/dccp/options.c | 14 +-
net/dccp/proto.c | 4 +-
net/dccp/timer.c | 4 +-
net/decnet/af_decnet.c | 34 +-
net/decnet/dn_route.c | 2 +-
net/decnet/dn_rules.c | 2 +-
net/econet/af_econet.c | 8 +-
net/ieee80211/ieee80211_rx.c | 2 +-
net/ieee80211/ieee80211_tx.c | 86 -
net/ieee80211/ieee80211_wx.c | 137 +-
net/ipv4/af_inet.c | 87 +-
net/ipv4/arp.c | 9 +-
net/ipv4/datagram.c | 2 +-
net/ipv4/devinet.c | 35 +-
net/ipv4/fib_frontend.c | 19 +-
net/ipv4/fib_hash.c | 8 +-
net/ipv4/fib_rules.c | 4 +-
net/ipv4/fib_semantics.c | 2 -
net/ipv4/fib_trie.c | 30 +-
net/ipv4/icmp.c | 31 +-
net/ipv4/igmp.c | 28 +-
net/ipv4/inet_connection_sock.c | 13 +-
net/ipv4/inet_diag.c | 2 -
net/ipv4/inet_hashtables.c | 23 +-
net/ipv4/inet_timewait_sock.c | 21 +-
net/ipv4/inetpeer.c | 2 -
net/ipv4/ip_forward.c | 11 +-
net/ipv4/ip_fragment.c | 61 +-
net/ipv4/ip_gre.c | 32 +-
net/ipv4/ip_input.c | 40 +-
net/ipv4/ip_options.c | 2 -
net/ipv4/ip_output.c | 35 +-
net/ipv4/ip_sockglue.c | 2 -
net/ipv4/ipconfig.c | 6 +-
net/ipv4/ipip.c | 24 +-
net/ipv4/ipmr.c | 125 +-
net/ipv4/ipvs/ip_vs_app.c | 2 -
net/ipv4/ipvs/ip_vs_conn.c | 2 -
net/ipv4/ipvs/ip_vs_core.c | 5 +-
net/ipv4/ipvs/ip_vs_ctl.c | 2 -
net/ipv4/ipvs/ip_vs_dh.c | 2 -
net/ipv4/ipvs/ip_vs_est.c | 2 -
net/ipv4/ipvs/ip_vs_ftp.c | 2 -
net/ipv4/ipvs/ip_vs_lblc.c | 2 -
net/ipv4/ipvs/ip_vs_lblcr.c | 2 -
net/ipv4/ipvs/ip_vs_lc.c | 2 -
net/ipv4/ipvs/ip_vs_nq.c | 2 -
net/ipv4/ipvs/ip_vs_proto.c | 2 -
net/ipv4/ipvs/ip_vs_proto_ah.c | 2 -
net/ipv4/ipvs/ip_vs_proto_esp.c | 2 -
net/ipv4/ipvs/ip_vs_proto_tcp.c | 2 -
net/ipv4/ipvs/ip_vs_proto_udp.c | 2 -
net/ipv4/ipvs/ip_vs_rr.c | 2 -
net/ipv4/ipvs/ip_vs_sched.c | 2 -
net/ipv4/ipvs/ip_vs_sed.c | 2 -
net/ipv4/ipvs/ip_vs_sh.c | 2 -
net/ipv4/ipvs/ip_vs_sync.c | 433 +-
net/ipv4/ipvs/ip_vs_wlc.c | 2 -
net/ipv4/ipvs/ip_vs_wrr.c | 2 -
net/ipv4/ipvs/ip_vs_xmit.c | 2 -
net/ipv4/netfilter/Kconfig | 15 +-
net/ipv4/netfilter/Makefile | 1 +
net/ipv4/netfilter/ip_queue.c | 5 +-
net/ipv4/netfilter/ipt_MASQUERADE.c | 2 +-
net/ipv4/netfilter/iptable_security.c | 180 +
net/ipv4/netfilter/nf_conntrack_proto_icmp.c | 5 +-
net/ipv4/netfilter/nf_nat_proto_sctp.c | 4 +-
net/ipv4/proc.c | 113 +-
net/ipv4/protocol.c | 2 -
net/ipv4/raw.c | 12 +-
net/ipv4/route.c | 262 +-
net/ipv4/syncookies.c | 8 +-
net/ipv4/sysctl_net_ipv4.c | 5 +-
net/ipv4/tcp.c | 102 +-
net/ipv4/tcp_diag.c | 2 -
net/ipv4/tcp_input.c | 236 +-
net/ipv4/tcp_ipv4.c | 324 +-
net/ipv4/tcp_minisocks.c | 12 +-
net/ipv4/tcp_output.c | 466 +-
net/ipv4/tcp_timer.c | 27 +-
net/ipv4/udp.c | 76 +-
net/ipv4/udp_impl.h | 2 +-
net/ipv4/udplite.c | 3 -
net/ipv6/addrconf.c | 95 +-
net/ipv6/addrlabel.c | 106 +-
net/ipv6/af_inet6.c | 17 +-
net/ipv6/anycast.c | 2 +-
net/ipv6/datagram.c | 2 -
net/ipv6/exthdrs.c | 4 +-
net/ipv6/icmp.c | 5 +-
net/ipv6/inet6_hashtables.c | 13 +-
net/ipv6/ip6_fib.c | 2 -
net/ipv6/ip6_input.c | 7 +-
net/ipv6/ip6_output.c | 19 +-
net/ipv6/ip6_tunnel.c | 28 +-
net/ipv6/ip6mr.c | 81 +-
net/ipv6/ipv6_sockglue.c | 11 +-
net/ipv6/mcast.c | 9 +-
net/ipv6/ndisc.c | 11 +-
net/ipv6/netfilter/Kconfig | 12 +
net/ipv6/netfilter/Makefile | 1 +
net/ipv6/netfilter/ip6_queue.c | 5 +-
net/ipv6/netfilter/ip6table_filter.c | 31 +-
net/ipv6/netfilter/ip6table_security.c | 172 +
net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c | 5 +-
net/ipv6/proc.c | 33 +-
net/ipv6/protocol.c | 2 -
net/ipv6/raw.c | 10 +-
net/ipv6/reassembly.c | 63 +-
net/ipv6/route.c | 74 +-
net/ipv6/sit.c | 26 +-
net/ipv6/syncookies.c | 6 +-
net/ipv6/sysctl_net_ipv6.c | 29 +-
net/ipv6/tcp_ipv6.c | 269 +-
net/ipv6/udp.c | 53 +-
net/ipv6/udp_impl.h | 2 +-
net/ipv6/udplite.c | 2 -
net/ipx/af_ipx.c | 4 +-
net/irda/irlap_frame.c | 2 +-
net/irda/irnet/irnet_ppp.c | 54 +-
net/irda/irnet/irnet_ppp.h | 7 +-
net/iucv/af_iucv.c | 1 +
net/iucv/iucv.c | 15 +-
net/key/af_key.c | 622 +-
net/llc/af_llc.c | 4 +-
net/llc/llc_input.c | 2 +-
net/mac80211/Kconfig | 164 +-
net/mac80211/Makefile | 20 +-
net/mac80211/aes_ccm.c | 53 +-
net/mac80211/aes_ccm.h | 6 +-
net/mac80211/cfg.c | 42 +-
net/mac80211/debugfs.c | 58 +-
net/mac80211/debugfs_key.c | 8 +-
net/mac80211/debugfs_netdev.c | 59 +-
net/mac80211/debugfs_netdev.h | 5 -
net/mac80211/debugfs_sta.c | 56 +-
net/mac80211/ieee80211_i.h | 179 +-
net/mac80211/iface.c | 396 +-
net/mac80211/key.c | 11 +-
net/mac80211/key.h | 54 +-
net/mac80211/main.c | 609 +-
net/mac80211/mesh.c | 38 +-
net/mac80211/mesh.h | 2 +-
net/mac80211/mesh_hwmp.c | 2 +-
net/mac80211/mesh_pathtbl.c | 54 +-
net/mac80211/mesh_plink.c | 88 +-
net/mac80211/michael.c | 116 +-
net/mac80211/michael.h | 8 +-
net/mac80211/mlme.c | 1035 +-
net/mac80211/rate.c | 12 +-
net/mac80211/rate.h | 37 +-
net/mac80211/rc80211_pid.h | 4 +-
net/mac80211/rc80211_pid_algo.c | 40 +-
net/mac80211/rc80211_pid_debugfs.c | 8 +-
net/mac80211/rx.c | 683 +-
net/mac80211/sta_info.c | 55 +-
net/mac80211/sta_info.h | 168 +-
net/mac80211/tkip.c | 282 +-
net/mac80211/tkip.h | 8 +-
net/mac80211/tx.c | 1167 +-
net/mac80211/util.c | 136 +-
net/mac80211/wep.c | 71 +-
net/mac80211/wep.h | 2 +-
net/mac80211/wext.c | 145 +-
net/mac80211/wme.c | 676 +-
net/mac80211/wme.h | 43 +-
net/mac80211/wpa.c | 403 +-
net/netfilter/Kconfig | 5 +-
net/netfilter/nf_conntrack_core.c | 29 +-
net/netfilter/nf_conntrack_extend.c | 10 +-
net/netfilter/nf_conntrack_netlink.c | 32 +-
net/netfilter/nf_conntrack_proto_dccp.c | 3 +-
net/netfilter/nf_conntrack_proto_sctp.c | 80 +
net/netfilter/nf_conntrack_proto_tcp.c | 11 +-
net/netfilter/nf_sockopt.c | 2 +-
net/netfilter/nfnetlink_queue.c | 3 +-
net/netfilter/xt_CONNSECMARK.c | 10 +-
net/netfilter/xt_SECMARK.c | 10 +-
net/netfilter/xt_string.c | 38 +-
net/netlabel/netlabel_cipso_v4.c | 2 +-
net/netlabel/netlabel_unlabeled.c | 2 +-
net/netlink/af_netlink.c | 4 +-
net/netrom/af_netrom.c | 24 +-
net/packet/af_packet.c | 222 +-
net/rfkill/rfkill-input.c | 98 +-
net/rfkill/rfkill-input.h | 1 +
net/rfkill/rfkill.c | 314 +-
net/rose/af_rose.c | 26 +-
net/rose/rose_route.c | 29 +-
net/rxrpc/ar-input.c | 5 +-
net/sched/act_gact.c | 2 +-
net/sched/act_ipt.c | 2 +-
net/sched/act_mirred.c | 4 +-
net/sched/act_nat.c | 2 +-
net/sched/act_pedit.c | 2 +-
net/sched/act_police.c | 8 +-
net/sched/act_simple.c | 2 +-
net/sched/cls_api.c | 20 +-
net/sched/cls_flow.c | 52 +-
net/sched/cls_route.c | 12 +-
net/sched/cls_u32.c | 18 +-
net/sched/sch_api.c | 613 +-
net/sched/sch_atm.c | 12 +-
net/sched/sch_cbq.c | 155 +-
net/sched/sch_dsmark.c | 10 +-
net/sched/sch_fifo.c | 49 +-
net/sched/sch_generic.c | 465 +-
net/sched/sch_gred.c | 14 +-
net/sched/sch_hfsc.c | 110 +-
net/sched/sch_htb.c | 195 +-
net/sched/sch_ingress.c | 2 +-
net/sched/sch_netem.c | 65 +-
net/sched/sch_prio.c | 143 +-
net/sched/sch_red.c | 37 +-
net/sched/sch_sfq.c | 20 +-
net/sched/sch_tbf.c | 42 +-
net/sched/sch_teql.c | 50 +-
net/sctp/Kconfig | 4 +-
net/sctp/Makefile | 4 +-
net/sctp/associola.c | 4 +
net/sctp/bind_addr.c | 37 +
net/sctp/input.c | 38 +-
net/sctp/ipv6.c | 20 +-
net/sctp/output.c | 14 +-
net/sctp/outqueue.c | 34 +-
net/sctp/proc.c | 141 +
net/sctp/protocol.c | 35 +-
net/sctp/sm_make_chunk.c | 7 +-
net/sctp/sm_sideeffect.c | 44 +-
net/sctp/sm_statefuns.c | 16 +-
net/sctp/socket.c | 383 +-
net/sctp/transport.c | 3 +
net/socket.c | 92 +-
net/sunrpc/auth_gss/auth_gss.c | 2 -
net/sysctl_net.c | 31 +-
net/tipc/bcast.c | 14 +-
net/tipc/bearer.c | 8 +-
net/tipc/cluster.c | 4 +-
net/tipc/config.c | 11 +-
net/tipc/core.c | 13 +-
net/tipc/core.h | 126 +-
net/tipc/dbg.c | 231 +-
net/tipc/dbg.h | 12 +-
net/tipc/discover.c | 14 +-
net/tipc/discover.h | 2 +-
net/tipc/eth_media.c | 10 +-
net/tipc/link.c | 98 +-
net/tipc/msg.c | 13 +-
net/tipc/msg.h | 42 +-
net/tipc/name_distr.c | 6 +-
net/tipc/name_table.c | 55 +-
net/tipc/net.c | 14 +-
net/tipc/net.h | 2 +-
net/tipc/netlink.c | 16 +-
net/tipc/node.c | 55 +-
net/tipc/port.c | 115 +-
net/tipc/ref.c | 14 +-
net/tipc/socket.c | 62 +-
net/tipc/subscr.c | 249 +-
net/tipc/subscr.h | 34 +-
net/tipc/user_reg.c | 14 +-
net/unix/af_unix.c | 2 -
net/wanrouter/Kconfig | 2 -
net/wanrouter/wanmain.c | 6 +-
net/wanrouter/wanproc.c | 2 +-
net/wireless/Kconfig | 11 +
net/wireless/core.c | 33 +-
net/wireless/nl80211.c | 6 +-
net/wireless/radiotap.c | 16 +-
net/wireless/wext.c | 584 +-
net/x25/af_x25.c | 11 +-
net/x25/x25_dev.c | 2 +-
net/xfrm/xfrm_policy.c | 2 +-
891 files changed, 90318 insertions(+), 67568 deletions(-)
create mode 100644 Documentation/networking/dm9000.txt
create mode 100644 Documentation/networking/mac80211_hwsim/README
create mode 100644 Documentation/networking/mac80211_hwsim/hostapd.conf
create mode 100644 Documentation/networking/mac80211_hwsim/wpa_supplicant.conf
delete mode 100644 drivers/atm/fore200e_firmware_copyright
delete mode 100644 drivers/atm/fore200e_mkfirm.c
delete mode 100644 drivers/atm/pca200e.data
delete mode 100644 drivers/atm/pca200e_ecd.data
delete mode 100644 drivers/atm/sba200e_ecd.data
create mode 100644 drivers/net/8390p.c
delete mode 100644 drivers/net/bnx2x.c
create mode 100644 drivers/net/bnx2x_link.c
create mode 100644 drivers/net/bnx2x_link.h
create mode 100644 drivers/net/bnx2x_main.c
delete mode 100644 drivers/net/ibm_emac/Kconfig
delete mode 100644 drivers/net/ibm_emac/Makefile
delete mode 100644 drivers/net/ibm_emac/ibm_emac.h
delete mode 100644 drivers/net/ibm_emac/ibm_emac_core.c
delete mode 100644 drivers/net/ibm_emac/ibm_emac_core.h
delete mode 100644 drivers/net/ibm_emac/ibm_emac_debug.c
delete mode 100644 drivers/net/ibm_emac/ibm_emac_debug.h
delete mode 100644 drivers/net/ibm_emac/ibm_emac_mal.c
delete mode 100644 drivers/net/ibm_emac/ibm_emac_mal.h
delete mode 100644 drivers/net/ibm_emac/ibm_emac_phy.c
delete mode 100644 drivers/net/ibm_emac/ibm_emac_phy.h
delete mode 100644 drivers/net/ibm_emac/ibm_emac_rgmii.c
delete mode 100644 drivers/net/ibm_emac/ibm_emac_rgmii.h
delete mode 100644 drivers/net/ibm_emac/ibm_emac_tah.c
delete mode 100644 drivers/net/ibm_emac/ibm_emac_tah.h
delete mode 100644 drivers/net/ibm_emac/ibm_emac_zmii.c
delete mode 100644 drivers/net/ibm_emac/ibm_emac_zmii.h
create mode 100644 drivers/net/phy/mdio-ofgpio.c
delete mode 100644 drivers/net/saa9730.c
delete mode 100644 drivers/net/saa9730.h
delete mode 100644 drivers/net/sfc/i2c-direct.c
delete mode 100644 drivers/net/sfc/i2c-direct.h
create mode 100644 drivers/net/sh_eth.c
create mode 100644 drivers/net/sh_eth.h
create mode 100644 drivers/net/usb/hso.c
create mode 100644 drivers/net/wireless/iwlwifi/iwl-5000-hw.h
create mode 100644 drivers/net/wireless/iwlwifi/iwl-5000.c
create mode 100644 drivers/net/wireless/iwlwifi/iwl-calib.c
create mode 100644 drivers/net/wireless/iwlwifi/iwl-calib.h
rename drivers/net/wireless/iwlwifi/{iwl-4965-commands.h => iwl-commands.h} (89%)
rename drivers/net/wireless/iwlwifi/{iwl-4965.h => iwl-dev.h} (66%)
create mode 100644 drivers/net/wireless/iwlwifi/iwl-fh.h
create mode 100644 drivers/net/wireless/iwlwifi/iwl-power.c
create mode 100644 drivers/net/wireless/iwlwifi/iwl-power.h
create mode 100644 drivers/net/wireless/iwlwifi/iwl-rx.c
create mode 100644 drivers/net/wireless/iwlwifi/iwl-scan.c
create mode 100644 drivers/net/wireless/iwlwifi/iwl-tx.c
create mode 100644 drivers/net/wireless/libertas/persistcfg.c
create mode 100644 drivers/net/wireless/mac80211_hwsim.c
create mode 100644 include/linux/brcmphy.h
create mode 100644 include/linux/netfilter_bridge/ebt_ip6.h
create mode 100644 include/linux/smc911x.h
create mode 100644 include/net/garp.h
create mode 100644 include/net/netns/hash.h
create mode 100644 include/net/netns/mib.h
create mode 100644 include/net/stp.h
create mode 100644 net/802/Kconfig
create mode 100644 net/802/garp.c
create mode 100644 net/802/stp.c
create mode 100644 net/8021q/vlan_core.c
create mode 100644 net/8021q/vlan_gvrp.c
create mode 100644 net/bridge/netfilter/ebt_ip6.c
create mode 100644 net/ipv4/netfilter/iptable_security.c
create mode 100644 net/ipv6/netfilter/ip6table_security.c
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Linus Torvalds

unread,
Jul 20, 2008, 9:00:12 PM7/20/08
to

On Sun, 20 Jul 2008, David Miller wrote:
>
> Hello Linus. This is the main networking merge for 2.6.27

Grr. And I quote:

Security table (IP_NF_SECURITY) [Y/n/?] (NEW) ?

This option adds a `security' table to iptables, for use
with Mandatory Access Control (MAC) policy.

If unsure, say N.

why the heck does this new config option apparently default to 'Y'? It's a
new option, so no old users can need it, and the docs even say you should
say 'N' unless you know what you're doing.

(Same issue with the IPv6 version).

Don't do this.

Linus

Linus Torvalds

unread,
Jul 20, 2008, 9:10:06 PM7/20/08
to

This warning also seems to be new:

net/ipv6/addrconf.c: In function ‘addrconf_add_linklocal’:
net/ipv6/addrconf.c:2318: warning: unused variable ‘net’

and looking at the code it's apparently because I'm not an optimistic
enough dad.

But hey, if you had three pre-teenage girls, you might not be all that
optimistic either. So I think that's reasonable.

Problem seems to have been introduced by 53b7997f ("ipv6 netns: Make
several "global" sysctl variables namespace aware")

David Miller

unread,
Jul 20, 2008, 9:10:08 PM7/20/08
to
From: Linus Torvalds <torv...@linux-foundation.org>
Date: Sun, 20 Jul 2008 17:54:04 -0700 (PDT)

> On Sun, 20 Jul 2008, David Miller wrote:
> >
> > Hello Linus. This is the main networking merge for 2.6.27
>
> Grr. And I quote:
>
> Security table (IP_NF_SECURITY) [Y/n/?] (NEW) ?
>
> This option adds a `security' table to iptables, for use
> with Mandatory Access Control (MAC) policy.
>
> If unsure, say N.
>
> why the heck does this new config option apparently default to 'Y'? It's a
> new option, so no old users can need it, and the docs even say you should
> say 'N' unless you know what you're doing.
>
> (Same issue with the IPv6 version).
>
> Don't do this.

James/Patrick please fix this.

Thanks.

David Miller

unread,
Jul 20, 2008, 9:20:09 PM7/20/08
to
From: Alexey Dobriyan <adob...@gmail.com>
Date: Mon, 21 Jul 2008 05:09:52 +0400

> > > > This is the main networking merge for 2.6.27
>

> Looks like multiqueue changes broken netconsole (it remains silent).

Can you dig a little bit deeper into this one? It ought to
work fine.

Thanks.

> Also, I had to enable CONFIG_NET_SCHED=y, otherwise it wouldn't link:

I just pushed Linus a fix for that, Stephen Rothwell noticed it
too.

> And finally, boot process hangs after TCP cubic is initialized.

That very much should not happen. Can you turn on initcall
tracing so we can see where that is happening exactly?

Alexey Dobriyan

unread,
Jul 20, 2008, 9:20:09 PM7/20/08
to
> > > This is the main networking merge for 2.6.27

Looks like multiqueue changes broken netconsole (it remains silent).

Also, I had to enable CONFIG_NET_SCHED=y, otherwise it wouldn't link:

net/built-in.o: In function `dev_queue_xmit':
(.text+0x11210): undefined reference to `qdisc_calculate_pkt_len'
net/built-in.o: In function `__qdisc_destroy':
sch_generic.c:(.text+0x1ddcd): undefined reference to `qdisc_put_stab'

And finally, boot process hangs after TCP cubic is initialized.

This is net-2.6 tree (175f9c1bba9b825d22b142d183c9e175488b260c)
(tainted with conntracking-in-net-ns changes, though).

David Miller

unread,
Jul 20, 2008, 9:20:11 PM7/20/08
to
From: Linus Torvalds <torv...@linux-foundation.org>
Date: Sun, 20 Jul 2008 18:07:28 -0700 (PDT)

> This warning also seems to be new:
>
> net/ipv6/addrconf.c: In function ‘addrconf_add_linklocal’:
> net/ipv6/addrconf.c:2318: warning: unused variable ‘net’
>
> and looking at the code it's apparently because I'm not an optimistic
> enough dad.
>
> But hey, if you had three pre-teenage girls, you might not be all that
> optimistic either. So I think that's reasonable.
>
> Problem seems to have been introduced by 53b7997f ("ipv6 netns: Make
> several "global" sysctl variables namespace aware")

Let's just expand the thing in the one spot it gets
referenced in.

Please apply, thanks.

ipv6: Fix warning in addrconf code.

Reported by Linus.

Signed-off-by: David S. Miller <da...@davemloft.net>

diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 580ae50..9f4fcce 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -2315,12 +2315,11 @@ static void init_loopback(struct net_device *dev)
static void addrconf_add_linklocal(struct inet6_dev *idev, struct in6_addr *addr)
{
struct inet6_ifaddr * ifp;
- struct net *net = dev_net(idev->dev);
u32 addr_flags = IFA_F_PERMANENT;

#ifdef CONFIG_IPV6_OPTIMISTIC_DAD
if (idev->cnf.optimistic_dad &&
- !net->ipv6.devconf_all->forwarding)
+ !dev_net(idev->dev)->ipv6.devconf_all->forwarding)
addr_flags |= IFA_F_OPTIMISTIC;
#endif

Alexey Dobriyan

unread,
Jul 20, 2008, 9:30:12 PM7/20/08
to
On Sun, Jul 20, 2008 at 06:14:40PM -0700, David Miller wrote:
> > And finally, boot process hangs after TCP cubic is initialized.
>
> That very much should not happen. Can you turn on initcall
> tracing so we can see where that is happening exactly?

Before that BUG_ON in __netif_schedule() happens (and quickly scrolls
off). But after netconsole ups device (which is ATL1 if it matters).

Patrick McHardy

unread,
Jul 20, 2008, 9:30:15 PM7/20/08
to
David Miller wrote:
> From: Linus Torvalds <torv...@linux-foundation.org>
> Date: Sun, 20 Jul 2008 17:54:04 -0700 (PDT)
>
>
>> Grr. And I quote:
>>
>> Security table (IP_NF_SECURITY) [Y/n/?] (NEW) ?
>>
>> This option adds a `security' table to iptables, for use
>> with Mandatory Access Control (MAC) policy.
>>
>> If unsure, say N.
>>
>> why the heck does this new config option apparently default to 'Y'? It's a
>> new option, so no old users can need it, and the docs even say you should
>> say 'N' unless you know what you're doing.
>>
>> (Same issue with the IPv6 version).
>>
>> Don't do this.
>>
>
> James/Patrick please fix this.
>

This is only the NETFILTER_ADVANCED=n default (for SECURITY=y).
The netfilter defaults for NETFILTER_ADVANCED=n should be m/y for
things that are needed by mainstream distributions for normal
usage.

I'm not sure how this is going to be used, James?

Alexey Dobriyan

unread,
Jul 20, 2008, 10:50:07 PM7/20/08
to
OK, the problem is really this buglet:

BUG_ON(q == &noop_qdisc);
__netif_schedule
netif_tx_wake_queue
netif_wake_queue
atl1_check_link
atl1_up or atlx_link_chg_task
run_workqueue

David Miller

unread,
Jul 20, 2008, 10:50:09 PM7/20/08
to
From: Alexey Dobriyan <adob...@gmail.com>
Date: Mon, 21 Jul 2008 06:40:56 +0400

> OK, the problem is really this buglet:
>
> BUG_ON(q == &noop_qdisc);
> __netif_schedule
> netif_tx_wake_queue
> netif_wake_queue
> atl1_check_link
> atl1_up or atlx_link_chg_task
> run_workqueue

Thanks for the backtrace I'll work on fixing this.

David Miller

unread,
Jul 21, 2008, 1:20:12 AM7/21/08
to
From: David Miller <da...@davemloft.net>
Date: Sun, 20 Jul 2008 19:48:56 -0700 (PDT)

> From: Alexey Dobriyan <adob...@gmail.com>
> Date: Mon, 21 Jul 2008 06:40:56 +0400
>
> > OK, the problem is really this buglet:
> >
> > BUG_ON(q == &noop_qdisc);
> > __netif_schedule
> > netif_tx_wake_queue
> > netif_wake_queue
> > atl1_check_link
> > atl1_up or atlx_link_chg_task
> > run_workqueue
>
> Thanks for the backtrace I'll work on fixing this.

[ Jeff and co., this is basically the kind of patch I want
to see eventually for the Intel drivers too... ]

Alexey, please try this patch:

atl1: Do not wake queue before queue has been started.

Based upon a bug report by Alexey Dobriyan.

Packet flow during link state events should not be done by
waking and stopping the TX queue anyways, that is handled
transparently by netif_carrier_{on,off}().

So, remove the netif_{wake,stop}_queue() calls in the link
check code, and add the necessary netif_start_queue() call
to atl1_up().

Signed-off-by: David S. Miller <da...@davemloft.net>

diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index 3e22e78..f12e3d1 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -1308,7 +1308,6 @@ static u32 atl1_check_link(struct atl1_adapter *adapter)
dev_info(&adapter->pdev->dev, "link is down\n");
adapter->link_speed = SPEED_0;
netif_carrier_off(netdev);
- netif_stop_queue(netdev);
}
return 0;
}
@@ -1358,7 +1357,6 @@ static u32 atl1_check_link(struct atl1_adapter *adapter)
if (!netif_carrier_ok(netdev)) {
/* Link down -> Up */
netif_carrier_on(netdev);
- netif_wake_queue(netdev);
}
return 0;
}
@@ -2627,6 +2625,7 @@ static s32 atl1_up(struct atl1_adapter *adapter)
mod_timer(&adapter->watchdog_timer, jiffies);
atlx_irq_enable(adapter);
atl1_check_link(adapter);
+ netif_start_queue(netdev);
return 0;

err_up:

Ingo Molnar

unread,
Jul 21, 2008, 4:40:07 AM7/21/08
to

hi David,

> iwlwifi: fix LED stall

please find a small build fix below.

Ingo

-------------->
commit c61b0199e779caf2dcfdb6e83439c1fdf9f20209
Author: Ingo Molnar <mi...@elte.hu>
Date: Mon Jul 21 10:33:42 2008 +0200

iwlwifi: fix build bug in "iwlwifi: fix LED stall"

-tip testing found the following build failure:

drivers/net/wireless/iwlwifi/iwl-led.c: In function ‘iwl_led_brightness_set’:
drivers/net/wireless/iwlwifi/iwl-led.c:198: error: ‘led_type_str’ undeclared (first use in this function)
drivers/net/wireless/iwlwifi/iwl-led.c:198: error: (Each undeclared identifier is reported only once
drivers/net/wireless/iwlwifi/iwl-led.c:198: error: for each function it appears in.)

Triggered if this driver is built with !CONFIG_IWLWIFI_DEBUG. Introduced
by commit 0eee61273.

The best fix is to make led_type_str available as a zero-size symbol and to
only add members to the array if CONFIG_IWLWIFI_DEBUG is set. This way
there's no overhead in the debugging case and we have type checking in the
IWL_DEBUG_LED() macro as well.

Signed-off-by: Ingo Molnar <mi...@elte.hu>
---
drivers/net/wireless/iwlwifi/iwl-led.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-led.c b/drivers/net/wireless/iwlwifi/iwl-led.c
index 899d7a2..d7129f7 100644
--- a/drivers/net/wireless/iwlwifi/iwl-led.c
+++ b/drivers/net/wireless/iwlwifi/iwl-led.c
@@ -44,15 +44,15 @@
#include "iwl-io.h"
#include "iwl-helpers.h"

-#ifdef CONFIG_IWLWIFI_DEBUG
static const char *led_type_str[] = {
+#ifdef CONFIG_IWLWIFI_DEBUG
__stringify(IWL_LED_TRG_TX),
__stringify(IWL_LED_TRG_RX),
__stringify(IWL_LED_TRG_ASSOC),
__stringify(IWL_LED_TRG_RADIO),
NULL
-};
#endif /* CONFIG_IWLWIFI_DEBUG */
+};


static const struct {

Alexander Beregalov

unread,
Jul 21, 2008, 5:50:08 AM7/21/08
to
Hi David!

There is another problem on sparc64 and happymeal ethernet card.

when tring to up interface:

kernel BUG at net/core/dev.c:1328

ip(1090): Kernel bad sw trap 5

__netif_schedule
happy_meal_set_multicast
__dev_set_rx_mode
dev_set_rx_mode
dev_open
dev_change_flags
do_setlink
rtnl_newlink
rtnetlink_rcv_msg
netlink_rcv_skb

Winkler, Tomas

unread,
Jul 21, 2008, 6:10:14 AM7/21/08
to

>-----Original Message-----
>From: Ingo Molnar [mailto:mi...@elte.hu]
>Sent: Monday, July 21, 2008 11:37 AM
>To: David Miller
>Cc: net...@vger.kernel.org; linux-...@vger.kernel.org; Winkler,
Tomas;
>John W. Linville
>Subject: iwlwifi: fix build bug in "iwlwifi: fix LED stall"
>
>
>hi David,
>
>> iwlwifi: fix LED stall
>
>please find a small build fix below.
>

There are already patches that fix this. John has to pick them up from
the mail.
Thanks
Tomas

---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

Ben Hutchings

unread,
Jul 21, 2008, 6:20:16 AM7/21/08
to
Alexander Beregalov wrote:
> Hi David!
>
> There is another problem on sparc64 and happymeal ethernet card.
>
> when tring to up interface:
>
> kernel BUG at net/core/dev.c:1328
[...]

This is yet another driver calling netif_wake_queue() during dev_open(),
when there is no real qdisc present. (And yes, sfc is another of those
drivers - I will post a patch after internal review.)

Ben.

--
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.

Ingo Molnar

unread,
Jul 21, 2008, 7:00:12 AM7/21/08
to

* Winkler, Tomas <tomas....@intel.com> wrote:

>
>
> >-----Original Message-----
> >From: Ingo Molnar [mailto:mi...@elte.hu]
> >Sent: Monday, July 21, 2008 11:37 AM
> >To: David Miller
> >Cc: net...@vger.kernel.org; linux-...@vger.kernel.org; Winkler,
> Tomas;
> >John W. Linville
> >Subject: iwlwifi: fix build bug in "iwlwifi: fix LED stall"
> >
> >
> >hi David,
> >
> >> iwlwifi: fix LED stall
> >
> >please find a small build fix below.
> >
>
> There are already patches that fix this. John has to pick them up from
> the mail. Thanks Tomas

could you post the fix in this thread too please?

Ingo

Stefan Richter

unread,
Jul 21, 2008, 7:30:17 AM7/21/08
to
Patrick McHardy wrote:
>>> Security table (IP_NF_SECURITY) [Y/n/?] (NEW) ?
...

> This is only the NETFILTER_ADVANCED=n default (for SECURITY=y).
> The netfilter defaults for NETFILTER_ADVANCED=n should be m/y for
> things that are needed by mainstream distributions for normal
> usage.

Don't ask what mainstream distributors would choose, ask how "make
oldconfig" or "make silentoldconfig" should behave. They should not add
features that weren't there before and are not necessary to continue
using all features of the old configuration.
--
Stefan Richter
-=====-==--- -=== =-=-=
http://arcgraph.de/sr/

James Morris

unread,
Jul 21, 2008, 7:50:07 AM7/21/08
to
On Mon, 21 Jul 2008, Patrick McHardy wrote:

> > James/Patrick please fix this.
> >
>
> This is only the NETFILTER_ADVANCED=n default (for SECURITY=y).
> The netfilter defaults for NETFILTER_ADVANCED=n should be m/y for
> things that are needed by mainstream distributions for normal
> usage.
>
> I'm not sure how this is going to be used, James?

I think the idea now is that everything new is N by default, but the
intention is to have this enabled in Fedora/RHEL.

Patrick, would you please fix this up? The only dev box I have access to
at the moment doesn't boot with recent git (I think it's the macbook2
issue).


- James
--
James Morris
<jmo...@namei.org>

Alexey Dobriyan

unread,
Jul 21, 2008, 8:00:21 AM7/21/08
to
On Sun, Jul 20, 2008 at 10:11:06PM -0700, David Miller wrote:
> From: David Miller <da...@davemloft.net>
> Date: Sun, 20 Jul 2008 19:48:56 -0700 (PDT)
>
> > From: Alexey Dobriyan <adob...@gmail.com>
> > Date: Mon, 21 Jul 2008 06:40:56 +0400
> >
> > > OK, the problem is really this buglet:
> > >
> > > BUG_ON(q == &noop_qdisc);
> > > __netif_schedule
> > > netif_tx_wake_queue
> > > netif_wake_queue
> > > atl1_check_link
> > > atl1_up or atlx_link_chg_task
> > > run_workqueue
> >
> > Thanks for the backtrace I'll work on fixing this.
>
> [ Jeff and co., this is basically the kind of patch I want
> to see eventually for the Intel drivers too... ]
>
> Alexey, please try this patch:
>
> atl1: Do not wake queue before queue has been started.

Patch helps and networking is back with and without using netconsole,
thank you!

Also wan to say, 8139too driver survived multiqueue TX changes fine.

Patrick McHardy

unread,
Jul 21, 2008, 8:10:13 AM7/21/08
to
James Morris wrote:
> On Mon, 21 Jul 2008, Patrick McHardy wrote:
>
>
>> This is only the NETFILTER_ADVANCED=n default (for SECURITY=y).
>> The netfilter defaults for NETFILTER_ADVANCED=n should be m/y for
>> things that are needed by mainstream distributions for normal
>> usage.
>>
>> I'm not sure how this is going to be used, James?
>>
>
> I think the idea now is that everything new is N by default, but the
> intention is to have this enabled in Fedora/RHEL.

Well, this option (NETFILTER_ADVANCED) was introduced specifically
so Linus doesn't have to go through and enable all the netfilter
options manually :)

The idea was that NETFILTER_ADVANCED=n enables everything needed
by mainstream distributions and hides the rest. We can certainly
change the default for this option, but that makes NETFILTER_ADVANCED
pretty much useless.

> Patrick, would you please fix this up? The only dev box I have access to
> at the moment doesn't boot with recent git (I think it's the macbook2
> issue).

Sure. I'd like to hear whether Linus still wants this changed though.

Tomas Winkler

unread,
Jul 21, 2008, 8:20:13 AM7/21/08
to
From: Denis V. Lunev <d...@openvz.org>

CC [M] drivers/net/wireless/iwlwifi/iwl-rfkill.o


drivers/net/wireless/iwlwifi/iwl-led.c: In function 'iwl_led_brightness_set':
drivers/net/wireless/iwlwifi/iwl-led.c:198: error: 'led_type_str' undeclared (first use in this function)
drivers/net/wireless/iwlwifi/iwl-led.c:198: error: (Each undeclared identifier is reported only once
drivers/net/wireless/iwlwifi/iwl-led.c:198: error: for each function it appears in.)

The problem is that led_type_str is defined under CONFIG_IWLWIFI_DEBUG
while IWL_DEBUG is a static inline function in this case. Replace it
with macro.

Signed-off-by: Denis V. Lunev <d...@openvz.org>
Signed-off-by: Tomas Winkler <tomas....@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-debug.h | 8 ++------
1 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-debug.h b/drivers/net/wireless/iwlwifi/iwl-debug.h
index 097a72f..b4ffd33 100644
--- a/drivers/net/wireless/iwlwifi/iwl-debug.h
+++ b/drivers/net/wireless/iwlwifi/iwl-debug.h
@@ -68,12 +68,8 @@ void iwl_dbgfs_unregister(struct iwl_priv *priv);
#endif

#else
-static inline void IWL_DEBUG(int level, const char *fmt, ...)
-{
-}
-static inline void IWL_DEBUG_LIMIT(int level, const char *fmt, ...)
-{
-}
+#define IWL_DEBUG(level, fmt, args...)
+#define IWL_DEBUG_LIMIT(level, fmt, args...)
#endif /* CONFIG_IWLWIFI_DEBUG */


--
1.5.4.1

---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

--

Tomas Winkler

unread,
Jul 21, 2008, 8:20:13 AM7/21/08
to
From: Denis V. Lunev <d...@openvz.org>

CC [M] drivers/net/wireless/iwlwifi/iwl-scan.o
drivers/net/wireless/iwlwifi/iwl-scan.c: In function 'iwl_rx_scan_complete_notif':
drivers/net/wireless/iwlwifi/iwl-scan.c:274: warning: unused variable 'scan_notif'

Signed-off-by: Denis V. Lunev <d...@openvz.org>

Acked-by: Tomas Winkler <tom...@gmail.com>
---
drivers/net/wireless/iwlwifi/iwl-scan.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c
index 847690b..0033232 100644
--- a/drivers/net/wireless/iwlwifi/iwl-scan.c
+++ b/drivers/net/wireless/iwlwifi/iwl-scan.c
@@ -270,6 +270,7 @@ static void iwl_rx_scan_results_notif(struct iwl_priv *priv,
static void iwl_rx_scan_complete_notif(struct iwl_priv *priv,
struct iwl_rx_mem_buffer *rxb)
{
+#ifdef CONFIG_IWLWIFI_DEBUG
struct iwl_rx_packet *pkt = (struct iwl_rx_packet *)rxb->skb->data;
struct iwl_scancomplete_notification *scan_notif = (void *)pkt->u.raw;

@@ -277,6 +278,7 @@ static void iwl_rx_scan_complete_notif(struct iwl_priv *priv,
scan_notif->scanned_channels,
scan_notif->tsf_low,
scan_notif->tsf_high, scan_notif->status);
+#endif

/* The HW is no longer scanning */
clear_bit(STATUS_SCAN_HW, &priv->status);
--
1.5.4.1

---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

--

Tomas Winkler

unread,
Jul 21, 2008, 8:20:19 AM7/21/08
to
From: Denis V. Lunev <d...@openvz.org>

iwl-agn-rs.c: In function 'rs_clear':
iwl-agn-rs.c:2405: warning: unused variable 'priv

Signed-off-by: Denis V. Lunev <d...@openvz.org>

Signed-off-by: Tomas Winkler <tomas....@intel.com>
---

drivers/net/wireless/iwlwifi/iwl-agn-rs.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index 6a4b229..7ddd07d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -2396,6 +2396,7 @@ static void rs_free(void *priv_rate)

static void rs_clear(void *priv_rate)
{
+#ifdef CONFIG_IWLWIFI_DEBUG
struct iwl_priv *priv = (struct iwl_priv *) priv_rate;

IWL_DEBUG_RATE("enter\n");
@@ -2403,6 +2404,7 @@ static void rs_clear(void *priv_rate)
/* TODO - add rate scale state reset */

IWL_DEBUG_RATE("leave\n");
+#endif /* CONFIG_IWLWIFI_DEBUG */
}

static void rs_free_sta(void *priv_rate, void *priv_sta)
--
1.5.4.1

---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

--

Ingo Molnar

unread,
Jul 21, 2008, 9:40:10 AM7/21/08
to

David,

-tip testing on latest -git (v2.6.26-5253-g14b395e) triggered the
following boot crash on a Core2Duo 64-bit testsystem:

ADDRCONF(NETDEV_UP): eth0: link is not ready
eth0: Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
------------[ cut here ]------------
Kernel BUG at ffffffff8079afb1 [verbose debug info unavailable]
invalid opcode: 0000 [1] SMP
CPU 0
Pid: 7, comm: events/0 Not tainted 2.6.26-rc8 #21302
RIP: 0010:[<ffffffff8079afb1>] [<ffffffff8079afb1>] __netif_schedule+0xd/0x64
RSP: 0018:ffff81003fa4be30 EFLAGS: 00010246
RAX: 00000000ffffffff RBX: ffff81003e9f49f0 RCX: ffffffff80c38fe0
RDX: ffff81003e9e7940 RSI: ffffffff80c3fdc0 RDI: ffffffff80c3fdc0
RBP: ffff81003e9f49f0 R08: 0000000000001607 R09: ffff810003b1c380
R10: 0000000000000005 R11: 00000100ffffffff R12: 0000000000000000
R13: ffff81003e9f49f0 R14: ffff81003e9f4000 R15: ffff81003e9f46c0
FS: 0000000000000000(0000) GS:ffffffff80c7c000(0000) knlGS:0000000000000000
CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000de7ef0 CR3: 000000003e5f1000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process events/0 (pid: 7, threadinfo ffff81003fa4a000, task ffff81003fa20c30)
Stack: ffff81003e9f49f0 ffffffff805083a4 ffffffff80d19840 ffff81003e9f4a08
ffff81003e9e7880 0000000000000000 0000000000000000 0000000000000202
000000003f9f5f10 ffff81003fa06a40 ffffffff80507f5c ffff81003fa06a48
Call Trace:
[<ffffffff805083a4>] ? e1000_watchdog_task+0x448/0x635
[<ffffffff80507f5c>] ? e1000_watchdog_task+0x0/0x635
[<ffffffff8023e11b>] ? run_workqueue+0x80/0x112
[<ffffffff8023e9f6>] ? worker_thread+0xd9/0xe8
[<ffffffff802410af>] ? autoremove_wake_function+0x0/0x2e
[<ffffffff8023e91d>] ? worker_thread+0x0/0xe8
[<ffffffff80240f58>] ? kthread+0x47/0x73
[<ffffffff8022d557>] ? schedule_tail+0x28/0x5d
[<ffffffff8020c288>] ? child_rip+0xa/0x12
[<ffffffff80240f11>] ? kthread+0x0/0x73
[<ffffffff8020c27e>] ? child_rip+0x0/0x12

Code: c2 48 8b 42 30 48 89 06 48 89 72 30 e8 30 ab a9 ff 48 89 df 57 9d 66 0f 1f 44 00 00 5b c3 48 81 ff c0 fd c3 80 53 48 89 fe 75 04 <0f> 0b eb fe f0 0f ba 6f 30 01 19 c0 85 c0 75 45 9c 58 66 0f 1f
RIP [<ffffffff8079afb1>] __netif_schedule+0xd/0x64
RSP <ffff81003fa4be30>
Kernel panic - not syncing: Fatal exception

i've bisected it back to:

| 37437bb2e1ae8af470dfcd5b4ff454110894ccaf is first bad commit
| commit 37437bb2e1ae8af470dfcd5b4ff454110894ccaf
| Author: David S. Miller <da...@davemloft.net>
| Date: Wed Jul 16 02:15:04 2008 -0700


|
| pkt_sched: Schedule qdiscs instead of netdev_queue.

bisection log:

# bad: [14b395e1] Merge branch 'for-2.6.27' of git://linux-nfs.org/~
# good: [bce7f795] Linux 2.6.26
# good: [cadc7236] Merge branch 'bkl-removal' into next
# bad: [a0c80b8d] pkt_sched: Make default qdisc nonshared-multiqueue
# good: [30902dc4] ax25: Fix std timer socket destroy handling.
# good: [fbd8f13a] net-sched: sch_htb: move hash and sibling list rem
# good: [83aa2e9b] netlabel: return msg overflow error from netlbl_ci
# good: [0388b002] icmp: add struct net argument to icmp_out_count
# good: [ca12a1ac] inet: prepare net on the stack for NET accounting
# good: [8f0f2227] net: Implement simple sw TX hashing.
# bad: [17715e68] pkt_sched: Use per-queue locking in shutdown_sched
# good: [e2627c85] pkt_sched: Make QDISC_RUNNING a qdisc state.
# bad: [37437bbf] pkt_sched: Schedule qdiscs instead of netdev_queue
# good: [7698b4ff] pkt_sched: Add and use qdisc_root() and qdisc_root

config and crashlog:

http://redhat.com/~mingo/misc/config-Mon_Jul_21_13_59_54_CEST_2008.bad
http://redhat.com/~mingo/misc/crash-Mon_Jul_21_13_59_54_CEST_2008.log

[ Note: the bootlog says 2.6.26-rc8 - that's because bisection dived
back to when you cut that devel tree of yours. ]

As the bug is reproducible i can test patches, etc. Let me know if you
need more info than this.

Thanks,

Ingo

Ingo Molnar

unread,
Jul 21, 2008, 9:50:14 AM7/21/08
to

* Ingo Molnar <mi...@elte.hu> wrote:

> David,
>
> -tip testing on latest -git (v2.6.26-5253-g14b395e) triggered the
> following boot crash on a Core2Duo 64-bit testsystem:
>
> ADDRCONF(NETDEV_UP): eth0: link is not ready
> eth0: Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
> ------------[ cut here ]------------
> Kernel BUG at ffffffff8079afb1 [verbose debug info unavailable]
> invalid opcode: 0000 [1] SMP
> CPU 0
> Pid: 7, comm: events/0 Not tainted 2.6.26-rc8 #21302
> RIP: 0010:[<ffffffff8079afb1>] [<ffffffff8079afb1>] __netif_schedule+0xd/0x64

note, my tests have also triggered another boot crash on the same
system, using the same config:

PM: Removing info for No Bus:phy0
mac80211_hwsim: ieee80211_register_hw failed (-2)
BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
IP: [<ffffffff808da9f1>] rollback_registered+0x2a/0xd6
PGD 0
Oops: 0000 [1] SMP
CPU 1
Pid: 1, comm: swapper Not tainted 2.6.26-tip-00013-g6de15c6-dirty #21290
RIP: 0010:[<ffffffff808da9f1>] [<ffffffff808da9f1>] rollback_registered+0x2a/0xd6
RSP: 0018:ffff88003f83fe00 EFLAGS: 00010212
RAX: 0000000000000001 RBX: 0000000000000000 RCX: ffff88003d4baed8
RDX: ffffffff80979f1d RSI: 0000000000000046 RDI: 0000000000000000
RBP: 0000000000000000 R08: ffffffff80d6f4a0 R09: ffff880004576800
R10: 0000000000000000 R11: ffffffff80406afe R12: 0000000000000000
R13: ffff88003d4bb9a0 R14: 0000000000000000 R15: 0000000000000008
FS: 0000000000000000(0000) GS:ffff88003f829160(0000) knlGS:0000000000000000


CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b

CR2: 0000000000000370 CR3: 0000000000201000 CR4: 00000000000006e0


DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400

Process swapper (pid: 1, threadinfo ffff88003f83e000, task ffff88003f824000)
Stack: 0000000000000000 ffffffff808daacf ffff88003d4ba2c0 ffffffff8097e1da
ffff88003d4bb9a0 ffffffff8060eb76 00000000fffffffe ffff88003d4ba2c0
ffff88003d4bb9e0 ffffffff811be87a ffff88003f83fea0 ffffffff8024e672
Call Trace:
[<ffffffff808daacf>] unregister_netdevice+0x32/0x77
[<ffffffff8097e1da>] ieee80211_unregister_hw+0x35/0xd4
[<ffffffff8060eb76>] mac80211_hwsim_free+0x1d/0x6a
[<ffffffff811be87a>] init_mac80211_hwsim+0x2df/0x2f0
[<ffffffff8024e672>] getnstimeofday+0x38/0x95
[<ffffffff8024c76a>] ktime_get_ts+0x21/0x49
[<ffffffff811be59b>] init_mac80211_hwsim+0x0/0x2f0
[<ffffffff8020a042>] do_one_initcall+0x42/0x13b
[<ffffffff80247105>] __queue_work+0x23/0x33
[<ffffffff811a09e0>] kernel_init+0x203/0x271
[<ffffffff80234e73>] schedule_tail+0x28/0x60
[<ffffffff80211079>] child_rip+0xa/0x11
[<ffffffff811a07dd>] kernel_init+0x0/0x271
[<ffffffff8021106f>] child_rip+0x0/0x11

Code: c3 53 48 89 fb e8 38 78 00 00 85 c0 75 1d ba ce 0e 00 00 48 c7 c6 b5 e9 d4 80 48 c7 c7 4f 85 ca 80 e8 f3 f1 95 ff e8 aa 7c 93 ff <83> bb 70 03 00 00 00 75 15 48 89 da 48 89 de 48 c7 c7 35 eb d4
RIP [<ffffffff808da9f1>] rollback_registered+0x2a/0xd6
RSP <ffff88003f83fe00>
CR2: 0000000000000370


Kernel panic - not syncing: Fatal exception

Rebooting in 1 seconds..Press any key to enter the menu

this crash led to the bisection result i posted in the previous mail.
This could be a dual bug and one of the crashes masks the other one.

Maybe the __netif_schedule bug is already fixed and when i tried to
bisect the rollback_registered crash i ran into it as bisection went
back into networking history?

Same config as before:

http://redhat.com/~mingo/misc/config-Mon_Jul_21_13_59_54_CEST_2008.bad

Full crashlog:

http://redhat.com/~mingo/misc/crash-Mon_Jul_21_13_59_52_CEST_2008.log

If the __netif_schedule() bug is already fixed by a later commit then i
could attempt to bisect this other crash as well, given an sha1 that i
could cherry-pick into each bisection point.

Ingo Molnar

unread,
Jul 21, 2008, 10:00:17 AM7/21/08
to

David,

* David Miller <da...@davemloft.net> wrote:

> e1000: remove PCI Express device IDs

networking in -git (v2.6.26-5253-g14b395e, dead e1000 interface)
silently broke on two testboxes of mine earlier today, and i've bisected
[*] it back to:

| d03157babed7424f5391af43200593768ce69c9a is first bad commit
| commit d03157babed7424f5391af43200593768ce69c9a
| Author: Auke Kok <auke-ja...@intel.com>
| Date: Sun Jun 22 15:21:29 2008 -0700
|
| e1000: remove PCI Express device IDs
|
| We do not want to prolong the situation much longer that e1000
| and e1000e support these devices at the same time. As a result,
| take out the bandage that was added for the interim period
| and remove all the PCI Express device IDs from e1000.

i have migrated these testboxes to e1000e. (i migrated a third one
already but forgot about these two and i was stupid enough to do a
bisection suspecting some new bug.)

I'm wondering, couldnt we warn about the removed pci express support via
the kernel log? Some simple printk. (Perhaps also with a default-off
.config option that shuts up this warning for users who intentionally
boot E1000=y without e1000e support.)

Thanks,

Ingo

[*] the bisection log:

# bad: [14b395e1] Merge branch 'for-2.6.27' of git://linux-nfs.org/~
# good: [bce7f795] Linux 2.6.26
# good: [cadc7236] Merge branch 'bkl-removal' into next
# bad: [a0c80b8d] pkt_sched: Make default qdisc nonshared-multiqueue
# good: [30902dc4] ax25: Fix std timer socket destroy handling.

# bad: [fbd8f13a] net-sched: sch_htb: move hash and sibling list rem
# good: [40af48c1] rt2x00: kill URB for all TX queues during disable_
# bad: [4977929a] iwlwifi: control 11n capabilities through module p
# bad: [28f49d89] Merge branch 'master' of master.kernel.org:/pub/sc
# bad: [0caa116d] net: sh_eth: Fix compile error sh_eth
# good: [485ca22c] DM9000: Re-unite menuconfig entries for DM9000 dri
# good: [177db6f0] ixgbe: add LRO support
# bad: [6e4f6f6f] e1000e: make ioport free
# bad: [d03157ba] e1000: remove PCI Express device IDs

Stefan Richter

unread,
Jul 21, 2008, 10:20:12 AM7/21/08
to
Ingo Molnar wrote:
> I'm wondering, couldnt we warn about the removed pci express support via
> the kernel log? Some simple printk. (Perhaps also with a default-off
> .config option that shuts up this warning for users who intentionally
> boot E1000=y without e1000e support.)

e1000_init_module() already has two printk()s. A third unconditional
one won't hurt a lot. The first two could also be joined.


--
Stefan Richter
-=====-==--- -=== =-=-=
http://arcgraph.de/sr/

Ingo Molnar

unread,
Jul 21, 2008, 10:40:08 AM7/21/08
to

* Ingo Molnar <mi...@elte.hu> wrote:

> Pid: 1, comm: swapper Not tainted 2.6.26-tip-00013-g6de15c6-dirty #21290

some more information: find below the same crash with vanilla
linus/master and no extra patches. The crash site is:

(gdb) list *0xffffffff808be0c2
0xffffffff808be0c2 is in rollback_registered (net/core/dev.c:3793).
3788 {
3789 BUG_ON(dev_boot_phase);
3790 ASSERT_RTNL();
3791
3792 /* Some devices call without registering for initialization unwind. */
3793 if (dev->reg_state == NETREG_UNINITIALIZED) {
3794 printk(KERN_DEBUG "unregister_netdevice: device %s/%p never "
3795 "was registered\n", dev->name, dev);
3796
3797 WARN_ON(1);
(gdb)

Thanks,

Ingo

----------------------------------->
Linux version 2.6.26-05253-g14b395e (mingo@dione) (gcc version 4.2.3) #21308 SMP Mon Jul 21 16:14:51 CEST 2008
Command line: root=/dev/sda1 earlyprintk=vga console=ttyS0,115200 console=tty 5 profile=0 debug initcall_debug apic=debug apic=verbose ignore_loglevel sysrq_always_enabled pci=nomsi
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000003ed94000 (usable)
BIOS-e820: 000000003ed94000 - 000000003ee4e000 (ACPI NVS)
BIOS-e820: 000000003ee4e000 - 000000003fea2000 (usable)
BIOS-e820: 000000003fea2000 - 000000003fee9000 (ACPI NVS)
BIOS-e820: 000000003fee9000 - 000000003feed000 (usable)
BIOS-e820: 000000003feed000 - 000000003feff000 (ACPI data)
BIOS-e820: 000000003feff000 - 000000003ff00000 (usable)
KERNEL supported cpus:
Intel GenuineIntel
AMD AuthenticAMD
Centaur CentaurHauls
console [earlyvga0] enabled
debug: ignoring loglevel setting.
last_pfn = 0x3ff00 max_arch_pfn = 0x3ffffffff
init_memory_mapping
0000000000 - 003fe00000 page 2M
003fe00000 - 003ff00000 page 4k
kernel direct mapping tables up to 3ff00000 @ 8000-b000
last_map_addr: 3ff00000 end: 3ff00000
ACPI: RSDP 000FE020, 0014 (r0 INTEL )
ACPI: RSDT 3FEFDE48, 0050 (r1 INTEL D975XBX 4B9 MSFT 1000013)
ACPI: FACP 3FEFCF10, 0074 (r1 INTEL D975XBX 4B9 MSFT 1000013)
ACPI: DSDT 3FEF8010, 3E70 (r1 INTEL D975XBX 4B9 MSFT 1000013)
ACPI: FACS 3FEDFC40, 0040
ACPI: APIC 3FEFCE10, 0078 (r1 INTEL D975XBX 4B9 MSFT 1000013)
ACPI: WDDT 3FEF7F90, 0040 (r1 INTEL D975XBX 4B9 MSFT 1000013)
ACPI: MCFG 3FEF7F10, 003C (r1 INTEL D975XBX 4B9 MSFT 1000013)
ACPI: ASF! 3FEFCD10, 00A6 (r32 INTEL D975XBX 4B9 MSFT 1000013)
ACPI: HPET 3FEF7E90, 0038 (r1 INTEL D975XBX 4B9 MSFT 1000013)
ACPI: SSDT 3FEFDC10, 01BC (r1 INTEL CpuPm 4B9 MSFT 1000013)
ACPI: SSDT 3FEFDA10, 01B7 (r1 INTEL Cpu0Ist 4B9 MSFT 1000013)
ACPI: SSDT 3FEFD810, 01B7 (r1 INTEL Cpu1Ist 4B9 MSFT 1000013)
ACPI: SSDT 3FEFD610, 01B7 (r1 INTEL Cpu2Ist 4B9 MSFT 1000013)
ACPI: SSDT 3FEFD410, 01B7 (r1 INTEL Cpu3Ist 4B9 MSFT 1000013)
Entering add_active_range(0, 0x0, 0x9f) 0 entries of 25600 used
Entering add_active_range(0, 0x100, 0x3ed94) 1 entries of 25600 used
Entering add_active_range(0, 0x3ee4e, 0x3fea2) 2 entries of 25600 used
Entering add_active_range(0, 0x3fee9, 0x3feed) 3 entries of 25600 used
Entering add_active_range(0, 0x3feff, 0x3ff00) 4 entries of 25600 used
(5 early reservations) ==> bootmem
#0 [0000000000 - 0000001000] BIOS data page ==> [0000000000 - 0000001000]
#1 [0000006000 - 0000008000] TRAMPOLINE ==> [0000006000 - 0000008000]
#2 [0000200000 - 0001484b34] TEXT DATA BSS ==> [0000200000 - 0001484b34]
#3 [000009fc00 - 0000100000] BIOS reserved ==> [000009fc00 - 0000100000]
#4 [0000008000 - 0000009000] PGTABLE ==> [0000008000 - 0000009000]
Zone PFN ranges:
DMA 0x00000000 -> 0x00001000
DMA32 0x00001000 -> 0x00100000
Normal 0x00100000 -> 0x00100000
Movable zone start PFN for each node
early_node_map[5] active PFN ranges
0: 0x00000000 -> 0x0000009f
0: 0x00000100 -> 0x0003ed94
0: 0x0003ee4e -> 0x0003fea2
0: 0x0003fee9 -> 0x0003feed
0: 0x0003feff -> 0x0003ff00
On node 0 totalpages: 261516
DMA zone: 56 pages used for memmap
DMA zone: 100 pages reserved
DMA zone: 3843 pages, LIFO batch:0
DMA32 zone: 3525 pages used for memmap
DMA32 zone: 253992 pages, LIFO batch:31
Normal zone: 0 pages used for memmap
Movable zone: 0 pages used for memmap
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x82] disabled)
ACPI: LAPIC (acpi_id[0x04] lapic_id[0x83] disabled)
ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1])
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 0, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Setting APIC routing to flat
ACPI: HPET id: 0x8086a201 base: 0xfed00000
SMP: Allowing 4 CPUs, 2 hotplug CPUs
mapped APIC to ffffffffff5fc000 ( fee00000)
mapped IOAPIC to ffffffffff5fb000 (00000000fec00000)
Allocating PCI resources starting at 40000000 (gap: 3ff00000:c0100000)
PERCPU: Allocating 40256 bytes of per cpu data
NR_CPUS: 4096, nr_cpu_ids: 4, nr_node_ids 512
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 257835
Kernel command line: root=/dev/sda1 earlyprintk=vga console=ttyS0,115200 console=tty 5 profile=0 debug initcall_debug apic=debug apic=verbose ignore_loglevel sysrq_always_enabled pci=nomsi
kernel profiling enabled (shift: 0)
debug: sysrq always enabled.
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 32768 bytes)
TSC calibrated against PIT
Detected 2933.406 MHz processor.
Console: colour VGA+ 80x25
console handover: boot [earlyvga0] -> real [tty0]
console [ttyS0] enabled
Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
Checking aperture...
No AGP bridge found
Memory: 978020k/1047552k available (8071k kernel code, 67476k reserved, 6822k data, 540k init)
CPA: page pool initialized 1 of 1 pages preallocated
hpet clockevent registered
Calibrating delay loop (skipped), value calculated using timer frequency.. <6>5866.81 BogoMIPS (lpj=11733624)
Security Framework initialized
SELinux: Initializing.
SELinux: Starting in permissive mode
Mount-cache hash table entries: 256
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
CPU0: Thermal monitoring enabled (TM2)
using mwait in idle threads.
ACPI: Core revision 20080609
enabled ExtINT on CPU#0
ENABLING IO-APIC IRQs
init IO_APIC IRQs
IO-APIC (apicid-pin) 2-0 not connected.
IOAPIC[0]: Set routing entry (2-1 -> 0x31 -> IRQ 1 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-2 -> 0x30 -> IRQ 0 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-3 -> 0x33 -> IRQ 3 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-4 -> 0x34 -> IRQ 4 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-5 -> 0x35 -> IRQ 5 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-6 -> 0x36 -> IRQ 6 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-7 -> 0x37 -> IRQ 7 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-8 -> 0x38 -> IRQ 8 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-9 -> 0x39 -> IRQ 9 Mode:1 Active:0)
IOAPIC[0]: Set routing entry (2-10 -> 0x3a -> IRQ 10 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-11 -> 0x3b -> IRQ 11 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-12 -> 0x3c -> IRQ 12 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-13 -> 0x3d -> IRQ 13 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-14 -> 0x3e -> IRQ 14 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-15 -> 0x3f -> IRQ 15 Mode:0 Active:0)
IO-APIC (apicid-pin) 2-16, 2-17, 2-18, 2-19, 2-20, 2-21, 2-22, 2-23 not connected.
..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
CPU0: Intel(R) Core(TM)2 CPU E6800 @ 2.93GHz stepping 05
Using local APIC timer interrupts.
APIC timer calibration result 16667083
Detected 16.667 MHz APIC timer.
Booting processor 1/1 ip 6000
Initializing CPU#1
masked ExtINT on CPU#1
Calibrating delay using timer specific routine.. <6>5866.88 BogoMIPS (lpj=11733771)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
CPU1: Thermal monitoring enabled (TM2)
CPU1: Intel(R) Core(TM)2 CPU E6800 @ 2.93GHz stepping 05
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
Brought up 2 CPUs
Total of 2 processors activated (11733.69 BogoMIPS).
calling init_cpufreq_transition_notifier_list+0x0/0x1b
initcall init_cpufreq_transition_notifier_list+0x0/0x1b returned 0 after 0 msecs
calling net_ns_init+0x0/0x133
net_namespace: 1120 bytes
initcall net_ns_init+0x0/0x133 returned 0 after 0 msecs
calling cpufreq_tsc+0x0/0x16
initcall cpufreq_tsc+0x0/0x16 returned 0 after 0 msecs
calling init_smp_flush+0x0/0x51
initcall init_smp_flush+0x0/0x51 returned 0 after 0 msecs
calling print_banner+0x0/0xf
Booting paravirtualized kernel on bare hardware
initcall print_banner+0x0/0xf returned 0 after 3 msecs
calling sysctl_init+0x0/0x32
initcall sysctl_init+0x0/0x32 returned 0 after 0 msecs
calling ksysfs_init+0x0/0xb9
initcall ksysfs_init+0x0/0xb9 returned 0 after 0 msecs
calling init_jiffies_clocksource+0x0/0xc
initcall init_jiffies_clocksource+0x0/0xc returned 0 after 0 msecs
calling pm_init+0x0/0x35
initcall pm_init+0x0/0x35 returned 0 after 0 msecs
calling filelock_init+0x0/0x2e
initcall filelock_init+0x0/0x2e returned 0 after 0 msecs
calling init_script_binfmt+0x0/0xc
initcall init_script_binfmt+0x0/0xc returned 0 after 0 msecs
calling init_elf_binfmt+0x0/0xc
initcall init_elf_binfmt+0x0/0xc returned 0 after 0 msecs
calling init_compat_elf_binfmt+0x0/0xc
initcall init_compat_elf_binfmt+0x0/0xc returned 0 after 0 msecs
calling debugfs_init+0x0/0x47
initcall debugfs_init+0x0/0x47 returned 0 after 0 msecs
calling securityfs_init+0x0/0x47
initcall securityfs_init+0x0/0x47 returned 0 after 0 msecs
calling random32_init+0x0/0x5f
initcall random32_init+0x0/0x5f returned 0 after 0 msecs
calling cpufreq_core_init+0x0/0x84
initcall cpufreq_core_init+0x0/0x84 returned 0 after 0 msecs
calling cpuidle_init+0x0/0x36
initcall cpuidle_init+0x0/0x36 returned 0 after 0 msecs
calling virtio_init+0x0/0x26
initcall virtio_init+0x0/0x26 returned 0 after 0 msecs
calling sock_init+0x0/0x5e
initcall sock_init+0x0/0x5e returned 0 after 0 msecs
calling netpoll_init+0x0/0x2c
initcall netpoll_init+0x0/0x2c returned 0 after 0 msecs
calling netlink_proto_init+0x0/0x13e
NET: Registered protocol family 16
initcall netlink_proto_init+0x0/0x13e returned 0 after 3 msecs
calling bdi_class_init+0x0/0x3d
initcall bdi_class_init+0x0/0x3d returned 0 after 0 msecs
calling kobject_uevent_init+0x0/0x45
initcall kobject_uevent_init+0x0/0x45 returned 0 after 0 msecs
calling pcibus_class_init+0x0/0xc
initcall pcibus_class_init+0x0/0xc returned 0 after 0 msecs
calling pci_driver_init+0x0/0xc
initcall pci_driver_init+0x0/0xc returned 0 after 0 msecs
calling lcd_class_init+0x0/0x49
initcall lcd_class_init+0x0/0x49 returned 0 after 0 msecs
calling backlight_class_init+0x0/0x4a
initcall backlight_class_init+0x0/0x4a returned 0 after 0 msecs
calling dock_init+0x0/0x5c
No dock devices found.
initcall dock_init+0x0/0x5c returned 0 after 0 msecs
calling tty_class_init+0x0/0x2a
initcall tty_class_init+0x0/0x2a returned 0 after 0 msecs
calling vtconsole_class_init+0x0/0xaf
initcall vtconsole_class_init+0x0/0xaf returned 0 after 0 msecs
calling enable_pci_io_ecs+0x0/0x2e
initcall enable_pci_io_ecs+0x0/0x2e returned 0 after 0 msecs
calling early_fill_mp_bus_info+0x0/0x763
initcall early_fill_mp_bus_info+0x0/0x763 returned 0 after 0 msecs
calling arch_kdebugfs_init+0x0/0x3
initcall arch_kdebugfs_init+0x0/0x3 returned 0 after 0 msecs
calling ffh_cstate_init+0x0/0x31
initcall ffh_cstate_init+0x0/0x31 returned 0 after 0 msecs
calling acpi_pci_init+0x0/0x3b
ACPI: bus type pci registered
initcall acpi_pci_init+0x0/0x3b returned 0 after 0 msecs
calling init_acpi_device_notify+0x0/0x4b
initcall init_acpi_device_notify+0x0/0x4b returned 0 after 0 msecs
calling pci_arch_init+0x0/0x44
PCI: MCFG configuration 0: base f0000000 segment 0 buses 0 - 127
PCI: Not using MMCONFIG.
PCI: Using configuration type 1 for base access
initcall pci_arch_init+0x0/0x44 returned 0 after 11 msecs
calling topology_init+0x0/0x31
initcall topology_init+0x0/0x31 returned 0 after 0 msecs
calling param_sysfs_init+0x0/0x1c1
initcall param_sysfs_init+0x0/0x1c1 returned 0 after 11 msecs
calling pm_sysrq_init+0x0/0x19
initcall pm_sysrq_init+0x0/0x19 returned 0 after 0 msecs
calling readahead_init+0x0/0x2e
initcall readahead_init+0x0/0x2e returned 0 after 3 msecs
calling init_bio+0x0/0xc0
initcall init_bio+0x0/0xc0 returned 0 after 0 msecs
calling integrity_init+0x0/0x35
initcall integrity_init+0x0/0x35 returned 0 after 0 msecs
calling blk_settings_init+0x0/0x25
initcall blk_settings_init+0x0/0x25 returned 0 after 0 msecs
calling blk_ioc_init+0x0/0x2a
initcall blk_ioc_init+0x0/0x2a returned 0 after 0 msecs
calling genhd_device_init+0x0/0x36
initcall genhd_device_init+0x0/0x36 returned 0 after 0 msecs
calling blk_dev_integrity_init+0x0/0x2a
initcall blk_dev_integrity_init+0x0/0x2a returned 0 after 0 msecs
calling pci_slot_init+0x0/0x45
initcall pci_slot_init+0x0/0x45 returned 0 after 0 msecs
calling acpi_init+0x0/0x21b
ACPI: EC: Look up EC in DSDT
ACPI: Interpreter enabled
ACPI: (supports S0 S5)
ACPI: Using IOAPIC for interrupt routing
PCI: MCFG configuration 0: base f0000000 segment 0 buses 0 - 127
PCI: BIOS Bug: MCFG area at f0000000 is not reserved in ACPI motherboard resources
PCI: Not using MMCONFIG.
initcall acpi_init+0x0/0x21b returned 0 after 26 msecs
calling acpi_scan_init+0x0/0x113
initcall acpi_scan_init+0x0/0x113 returned 0 after 3 msecs
calling acpi_ec_init+0x0/0x61
initcall acpi_ec_init+0x0/0x61 returned 0 after 0 msecs
calling acpi_pci_root_init+0x0/0x28
ACPI: PCI Root Bridge [PCI0] (0000:00)
pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
pci 0000:00:01.0: PME# disabled
pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
pci 0000:00:1b.0: PME# disabled
pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
pci 0000:00:1c.0: PME# disabled
pci 0000:00:1c.4: PME# supported from D0 D3hot D3cold
pci 0000:00:1c.4: PME# disabled
pci 0000:00:1c.5: PME# supported from D0 D3hot D3cold
pci 0000:00:1c.5: PME# disabled
pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
pci 0000:00:1d.7: PME# disabled
pci 0000:00:1f.2: PME# supported from D3hot
pci 0000:00:1f.2: PME# disabled
pci 0000:01:00.0: supports D1
pci 0000:01:00.0: supports D2
pci 0000:01:00.1: supports D1
pci 0000:01:00.1: supports D2
pci 0000:02:00.0: supports D1
pci 0000:02:00.0: supports D2
pci 0000:02:00.0: PME# supported from D0 D1 D2
pci 0000:02:00.0: PME# disabled
pci 0000:04:00.0: PME# supported from D0 D3hot D3cold
pci 0000:04:00.0: PME# disabled
pci 0000:05:04.0: supports D1
pci 0000:05:04.0: supports D2
pci 0000:05:04.0: PME# supported from D0 D1 D2 D3hot
pci 0000:05:04.0: PME# disabled
pci 0000:05:05.0: supports D1
pci 0000:05:05.0: supports D2
pci 0000:00:1e.0: transparent bridge
bus 00 -> node 0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P32_._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX4._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX5._PRT]
initcall acpi_pci_root_init+0x0/0x28 returned 0 after 110 msecs
calling acpi_pci_link_init+0x0/0x48
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 7 9 10 *11 12)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 7 9 *10 11 12)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 7 9 *10 11 12)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 7 *9 10 11 12)
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 7 9 10 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 7 9 10 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 7 *9 10 11 12)
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 7 9 10 *11 12)
initcall acpi_pci_link_init+0x0/0x48 returned 0 after 49 msecs
calling acpi_power_init+0x0/0x77
initcall acpi_power_init+0x0/0x77 returned 0 after 0 msecs
calling acpi_system_init+0x0/0x264
initcall acpi_system_init+0x0/0x264 returned 0 after 0 msecs
calling pnp_init+0x0/0x1f
Linux Plug and Play Support v0.97 (c) Adam Belay
initcall pnp_init+0x0/0x1f returned 0 after 3 msecs
calling pnpacpi_init+0x0/0x8c
pnp: PnP ACPI init
ACPI: bus type pnp registered
IOAPIC[0]: Set routing entry (2-8 -> 0x38 -> IRQ 8 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-13 -> 0x3d -> IRQ 13 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-6 -> 0x36 -> IRQ 6 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-7 -> 0x37 -> IRQ 7 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-12 -> 0x3c -> IRQ 12 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-1 -> 0x31 -> IRQ 1 Mode:0 Active:0)
IOAPIC[0]: Set routing entry (2-4 -> 0x34 -> IRQ 4 Mode:0 Active:0)
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
initcall pnpacpi_init+0x0/0x8c returned 0 after 38 msecs
calling misc_init+0x0/0x8e
initcall misc_init+0x0/0x8e returned 0 after 0 msecs
calling cn_init+0x0/0xee
initcall cn_init+0x0/0xee returned 0 after 0 msecs
calling tifm_init+0x0/0x6d
initcall tifm_init+0x0/0x6d returned 0 after 0 msecs
calling phy_init+0x0/0x27
initcall phy_init+0x0/0x27 returned 0 after 0 msecs
calling init_dvbdev+0x0/0xaf
initcall init_dvbdev+0x0/0xaf returned 0 after 0 msecs
calling init_scsi+0x0/0x72
SCSI subsystem initialized
initcall init_scsi+0x0/0x72 returned 0 after 3 msecs
calling ata_init+0x0/0x32a
libata version 3.00 loaded.
initcall ata_init+0x0/0x32a returned 0 after 3 msecs
calling spi_init+0x0/0x73
initcall spi_init+0x0/0x73 returned 0 after 0 msecs
calling init_pcmcia_cs+0x0/0x27
initcall init_pcmcia_cs+0x0/0x27 returned 0 after 0 msecs
calling usb_init+0x0/0x104
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
initcall usb_init+0x0/0x104 returned 0 after 11 msecs
calling serio_init+0x0/0x8b
initcall serio_init+0x0/0x8b returned 0 after 0 msecs
calling gameport_init+0x0/0x8b
initcall gameport_init+0x0/0x8b returned 0 after 0 msecs
calling input_init+0x0/0xfc
initcall input_init+0x0/0xfc returned 0 after 0 msecs
calling i2c_init+0x0/0x55
initcall i2c_init+0x0/0x55 returned 0 after 0 msecs
calling power_supply_class_init+0x0/0x34
initcall power_supply_class_init+0x0/0x34 returned 0 after 0 msecs
calling thermal_init+0x0/0x2f
initcall thermal_init+0x0/0x2f returned 0 after 0 msecs
calling mmc_init+0x0/0x65
initcall mmc_init+0x0/0x65 returned 0 after 0 msecs
calling leds_init+0x0/0x2a
initcall leds_init+0x0/0x2a returned 0 after 0 msecs
calling dma_bus_init+0x0/0x2b
initcall dma_bus_init+0x0/0x2b returned 0 after 0 msecs
calling ac97_bus_init+0x0/0xc
initcall ac97_bus_init+0x0/0xc returned 0 after 0 msecs
calling pci_subsys_init+0x0/0x116
PCI: Using ACPI for IRQ routing
number of MP IRQ sources: 15.
number of IO-APIC #2 registers: 24.
testing the IO APIC.......................

IO APIC #2......
.... register #00: 00000000
....... : physical APIC id: 00
.... register #01: 00170020
....... : max redirection entries: 0017
....... : PRQ implemented: 0
....... : IO APIC version: 0020
.... register #02: 00170020
....... : arbitration: 00
.... IRQ redirection table:
NR Dst Mask Trig IRR Pol Stat Dmod Deli Vect:
00 000 1 0 0 0 0 0 0 00
01 003 0 0 0 0 0 1 1 31
02 003 0 0 0 0 0 1 1 30
03 003 0 0 0 0 0 1 1 33
04 003 0 0 0 0 0 1 1 34
05 003 0 0 0 0 0 1 1 35
06 003 0 0 0 0 0 1 1 36
07 003 0 0 0 0 0 1 1 37
08 003 0 0 0 0 0 1 1 38
09 003 0 1 0 0 0 1 1 39
0a 003 0 0 0 0 0 1 1 3A
0b 003 0 0 0 0 0 1 1 3B
0c 003 0 0 0 0 0 1 1 3C
0d 003 0 0 0 0 0 1 1 3D
0e 003 0 0 0 0 0 1 1 3E
0f 003 0 0 0 0 0 1 1 3F
10 000 1 0 0 0 0 0 0 00
11 000 1 0 0 0 0 0 0 00
12 000 1 0 0 0 0 0 0 00
13 000 1 0 0 0 0 0 0 00
14 000 1 0 0 0 0 0 0 00
15 000 1 0 0 0 0 0 0 00
16 000 1 0 0 0 0 0 0 00
17 000 1 0 0 0 0 0 0 00
IRQ to pin mappings:
IRQ0 -> 0:2
IRQ1 -> 0:1
IRQ3 -> 0:3
IRQ4 -> 0:4
IRQ5 -> 0:5
IRQ6 -> 0:6
IRQ7 -> 0:7
IRQ8 -> 0:8
IRQ9 -> 0:9
IRQ10 -> 0:10
IRQ11 -> 0:11
IRQ12 -> 0:12
IRQ13 -> 0:13
IRQ14 -> 0:14
IRQ15 -> 0:15
.................................... done.
initcall pci_subsys_init+0x0/0x116 returned 0 after 164 msecs
calling proto_init+0x0/0x2e
initcall proto_init+0x0/0x2e returned 0 after 0 msecs
calling net_dev_init+0x0/0x158
initcall net_dev_init+0x0/0x158 returned 0 after 0 msecs
calling neigh_init+0x0/0x71
initcall neigh_init+0x0/0x71 returned 0 after 0 msecs
calling fib_rules_init+0x0/0x9c
initcall fib_rules_init+0x0/0x9c returned 0 after 0 msecs
calling genl_init+0x0/0xce
initcall genl_init+0x0/0xce returned 0 after 15 msecs
calling cipso_v4_init+0x0/0x67
initcall cipso_v4_init+0x0/0x67 returned 0 after 0 msecs
calling wireless_nlevent_init+0x0/0x2c
initcall wireless_nlevent_init+0x0/0x2c returned 0 after 0 msecs
calling cfg80211_init+0x0/0x55
initcall cfg80211_init+0x0/0x55 returned 0 after 11 msecs
calling ieee80211_init+0x0/0xd
initcall ieee80211_init+0x0/0xd returned 0 after 0 msecs
calling netlbl_init+0x0/0x83
NetLabel: Initializing
NetLabel: domain hash size = 128
NetLabel: protocols = UNLABELED CIPSOv4
NetLabel: unlabeled traffic allowed by default
initcall netlbl_init+0x0/0x83 returned 0 after 11 msecs
calling sysctl_init+0x0/0x2f
initcall sysctl_init+0x0/0x2f returned 0 after 0 msecs
calling pci_iommu_init+0x0/0x12
PCI-GART: No AMD northbridge found.
initcall pci_iommu_init+0x0/0x12 returned 0 after 3 msecs
calling hpet_late_init+0x0/0xfc
hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
hpet0: 3 64-bit timers, 14318180 Hz
initcall hpet_late_init+0x0/0xfc returned 0 after 7 msecs
calling clocksource_done_booting+0x0/0xd
initcall clocksource_done_booting+0x0/0xd<7>Switched to high resolution mode on CPU 0
Switched to high resolution mode on CPU 1
returned 0 after 0 msecs
calling tracer_alloc_buffers+0x0/0x4ec
tracer: 1286 pages allocated for 65536 entries of 80 bytes
actual entries 65586
initcall tracer_alloc_buffers+0x0/0x4ec returned 0 after 8 msecs
calling init_pipe_fs+0x0/0x42
initcall init_pipe_fs+0x0/0x42 returned 0 after 0 msecs
calling init_mnt_writers+0x0/0x58
initcall init_mnt_writers+0x0/0x58 returned 0 after 0 msecs
calling anon_inode_init+0x0/0x10b
initcall anon_inode_init+0x0/0x10b returned 0 after 0 msecs
calling acpi_event_init+0x0/0x52
initcall acpi_event_init+0x0/0x52 returned 0 after 10 msecs
calling pnp_system_init+0x0/0xc
system 00:01: iomem range 0xf0000000-0xf3ffffff has been reserved
system 00:01: iomem range 0xfed13000-0xfed13fff has been reserved
system 00:01: iomem range 0xfed14000-0xfed17fff has been reserved
system 00:01: iomem range 0xfed18000-0xfed18fff has been reserved
system 00:01: iomem range 0xfed19000-0xfed19fff has been reserved
system 00:01: iomem range 0xfed1c000-0xfed1ffff has been reserved
system 00:01: iomem range 0xfed20000-0xfed3ffff has been reserved
system 00:01: iomem range 0xfed45000-0xfed99fff has been reserved
system 00:01: iomem range 0xc0000-0xdffff has been reserved
system 00:01: iomem range 0xe0000-0xfffff could not be reserved
system 00:06: ioport range 0x500-0x53f has been reserved
system 00:06: ioport range 0x400-0x47f has been reserved
system 00:06: ioport range 0x680-0x6ff has been reserved
initcall pnp_system_init+0x0/0xc returned 0 after 70 msecs
calling chr_dev_init+0x0/0x9a
initcall chr_dev_init+0x0/0x9a returned 0 after 0 msecs
calling firmware_class_init+0x0/0x68
initcall firmware_class_init+0x0/0x68 returned 0 after 0 msecs
calling loopback_init+0x0/0xc
initcall loopback_init+0x0/0xc returned 0 after 0 msecs
calling cpufreq_gov_performance_init+0x0/0xc
initcall cpufreq_gov_performance_init+0x0/0xc returned 0 after 0 msecs
calling cpufreq_gov_dbs_init+0x0/0x47
initcall cpufreq_gov_dbs_init+0x0/0x47 returned 0 after 0 msecs
calling ssb_modinit+0x0/0x4b
initcall ssb_modinit+0x0/0x4b returned 0 after 0 msecs
calling pcibios_assign_resources+0x0/0x86
pci 0000:00:01.0: PCI bridge, secondary bus 0000:01
pci 0000:00:01.0: IO window: 0x3000-0x3fff
pci 0000:00:01.0: MEM window: 0x50300000-0x503fffff
pci 0000:00:01.0: PREFETCH window: 0x00000040000000-0x0000004fffffff
pci 0000:00:1c.0: PCI bridge, secondary bus 0000:02
pci 0000:00:1c.0: IO window: disabled
pci 0000:00:1c.0: MEM window: 0x50200000-0x502fffff
pci 0000:00:1c.0: PREFETCH window: disabled
pci 0000:00:1c.4: PCI bridge, secondary bus 0000:03
pci 0000:00:1c.4: IO window: disabled
pci 0000:00:1c.4: MEM window: disabled
pci 0000:00:1c.4: PREFETCH window: disabled
pci 0000:00:1c.5: PCI bridge, secondary bus 0000:04
pci 0000:00:1c.5: IO window: 0x2000-0x2fff
pci 0000:00:1c.5: MEM window: 0x50100000-0x501fffff
pci 0000:00:1c.5: PREFETCH window: disabled
pci 0000:00:1e.0: PCI bridge, secondary bus 0000:05
pci 0000:00:1e.0: IO window: 0x1000-0x1fff
pci 0000:00:1e.0: MEM window: 0x50000000-0x500fffff
pci 0000:00:1e.0: PREFETCH window: disabled
IOAPIC[0]: Set routing entry (2-16 -> 0x49 -> IRQ 16 Mode:1 Active:1)
pci 0000:00:01.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
PCI: Setting latency timer of device 0000:00:01.0 to 64
IOAPIC[0]: Set routing entry (2-17 -> 0x51 -> IRQ 17 Mode:1 Active:1)
pci 0000:00:1c.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
PCI: Setting latency timer of device 0000:00:1c.0 to 64
pci 0000:00:1c.4: PCI INT A -> GSI 17 (level, low) -> IRQ 17
PCI: Setting latency timer of device 0000:00:1c.4 to 64
pci 0000:00:1c.5: PCI INT B -> GSI 16 (level, low) -> IRQ 16
PCI: Setting latency timer of device 0000:00:1c.5 to 64
PCI: Setting latency timer of device 0000:00:1e.0 to 64
initcall pcibios_assign_resources+0x0/0x86 returned 0 after 147 msecs
calling inet_init+0x0/0x1df
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 6, 262144 bytes)
TCP established hash table entries: 131072 (order: 9, 2097152 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
initcall inet_init+0x0/0x1df returned 0 after 75 msecs
calling af_unix_init+0x0/0x4b
NET: Registered protocol family 1
initcall af_unix_init+0x0/0x4b returned 0 after 3 msecs
calling default_rootfs+0x0/0x61
initcall default_rootfs+0x0/0x61 returned 0 after 0 msecs
calling i8259A_init_sysfs+0x0/0x23
initcall i8259A_init_sysfs+0x0/0x23 returned 0 after 0 msecs
calling vsyscall_init+0x0/0x6c
initcall vsyscall_init+0x0/0x6c returned 0 after 0 msecs
calling sbf_init+0x0/0xd5
initcall sbf_init+0x0/0xd5 returned 0 after 0 msecs
calling i8237A_init_sysfs+0x0/0x23
initcall i8237A_init_sysfs+0x0/0x23 returned 0 after 0 msecs
calling add_rtc_cmos+0x0/0x1d
initcall add_rtc_cmos+0x0/0x1d returned 0 after 0 msecs
calling cache_sysfs_init+0x0/0x55
initcall cache_sysfs_init+0x0/0x55 returned 0 after 0 msecs
calling mce_init_device+0x0/0x7f
initcall mce_init_device+0x0/0x7f returned 0 after 0 msecs
calling periodic_mcheck_init+0x0/0x3f
initcall periodic_mcheck_init+0x0/0x3f returned 0 after 0 msecs
calling thermal_throttle_init_device+0x0/0x7b
initcall thermal_throttle_init_device+0x0/0x7b returned 0 after 0 msecs
calling microcode_init+0x0/0xaf
IA-32 Microcode Update Driver: v1.14a <tig...@aivazian.fsnet.co.uk>
initcall microcode_init+0x0/0xaf returned 0 after 5 msecs
calling init_lapic_sysfs+0x0/0x2f
initcall init_lapic_sysfs+0x0/0x2f returned 0 after 0 msecs
calling ioapic_init_sysfs+0x0/0x99
initcall ioapic_init_sysfs+0x0/0x99 returned 0 after 0 msecs
calling uv_ptc_init+0x0/0x75
initcall uv_ptc_init+0x0/0x75 returned 0 after 0 msecs
calling uv_bau_init+0x0/0x5d0
initcall uv_bau_init+0x0/0x5d0 returned 0 after 0 msecs
calling audit_classes_init+0x0/0xaf
initcall audit_classes_init+0x0/0xaf returned 0 after 0 msecs
calling aes_init+0x0/0xc
initcall aes_init+0x0/0xc returned 0 after 0 msecs
calling init+0x0/0xc
initcall init+0x0/0xc returned 0 after 0 msecs
calling init_vdso_vars+0x0/0x224
initcall init_vdso_vars+0x0/0x224 returned 0 after 0 msecs
calling ia32_binfmt_init+0x0/0x14
initcall ia32_binfmt_init+0x0/0x14 returned 0 after 0 msecs
calling sysenter_setup+0x0/0x2ac
initcall sysenter_setup+0x0/0x2ac returned 0 after 0 msecs
calling init_aout_binfmt+0x0/0xc
initcall init_aout_binfmt+0x0/0xc returned 0 after 0 msecs
calling create_proc_profile+0x0/0x319
initcall create_proc_profile+0x0/0x319 returned 0 after 0 msecs
calling ioresources_init+0x0/0x3c
initcall ioresources_init+0x0/0x3c returned 0 after 0 msecs
calling uid_cache_init+0x0/0x6f
initcall uid_cache_init+0x0/0x6f returned 0 after 0 msecs
calling init_posix_timers+0x0/0xa6
initcall init_posix_timers+0x0/0xa6 returned 0 after 0 msecs
calling init_posix_cpu_timers+0x0/0xc6
initcall init_posix_cpu_timers+0x0/0xc6 returned 0 after 0 msecs
calling nsproxy_cache_init+0x0/0x2d
initcall nsproxy_cache_init+0x0/0x2d returned 0 after 0 msecs
calling timekeeping_init_device+0x0/0x23
initcall timekeeping_init_device+0x0/0x23 returned 0 after 0 msecs
calling init_clocksource_sysfs+0x0/0x51
initcall init_clocksource_sysfs+0x0/0x51 returned 0 after 0 msecs
calling init_timer_list_procfs+0x0/0x2c
initcall init_timer_list_procfs+0x0/0x2c returned 0 after 0 msecs
calling futex_init+0x0/0x67
initcall futex_init+0x0/0x67 returned 0 after 0 msecs
calling proc_dma_init+0x0/0x22
initcall proc_dma_init+0x0/0x22 returned 0 after 0 msecs
calling kallsyms_init+0x0/0x25
initcall kallsyms_init+0x0/0x25 returned 0 after 0 msecs
calling pid_namespaces_init+0x0/0x2d
initcall pid_namespaces_init+0x0/0x2d returned 0 after 0 msecs
calling audit_init+0x0/0x126
audit: initializing netlink socket (disabled)
type=2000 audit(1216650963.392:1): initialized
initcall audit_init+0x0/0x126 returned 0 after 8 msecs
calling relay_init+0x0/0x14
initcall relay_init+0x0/0x14 returned 0 after 0 msecs
calling utsname_sysctl_init+0x0/0x14
initcall utsname_sysctl_init+0x0/0x14 returned 0 after 0 msecs
calling init_stack_trace+0x0/0xc
Testing tracer sysprof: PASSED
initcall init_stack_trace+0x0/0xc returned 0 after 98 msecs
calling init_per_zone_pages_min+0x0/0x45
initcall init_per_zone_pages_min+0x0/0x45 returned 0 after 0 msecs
calling pdflush_init+0x0/0x13
initcall pdflush_init+0x0/0x13 returned 0 after 0 msecs
calling kswapd_init+0x0/0x5e
initcall kswapd_init+0x0/0x5e returned 0 after 0 msecs
calling setup_vmstat+0x0/0x42
initcall setup_vmstat+0x0/0x42 returned 0 after 0 msecs
calling init_tmpfs+0x0/0x3d
initcall init_tmpfs+0x0/0x3d returned 0 after 0 msecs
calling fasync_init+0x0/0x2a
initcall fasync_init+0x0/0x2a returned 0 after 0 msecs
calling aio_setup+0x0/0x6e
initcall aio_setup+0x0/0x6e returned 0 after 0 msecs
calling inotify_setup+0x0/0xd
initcall inotify_setup+0x0/0xd returned 0 after 0 msecs
calling inotify_user_setup+0x0/0xb8
initcall inotify_user_setup+0x0/0xb8 returned 0 after 0 msecs
calling init_sys32_ioctl+0x0/0x85
initcall init_sys32_ioctl+0x0/0x85 returned 0 after 0 msecs
calling init_mbcache+0x0/0x14
initcall init_mbcache+0x0/0x14 returned 0 after 0 msecs
calling dquot_init+0x0/0xde
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
initcall dquot_init+0x0/0xde returned 0 after 7 msecs
calling init_v2_quota_format+0x0/0xc
initcall init_v2_quota_format+0x0/0xc returned 0 after 0 msecs
calling dnotify_init+0x0/0x2a
initcall dnotify_init+0x0/0x2a returned 0 after 0 msecs
calling configfs_init+0x0/0xa9
initcall configfs_init+0x0/0xa9 returned 0 after 0 msecs
calling init_devpts_fs+0x0/0x35
initcall init_devpts_fs+0x0/0x35 returned 0 after 0 msecs
calling init_ext3_fs+0x0/0x60
initcall init_ext3_fs+0x0/0x60 returned 0 after 0 msecs
calling journal_init+0x0/0xc5
initcall journal_init+0x0/0xc5 returned 0 after 0 msecs
calling init_ext2_fs+0x0/0x60
initcall init_ext2_fs+0x0/0x60 returned 0 after 0 msecs
calling init_ramfs_fs+0x0/0xc
initcall init_ramfs_fs+0x0/0xc returned 0 after 0 msecs
calling init_fat_fs+0x0/0x45
initcall init_fat_fs+0x0/0x45 returned 0 after 0 msecs
calling init_msdos_fs+0x0/0xc
initcall init_msdos_fs+0x0/0xc returned 0 after 0 msecs
calling init_vfat_fs+0x0/0xc
initcall init_vfat_fs+0x0/0xc returned 0 after 0 msecs
calling init_iso9660_fs+0x0/0x50
initcall init_iso9660_fs+0x0/0x50 returned 0 after 0 msecs
calling init_hfsplus_fs+0x0/0x53
initcall init_hfsplus_fs+0x0/0x53 returned 0 after 0 msecs
calling init_hfs_fs+0x0/0x53
initcall init_hfs_fs+0x0/0x53 returned 0 after 0 msecs
calling vxfs_init+0x0/0x4f
initcall vxfs_init+0x0/0x4f returned 0 after 0 msecs
calling init_nls_cp437+0x0/0xc
initcall init_nls_cp437+0x0/0xc returned 0 after 0 msecs
calling init_nls_cp775+0x0/0xc
initcall init_nls_cp775+0x0/0xc returned 0 after 0 msecs
calling init_nls_cp850+0x0/0xc
initcall init_nls_cp850+0x0/0xc returned 0 after 0 msecs
calling init_nls_cp852+0x0/0xc
initcall init_nls_cp852+0x0/0xc returned 0 after 0 msecs
calling init_nls_cp855+0x0/0xc
initcall init_nls_cp855+0x0/0xc returned 0 after 0 msecs
calling init_nls_cp857+0x0/0xc
initcall init_nls_cp857+0x0/0xc returned 0 after 0 msecs
calling init_nls_cp860+0x0/0xc
initcall init_nls_cp860+0x0/0xc returned 0 after 0 msecs
calling init_nls_cp863+0x0/0xc
initcall init_nls_cp863+0x0/0xc returned 0 after 0 msecs
calling init_nls_cp874+0x0/0xc
initcall init_nls_cp874+0x0/0xc returned 0 after 0 msecs
calling init_nls_cp932+0x0/0xc
initcall init_nls_cp932+0x0/0xc returned 0 after 0 msecs
calling init_nls_euc_jp+0x0/0x4a
initcall init_nls_euc_jp+0x0/0x4a returned 0 after 0 msecs
calling init_nls_cp936+0x0/0xc
initcall init_nls_cp936+0x0/0xc returned 0 after 0 msecs
calling init_nls_ascii+0x0/0xc
initcall init_nls_ascii+0x0/0xc returned 0 after 0 msecs
calling init_nls_iso8859_1+0x0/0xc
initcall init_nls_iso8859_1+0x0/0xc returned 0 after 0 msecs
calling init_nls_iso8859_5+0x0/0xc
initcall init_nls_iso8859_5+0x0/0xc returned 0 after 0 msecs
calling init_nls_iso8859_13+0x0/0xc
initcall init_nls_iso8859_13+0x0/0xc returned 0 after 0 msecs
calling init_nls_iso8859_14+0x0/0xc
initcall init_nls_iso8859_14+0x0/0xc returned 0 after 0 msecs
calling init_nls_koi8_r+0x0/0xc
initcall init_nls_koi8_r+0x0/0xc returned 0 after 0 msecs
calling init_nls_utf8+0x0/0x1f
initcall init_nls_utf8+0x0/0x1f returned 0 after 0 msecs
calling init_sysv_fs+0x0/0x45
initcall init_sysv_fs+0x0/0x45 returned 0 after 0 msecs
calling init_hpfs_fs+0x0/0x50
initcall init_hpfs_fs+0x0/0x50 returned 0 after 0 msecs
calling init_ntfs_fs+0x0/0x1c7
NTFS driver 2.1.29 [Flags: R/O].
initcall init_ntfs_fs+0x0/0x1c7 returned 0 after 2 msecs
calling init_qnx4_fs+0x0/0x62
QNX4 filesystem 0.2.3 registered.
initcall init_qnx4_fs+0x0/0x62 returned 0 after 3 msecs
calling init_adfs_fs+0x0/0x50
initcall init_adfs_fs+0x0/0x50 returned 0 after 0 msecs
calling fuse_init+0x0/0x11b
fuse init (API version 7.9)
initcall fuse_init+0x0/0x11b returned 0 after 2 msecs
calling init_jfs_fs+0x0/0x1db
JFS: nTxBlock = 7645, nTxLock = 61161
initcall init_jfs_fs+0x0/0x1db returned 0 after 8 msecs
calling init_befs_fs+0x0/0x71
BeFS version: 0.9.3
initcall init_befs_fs+0x0/0x71 returned 0 after 1 msecs
calling ocfs2_init+0x0/0x28b
OCFS2 1.5.0
initcall ocfs2_init+0x0/0x28b returned 0 after 1 msecs
calling ocfs2_stack_glue_init+0x0/0x8b
initcall ocfs2_stack_glue_init+0x0/0x8b returned 0 after 0 msecs
calling init_o2nm+0x0/0x90
OCFS2 Node Manager 1.5.0
initcall init_o2nm+0x0/0x90 returned 0 after 2 msecs
calling init_gfs2_fs+0x0/0x16e
GFS2 (built Jul 21 2008 16:13:18) installed
initcall init_gfs2_fs+0x0/0x16e returned 0 after 5 msecs
calling init_mqueue_fs+0x0/0xbc
initcall init_mqueue_fs+0x0/0xbc returned 0 after 0 msecs
calling key_proc_init+0x0/0x59
initcall key_proc_init+0x0/0x59 returned 0 after 0 msecs
calling selinux_nf_ip_init+0x0/0x4c
SELinux: Registering netfilter hooks
initcall selinux_nf_ip_init+0x0/0x4c returned 0 after 3 msecs
calling init_sel_fs+0x0/0x5e
initcall init_sel_fs+0x0/0x5e returned 0 after 0 msecs
calling selnl_init+0x0/0x4d
initcall selnl_init+0x0/0x4d returned 0 after 0 msecs
calling sel_netif_init+0x0/0x66
initcall sel_netif_init+0x0/0x66 returned 0 after 0 msecs
calling sel_netnode_init+0x0/0x78
initcall sel_netnode_init+0x0/0x78 returned 0 after 0 msecs
calling sel_netport_init+0x0/0x78
initcall sel_netport_init+0x0/0x78 returned 0 after 0 msecs
calling aurule_init+0x0/0x37
initcall aurule_init+0x0/0x37 returned 0 after 0 msecs
calling crypto_algapi_init+0x0/0xd
initcall crypto_algapi_init+0x0/0xd returned 0 after 0 msecs
calling blkcipher_module_init+0x0/0x20
initcall blkcipher_module_init+0x0/0x20 returned 0 after 0 msecs
calling seqiv_module_init+0x0/0xc
initcall seqiv_module_init+0x0/0xc returned 0 after 0 msecs
calling cryptomgr_init+0x0/0xc
initcall cryptomgr_init+0x0/0xc returned 0 after 0 msecs
calling hmac_module_init+0x0/0xc
initcall hmac_module_init+0x0/0xc returned 0 after 0 msecs
calling md5_mod_init+0x0/0xc
initcall md5_mod_init+0x0/0xc returned 0 after 0 msecs
calling rmd128_mod_init+0x0/0xc
initcall rmd128_mod_init+0x0/0xc returned 0 after 0 msecs
calling rmd160_mod_init+0x0/0xc
initcall rmd160_mod_init+0x0/0xc returned 0 after 0 msecs
calling rmd256_mod_init+0x0/0xc
initcall rmd256_mod_init+0x0/0xc returned 0 after 0 msecs
calling rmd320_mod_init+0x0/0xc
initcall rmd320_mod_init+0x0/0xc returned 0 after 0 msecs
calling sha1_generic_mod_init+0x0/0xc
initcall sha1_generic_mod_init+0x0/0xc returned 0 after 0 msecs
calling sha256_generic_mod_init+0x0/0x35
initcall sha256_generic_mod_init+0x0/0x35 returned 0 after 0 msecs
calling sha512_generic_mod_init+0x0/0x35
initcall sha512_generic_mod_init+0x0/0x35 returned 0 after 0 msecs
calling crypto_ecb_module_init+0x0/0xc
initcall crypto_ecb_module_init+0x0/0xc returned 0 after 0 msecs
calling crypto_cbc_module_init+0x0/0xc
initcall crypto_cbc_module_init+0x0/0xc returned 0 after 0 msecs
calling crypto_module_init+0x0/0xc
initcall crypto_module_init+0x0/0xc returned 0 after 0 msecs
calling crypto_ctr_module_init+0x0/0x35
initcall crypto_ctr_module_init+0x0/0x35 returned 0 after 0 msecs
calling crypto_ccm_module_init+0x0/0x53
initcall crypto_ccm_module_init+0x0/0x53 returned 0 after 0 msecs
calling cryptd_init+0x0/0xa8
initcall cryptd_init+0x0/0xa8 returned 0 after 0 msecs
calling des_generic_mod_init+0x0/0x35
initcall des_generic_mod_init+0x0/0x35 returned 0 after 0 msecs
calling fcrypt_mod_init+0x0/0xc
initcall fcrypt_mod_init+0x0/0xc returned 0 after 0 msecs
calling serpent_mod_init+0x0/0x35
initcall serpent_mod_init+0x0/0x35 returned 0 after 0 msecs
calling aes_init+0x0/0x2c5
initcall aes_init+0x0/0x2c5 returned 0 after 0 msecs
calling cast5_mod_init+0x0/0xc
initcall cast5_mod_init+0x0/0xc returned 0 after 0 msecs
calling arc4_init+0x0/0xc
initcall arc4_init+0x0/0xc returned 0 after 0 msecs
calling khazad_mod_init+0x0/0xc
initcall khazad_mod_init+0x0/0xc returned 0 after 0 msecs
calling seed_init+0x0/0xc
initcall seed_init+0x0/0xc returned 0 after 0 msecs
calling salsa20_generic_mod_init+0x0/0xc
initcall salsa20_generic_mod_init+0x0/0xc returned 0 after 0 msecs
calling deflate_mod_init+0x0/0xc
initcall deflate_mod_init+0x0/0xc returned 0 after 0 msecs
calling crc32c_mod_init+0x0/0x35
initcall crc32c_mod_init+0x0/0x35 returned 0 after 0 msecs
calling crypto_authenc_module_init+0x0/0xc
initcall crypto_authenc_module_init+0x0/0xc returned 0 after 0 msecs
calling bsg_init+0x0/0x11a
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
initcall bsg_init+0x0/0x11a returned 0 after 5 msecs
calling noop_init+0x0/0x14
io scheduler noop registered (default)
initcall noop_init+0x0/0x14 returned 0 after 3 msecs
calling percpu_counter_startup+0x0/0x14
initcall percpu_counter_startup+0x0/0x14 returned 0 after 0 msecs
calling pci_init+0x0/0x2b
pci 0000:01:00.0: Boot video device
initcall pci_init+0x0/0x2b returned 0 after 3 msecs
calling pci_proc_init+0x0/0x60
initcall pci_proc_init+0x0/0x60 returned 0 after 0 msecs
calling ltv350qv_init+0x0/0xc
initcall ltv350qv_init+0x0/0xc returned 0 after 0 msecs
calling corgibl_init+0x0/0xc
initcall corgibl_init+0x0/0xc returned 0 after 0 msecs
calling acpi_reserve_resources+0x0/0xeb
initcall acpi_reserve_resources+0x0/0xeb returned 0 after 0 msecs
calling acpi_ac_init+0x0/0x28
initcall acpi_ac_init+0x0/0x28 returned 0 after 0 msecs
calling acpi_battery_init+0x0/0x28
initcall acpi_battery_init+0x0/0x28 returned 0 after 0 msecs
calling acpi_button_init+0x0/0x5e
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Sleep Button (CM) as /class/input/input1
ACPI: Sleep Button (CM) [SLPB]
initcall acpi_button_init+0x0/0x5e returned 0 after 14 msecs
calling acpi_fan_init+0x0/0x5e
initcall acpi_fan_init+0x0/0x5e returned 0 after 0 msecs
calling irqrouter_init_sysfs+0x0/0x37
initcall irqrouter_init_sysfs+0x0/0x37 returned 0 after 0 msecs
calling acpi_processor_init+0x0/0xf6
ACPI: ACPI0007:00 is registered as cooling_device0
ACPI: ACPI0007:01 is registered as cooling_device1
initcall acpi_processor_init+0x0/0xf6 returned 0 after 9 msecs
calling acpi_container_init+0x0/0x43
initcall acpi_container_init+0x0/0x43 returned 0 after 1 msecs
calling toshiba_acpi_init+0x0/0x17d
initcall toshiba_acpi_init+0x0/0x17d returned -19 after 0 msecs
calling acpi_smb_hc_init+0x0/0x18
initcall acpi_smb_hc_init+0x0/0x18 returned 0 after 0 msecs
calling acpi_sbs_init+0x0/0x28
initcall acpi_sbs_init+0x0/0x28 returned 0 after 0 msecs
calling rand_initialize+0x0/0x2c
initcall rand_initialize+0x0/0x2c returned 0 after 0 msecs
calling tty_init+0x0/0x1c5
initcall tty_init+0x0/0x1c5 returned 0 after 25 msecs
calling pty_init+0x0/0x46e
initcall pty_init+0x0/0x46e returned 0 after 25 msecs
calling raw_init+0x0/0xca
initcall raw_init+0x0/0xca returned 0 after 0 msecs
calling r3964_init+0x0/0x3a
r3964: Philips r3964 Driver $Revision: 1.10 $
initcall r3964_init+0x0/0x3a returned 0 after 3 msecs
calling applicom_init+0x0/0x4cc
Applicom driver: $Id: ac.c,v 1.30 2000/03/22 16:03:57 dwmw2 Exp $
ac.o: No PCI boards found.
ac.o: For an ISA board you must supply memory and irq parameters.
initcall applicom_init+0x0/0x4cc returned -6 after 13 msecs
initcall applicom_init+0x0/0x4cc returned with error code -6
calling rtc_init+0x0/0xa6
Real Time Clock Driver v1.12ac
initcall rtc_init+0x0/0xa6 returned 0 after 2 msecs
calling hpet_init+0x0/0x60
initcall hpet_init+0x0/0x60 returned 0 after 0 msecs
calling nvram_init+0x0/0x80
Non-volatile memory driver v1.2
initcall nvram_init+0x0/0x80 returned 0 after 2 msecs
calling i8k_init+0x0/0x154
initcall i8k_init+0x0/0x154 returned -19 after 0 msecs
calling mod_init+0x0/0x1da
initcall mod_init+0x0/0x1da returned -19 after 0 msecs
calling ppdev_init+0x0/0xa7
ppdev: user-space parallel port driver
initcall ppdev_init+0x0/0xa7 returned 0 after 3 msecs
calling tlclk_init+0x0/0x1ae
telclk_interrup = 0xf non-mcpbl0010 hw.
initcall tlclk_init+0x0/0x1ae returned -6 after 3 msecs
initcall tlclk_init+0x0/0x1ae returned with error code -6
calling agp_init+0x0/0x26
Linux agpgart interface v0.103
initcall agp_init+0x0/0x26 returned 0 after 2 msecs
calling agp_intel_init+0x0/0x24
initcall agp_intel_init+0x0/0x24 returned 0 after 0 msecs
calling agp_via_init+0x0/0x24
initcall agp_via_init+0x0/0x24 returned 0 after 0 msecs
calling init_atmel+0x0/0x17c
initcall init_atmel+0x0/0x17c returned -19 after 0 msecs
calling drm_core_init+0x0/0xef
[drm] Initialized drm 1.1.0 20060810
initcall drm_core_init+0x0/0xef returned 0 after 3 msecs
calling tdfx_init+0x0/0xc
initcall tdfx_init+0x0/0xc returned 0 after 0 msecs
calling radeon_init+0x0/0x18
pci 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
PCI: Setting latency timer of device 0000:01:00.0 to 64
[drm] Initialized radeon 1.29.0 20080528 on minor 0
initcall radeon_init+0x0/0x18 returned 0 after 15 msecs
calling i810_init+0x0/0x18
initcall i810_init+0x0/0x18 returned 0 after 0 msecs
calling i915_init+0x0/0x18
initcall i915_init+0x0/0x18 returned 0 after 0 msecs
calling sis_init+0x0/0x18
initcall sis_init+0x0/0x18 returned 0 after 0 msecs
calling via_init+0x0/0x22
initcall via_init+0x0/0x22 returned 0 after 0 msecs
calling serial8250_init+0x0/0x122
Serial: 8250/16550 driver4 ports, IRQ sharing disabled
�serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
initcall serial8250_init+0x0/0x122 returned 0 after 251 msecs
calling jsm_init_module+0x0/0x3e
initcall jsm_init_module+0x0/0x3e returned 0 after 0 msecs
calling parport_default_proc_register+0x0/0x1b
initcall parport_default_proc_register+0x0/0x1b returned 0 after 0 msecs
calling parport_pc_init+0x0/0x338
parport_pc 00:08: reported by Plug and Play ACPI
parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP(,...)]
initcall parport_pc_init+0x0/0x338 returned 0 after 10 msecs
calling parport_ax88796_init+0x0/0xc
initcall parport_ax88796_init+0x0/0xc returned 0 after 0 msecs
calling topology_sysfs_init+0x0/0x41
initcall topology_sysfs_init+0x0/0x41 returned 0 after 0 msecs
calling loop_init+0x0/0x196
loop: module loaded
initcall loop_init+0x0/0x196 returned 0 after 2 msecs
calling cpqarray_init+0x0/0x251
Compaq SMART2 Driver (v 2.6.0)
initcall cpqarray_init+0x0/0x251 returned 0 after 2 msecs
calling cciss_init+0x0/0x28
HP CISS Driver (v 3.6.20)
initcall cciss_init+0x0/0x28 returned 0 after 2 msecs
calling ub_init+0x0/0x6a
usbcore: registered new interface driver ub
initcall ub_init+0x0/0x6a returned 0 after 3 msecs
calling pasic3_base_init+0x0/0x13
initcall pasic3_base_init+0x0/0x13 returned -19 after 0 msecs
calling e1000_init_module+0x0/0x61
e1000e: Intel(R) PRO/1000 Network Driver - 0.3.3.3-k2
e1000e: Copyright (c) 1999-2008 Intel Corporation.
e1000e 0000:04:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
PCI: Setting latency timer of device 0000:04:00.0 to 64
eth0: (PCI Express:2.5GB/s:Width x1) 00:16:76:ab:6e:84
eth0: Intel(R) PRO/1000 Network Connection
eth0: MAC: 2, PHY: 2, PBA No: ffffff-0ff
initcall e1000_init_module+0x0/0x61 returned 0 after 141 msecs
calling ixgb_init_module+0x0/0x4b
Intel(R) PRO/10GbE Network Driver - version 1.0.135-k2-NAPI
Copyright (c) 1999-2008 Intel Corporation.
initcall ixgb_init_module+0x0/0x4b returned 0 after 8 msecs
calling ipg_init_module+0x0/0x15
initcall ipg_init_module+0x0/0x15 returned 0 after 0 msecs
calling cxgb3_init_module+0x0/0x20
initcall cxgb3_init_module+0x0/0x20 returned 0 after 0 msecs
calling vcan_init_module+0x0/0x36
vcan: Virtual CAN interface driver
initcall vcan_init_module+0x0/0x36 returned 0 after 3 msecs
calling atl1_init_module+0x0/0x15
initcall atl1_init_module+0x0/0x15 returned 0 after 0 msecs
calling plip_init+0x0/0x5d
NET3 PLIP version 2.4-parport gni...@mri.co.jp
plip0: Parallel port at 0x378, using IRQ 7.
initcall plip_init+0x0/0x5d returned 0 after 8 msecs
calling gem_init+0x0/0x15
initcall gem_init+0x0/0x15 returned 0 after 0 msecs
calling vortex_init+0x0/0xa9
initcall vortex_init+0x0/0xa9 returned 0 after 0 msecs
calling ne2k_pci_init+0x0/0x15
initcall ne2k_pci_init+0x0/0x15 returned 0 after 0 msecs
calling e100_init_module+0x0/0x5c
e100: Intel(R) PRO/100 Network Driver, 3.5.23-k4-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
initcall e100_init_module+0x0/0x5c returned 0 after 8 msecs
calling tlan_probe+0x0/0xda
ThunderLAN driver v1.15
TLAN: 0 devices installed, PCI: 0 EISA: 0
initcall tlan_probe+0x0/0xda returned -19 after 5 msecs
calling epic_init+0x0/0x15
initcall epic_init+0x0/0x15 returned 0 after 0 msecs
calling sis190_init_module+0x0/0x15
initcall sis190_init_module+0x0/0x15 returned 0 after 0 msecs
calling r6040_init+0x0/0x15
initcall r6040_init+0x0/0x15 returned 0 after 0 msecs
calling yellowfin_init+0x0/0x15
initcall yellowfin_init+0x0/0x15 returned 0 after 0 msecs
calling natsemi_init_mod+0x0/0x15
initcall natsemi_init_mod+0x0/0x15 returned 0 after 0 msecs
calling ns83820_init+0x0/0x28
ns83820.c: National Semiconductor DP83820 10/100/1000 driver.
initcall ns83820_init+0x0/0x28 returned 0 after 5 msecs
calling tg3_init+0x0/0x15
initcall tg3_init+0x0/0x15 returned 0 after 0 msecs
calling bnx2_init+0x0/0x15
initcall bnx2_init+0x0/0x15 returned 0 after 0 msecs
calling bnx2x_init+0x0/0x15
initcall bnx2x_init+0x0/0x15 returned 0 after 0 msecs
calling skge_init_module+0x0/0x15
initcall skge_init_module+0x0/0x15 returned 0 after 0 msecs
calling sky2_init_module+0x0/0x49
initcall sky2_init_module+0x0/0x49 returned 0 after 0 msecs
calling rhine_init+0x0/0x39
initcall rhine_init+0x0/0x39 returned 0 after 0 msecs
calling starfire_init+0x0/0x15
initcall starfire_init+0x0/0x15 returned 0 after 0 msecs
calling marvell_init+0x0/0x5e
initcall marvell_init+0x0/0x5e returned 0 after 0 msecs
calling cicada_init+0x0/0x35
initcall cicada_init+0x0/0x35 returned 0 after 0 msecs
calling lxt_init+0x0/0x35
initcall lxt_init+0x0/0x35 returned 0 after 0 msecs
calling qs6612_init+0x0/0xc
initcall qs6612_init+0x0/0xc returned 0 after 0 msecs
calling ip175c_init+0x0/0xc
initcall ip175c_init+0x0/0xc returned 0 after 0 msecs
calling fixed_mdio_bus_init+0x0/0x9e
Fixed MDIO Bus: probed
initcall fixed_mdio_bus_init+0x0/0x9e returned 0 after 2 msecs
calling sundance_init+0x0/0x15
initcall sundance_init+0x0/0x15 returned 0 after 0 msecs
calling hamachi_init+0x0/0x15
initcall hamachi_init+0x0/0x15 returned 0 after 0 msecs
calling net_olddevs_init+0x0/0x95
initcall net_olddevs_init+0x0/0x95 returned 0 after 0 msecs
calling b44_init+0x0/0x59
initcall b44_init+0x0/0x59 returned 0 after 0 msecs
calling init_nic+0x0/0x15
initcall init_nic+0x0/0x15 returned 0 after 0 msecs
calling ql3xxx_init_module+0x0/0x15
initcall ql3xxx_init_module+0x0/0x15 returned 0 after 0 msecs
calling dummy_init_module+0x0/0xb2
initcall dummy_init_module+0x0/0xb2 returned 0 after 0 msecs
calling macvlan_init_module+0x0/0x49
initcall macvlan_init_module+0x0/0x49 returned 0 after 0 msecs
calling dfx_init+0x0/0x15
initcall dfx_init+0x0/0x15 returned 0 after 0 msecs
calling rtl8139_init_module+0x0/0x15
initcall rtl8139_init_module+0x0/0x15 returned 0 after 0 msecs
calling atp_init_module+0x0/0x93
atp.c:v1.09=ac 2002/10/01 Donald Becker <bec...@scyld.com>
initcall atp_init_module+0x0/0x93 returned -19 after 5 msecs
calling eql_init_module+0x0/0x5b
Equalizer2002: Simon Janes (si...@ncm.com) and David S. Miller (da...@redhat.com)
initcall eql_init_module+0x0/0x5b returned 0 after 7 msecs
calling tun_init+0x0/0x96
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <ma...@qualcomm.com>
initcall tun_init+0x0/0x96 returned 0 after 8 msecs
calling rio_init+0x0/0x15
initcall rio_init+0x0/0x15 returned 0 after 0 msecs
calling s2io_starter+0x0/0x15
initcall s2io_starter+0x0/0x15 returned 0 after 0 msecs
calling xl_pci_init+0x0/0x15
initcall xl_pci_init+0x0/0x15 returned 0 after 0 msecs
calling init_dlci+0x0/0x35
DLCI driver v0.35, 4 Jan 1997, mike.m...@linux.org.
initcall init_dlci+0x0/0x35 returned 0 after 4 msecs
calling usb_rtl8150_init+0x0/0x28
rtl8150: rtl8150 based usb-ethernet driver v0.6.2 (2004/08/27)
usbcore: registered new interface driver rtl8150
initcall usb_rtl8150_init+0x0/0x28 returned 0 after 9 msecs
calling cdc_init+0x0/0x15
usbcore: registered new interface driver cdc_ether
initcall cdc_init+0x0/0x15 returned 0 after 4 msecs
calling dm9601_init+0x0/0x15
usbcore: registered new interface driver dm9601
initcall dm9601_init+0x0/0x15 returned 0 after 4 msecs
calling usbnet_init+0x0/0x15
usbcore: registered new interface driver gl620a
initcall usbnet_init+0x0/0x15 returned 0 after 4 msecs
calling plusb_init+0x0/0x15
usbcore: registered new interface driver plusb
initcall plusb_init+0x0/0x15 returned 0 after 4 msecs
calling rndis_init+0x0/0x15
usbcore: registered new interface driver rndis_host
initcall rndis_init+0x0/0x15 returned 0 after 4 msecs
calling cdc_subset_init+0x0/0x15
usbcore: registered new interface driver cdc_subset
initcall cdc_subset_init+0x0/0x15 returned 0 after 4 msecs
calling mcs7830_init+0x0/0x15
usbcore: registered new interface driver MOSCHIP usb-ethernet driver
initcall mcs7830_init+0x0/0x15 returned 0 after 5 msecs
calling usbnet_init+0x0/0x2b
initcall usbnet_init+0x0/0x2b returned 0 after 0 msecs
calling ipw2100_init+0x0/0x65
ipw2100: Intel(R) PRO/Wireless 2100 Network Driver, git-1.2.2
ipw2100: Copyright(c) 2003-2006 Intel Corporation
initcall ipw2100_init+0x0/0x65 returned 0 after 9 msecs
calling ipw_init+0x0/0x7f
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kd
ipw2200: Copyright(c) 2003-2006 Intel Corporation
initcall ipw_init+0x0/0x7f returned 0 after 9 msecs
calling init_orinoco+0x0/0x1d
orinoco 0.15 (David Gibson <her...@gibson.dropbear.id.au>, Pavel Roskin <pro...@gnu.org>, et al)
initcall init_orinoco+0x0/0x1d returned 0 after 8 msecs
calling init_hermes+0x0/0x3
initcall init_hermes+0x0/0x3 returned 0 after 0 msecs
calling orinoco_plx_init+0x0/0x2f
orinoco_plx 0.15 (Pavel Roskin <pro...@gnu.org>, David Gibson <her...@gibson.dropbear.id.au>, Daniel Barlow <d...@telent.net>)
initcall orinoco_plx_init+0x0/0x2f returned 0 after 10 msecs
calling orinoco_nortel_init+0x0/0x2f
orinoco_nortel 0.15 (Tobias Hoffmann & Christoph Jungegger <dis...@traum404.de>)
initcall orinoco_nortel_init+0x0/0x2f returned 0 after 6 msecs
calling airo_init_module+0x0/0xe3
airo(): Probing for PCI adapters
airo(): Finished probing for PCI adapters
initcall airo_init_module+0x0/0xe3 returned 0 after 6 msecs
calling prism54_module_init+0x0/0x36
Loaded prism54 driver, version 1.2
initcall prism54_module_init+0x0/0x36 returned 0 after 3 msecs
calling b43_init+0x0/0x42
Broadcom 43xx driver loaded [ Features: PL, Firmware-ID: FW13 ]
initcall b43_init+0x0/0x42 returned 0 after 5 msecs
calling usb_init+0x0/0xad
zd1211rw usb_init()
usbcore: registered new interface driver zd1211rw
zd1211rw initialized
initcall usb_init+0x0/0xad returned 0 after 8 msecs
calling rndis_wlan_init+0x0/0x15
usbcore: registered new interface driver rndis_wlan
initcall rndis_wlan_init+0x0/0x15 returned 0 after 4 msecs
calling zd1201_init+0x0/0x15
usbcore: registered new interface driver zd1201
initcall zd1201_init+0x0/0x15 returned 0 after 4 msecs
calling lbs_init_module+0x0/0x38
initcall lbs_init_module+0x0/0x38 returned 0 after 0 msecs
calling if_sdio_init_module+0x0/0x2d
libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
initcall if_sdio_init_module+0x0/0x2d returned 0 after 6 msecs
calling rtl8180_init+0x0/0x15
initcall rtl8180_init+0x0/0x15 returned 0 after 0 msecs
calling rtl8187_init+0x0/0x15
usbcore: registered new interface driver rtl8187
initcall rtl8187_init+0x0/0x15 returned 0 after 4 msecs
calling iwl4965_init+0x0/0x6c
iwl4965: Intel(R) Wireless WiFi Link 4965AGN driver for Linux, 1.3.27kd
iwl4965: Copyright(c) 2003-2008 Intel Corporation
initcall iwl4965_init+0x0/0x6c returned 0 after 10 msecs
calling init_mac80211_hwsim+0x0/0x2f0
mac80211_hwsim: Initializing radio 0
phy0: Failed to select rate control algorithm
phy0: Failed to initialize rate control algorithm


mac80211_hwsim: ieee80211_register_hw failed (-2)
BUG: unable to handle kernel NULL pointer dereference at 0000000000000370

IP: [<ffffffff808be0c2>] rollback_registered+0x37/0xfb


PGD 0
Oops: 0000 [1] SMP
CPU 1

Pid: 1, comm: swapper Not tainted 2.6.26-05253-g14b395e #21308
RIP: 0010:[<ffffffff808be0c2>] [<ffffffff808be0c2>] rollback_registered+0x37/0xfb


RSP: 0018:ffff88003f83fe00 EFLAGS: 00010212

RAX: 0000000000000001 RBX: 0000000000000000 RCX: ffff88003d078ed8
RDX: ffffffff8095de3d RSI: 0000000000000046 RDI: 0000000000000000
RBP: 0000000000000000 R08: 0000000000000000 R09: ffff8800042facc0
R10: 0000000000000000 R11: ffffffff804021ae R12: 0000000000000000
R13: ffff88003d0799a0 R14: 0000000000000000 R15: 0000000000000008


FS: 0000000000000000(0000) GS:ffff88003f829160(0000) knlGS:0000000000000000
CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000000370 CR3: 0000000000201000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 1, threadinfo ffff88003f83e000, task ffff88003f824000)

Stack: 0000000000000000 ffffffff808be1b8 ffff88003d0782c0 ffffffff809621ab
ffff88003d0799a0 ffffffff805f1e5d 00000000fffffffe ffff88003d0782c0
ffff88003d0799e0 ffffffff811e83e4 ffff88003f83fea0 ffffffff80248f12
Call Trace:
[<ffffffff808be1b8>] unregister_netdevice+0x32/0x71
[<ffffffff809621ab>] ieee80211_unregister_hw+0x35/0xd4
[<ffffffff805f1e5d>] mac80211_hwsim_free+0x1d/0x6a
[<ffffffff811e83e4>] init_mac80211_hwsim+0x2df/0x2f0
[<ffffffff80248f12>] getnstimeofday+0x38/0x95
[<ffffffff80246f48>] ktime_get_ts+0x21/0x49
[<ffffffff811e8105>] init_mac80211_hwsim+0x0/0x2f0
[<ffffffff811cb8c9>] kernel_init+0x143/0x295
[<ffffffff80209b79>] __switch_to+0xb6/0x3bb
[<ffffffff8020c399>] child_rip+0xa/0x11
[<ffffffff811cb786>] kernel_init+0x0/0x295
[<ffffffff8020c38f>] child_rip+0x0/0x11


Code: 04 0f 0b eb fe e8 e3 78 00 00 85 c0 75 1d ba ce 0e 00 00 48 c7 c6 b8 e1 d8 80 48 c7 c7 3b 6c ce 80 e8 24 65 97 ff e8 0e f8 94 ff <8b> 83 70 03 00 00 85 c0 75 24 48 89 de 48 89 da 48 c7 c7 e4 e4
RIP [<ffffffff808be0c2>] rollback_registered+0x37/0xfb
RSP <ffff88003f83fe00>
CR2: 0000000000000370
---[ end trace 4b01b4c1a97dbebf ]---
Kernel panic - not syncing: Attempted to kill init!

Ingo Molnar

unread,
Jul 21, 2008, 11:10:10 AM7/21/08
to

* Ingo Molnar <mi...@elte.hu> wrote:

> > Pid: 1, comm: swapper Not tainted 2.6.26-tip-00013-g6de15c6-dirty #21290
>
> some more information: find below the same crash with vanilla
> linus/master and no extra patches. The crash site is:

a 32-bit testbox just triggered the same crash too:

calling init_mac80211_hwsim+0x0/0x310


mac80211_hwsim: Initializing radio 0
phy0: Failed to select rate control algorithm
phy0: Failed to initialize rate control algorithm
mac80211_hwsim: ieee80211_register_hw failed (-2)

BUG: unable to handle kernel NULL pointer dereference at 00000298
IP: [<c06efb98>] rollback_registered+0x28/0x120
*pdpt = 0000000000bc9001 *pde = 0000000000000000
Oops: 0000 [#1] PREEMPT SMP

and that system has no wireless so i guess it's just some unregister
inbalance kind of init/deinit buglet.

Ingo

David Miller

unread,
Jul 21, 2008, 11:10:14 AM7/21/08
to
From: Ingo Molnar <mi...@elte.hu>
Date: Mon, 21 Jul 2008 15:30:59 +0200

> -tip testing on latest -git (v2.6.26-5253-g14b395e) triggered the
> following boot crash on a Core2Duo 64-bit testsystem:
>
> ADDRCONF(NETDEV_UP): eth0: link is not ready
> eth0: Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX

Should be fixed by:

e1000: resolve tx multiqueue bug

With the recent changes to tx mutiqueue, e1000 was not calling
netif_start_queue() before calling netif_wake_queue().
This causes an oops during loading of the driver.

(Based on commit d55b53fff0c2ddb639dca04c3f5a0854f292d982
("igb/ixgbe/e1000e: resolve tx multiqueue bug").)

Signed-off-by: Ben Hutchings <bhutc...@solarflare.com>
Acked-by: Jeff Kirsher <jeffrey....@intel.com>


Signed-off-by: David S. Miller <da...@davemloft.net>

diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index f8df8bd..cf12b05 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -1472,6 +1472,8 @@ e1000_open(struct net_device *netdev)

e1000_irq_enable(adapter);

+ netif_start_queue(netdev);
+
/* fire a link status change interrupt to start the watchdog */
E1000_WRITE_REG(&adapter->hw, ICS, E1000_ICS_LSC);

David Miller

unread,
Jul 21, 2008, 11:30:14 AM7/21/08
to
From: Ingo Molnar <mi...@elte.hu>
Date: Mon, 21 Jul 2008 17:04:48 +0200

[ Adding linux-wireless CC, again, Ingo please retain it for
followups, thanks! ]

> * Ingo Molnar <mi...@elte.hu> wrote:
>
> > > Pid: 1, comm: swapper Not tainted 2.6.26-tip-00013-g6de15c6-dirty #21290
> >
> > some more information: find below the same crash with vanilla
> > linus/master and no extra patches. The crash site is:
>
> a 32-bit testbox just triggered the same crash too:
>
> calling init_mac80211_hwsim+0x0/0x310
> mac80211_hwsim: Initializing radio 0
> phy0: Failed to select rate control algorithm
> phy0: Failed to initialize rate control algorithm
> mac80211_hwsim: ieee80211_register_hw failed (-2)
> BUG: unable to handle kernel NULL pointer dereference at 00000298
> IP: [<c06efb98>] rollback_registered+0x28/0x120
> *pdpt = 0000000000bc9001 *pde = 0000000000000000
> Oops: 0000 [#1] PREEMPT SMP
>
> and that system has no wireless so i guess it's just some unregister
> inbalance kind of init/deinit buglet.
>
> Ingo
> --

> To unsubscribe from this list: send the line "unsubscribe netdev" in

David Miller

unread,
Jul 21, 2008, 11:30:20 AM7/21/08
to
From: Alexey Dobriyan <adob...@gmail.com>
Date: Mon, 21 Jul 2008 15:57:42 +0400

> On Sun, Jul 20, 2008 at 10:11:06PM -0700, David Miller wrote:
> > Alexey, please try this patch:
> >
> > atl1: Do not wake queue before queue has been started.
>
> Patch helps and networking is back with and without using netconsole,
> thank you!
>
> Also wan to say, 8139too driver survived multiqueue TX changes fine.

Thank you very much for testing, I'll push this fix.

David Miller

unread,
Jul 21, 2008, 11:40:17 AM7/21/08
to
From: Ben Hutchings <bhutc...@solarflare.com>
Date: Mon, 21 Jul 2008 11:16:27 +0100

> Alexander Beregalov wrote:
> > Hi David!
> >
> > There is another problem on sparc64 and happymeal ethernet card.
> >
> > when tring to up interface:
> >
> > kernel BUG at net/core/dev.c:1328
> [...]
>
> This is yet another driver calling netif_wake_queue() during dev_open(),
> when there is no real qdisc present. (And yes, sfc is another of those
> drivers - I will post a patch after internal review.)

Yep, what idiot wrote this driver? ;-)

Alexander please try this patch:

sunhme: Remove stop/wake TX queue calls in set-multicast-list handler.

Based upon a bug report by Alexander Beregalov and commentary
from Ben Hutchings.

These are totally unnecessary, in particular because this
driver's ->hard_start_xmit() handler takes the same driver
spinlock that the set-multicast-list handler uses.

Signed-off-by: David S. Miller <da...@davemloft.net>

diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index 1aa425b..b79d5f0 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -2377,8 +2377,6 @@ static void happy_meal_set_multicast(struct net_device *dev)

spin_lock_irq(&hp->happy_lock);

- netif_stop_queue(dev);
-
if ((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 64)) {
hme_write32(hp, bregs + BMAC_HTABLE0, 0xffff);
hme_write32(hp, bregs + BMAC_HTABLE1, 0xffff);
@@ -2410,8 +2408,6 @@ static void happy_meal_set_multicast(struct net_device *dev)
hme_write32(hp, bregs + BMAC_HTABLE3, hash_table[3]);
}

- netif_wake_queue(dev);
-
spin_unlock_irq(&hp->happy_lock);

Alexander Beregalov

unread,
Jul 21, 2008, 12:10:10 PM7/21/08
to
2008/7/21 David Miller <da...@davemloft.net>:

> From: Ben Hutchings <bhutc...@solarflare.com>
> Date: Mon, 21 Jul 2008 11:16:27 +0100
>
>> Alexander Beregalov wrote:
>> > Hi David!
>> >
>> > There is another problem on sparc64 and happymeal ethernet card.
>> >
>> > when tring to up interface:
>> >
>> > kernel BUG at net/core/dev.c:1328
>> [...]
>>
>> This is yet another driver calling netif_wake_queue() during dev_open(),
>> when there is no real qdisc present. (And yes, sfc is another of those
>> drivers - I will post a patch after internal review.)
>
> Yep, what idiot wrote this driver? ;-)
>
> Alexander please try this patch:
It works, thanks.

Linus Torvalds

unread,
Jul 21, 2008, 1:00:18 PM7/21/08
to

On Sun, 20 Jul 2008, David Miller wrote:
>
> Alexey, please try this patch:
>
> atl1: Do not wake queue before queue has been started.

David, can we please make this all a bit less fragile?

There are _millions_ of network drivers, and these changes seem to have
broken not just common drivers, but also drivers that "work" seem to now
have broken suspend/resume.

There's at least one report of suspend apparently oopsing now, and I
assume it's basically the same thing - it was bisected down to that same
37437bb2e1ae8af470dfcd5b4ff454110894ccaf commit ("pkt_sched: Schedule
qdiscs instead of netdev_queue.")

Why is it so unnecessarily fragile to begin with? Especially for stuff
that happens at bootup or suspend, doing a BUG_ON() is _particularly_
painful, because a dead machine means that you cannot get any logs or
anything else.

So wouldn't it be *much* better to do something like the appended, and at
least try to limp on, and maybe have a system that people can get logs
out of?

Linus

---
net/core/dev.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/net/core/dev.c b/net/core/dev.c
index 2eed17b..43ab4f5 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1325,7 +1325,8 @@ static void dev_queue_xmit_nit(struct sk_buff *skb, struct net_device *dev)

void __netif_schedule(struct Qdisc *q)
{
- BUG_ON(q == &noop_qdisc);
+ if (WARN_ON_ONCE(q == &noop_qdisc))
+ return;

if (!test_and_set_bit(__QDISC_STATE_SCHED, &q->state)) {
struct softnet_data *sd;
---

David Miller

unread,
Jul 21, 2008, 1:00:24 PM7/21/08
to
From: Linus Torvalds <torv...@linux-foundation.org>
Date: Mon, 21 Jul 2008 09:49:49 -0700 (PDT)

> Why is it so unnecessarily fragile to begin with? Especially for stuff
> that happens at bootup or suspend, doing a BUG_ON() is _particularly_
> painful, because a dead machine means that you cannot get any logs or
> anything else.

I agree, the BUG_ON() was the wrong way to go.

> So wouldn't it be *much* better to do something like the appended, and at
> least try to limp on, and maybe have a system that people can get logs
> out of?

Agreed, I'll apply this. Thanks.

David Miller

unread,
Jul 21, 2008, 1:30:19 PM7/21/08
to
From: Patrick McHardy <ka...@trash.net>
Date: Mon, 21 Jul 2008 14:05:57 +0200

> The idea was that NETFILTER_ADVANCED=n enables everything needed
> by mainstream distributions and hides the rest. We can certainly
> change the default for this option, but that makes NETFILTER_ADVANCED
> pretty much useless.

A new feature cannot possibly be used by existing distributions. I
think that's the main gripe.

Distributions themselves will enable the feature no matter what we
mark it's default as.

And once the feature thus becomes pervasive we can re-adjust the
default.

Linus Torvalds

unread,
Jul 21, 2008, 1:50:20 PM7/21/08
to

On Mon, 21 Jul 2008, David Miller wrote:

> From: Patrick McHardy <ka...@trash.net>
> Date: Mon, 21 Jul 2008 14:05:57 +0200
>
> > The idea was that NETFILTER_ADVANCED=n enables everything needed
> > by mainstream distributions and hides the rest. We can certainly
> > change the default for this option, but that makes NETFILTER_ADVANCED
> > pretty much useless.
>
> A new feature cannot possibly be used by existing distributions. I
> think that's the main gripe.

Well, if the feature really is going to be something that a _normal_
netfilter config needs, then it should indeed be turned on.

However, nothing in the docs imply that at all. Can you explain? Why
should IP_NF_SECURITY be on, and why should a default netfilter table
enable it? And if it should, WHY THE HELL IS IT DOCUMENTED THAT YOU SHOULD
SAY 'N'?

Patrick, see my original report:

> Grr. And I quote:


>
> Security table (IP_NF_SECURITY) [Y/n/?] (NEW) ?
>

> This option adds a `security' table to iptables, for use
> with Mandatory Access Control (MAC) policy.
>
> If unsure, say N.


That option as it stands now MAKES NO SENSE. Either you should say 'Y'
(and you should explain _why_), or you should say 'N' (as documented) and
it should damn well default to 'N' too!

Linus

David Miller

unread,
Jul 21, 2008, 2:00:27 PM7/21/08
to

Here is a collection of the fixes that poured in today,
including your change to use WARN_ON in __netif_schedule()
as well as a 64-bit counter rework in netfilter.

I'm looking at a netconsole and a wireless crash reported
by Ingo.

Please pull, thanks a lot!

The following changes since commit 14b395e35d1afdd8019d11b92e28041fad591b71:
Linus Torvalds (1):
Merge branch 'for-2.6.27' of git://linux-nfs.org/~bfields/linux

are available in the git repository at:

master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6.git master

Anton Vorontsov (2):
gianfar: do not touch net queue in adjust_link phylib callback
ucc_geth: do not touch net queue in adjust_link phylib callback

Changli Gao (1):
netfilter: nf_nat_core: eliminate useless find_appropriate_src for IP_NAT_RANGE_PROTO_RANDOM

Daniel Lezcano (1):
pkt_sched: Remove unused variable skb in dev_deactivate_queue function.

David Howells (1):
netfilter: xt_time: fix time's time_mt()'s use of do_div()

David S. Miller (4):


atl1: Do not wake queue before queue has been started.

sunhme: Remove stop/wake TX queue calls in set-multicast-list handler.

net: Improve simple_tx_hash().
Revert "pkt_sched: Make default qdisc nonshared-multiqueue safe."

Eric Leblond (1):
netfilter: nfnetlink_log: send complete hardware header

Herbert Xu (1):
netfilter: nf_nat_sip: c= is optional for session

Jan Engelhardt (1):
netfilter: xt_TCPMSS: collapse tcpmss_reverse_mtu{4,6} into one function

Krzysztof Piotr Oledzki (2):
netlink: add NLA_PUT_BE64 macro
netfilter: accounting rework: ct_extend + 64bit counters (v4)

Linus Torvalds (1):
net: In __netif_schedule() use WARN_ON instead of BUG_ON

Micah Dowty (1):
hdlcdrv: Fix CRC calculation.

Patrick McHardy (1):
netfilter: nf_conntrack_sctp: fix sparse warnings

Documentation/feature-removal-schedule.txt | 10 ++
Documentation/kernel-parameters.txt | 7 ++
drivers/net/atlx/atl1.c | 3 +-
drivers/net/gianfar.c | 1 -
drivers/net/hamradio/hdlcdrv.c | 1 +
drivers/net/sunhme.c | 4 -
drivers/net/ucc_geth.c | 1 -
include/linux/netfilter/nf_conntrack_common.h | 8 +--
include/linux/netfilter/nfnetlink_conntrack.h | 8 +-
include/linux/netfilter/nfnetlink_log.h | 3 +
include/net/netfilter/nf_conntrack.h | 6 -
include/net/netfilter/nf_conntrack_acct.h | 51 ++++++++++
include/net/netfilter/nf_conntrack_extend.h | 2 +
include/net/netlink.h | 3 +
net/core/dev.c | 37 +++++---
.../netfilter/nf_conntrack_l3proto_ipv4_compat.c | 18 +---
net/ipv4/netfilter/nf_nat_core.c | 8 +-
net/ipv4/netfilter/nf_nat_sip.c | 38 +++++---
net/netfilter/Kconfig | 9 ++
net/netfilter/Makefile | 2 +-
net/netfilter/nf_conntrack_acct.c | 104 ++++++++++++++++++++
net/netfilter/nf_conntrack_core.c | 39 +++++---
net/netfilter/nf_conntrack_netlink.c | 44 ++++-----
net/netfilter/nf_conntrack_proto_sctp.c | 8 +-
net/netfilter/nf_conntrack_standalone.c | 18 +---
net/netfilter/nfnetlink_log.c | 8 ++
net/netfilter/xt_TCPMSS.c | 42 +++------
net/netfilter/xt_connbytes.c | 8 +-
net/netfilter/xt_time.c | 2 +-
net/sched/sch_generic.c | 102 +++++++++++++++-----
30 files changed, 411 insertions(+), 184 deletions(-)
create mode 100644 include/net/netfilter/nf_conntrack_acct.h
create mode 100644 net/netfilter/nf_conntrack_acct.c

Ian Schram

unread,
Jul 21, 2008, 2:20:11 PM7/21/08
to
I was looking at this out of interest, but I'm in no way familiar with the code.

Looks to me that the error handling code in mac80211_hwsim is awkward. Which
leads to it calling ieee80211_unregister_hw even when ieee80211_register_hw failed.

The function has a for loop where it generates all simulated radios. when something
fails, the error handling will call mac80211_hwsim_free which frees all simulated radios
who's pointer isn't zero. However the information stored is insufficient to determine
whether or not the call to ieee80211_register_hw succeeded or not for a specific radio.
The included patch makes init_mac80211_hwsim clean up the current simulated radio,
and then calls into mac80211_hwsim_free to clean up all the radios that did succeed.

This however doesn't explain why the rate control registration failed.. build tested this,
but had some problems reproducing the original problem.

signed-off-by: Ian Schram <isc...@telenet.be>
--- a/mac80211_hwsim.c 2008-07-21 18:48:38.000000000 +0200
+++ b/mac80211_hwsim.c 2008-07-21 19:31:44.000000000 +0200
@@ -364,8 +364,7 @@ static void mac80211_hwsim_free(void)
struct mac80211_hwsim_data *data;
data = hwsim_radios[i]->priv;
ieee80211_unregister_hw(hwsim_radios[i]);
- if (!IS_ERR(data->dev))
- device_unregister(data->dev);
+ device_unregister(data->dev);
ieee80211_free_hw(hwsim_radios[i]);
}
}
@@ -437,7 +436,7 @@ static int __init init_mac80211_hwsim(vo
"mac80211_hwsim: device_create_drvdata "
"failed (%ld)\n", PTR_ERR(data->dev));
err = -ENOMEM;
- goto failed;
+ goto failed_drvdata;
}
data->dev->driver = &mac80211_hwsim_driver;

@@ -461,7 +460,7 @@ static int __init init_mac80211_hwsim(vo
if (err < 0) {
printk(KERN_DEBUG "mac80211_hwsim: "
"ieee80211_register_hw failed (%d)\n", err);
- goto failed;
+ goto failed_hw;
}

printk(KERN_DEBUG "%s: hwaddr %s registered\n",
@@ -479,9 +478,9 @@ static int __init init_mac80211_hwsim(vo
rtnl_lock();

err = dev_alloc_name(hwsim_mon, hwsim_mon->name);
- if (err < 0) {
+ if (err < 0)
goto failed_mon;
- }
+

err = register_netdevice(hwsim_mon);
if (err < 0)
@@ -494,7 +493,14 @@ static int __init init_mac80211_hwsim(vo
failed_mon:
rtnl_unlock();
free_netdev(hwsim_mon);
+ mac80211_hwsim_free();
+ return err;

+failed_hw:
+ device_unregister(data->dev);
+failed_drvdata:
+ ieee80211_free_hw(hw);
+ hwsim_radios[i] = 0;
failed:
mac80211_hwsim_free();
return err;

Ingo Molnar

unread,
Jul 21, 2008, 2:30:13 PM7/21/08
to

another one:

[ 24.426510] bus: 'platform': add device i8042
[ 24.430389] PM: Adding info for platform:i8042
[ 24.434799] ohci1394: fw-host0: IntEvent: 00030010
[ 24.434799] ohci1394: fw-host0: irq_handler: Bus reset requested
[ 24.434799] ohci1394: fw-host0: Cancel request received
[ 24.434799] ohci1394: fw-host0: Got RQPkt interrupt status=0x00008409
[ 24.434799] ohci1394: fw-host0: SelfID interrupt received (phyid 0, root)
[ 24.434799] ohci1394: fw-host0: SelfID packet 0x807f8c56 received
[ 24.434799] ieee1394: Including SelfID 0x568c7f80
[ 24.434799] ohci1394: fw-host0: SelfID for this node is 0x807f8c56
[ 24.434799] ohci1394: fw-host0: SelfID complete
[ 24.434799] ohci1394: fw-host0: PhyReqFilter=ffffffffffffffff
[ 24.434799] ieee1394: selfid_complete called with successful SelfID stage ... irm_id: 0xFFC0 node_id: 0xFFC0
[ 24.434799] ieee1394: NodeMgr: Processing reset for host 0
[ 24.434799] ------------[ cut here ]------------
[ 24.434799] kernel BUG at net/core/dev.c:1328!
[ 24.434799] invalid opcode: 0000 [1] SMP
[ 24.434799] CPU 0
[ 24.434799] Pid: 6, comm: events/0 Not tainted 2.6.26-tip-05790-gcad008f-dirty #13278
[ 24.434799] RIP: 0010:[<ffffffff809f5a9d>] [<ffffffff809f5a9d>] __netif_schedule+0x9d/0xb0
[ 24.434799] RSP: 0018:ffffffff812f6de8 EFLAGS: 00010046
[ 24.434799] RAX: 00000000ffffffff RBX: ffffffff81021d80 RCX: 0000000000000000
[ 24.434799] RDX: ffff88003c894930 RSI: 0000000000000000 RDI: ffffffff81021d80
[ 24.434799] RBP: ffffffff812f6df8 R08: 0000000000000000 R09: 0000000000000001
[ 24.434799] R10: 0000000000000000 R11: 0000000000000001 R12: ffff88003c884000
[ 24.434799] R13: 0000000000000086 R14: ffff88003c8959d8 R15: ffff88003c886410
[ 24.434799] FS: 0000000000000000(0000) GS:ffffffff8115af80(0000) knlGS:0000000000000000
[ 24.434799] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
[ 24.434799] CR2: 0000000000000000 CR3: 0000000000201000 CR4: 00000000000006e0
[ 24.434799] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 24.434799] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 24.434799] Process events/0 (pid: 6, threadinfo ffff88003f676000, task ffff88003f674180)
[ 24.434799] Stack: ffff88003c8958c0 ffff88003c884000 ffffffff812f6e48 ffffffff8088b66a
[ 24.434799] ffff88003c8959e0 ffff88003c895000 0000000000010000 ffffffff80fe7040
[ 24.434799] ffff88003c884000 0000000000000086 0000000000010000 ffff88003c886410
[ 24.434799] Call Trace:
[ 24.434799] <IRQ> [<ffffffff8088b66a>] ether1394_host_reset+0x10a/0x120
[ 24.434799] [<ffffffff80871a3e>] highlevel_host_reset+0x3e/0x80
[ 24.434799] [<ffffffff8086febc>] hpsb_selfid_complete+0x25c/0x330
[ 24.434799] [<ffffffff8087e22b>] ohci_irq_handler+0x82b/0xbc0
[ 24.434799] [<ffffffff80276e4b>] handle_IRQ_event+0x3b/0x70
[ 24.434799] [<ffffffff80278de9>] handle_level_irq+0xa9/0x130
[ 24.434799] [<ffffffff80210d98>] do_IRQ+0xc8/0x1b0
[ 24.434799] [<ffffffff8020ce13>] ret_from_intr+0x0/0x2e
[ 24.434799] <EOI> [<ffffffff80ba981f>] ? _spin_unlock_irqrestore+0x5f/0x70
[ 24.434799] [<ffffffff80879c16>] ? set_phy_reg+0x86/0xd0
[ 24.434799] [<ffffffff80871040>] ? delayed_reset_bus+0x0/0xf0
[ 24.434799] [<ffffffff8087a403>] ? ohci_devctl+0x153/0x240
[ 24.434799] [<ffffffff8086e7a2>] ? hpsb_reset_bus+0x22/0x30
[ 24.434799] [<ffffffff808710ec>] ? delayed_reset_bus+0xac/0xf0
[ 24.434799] [<ffffffff802562f9>] ? run_workqueue+0x179/0x220
[ 24.434799] [<ffffffff80256f04>] ? worker_thread+0xa4/0x110
[ 24.434799] [<ffffffff8025a320>] ? autoremove_wake_function+0x0/0x40
[ 24.434799] [<ffffffff80256e60>] ? worker_thread+0x0/0x110
[ 24.434799] [<ffffffff80259eed>] ? kthread+0x4d/0x80
[ 24.434799] [<ffffffff8020dca9>] ? child_rip+0xa/0x11
[ 24.434799] [<ffffffff8020cf3e>] ? restore_args+0x0/0x30
[ 24.434799] [<ffffffff80259ea0>] ? kthread+0x0/0x80
[ 24.434799] [<ffffffff8020dc9f>] ? child_rip+0x0/0x11
[ 24.434799]
[ 24.434799]
[ 24.434799] Code: 15 4c 89 e7 57 9d 66 0f 1f 44 00 00 e8 bd f1 86 ff 5b 41 5c c9 c3 e8 13 16 87 ff 4c 89 e7 57 9d 66 0f 1f 44 00 00 5b 41 5c c9 c3 <0f> 0b eb fe 66 66 66 90 66 66 66 90 66 66 66 90 66 66 90 55 48
[ 24.434799] RIP [<ffffffff809f5a9d>] __netif_schedule+0x9d/0xb0
[ 24.434799] RSP <ffffffff812f6de8>
[ 24.434799] Kernel panic - not syncing: Fatal exception in interrupt
[ 24.434799] Pid: 6, comm: events/0 Tainted: G D 2.6.26-tip-05790-gcad008f-dirty #13278

with this config:

http://redhat.com/~mingo/misc/config-Mon_Jul_21_20_05_45_CEST_2008.bad

(since this seems to have impacted ieee1394, Stefan Cc:-ed)

Should i spend time on bisecting this, or is this known already?

Linus Torvalds

unread,
Jul 21, 2008, 2:40:24 PM7/21/08
to

On Mon, 21 Jul 2008, Ingo Molnar wrote:
>
> [ 24.434799] kernel BUG at net/core/dev.c:1328!

Ok, it is now a WARN_ON_ONCE() in my tree (which I _just_ pushed out).

So it's going to cause irritating messages (once), but the machine should
hopefully work.

> Should i spend time on bisecting this, or is this known already?

It's going to bisect down to the same commit you already bisected once,
it's the networking code that changed some of the rules, so various
network drivers that didn't follow the expected rules are now unhappy.

Maybe the network drivers are few enough that it will get fixed, or maybe
the WARN_ON_ONCE() will just be removed and the rule not reinforced.

I personally suspect the latter, since it seems to happen with just about
_any_ random network driver, including the common and well-maintained ones
(ie the Gods only help us for the truly odd/random cases)

Linus

Ingo Molnar

unread,
Jul 21, 2008, 2:50:15 PM7/21/08
to

* Linus Torvalds <torv...@linux-foundation.org> wrote:

> On Mon, 21 Jul 2008, Ingo Molnar wrote:
> >
> > [ 24.434799] kernel BUG at net/core/dev.c:1328!
>
> Ok, it is now a WARN_ON_ONCE() in my tree (which I _just_ pushed out).
>
> So it's going to cause irritating messages (once), but the machine should
> hopefully work.
>
> > Should i spend time on bisecting this, or is this known already?
>
> It's going to bisect down to the same commit you already bisected
> once, it's the networking code that changed some of the rules, so
> various network drivers that didn't follow the expected rules are now
> unhappy.
>
> Maybe the network drivers are few enough that it will get fixed, or
> maybe the WARN_ON_ONCE() will just be removed and the rule not
> reinforced.

ok, have updated the testboxes to your latest push.

Btw., otherwise the big networking pull held up pretty well on a healthy
range of testboxes i have, it looked a lot scarier to me in the morning
than it turned out to be during the day. A couple of hundred tests
passed already and no indication of any runtime fragility so far. Boot
crashes/warnings can be annoying and hard to get a proper log of but
once the log is available they are normally quite easy for developers to
act upon.

Ingo

David Miller

unread,
Jul 21, 2008, 3:10:19 PM7/21/08
to
From: Linus Torvalds <torv...@linux-foundation.org>
Date: Mon, 21 Jul 2008 11:35:21 -0700 (PDT)

> Maybe the network drivers are few enough that it will get fixed, or
> maybe the WARN_ON_ONCE() will just be removed and the rule not
> reinforced.
>
> I personally suspect the latter, since it seems to happen with just
> about _any_ random network driver, including the common and
> well-maintained ones (ie the Gods only help us for the truly
> odd/random cases)

Yes, we'll see how this plays out.

Ian Schram just posted a patch for the NULL pointer derfer in
wireless Ingo reported, so we'll see if that bug will be fixed
now as well.

Ingo Molnar

unread,
Jul 21, 2008, 3:10:18 PM7/21/08
to

* Ian Schram <isc...@telenet.be> wrote:

> I was looking at this out of interest, but I'm in no way familiar with
> the code.

thanks Ian for the patch, i'll test it.

Note that it was whitespace damaged, find below a tidied up version of
the patch that i've applied to tip/out-of-tree.

Ingo

----------------------->
commit 2f77dd3a3b5c3a27298fa0a09d8703c09c633fc6
Author: Ian Schram <isc...@telenet.be>
Date: Mon Jul 21 20:18:25 2008 +0200

mac80211_hwsim.c: fix: BUG: unable to handle kernel NULL pointer dereference at 0000000000000370



I was looking at this out of interest, but I'm in no way familiar with
the code.

Looks to me that the error handling code in mac80211_hwsim is awkward.
Which leads to it calling ieee80211_unregister_hw even when
ieee80211_register_hw failed.

The function has a for loop where it generates all simulated radios.
when something fails, the error handling will call mac80211_hwsim_free
which frees all simulated radios who's pointer isn't zero. However the
information stored is insufficient to determine whether or not the call
to ieee80211_register_hw succeeded or not for a specific radio. The
included patch makes init_mac80211_hwsim clean up the current simulated
radio, and then calls into mac80211_hwsim_free to clean up all the
radios that did succeed.

This however doesn't explain why the rate control registration failed..
build tested this, but had some problems reproducing the original
problem.

Signed-off-by: Ian Schram <isc...@telenet.be>
Signed-off-by: Ingo Molnar <mi...@elte.hu>
---
drivers/net/wireless/mac80211_hwsim.c | 18 ++++++++++++------
1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index 913dc9f..5816230 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c


@@ -364,8 +364,7 @@ static void mac80211_hwsim_free(void)
struct mac80211_hwsim_data *data;
data = hwsim_radios[i]->priv;
ieee80211_unregister_hw(hwsim_radios[i]);
- if (!IS_ERR(data->dev))
- device_unregister(data->dev);
+ device_unregister(data->dev);
ieee80211_free_hw(hwsim_radios[i]);
}
}

@@ -437,7 +436,7 @@ static int __init init_mac80211_hwsim(void)


"mac80211_hwsim: device_create_drvdata "
"failed (%ld)\n", PTR_ERR(data->dev));
err = -ENOMEM;
- goto failed;
+ goto failed_drvdata;
}
data->dev->driver = &mac80211_hwsim_driver;

@@ -461,7 +460,7 @@ static int __init init_mac80211_hwsim(void)


if (err < 0) {
printk(KERN_DEBUG "mac80211_hwsim: "
"ieee80211_register_hw failed (%d)\n", err);
- goto failed;
+ goto failed_hw;
}

printk(KERN_DEBUG "%s: hwaddr %s registered\n",

@@ -479,9 +478,9 @@ static int __init init_mac80211_hwsim(void)


rtnl_lock();

err = dev_alloc_name(hwsim_mon, hwsim_mon->name);
- if (err < 0) {
+ if (err < 0)
goto failed_mon;
- }
+

err = register_netdevice(hwsim_mon);
if (err < 0)

@@ -494,7 +493,14 @@ static int __init init_mac80211_hwsim(void)

Larry Finger

unread,
Jul 21, 2008, 3:20:20 PM7/21/08
to
Ingo Molnar wrote:
> * Ian Schram <isc...@telenet.be> wrote:
>
>> I was looking at this out of interest, but I'm in no way familiar with
>> the code.
>
> thanks Ian for the patch, i'll test it.
>
> Note that it was whitespace damaged, find below a tidied up version of
> the patch that i've applied to tip/out-of-tree.
>
> Ingo

This patch may be needed to fix error handling in the hw_sim code, but I get the
crash even with that code disabled. I'm currently bisecting to find the culprit.

Larry

Stefan Richter

unread,
Jul 21, 2008, 3:30:18 PM7/21/08
to
David Miller wrote:
> From: Linus Torvalds <torv...@linux-foundation.org>
> Date: Mon, 21 Jul 2008 11:35:21 -0700 (PDT)
>
>> Maybe the network drivers are few enough that it will get fixed, or
>> maybe the WARN_ON_ONCE() will just be removed and the rule not
>> reinforced.
>>
>> I personally suspect the latter, since it seems to happen with just
>> about _any_ random network driver, including the common and
>> well-maintained ones (ie the Gods only help us for the truly
>> odd/random cases)
>
> Yes, we'll see how this plays out.
>
> Ian Schram just posted a patch for the NULL pointer derfer in
> wireless Ingo reported, so we'll see if that bug will be fixed
> now as well.

In the meantime: Is there perhaps something obviously wrong with
drivers/ieee1394/eth1394.c's netdevice initialization? We do it in
ether1394_add_host(), and shortly thereafter the crashing
ether1394_host_reset() is called. So we have essentially

(add host)
dev = alloc_netdev(...);
initialize various members in dev...
register_netdev(dev);

(host reset)
netif_stop_queue(dev);
discard some stale 1394 stuff if there were some...
netif_wake_queue(dev); <-- crashes in __netif_schedule(dev);

--
Stefan Richter
-=====-==--- -=== =-=-=
http://arcgraph.de/sr/

Ingo Molnar

unread,
Jul 21, 2008, 3:40:16 PM7/21/08
to

* Larry Finger <Larry....@lwfinger.net> wrote:

> Ingo Molnar wrote:
>> * Ian Schram <isc...@telenet.be> wrote:
>>
>>> I was looking at this out of interest, but I'm in no way familiar
>>> with the code.
>>
>> thanks Ian for the patch, i'll test it.
>>
>> Note that it was whitespace damaged, find below a tidied up version of
>> the patch that i've applied to tip/out-of-tree.
>>
>> Ingo
>
> This patch may be needed to fix error handling in the hw_sim code, but
> I get the crash even with that code disabled. I'm currently bisecting
> to find the culprit.

ok. I just reactivated CONFIG_MAC80211_HWSIM, applied Ian's fix and the
crash went away:

calling iwl4965_init+0x0/0x6c
iwl4965: Intel(R) Wireless WiFi Link 4965AGN driver for Linux, 1.3.27kd
iwl4965: Copyright(c) 2003-2008 Intel Corporation
initcall iwl4965_init+0x0/0x6c returned 0 after 10 msecs

calling init_mac80211_hwsim+0x0/0x31c
mac80211_hwsim: Initializing radio 0
PM: Adding info for No Bus:hwsim0
PM: Adding info for No Bus:phy0
PM: Adding info for No Bus:wmaster0


phy0: Failed to select rate control algorithm
phy0: Failed to initialize rate control algorithm

PM: Removing info for No Bus:wmaster0


PM: Removing info for No Bus:phy0
mac80211_hwsim: ieee80211_register_hw failed (-2)

PM: Removing info for No Bus:hwsim0
initcall init_mac80211_hwsim+0x0/0x31c returned -2 after 58 msecs
initcall init_mac80211_hwsim+0x0/0x31c returned with error code -2
calling dmfe_init_module+0x0/0xea
dmfe: Davicom DM9xxx net driver, version 1.36.4 (2002-01-17)
initcall dmfe_init_module+0x0/0xea returned 0 after 5 msecs

So at least as far as the init_mac80211_hwsim() deinit crash goes:

Tested-by: Ingo Molnar <mi...@elte.hu>

Ingo

Ingo Molnar

unread,
Jul 21, 2008, 3:40:20 PM7/21/08
to

* Ingo Molnar <mi...@elte.hu> wrote:

> ok, have updated the testboxes to your latest push.

and indeed i got the new warning:

[ 24.460170] ieee1394: selfid_complete called with successful SelfID stage ... irm_id: 0xFFC0 node_id: 0xFFC0
[ 24.460170] ieee1394: NodeMgr: Processing reset for host 0
[ 24.460170] ------------[ cut here ]------------
[ 24.460170] WARNING: at net/core/dev.c:1330 __netif_schedule+0xc6/0xe0()
[ 24.460170] Pid: 6, comm: events/0 Not tainted 2.6.26-tip-05989-g5172ce5-dirty #13279
[ 24.460170]
[ 24.460170] Call Trace:
[ 24.460170] <IRQ> [<ffffffff8024461a>] warn_on_slowpath+0x5a/0x90
[ 24.460170] [<ffffffff80264c4d>] ? trace_hardirqs_off+0xd/0x10
[ 24.460170] [<ffffffff80ba98ca>] ? _spin_unlock_irqrestore+0x4a/0x70
[ 24.460170] [<ffffffff8088b501>] ? ether1394_reset_priv+0x121/0x140
[ 24.460170] [<ffffffff809f5db6>] __netif_schedule+0xc6/0xe0
[ 24.460170] [<ffffffff8088b62a>] ether1394_host_reset+0x10a/0x120
[ 24.460170] [<ffffffff808719fe>] highlevel_host_reset+0x3e/0x80
[ 24.460170] [<ffffffff8086fe7c>] hpsb_selfid_complete+0x25c/0x330
[ 24.460170] [<ffffffff8087e1eb>] ohci_irq_handler+0x82b/0xbc0
[ 24.460170] [<ffffffff80276e4b>] handle_IRQ_event+0x3b/0x70
[ 24.460170] [<ffffffff80278de9>] handle_level_irq+0xa9/0x130
[ 24.460170] [<ffffffff80210d98>] do_IRQ+0xc8/0x1b0
[ 24.460170] [<ffffffff8020ce13>] ret_from_intr+0x0/0x2e
[ 24.460170] <EOI> [<ffffffff80ba98df>] ? _spin_unlock_irqrestore+0x5f/0x70
[ 24.460170] [<ffffffff80879bd6>] ? set_phy_reg+0x86/0xd0
[ 24.460170] [<ffffffff80871000>] ? delayed_reset_bus+0x0/0xf0
[ 24.460170] [<ffffffff8087a3c3>] ? ohci_devctl+0x153/0x240
[ 24.460170] [<ffffffff8086e762>] ? hpsb_reset_bus+0x22/0x30
[ 24.460170] [<ffffffff808710ac>] ? delayed_reset_bus+0xac/0xf0
[ 24.460170] [<ffffffff802562f9>] ? run_workqueue+0x179/0x220
[ 24.460170] [<ffffffff80256f04>] ? worker_thread+0xa4/0x110
[ 24.460170] [<ffffffff8025a320>] ? autoremove_wake_function+0x0/0x40
[ 24.460170] [<ffffffff80256e60>] ? worker_thread+0x0/0x110
[ 24.460170] [<ffffffff80259eed>] ? kthread+0x4d/0x80
[ 24.460170] [<ffffffff8020dca9>] ? child_rip+0xa/0x11
[ 24.460170] [<ffffffff8020cf3e>] ? restore_args+0x0/0x30
[ 24.460170] [<ffffffff80259ea0>] ? kthread+0x0/0x80
[ 24.460170] [<ffffffff8020dc9f>] ? child_rip+0x0/0x11
[ 24.460170]
[ 24.460170] ---[ end trace 7b0ee76e032c9e07 ]---
[ 24.717334] ohci1394: fw-host0: Single packet rcv'd
[ 24.717334] ohci1394: fw-host0: Got phy packet ctx=0 ... discarded
[ 24.728466] Registering platform device 'i8042'. Parent at platform
[ 24.735133] device: 'i8042': device_add
[ 24.741452] bus: 'platform': add device i8042
[ 24.745331] PM: Adding info for platform:i8042

but otherwise the box has booted up just fine. (and even ohci1394 seemed
to continue fine after that warning)

Larry Finger

unread,
Jul 21, 2008, 3:50:12 PM7/21/08
to

Yes, I'm chasing a distinct bug. The header for mine is

Jul 21 12:19:37 larrylap kernel: kernel BUG at net/core/dev.c:1328!
Jul 21 12:19:37 larrylap kernel: invalid opcode: 0000 [1] SMP
Jul 21 12:19:37 larrylap kernel: CPU 0
Jul 21 12:19:37 larrylap kernel: Modules linked in: af_packet rfkill_input nfs
lockd nfs_acl sunrpc cpufreq_conservative cpu
freq_userspace cpufreq_powersave powernow_k8 fuse loop dm_mod arc4 ecb
crypto_blkcipher b43 firmware_class rfkill mac80211 c
fg80211 snd_hda_intel snd_pcm snd_timer led_class snd k8temp input_polldev
sr_mod soundcore button battery hwmon cdrom force
deth ac serio_raw ssb snd_page_alloc sg ehci_hcd sd_mod ohci_hcd usbcore edd fan
thermal processor ext3 mbcache jbd pata_amd
ahci libata scsi_mod dock
Jul 21 12:19:37 larrylap kernel: Pid: 2057, comm: b43 Not tainted
2.6.26-Linus-git-05253-g14b395e #1
Jul 21 12:19:37 larrylap kernel: RIP: 0010:[<ffffffff8039ec4d>]
[<ffffffff8039ec4d>] __netif_schedule+0x12/0x75
Jul 21 12:19:37 larrylap kernel: RSP: 0000:ffff8800b9ae1de0 EFLAGS: 00010246

With an invalid opcode, mine is likely due to stack corruption.

Larry

Ingo Molnar

unread,
Jul 21, 2008, 3:50:15 PM7/21/08
to

* David Miller <da...@davemloft.net> wrote:

> From: Linus Torvalds <torv...@linux-foundation.org>
> Date: Mon, 21 Jul 2008 11:35:21 -0700 (PDT)
>
> > Maybe the network drivers are few enough that it will get fixed, or
> > maybe the WARN_ON_ONCE() will just be removed and the rule not
> > reinforced.
> >
> > I personally suspect the latter, since it seems to happen with just
> > about _any_ random network driver, including the common and
> > well-maintained ones (ie the Gods only help us for the truly
> > odd/random cases)
>
> Yes, we'll see how this plays out.
>
> Ian Schram just posted a patch for the NULL pointer derfer in wireless
> Ingo reported, so we'll see if that bug will be fixed now as well.

Yes, the fix from Ian below solved the CONFIG_MAC80211_HWSIM=y crash i
was getting. I have no other pending issues other than a few low-prio
ne2000 build failures.

Thanks guys,

Ingo

--------->
commit 2f77dd3a3b5c3a27298fa0a09d8703c09c633fc6
Author: Ian Schram <isc...@telenet.be>
Date: Mon Jul 21 20:18:25 2008 +0200

mac80211_hwsim.c: fix: BUG: unable to handle kernel NULL pointer dereference at 0000000000000370

I was looking at this out of interest, but I'm in no way familiar with
the code.

Linus Torvalds

unread,
Jul 21, 2008, 3:50:16 PM7/21/08
to

On Mon, 21 Jul 2008, Larry Finger wrote:
>
> Yes, I'm chasing a distinct bug. The header for mine is
>
> Jul 21 12:19:37 larrylap kernel: kernel BUG at net/core/dev.c:1328!

Ok, that one is fixed now in my tree. Or at least it's turned into a
warning, so the machine should work.

> With an invalid opcode, mine is likely due to stack corruption.

No, invalid opcode is because we use the "ud2" instruction for BUG(),
which causes an invalid op exception. So any BUG[_ON]() will always cause
that on x86.

Linus

David Miller

unread,
Jul 21, 2008, 4:20:19 PM7/21/08
to
From: Linus Torvalds <torv...@linux-foundation.org>
Date: Mon, 21 Jul 2008 12:47:58 -0700 (PDT)

> On Mon, 21 Jul 2008, Larry Finger wrote:
> > With an invalid opcode, mine is likely due to stack corruption.
>
> No, invalid opcode is because we use the "ud2" instruction for BUG(),
> which causes an invalid op exception. So any BUG[_ON]() will always cause
> that on x86.

Is there really no more backtrace from that crash message?
It would tell me what driver it's in.

There is some "comm: b43" in the log so I'll check that one.

David Miller

unread,
Jul 21, 2008, 4:20:24 PM7/21/08
to
From: Stefan Richter <ste...@s5r6.in-berlin.de>
Date: Mon, 21 Jul 2008 21:20:20 +0200

> In the meantime: Is there perhaps something obviously wrong with
> drivers/ieee1394/eth1394.c's netdevice initialization? We do it in
> ether1394_add_host(), and shortly thereafter the crashing
> ether1394_host_reset() is called. So we have essentially
>
> (add host)
> dev = alloc_netdev(...);
> initialize various members in dev...
> register_netdev(dev);
>
> (host reset)
> netif_stop_queue(dev);
> discard some stale 1394 stuff if there were some...
> netif_wake_queue(dev); <-- crashes in __netif_schedule(dev);

You should only do a netif_stop_queue() in your device
initialization, at the very end of ->open() processing
when you've fully committed to returning success.

You should not, in particular, be doing a netif_wake_queue()
before you've even done a netif_start_queue().

Many of these drivers are using netif_{stop,wake}_queue()
to stop packet flow, in particular when link state changes,
and netif_carrier_{on,off}() already does all of that for
you.

Really, anything outside of:

1) netif_start_queue() in ->open()
2) netif_stop_queue() in ->stop()
3) netif_{stop,wake}_queue() in the TX packet handling path

is superfluous.

Larry Finger

unread,
Jul 21, 2008, 4:30:21 PM7/21/08
to
Linus Torvalds wrote:
>
> On Mon, 21 Jul 2008, Larry Finger wrote:
>> Yes, I'm chasing a distinct bug. The header for mine is
>>
>> Jul 21 12:19:37 larrylap kernel: kernel BUG at net/core/dev.c:1328!
>
> Ok, that one is fixed now in my tree. Or at least it's turned into a
> warning, so the machine should work.
>
>> With an invalid opcode, mine is likely due to stack corruption.
>
> No, invalid opcode is because we use the "ud2" instruction for BUG(),
> which causes an invalid op exception. So any BUG[_ON]() will always cause
> that on x86.

Thanks for the explanation.

With your latest tree, I do get the warning. Unfortunately, it still breaks my
wireless and I still need to do the bisection. That is complicated by getting a
kernel that won't build after the first try. I think I now have a workaround.

Larry

David Miller

unread,
Jul 21, 2008, 4:30:27 PM7/21/08
to
From: Ingo Molnar <mi...@elte.hu>
Date: Mon, 21 Jul 2008 21:44:14 +0200

>
> * David Miller <da...@davemloft.net> wrote:
>
> > From: Linus Torvalds <torv...@linux-foundation.org>
> > Date: Mon, 21 Jul 2008 11:35:21 -0700 (PDT)
> >
> > > Maybe the network drivers are few enough that it will get fixed, or
> > > maybe the WARN_ON_ONCE() will just be removed and the rule not
> > > reinforced.
> > >
> > > I personally suspect the latter, since it seems to happen with just
> > > about _any_ random network driver, including the common and
> > > well-maintained ones (ie the Gods only help us for the truly
> > > odd/random cases)
> >
> > Yes, we'll see how this plays out.
> >
> > Ian Schram just posted a patch for the NULL pointer derfer in wireless
> > Ingo reported, so we'll see if that bug will be fixed now as well.
>
> Yes, the fix from Ian below solved the CONFIG_MAC80211_HWSIM=y crash i
> was getting. I have no other pending issues other than a few low-prio
> ne2000 build failures.
>
> Thanks guys,

Thanks everyone, applied.

David Miller

unread,
Jul 21, 2008, 4:30:31 PM7/21/08
to
From: Larry Finger <Larry....@lwfinger.net>
Date: Mon, 21 Jul 2008 14:43:34 -0500

> Jul 21 12:19:37 larrylap kernel: kernel BUG at net/core/dev.c:1328!
> Jul 21 12:19:37 larrylap kernel: invalid opcode: 0000 [1] SMP
> Jul 21 12:19:37 larrylap kernel: CPU 0
> Jul 21 12:19:37 larrylap kernel: Modules linked in: af_packet rfkill_input nfs
> lockd nfs_acl sunrpc cpufreq_conservative cpu
> freq_userspace cpufreq_powersave powernow_k8 fuse loop dm_mod arc4 ecb
> crypto_blkcipher b43 firmware_class rfkill mac80211 c
> fg80211 snd_hda_intel snd_pcm snd_timer led_class snd k8temp input_polldev
> sr_mod soundcore button battery hwmon cdrom force
> deth ac serio_raw ssb snd_page_alloc sg ehci_hcd sd_mod ohci_hcd usbcore edd fan
> thermal processor ext3 mbcache jbd pata_amd
> ahci libata scsi_mod dock
> Jul 21 12:19:37 larrylap kernel: Pid: 2057, comm: b43 Not tainted
> 2.6.26-Linus-git-05253-g14b395e #1
> Jul 21 12:19:37 larrylap kernel: RIP: 0010:[<ffffffff8039ec4d>]
> [<ffffffff8039ec4d>] __netif_schedule+0x12/0x75
> Jul 21 12:19:37 larrylap kernel: RSP: 0000:ffff8800b9ae1de0 EFLAGS: 00010246
>
> With an invalid opcode, mine is likely due to stack corruption.

No further backtrace? That will tell us what driver is causing
this.

Larry Finger

unread,
Jul 21, 2008, 4:40:12 PM7/21/08
to
David Miller wrote:
>
> No further backtrace? That will tell us what driver is causing
> this.

Yes, I have a full backtrace.

It starts with possible recursive locking in NetworkManager, and goes directly
into the Warning - this came from a later pull of Linus's tree.

Jul 21 15:11:07 larrylap kernel: [ INFO: possible recursive locking detected ]
Jul 21 15:11:07 larrylap kernel: 2.6.26-Linus-git-05614-ge89970a #8
Jul 21 15:11:07 larrylap kernel: ---------------------------------------------
Jul 21 15:11:07 larrylap kernel: NetworkManager/2661 is trying to acquire lock:
Jul 21 15:11:07 larrylap kernel: (&dev->addr_list_lock){-...}, at:
[<ffffffff803a2961>] dev_mc_sync+0x19/0x57
Jul 21 15:11:07 larrylap kernel:
Jul 21 15:11:07 larrylap kernel: but task is already holding lock:
Jul 21 15:11:07 larrylap kernel: (&dev->addr_list_lock){-...}, at:
[<ffffffff8039e7c5>] dev_set_rx_mode+0x19/0x2e
Jul 21 15:11:07 larrylap kernel:
Jul 21 15:11:07 larrylap kernel: other info that might help us debug this:
Jul 21 15:11:07 larrylap kernel: 2 locks held by NetworkManager/2661:
Jul 21 15:11:07 larrylap kernel: #0: (rtnl_mutex){--..}, at:
[<ffffffff803a8318>] rtnetlink_rcv+0x12/0x27
Jul 21 15:11:07 larrylap kernel: #1: (&dev->addr_list_lock){-...}, at:
[<ffffffff8039e7c5>] dev_set_rx_mode+0x19/0x2e
Jul 21 15:11:07 larrylap kernel:
Jul 21 15:11:07 larrylap kernel: stack backtrace:
Jul 21 15:11:07 larrylap kernel: Pid: 2661, comm: NetworkManager Not tainted
2.6.26-Linus-git-05614-ge89970a #8
Jul 21 15:11:07 larrylap kernel:
Jul 21 15:11:07 larrylap kernel: Call Trace:
Jul 21 15:11:07 larrylap kernel: [<ffffffff80251b02>] __lock_acquire+0xb7b/0xecc
Jul 21 15:11:07 larrylap kernel: [<ffffffff80251ea4>] lock_acquire+0x51/0x6a
Jul 21 15:11:07 larrylap kernel: [<ffffffff803a2961>] dev_mc_sync+0x19/0x57
Jul 21 15:11:07 larrylap kernel: [<ffffffff80408f9c>] _spin_lock_bh+0x23/0x2c
Jul 21 15:11:07 larrylap kernel: [<ffffffff803a2961>] dev_mc_sync+0x19/0x57
Jul 21 15:11:07 larrylap kernel: [<ffffffff8039e7cd>] dev_set_rx_mode+0x21/0x2e
Jul 21 15:11:07 larrylap kernel: [<ffffffff803a036c>] dev_open+0x8e/0xb0
Jul 21 15:11:07 larrylap kernel: [<ffffffff8039fd13>] dev_change_flags+0xa6/0x164
Jul 21 15:11:07 larrylap kernel: [<ffffffff803a7421>] do_setlink+0x286/0x349
Jul 21 15:11:07 larrylap kernel: [<ffffffff803a832d>] rtnetlink_rcv_msg+0x0/0x1ec
Jul 21 15:11:07 larrylap syslog-ng[2488]: last message repeated 2 times
Jul 21 15:11:07 larrylap kernel: [<ffffffff803a766e>] rtnl_setlink+0x10b/0x10d
Jul 21 15:11:07 larrylap kernel: [<ffffffff803a832d>] rtnetlink_rcv_msg+0x0/0x1ec
Jul 21 15:11:07 larrylap kernel: [<ffffffff803b1bcf>] netlink_rcv_skb+0x34/0x7d
Jul 21 15:11:07 larrylap kernel: [<ffffffff803a8327>] rtnetlink_rcv+0x21/0x27
Jul 21 15:11:07 larrylap kernel: [<ffffffff803b16cf>] netlink_unicast+0x1f0/0x261
Jul 21 15:11:07 larrylap kernel: [<ffffffff8039a448>] __alloc_skb+0x66/0x12a
Jul 21 15:11:07 larrylap kernel: [<ffffffff803b19a8>] netlink_sendmsg+0x268/0x27b
Jul 21 15:11:07 larrylap rpc.idmapd[2783]: main:
fcntl(/var/lib/nfs/rpc_pipefs/nfs): Invalid argument
Jul 21 15:11:07 larrylap kernel: [<ffffffff80393b8d>] sock_sendmsg+0xcb/0xe3
Jul 21 15:11:07 larrylap kernel: [<ffffffff80246aab>]
autoremove_wake_function+0x0/0x2e
Jul 21 15:11:07 larrylap kernel: [<ffffffff8039b194>] verify_iovec+0x46/0x82
Jul 21 15:11:07 larrylap kernel: [<ffffffff80393dbc>] sys_sendmsg+0x217/0x28a
Jul 21 15:11:07 larrylap kernel: [<ffffffff80393516>] sockfd_lookup_light+0x1a/0x52
Jul 21 15:11:07 larrylap kernel: [<ffffffff80250990>]
trace_hardirqs_on_caller+0xef/0x113
Jul 21 15:11:07 larrylap kernel: [<ffffffff80408b14>]
trace_hardirqs_on_thunk+0x3a/0x3f
Jul 21 15:11:07 larrylap kernel: [<ffffffff8020be9b>]
system_call_after_swapgs+0x7b/0x80
Jul 21 15:11:07 larrylap kernel:
Jul 21 15:11:07 larrylap kernel: NET: Registered protocol family 17
Jul 21 15:11:08 larrylap kernel: ------------[ cut here ]------------
Jul 21 15:11:08 larrylap kernel: WARNING: at net/core/dev.c:1330
__netif_schedule+0x2c/0x98()
Jul 21 15:11:08 larrylap kernel: Modules linked in: snd_seq_device af_packet nfs
lockd nfs_acl sunrpc rfkill_input cpufreq_conservative cpufreq_userspace

cpufreq_powersave powernow_k8 fuse loop dm_mod arc4 ecb crypto_blkcipher b43

firmware_class rfkill snd_hda_intel mac80211 cfg80211 snd_pcm snd_timer
led_class snd soundcore input_polldev ac k8temp button snd_page_alloc battery
sr_mod forcedeth cdrom serio_raw hwmon ssb sg ehci_hcd sd_mod ohci_hcd usbcore

edd fan thermal processor ext3 mbcache jbd pata_amd ahci libata scsi_mod dock

Jul 21 15:11:08 larrylap kernel: Pid: 2035, comm: b43 Not tainted
2.6.26-Linus-git-05614-ge89970a #8
Jul 21 15:11:08 larrylap kernel:
Jul 21 15:11:08 larrylap kernel: Call Trace:
Jul 21 15:11:08 larrylap kernel: [<ffffffff80233f6d>] warn_on_slowpath+0x51/0x8c
Jul 21 15:11:08 larrylap kernel: [<ffffffff8039d7f3>] __netif_schedule+0x2c/0x98
Jul 21 15:11:08 larrylap kernel: [<ffffffffa018b44d>]
ieee80211_scan_completed+0x25b/0x2e1 [mac80211]
Jul 21 15:11:08 larrylap kernel: [<ffffffffa018b6ce>]
ieee80211_sta_scan_work+0x0/0x1b8 [mac80211]
Jul 21 15:11:08 larrylap kernel: [<ffffffff8024325e>] run_workqueue+0xf0/0x1f2
Jul 21 15:11:08 larrylap kernel: [<ffffffff8024343b>] worker_thread+0xdb/0xea
Jul 21 15:11:08 larrylap kernel: [<ffffffff80246aab>]
autoremove_wake_function+0x0/0x2e
Jul 21 15:11:08 larrylap avahi-daemon[2877]: Found user 'avahi' (UID 102) and
group 'avahi' (GID 104).
Jul 21 15:11:09 larrylap kernel: [<ffffffff80243360>] worker_thread+0x0/0xea
Jul 21 15:11:09 larrylap kernel: [<ffffffff8024678b>] kthread+0x47/0x73
Jul 21 15:11:09 larrylap avahi-daemon[2877]: Successfully dropped root privileges.
Jul 21 15:11:09 larrylap kernel: [<ffffffff80408b14>]
trace_hardirqs_on_thunk+0x3a/0x3f
Jul 21 15:11:09 larrylap avahi-daemon[2877]: avahi-daemon 0.6.22 starting up.
Jul 21 15:11:09 larrylap kernel: [<ffffffff8020cea9>] child_rip+0xa/0x11
Jul 21 15:11:09 larrylap kernel: [<ffffffff8020c4df>] restore_args+0x0/0x30
Jul 21 15:11:09 larrylap kernel: [<ffffffff8024671f>] kthreadd+0x188/0x1ad
Jul 21 15:11:09 larrylap kernel: [<ffffffff80246744>] kthread+0x0/0x73
Jul 21 15:11:09 larrylap kernel: [<ffffffff8020ce9f>] child_rip+0x0/0x11
Jul 21 15:11:09 larrylap kernel:
Jul 21 15:11:09 larrylap kernel: ---[ end trace 030d0589d3c6c7f5 ]---


Larry

Patrick McHardy

unread,
Jul 21, 2008, 4:40:19 PM7/21/08
to
Linus Torvalds wrote:
>> From: Patrick McHardy <ka...@trash.net>
>> Date: Mon, 21 Jul 2008 14:05:57 +0200
>>
>>> The idea was that NETFILTER_ADVANCED=n enables everything needed
>>> by mainstream distributions and hides the rest. We can certainly
>>> change the default for this option, but that makes NETFILTER_ADVANCED
>>> pretty much useless.
>> A new feature cannot possibly be used by existing distributions. I
>> think that's the main gripe.
>
>
> Well, if the feature really is going to be something that a _normal_
> netfilter config needs, then it should indeed be turned on.

As I said, I don't know whether its needed, but judging by James'
response, its going to be needed for a regular FC installation.

Its not needed today of course, so the attached patch changes it
to depend on NETFILTER_ADVANCED and removes the default.

> However, nothing in the docs imply that at all. Can you explain? Why
> should IP_NF_SECURITY be on, and why should a default netfilter table
> enable it? And if it should, WHY THE HELL IS IT DOCUMENTED THAT YOU SHOULD
> SAY 'N'?

I think I'll just change all the help texts for options having
different defaults with NETFILTER_ADVANCED=n to say "If unsure,
choose the default" to remove the contradictions we'd otherwise
always have.

David Miller

unread,
Jul 21, 2008, 4:50:15 PM7/21/08
to
From: Larry Finger <Larry....@lwfinger.net>
Date: Mon, 21 Jul 2008 15:38:47 -0500

> David Miller wrote:
> >
> > No further backtrace? That will tell us what driver is causing
> > this.
>
> Yes, I have a full backtrace.
>
> It starts with possible recursive locking in NetworkManager, and goes directly
> into the Warning - this came from a later pull of Linus's tree.

That helps a lot, I'm looking at this now.

Thanks.

Patrick McHardy

unread,
Jul 21, 2008, 5:00:21 PM7/21/08
to
David Miller wrote:
> From: Larry Finger <Larry....@lwfinger.net>
> Date: Mon, 21 Jul 2008 15:38:47 -0500
>
>> David Miller wrote:
>>> No further backtrace? That will tell us what driver is causing
>>> this.
>> Yes, I have a full backtrace.
>>
>> It starts with possible recursive locking in NetworkManager, and goes directly
>> into the Warning - this came from a later pull of Linus's tree.
>
> That helps a lot, I'm looking at this now.

I'm guessing this needs similar lockdep class initializations
to _xmit_lock since it essentially has the same nesting rules.

Patrick McHardy

unread,
Jul 21, 2008, 5:10:11 PM7/21/08
to
David Miller wrote:
> From: Patrick McHardy <ka...@trash.net>
> Date: Mon, 21 Jul 2008 22:51:53 +0200

>
>> David Miller wrote:
>>> From: Larry Finger <Larry....@lwfinger.net>
>>> Date: Mon, 21 Jul 2008 15:38:47 -0500
>>>
>>>> David Miller wrote:
>>>>> No further backtrace? That will tell us what driver is causing
>>>>> this.
>>>> Yes, I have a full backtrace.
>>>>
>>>> It starts with possible recursive locking in NetworkManager, and goes directly
>>>> into the Warning - this came from a later pull of Linus's tree.
>>> That helps a lot, I'm looking at this now.
>> I'm guessing this needs similar lockdep class initializations
>> to _xmit_lock since it essentially has the same nesting rules.
>
> Yes, I figured that out just now :-)
>
> Maybe something like the following should do it?


It looks correct in any case. I'm not sure whether it fixes
this lockdep warning though, according to the backtrace and
module list its b43 and dev_mc_sync in net/mac80211/main.c
that are causing the error, which don't seem to be included
in your patch. I'm unable to find where it previously
initialized the xmit_lock lockdep class though, so I must
be missing something :)

David Miller

unread,
Jul 21, 2008, 5:10:06 PM7/21/08
to
From: Patrick McHardy <ka...@trash.net>
Date: Mon, 21 Jul 2008 22:51:53 +0200

> David Miller wrote:
> > From: Larry Finger <Larry....@lwfinger.net>
> > Date: Mon, 21 Jul 2008 15:38:47 -0500
> >
> >> David Miller wrote:
> >>> No further backtrace? That will tell us what driver is causing
> >>> this.
> >> Yes, I have a full backtrace.
> >>
> >> It starts with possible recursive locking in NetworkManager, and goes directly
> >> into the Warning - this came from a later pull of Linus's tree.
> >
> > That helps a lot, I'm looking at this now.
>
> I'm guessing this needs similar lockdep class initializations
> to _xmit_lock since it essentially has the same nesting rules.

Yes, I figured that out just now :-)

Maybe something like the following should do it?

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 9737c06..a641eea 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -5041,6 +5041,7 @@ static int bond_check_params(struct bond_params *params)
}

static struct lock_class_key bonding_netdev_xmit_lock_key;
+static struct lock_class_key bonding_netdev_addr_lock_key;

static void bond_set_lockdep_class_one(struct net_device *dev,
struct netdev_queue *txq,
@@ -5052,6 +5053,8 @@ static void bond_set_lockdep_class_one(struct net_device *dev,

static void bond_set_lockdep_class(struct net_device *dev)
{
+ lockdep_set_class(&dev->addr_list_lock,
+ &bonding_netdev_addr_lock_key);
netdev_for_each_tx_queue(dev, bond_set_lockdep_class_one, NULL);
}

diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c
index b6500b2..58f4b1d 100644
--- a/drivers/net/hamradio/bpqether.c
+++ b/drivers/net/hamradio/bpqether.c
@@ -123,6 +123,7 @@ static LIST_HEAD(bpq_devices);
* off into a separate class since they always nest.
*/
static struct lock_class_key bpq_netdev_xmit_lock_key;
+static struct lock_class_key bpq_netdev_addr_lock_key;

static void bpq_set_lockdep_class_one(struct net_device *dev,
struct netdev_queue *txq,
@@ -133,6 +134,7 @@ static void bpq_set_lockdep_class_one(struct net_device *dev,

static void bpq_set_lockdep_class(struct net_device *dev)
{
+ lockdep_set_class(&dev->addr_list_lock, &bpq_netdev_addr_lock_key);
netdev_for_each_tx_queue(dev, bpq_set_lockdep_class_one, NULL);
}

diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index efbc155..4239450 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -276,6 +276,7 @@ static int macvlan_change_mtu(struct net_device *dev, int new_mtu)
* separate class since they always nest.
*/
static struct lock_class_key macvlan_netdev_xmit_lock_key;
+static struct lock_class_key macvlan_netdev_addr_lock_key;

#define MACVLAN_FEATURES \
(NETIF_F_SG | NETIF_F_ALL_CSUM | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | \
@@ -295,6 +296,8 @@ static void macvlan_set_lockdep_class_one(struct net_device *dev,

static void macvlan_set_lockdep_class(struct net_device *dev)
{
+ lockdep_set_class(&dev->addr_list_lock,
+ &macvlan_netdev_addr_lock_key);
netdev_for_each_tx_queue(dev, macvlan_set_lockdep_class_one, NULL);
}

diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c
index 13d5882..3153fe9 100644
--- a/drivers/net/wireless/hostap/hostap_hw.c
+++ b/drivers/net/wireless/hostap/hostap_hw.c
@@ -3101,6 +3101,7 @@ static void prism2_clear_set_tim_queue(local_info_t *local)
* This is a natural nesting, which needs a split lock type.
*/
static struct lock_class_key hostap_netdev_xmit_lock_key;
+static struct lock_class_key hostap_netdev_addr_lock_key;

static void prism2_set_lockdep_class_one(struct net_device *dev,
struct netdev_queue *txq,
@@ -3112,6 +3113,8 @@ static void prism2_set_lockdep_class_one(struct net_device *dev,

static void prism2_set_lockdep_class(struct net_device *dev)
{
+ lockdep_set_class(&dev->addr_list_lock,
+ &hostap_netdev_addr_lock_key);
netdev_for_each_tx_queue(dev, prism2_set_lockdep_class_one, NULL);
}

diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index f42bc2b..4bf014e 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -569,6 +569,7 @@ static void vlan_dev_set_rx_mode(struct net_device *vlan_dev)
* separate class since they always nest.
*/
static struct lock_class_key vlan_netdev_xmit_lock_key;
+static struct lock_class_key vlan_netdev_addr_lock_key;

static void vlan_dev_set_lockdep_one(struct net_device *dev,
struct netdev_queue *txq,
@@ -581,6 +582,9 @@ static void vlan_dev_set_lockdep_one(struct net_device *dev,

static void vlan_dev_set_lockdep_class(struct net_device *dev, int subclass)
{
+ lockdep_set_class_and_subclass(&dev->addr_list_lock,
+ &vlan_netdev_addr_lock_key,
+ subclass);
netdev_for_each_tx_queue(dev, vlan_dev_set_lockdep_one, &subclass);
}

diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
index fccc250..532e4fa 100644
--- a/net/netrom/af_netrom.c
+++ b/net/netrom/af_netrom.c
@@ -73,6 +73,7 @@ static const struct proto_ops nr_proto_ops;
* separate class since they always nest.
*/
static struct lock_class_key nr_netdev_xmit_lock_key;
+static struct lock_class_key nr_netdev_addr_lock_key;

static void nr_set_lockdep_one(struct net_device *dev,
struct netdev_queue *txq,
@@ -83,6 +84,7 @@ static void nr_set_lockdep_one(struct net_device *dev,

static void nr_set_lockdep_key(struct net_device *dev)
{
+ lockdep_set_class(&dev->addr_list_lock, &nr_netdev_addr_lock_key);
netdev_for_each_tx_queue(dev, nr_set_lockdep_one, NULL);
}

diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c
index dbc963b..a7f1ce1 100644
--- a/net/rose/af_rose.c
+++ b/net/rose/af_rose.c
@@ -74,6 +74,7 @@ ax25_address rose_callsign;
* separate class since they always nest.
*/
static struct lock_class_key rose_netdev_xmit_lock_key;
+static struct lock_class_key rose_netdev_addr_lock_key;

static void rose_set_lockdep_one(struct net_device *dev,
struct netdev_queue *txq,
@@ -84,6 +85,7 @@ static void rose_set_lockdep_one(struct net_device *dev,

static void rose_set_lockdep_key(struct net_device *dev)
{
+ lockdep_set_class(&dev->addr_list_lock, &rose_netdev_addr_lock_key);
netdev_for_each_tx_queue(dev, rose_set_lockdep_one, NULL);

Stefan Richter

unread,
Jul 21, 2008, 5:30:09 PM7/21/08
to
David Miller wrote:
> You should only do a netif_stop_queue() in your device
> initialization, at the very end of ->open() processing
> when you've fully committed to returning success.
>
> You should not, in particular, be doing a netif_wake_queue()
> before you've even done a netif_start_queue().
>
> Many of these drivers are using netif_{stop,wake}_queue()
> to stop packet flow, in particular when link state changes,
> and netif_carrier_{on,off}() already does all of that for
> you.
>
> Really, anything outside of:
>
> 1) netif_start_queue() in ->open()
> 2) netif_stop_queue() in ->stop()
> 3) netif_{stop,wake}_queue() in the TX packet handling path
>
> is superfluous.

Thanks, I wasn't aware of this. I'll try to fix up eth1394 this way as
time permits.


--
Stefan Richter
-=====-==--- -=== =-=-=
http://arcgraph.de/sr/

Patrick McHardy

unread,
Jul 21, 2008, 5:40:10 PM7/21/08
to
Patrick McHardy wrote:

> David Miller wrote:
>> Maybe something like the following should do it?
>
>
> It looks correct in any case. I'm not sure whether it fixes
> this lockdep warning though, according to the backtrace and
> module list its b43 and dev_mc_sync in net/mac80211/main.c
> that are causing the error, which don't seem to be included
> in your patch. I'm unable to find where it previously
> initialized the xmit_lock lockdep class though, so I must
> be missing something :)

This is what I was missing, we're setting a lockdep class
by default depending on dev->type. This patch combined
with yours should fix all addr_list_lock warnings.


Patrick McHardy

unread,
Jul 21, 2008, 5:50:23 PM7/21/08
to

This one is a bit nicer, since we only have a single
addr_list_lock we don't need to pass a pointer to the
lock.

Larry Finger

unread,
Jul 21, 2008, 6:00:16 PM7/21/08
to

No cigar yet. I tried davem's patch first, then yours on top of his. I still get
both the recursive locking and the kernel warning.

BTW, wireless doesn't work but if I plug in the wire, then networking is OK. It
seems to be in mac80211, which is strange because I routinely run the latest
wireless-testing kernel, and all the wireless bits should be there already.

I'm still plugging away at the bisection. I think I got away from the kernel
that won't build.

Larry

Patrick McHardy

unread,
Jul 21, 2008, 6:10:16 PM7/21/08
to
Larry Finger wrote:

> Patrick McHardy wrote:
>>
>> This is what I was missing, we're setting a lockdep class
>> by default depending on dev->type. This patch combined
>> with yours should fix all addr_list_lock warnings.
>
> No cigar yet. I tried davem's patch first, then yours on top of his. I
> still get both the recursive locking and the kernel warning.

Does this one earn me my cigar? :)


Larry Finger

unread,
Jul 21, 2008, 6:50:10 PM7/21/08
to

Sorry :(

I used the davem patch, the second version of your first one, and your second
one. Both problems persist.

Still plugging away on bisection.

David Miller

unread,
Jul 21, 2008, 7:20:17 PM7/21/08
to
From: Larry Finger <Larry....@lwfinger.net>
Date: Mon, 21 Jul 2008 17:40:10 -0500

> Sorry :(
>
> I used the davem patch, the second version of your first one, and your second
> one. Both problems persist.
>
> Still plugging away on bisection.

GIT bisecting the lockdep problem is surely going the land you on:

commit e308a5d806c852f56590ffdd3834d0df0cbed8d7
Author: David S. Miller <da...@davemloft.net>
Date: Tue Jul 15 00:13:44 2008 -0700

netdev: Add netdev->addr_list_lock protection.

Add netif_addr_{lock,unlock}{,_bh}() helpers.

Use them to protect operations that operate on or read
the network device unicast and multicast address lists.

Also use them in cases where the code simply wants to
block calls into the driver's ->set_rx_mode() and
->set_multicast_list() methods.

Signed-off-by: David S. Miller <da...@davemloft.net>

Larry Finger

unread,
Jul 22, 2008, 2:40:18 AM7/22/08
to
David Miller wrote:
> From: Larry Finger <Larry....@lwfinger.net>
> Date: Mon, 21 Jul 2008 17:40:10 -0500
>
>> Sorry :(
>>
>> I used the davem patch, the second version of your first one, and your second
>> one. Both problems persist.
>>
>> Still plugging away on bisection.
>
> GIT bisecting the lockdep problem is surely going the land you on:
>
> commit e308a5d806c852f56590ffdd3834d0df0cbed8d7

No. It landed on this one.

37437bb2e1ae8af470dfcd5b4ff454110894ccaf is first bad commit
commit 37437bb2e1ae8af470dfcd5b4ff454110894ccaf


Author: David S. Miller <da...@davemloft.net>

Date: Wed Jul 16 02:15:04 2008 -0700

pkt_sched: Schedule qdiscs instead of netdev_queue.

When we have shared qdiscs, packets come out of the qdiscs
for multiple transmit queues.

Therefore it doesn't make any sense to schedule the transmit
queue when logically we cannot know ahead of time the TX
queue of the SKB that the qdisc->dequeue() will give us.

Just for sanity I added a BUG check to make sure we never
get into a state where the noop_qdisc is scheduled.

Signed-off-by: David S. Miller <da...@davemloft.net>

:040000 040000 4d13d1fb1ae37d9720c3db6b1368866e78621f55
f1a0f5e5a191e7904b528d9e10069a4324a5d328 M include
:040000 040000 3515aad52a2cdaaba85feeffc0944d7f07a19c96
4854d4f4df9726a2e8837037f82bde807bed2ede M net

Larry

Jarek Poplawski

unread,
Jul 22, 2008, 6:50:14 AM7/22/08
to
On 22-07-2008 08:34, Larry Finger wrote:
...

>>> I used the davem patch, the second version of your first one, and
>>> your second one. Both problems persist.

Could you send lockdep info after Patrick's "set lockdep classes"
patch?

Jarek P.

Ingo Molnar

unread,
Jul 22, 2008, 7:30:08 AM7/22/08
to

* Ingo Molnar <mi...@elte.hu> wrote:

> ok, have updated the testboxes to your latest push.
>

> Btw., otherwise the big networking pull held up pretty well on a
> healthy range of testboxes i have, [...]

hm, the distcc TCP hangs are back:

Distcc client box (quad, 10.0.1.16) running v2.6.24:

dione:~> netstat -nt | grep -vw TIME_WAIT | grep 3632
tcp 0 250455 10.0.1.16:55559 10.0.1.19:3632 ESTABLISHED
tcp 0 254743 10.0.1.16:56096 10.0.1.19:3632 ESTABLISHED
tcp 0 219617 10.0.1.16:55674 10.0.1.19:3632 ESTABLISHED

[ ^--- note the stuck send-queue ]

Distcc server box (16-way, 10.0.1.19) running very-latest:

phoenix:~> netstat -nt | grep 10.0.1.16 | grep 3632

tcp 0 0 10.0.1.19:3632 10.0.1.16:55559 ESTABLISHED
tcp 0 0 10.0.1.19:3632 10.0.1.16:56096 ESTABLISHED
tcp 0 0 10.0.1.19:3632 10.0.1.16:55674 ESTABLISHED

tcp 0 0 10.0.1.19:3632 10.0.1.16:34411 ESTABLISHED
tcp 0 0 10.0.1.19:3632 10.0.1.16:51094 ESTABLISHED
tcp 0 0 10.0.1.19:3632 10.0.1.16:60787 ESTABLISHED
tcp 0 0 10.0.1.19:3632 10.0.1.16:50874 ESTABLISHED

I.e. the client side send-queue is stuck in established state, server
side thinks it's a proper established connection. Nobody makes any
progress.

Also note the final 4 connections on the server side - those are not
present on the client box.

The hung condition seemed permanent (i waited a couple of minutes).

Then i shut down the distccd on the server side, which propagated to the
client:

distcc[18496] (dcc_pump_sendfile) ERROR: sendfile failed: Broken pipe
distcc[18496] (dcc_readx) ERROR: unexpected eof on fd4
distcc[18496] (dcc_r_token_int) ERROR: read failed while waiting for token "DONE"
distcc[18496] Warning: failed to distribute kernel/futex.c to ph/20, running locally instead

Server side lingered in FIN_WAIT2 a bit:

Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 10.0.1.19:3632 10.0.1.16:56096 FIN_WAIT2
tcp 0 0 10.0.1.19:3632 10.0.1.16:55559 FIN_WAIT2

I retried the same build 10 times and it would not reproduce - so this
again is a hard to reproduce condition. (and there's no chance to get a
proper tcpdump either, at these traffic levels)

Ingo

David Miller

unread,
Jul 22, 2008, 7:40:14 AM7/22/08
to
From: Larry Finger <Larry....@lwfinger.net>
Date: Tue, 22 Jul 2008 01:34:28 -0500

> David Miller wrote:
> > From: Larry Finger <Larry....@lwfinger.net>
> > Date: Mon, 21 Jul 2008 17:40:10 -0500
> >
> >> Sorry :(
> >>
> >> I used the davem patch, the second version of your first one, and your second
> >> one. Both problems persist.
> >>
> >> Still plugging away on bisection.
> >
> > GIT bisecting the lockdep problem is surely going the land you on:
> >
> > commit e308a5d806c852f56590ffdd3834d0df0cbed8d7
>
> No. It landed on this one.

For the lockdep warnings?

Larry Finger

unread,
Jul 22, 2008, 9:00:17 AM7/22/08
to
David Miller wrote:
> From: Larry Finger <Larry....@lwfinger.net>
> Date: Tue, 22 Jul 2008 01:34:28 -0500
>
>> David Miller wrote:
>>> From: Larry Finger <Larry....@lwfinger.net>
>>> Date: Mon, 21 Jul 2008 17:40:10 -0500
>>>
>>>> Sorry :(
>>>>
>>>> I used the davem patch, the second version of your first one, and your second
>>>> one. Both problems persist.
>>>>
>>>> Still plugging away on bisection.
>>> GIT bisecting the lockdep problem is surely going the land you on:
>>>
>>> commit e308a5d806c852f56590ffdd3834d0df0cbed8d7
>> No. It landed on this one.
>
> For the lockdep warnings?

No - this one triggers the kernel BUG as follows:

------------[ cut here ]------------


kernel BUG at net/core/dev.c:1328!

invalid opcode: 0000 [1] SMP

CPU 0


Modules linked in: af_packet rfkill_input nfs lockd nfs_acl sunrpc

cpufreq_conservative cpufreq_userspace cpufreq_powersave powernow_k8 fuse loop

dm_mod arc4 ecb crypto_blkcipher b43 firmware_class rfkill mac80211 cfg80211
led_class input_polldev k8temp sr_mod battery ac ssb button hwmon forcedeth
cdrom serio_raw sg ohci_hcd ehci_hcd sd_mod usbcore edd fan thermal processor

ext3 mbcache jbd pata_amd ahci libata scsi_mod dock

Pid: 2003, comm: b43 Not tainted 2.6.26-rc8-Linus-git-01424-g37437bb #43
RIP: 0010:[<ffffffff803958c6>] [<ffffffff803958c6>] __netif_schedule+0x12/0x75
RSP: 0018:ffff8100b9e33de0 EFLAGS: 00010246
RAX: ffff8100b63819c0 RBX: ffffffff80545300 RCX: ffff8100b6381980
RDX: 00000000ffffffff RSI: 0000000000000001 RDI: ffffffff80545300
RBP: ffff8100b7b45158 R08: ffff8100b89d8000 R09: ffff8100b9d26000
R10: ffff8100b7b44480 R11: ffffffffa01239ef R12: ffff8100b7b44480
R13: ffff8100b9d26000 R14: ffff8100b89d8000 R15: 0000000000000000
FS: 00007f494406a6f0(0000) GS:ffffffff8055e000(0000) knlGS:0000000000000000
CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 00007f49440933dc CR3: 0000000000201000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process b43 (pid: 2003, threadinfo ffff8100b9e32000, task ffff8100b4a3e480)
Stack: ffff8100b7b45158 ffff8100b89d8900 ffff8100b7b45158 ffffffffa0158455
ffff8100ba3287c0 0000000000000246 0000000000000000 0000000000000000
ffff8100b9e33e70 ffff8100b7b451b8 ffff8100ba3287c0 ffff8100b7b451b0
Call Trace:
[<ffffffffa0158455>] ? :mac80211:ieee80211_scan_completed+0x25b/0x2e1
[<ffffffffa01586d6>] ? :mac80211:ieee80211_sta_scan_work+0x0/0x1b8
[<ffffffff8023f7d7>] ? run_workqueue+0xf1/0x1f3
[<ffffffff8023f9b4>] ? worker_thread+0xdb/0xea
[<ffffffff80243017>] ? autoremove_wake_function+0x0/0x2e
[<ffffffff8023f8d9>] ? worker_thread+0x0/0xea
[<ffffffff80242cff>] ? kthread+0x47/0x73
[<ffffffff80402845>] ? trace_hardirqs_on_thunk+0x35/0x3a
[<ffffffff8020cd48>] ? child_rip+0xa/0x12
[<ffffffff8020c45f>] ? restore_args+0x0/0x30
[<ffffffff8021d3b6>] ? flat_send_IPI_mask+0x0/0x67
[<ffffffff80242c93>] ? kthreadd+0x188/0x1ad
[<ffffffff80242c93>] ? kthreadd+0x188/0x1ad
[<ffffffff80242cb8>] ? kthread+0x0/0x73
[<ffffffff8020cd3e>] ? child_rip+0x0/0x12


Code: 00 00 75 0a 55 9d 5e 5b 5d e9 32 64 eb ff e8 21 73 eb ff 55 9d 59 5b 5d c3
55 53 48 89 fb 48 83 ec 08 48 81 ff 00 53 54 80 75 04 <0f> 0b eb fe 48 8d 47 30
f0 0f ba 28 01 19 d2 85 d2 75 4c 9c 5d
RIP [<ffffffff803958c6>] __netif_schedule+0x12/0x75
RSP <ffff8100b9e33de0>
---[ end trace 396dc6bdf73da468 ]---

I'll have to trace back to see which of the bisections produced both the lockdep
and the kernel bug.

Larry

Larry Finger

unread,
Jul 22, 2008, 9:10:11 AM7/22/08
to
David Miller wrote:
> From: Larry Finger <Larry....@lwfinger.net>
> Date: Tue, 22 Jul 2008 01:34:28 -0500
>
>> David Miller wrote:
>>> From: Larry Finger <Larry....@lwfinger.net>
>>> Date: Mon, 21 Jul 2008 17:40:10 -0500
>>>
>>>> Sorry :(
>>>>
>>>> I used the davem patch, the second version of your first one, and your second
>>>> one. Both problems persist.
>>>>
>>>> Still plugging away on bisection.
>>> GIT bisecting the lockdep problem is surely going the land you on:
>>>
>>> commit e308a5d806c852f56590ffdd3834d0df0cbed8d7
>> No. It landed on this one.
>
> For the lockdep warnings?

When I was just one commit later, I got both the lockdep warning and the BUG.
This is the commit in question.

commit 16361127ebed0fb8f9d7cc94c6e137eaf710f676


Author: David S. Miller <da...@davemloft.net>

Date: Wed Jul 16 02:23:17 2008 -0700

pkt_sched: dev_init_scheduler() does not need to lock qdisc tree.

We are registering the device, there is no way anyone can get
at this object's qdiscs yet in any meaningful way.

Signed-off-by: David S. Miller <da...@davemloft.net>

Larry

David Newall

unread,
Jul 22, 2008, 9:50:15 AM7/22/08
to
Ingo Molnar wrote:
> hm, the distcc TCP hangs are back:
>

The missing four client-side connections are more interesting than the
unsent data.

> I.e. the client side send-queue is stuck in established state, server
> side thinks it's a proper established connection. Nobody makes any
> progress.
>

I might be missing something obvious, but I don't think there's anything
unusual in the three sessions displayed on the client. They should be
"ESTABLISHED", and on the server, too, just as they are.

> Also note the final 4 connections on the server side - those are not
> present on the client box.
>

Now this is interesting. I would be much more interested in how the
client's sides for these disappeared.

> The hung condition seemed permanent (i waited a couple of minutes).
>

Not nearly long enough. Retransmits can be sent as infrequently as per
180 seconds. I think there's an argument to use one of the the various
patches that reduce your TCP_RTO_MAX, for example OBATA Noboru's
(http://marc.info/?l=linux-netdev&m=118422471428855): you don't have to
wait unreasonably long before seeing a retransmit. Remember, three minutes!


> I retried the same build 10 times and it would not reproduce - so this
> again is a hard to reproduce condition. (and there's no chance to get a
> proper tcpdump either, at these traffic levels)

You really should start that capture, and on both client and server.
You don't need to dump everything, only traffic to or from server:distcc.

Ingo Molnar

unread,
Jul 22, 2008, 10:00:21 AM7/22/08
to

* David Newall <dav...@davidnewall.com> wrote:

> > The hung condition seemed permanent (i waited a couple of minutes).
>
> Not nearly long enough. Retransmits can be sent as infrequently as
> per 180 seconds. I think there's an argument to use one of the the
> various patches that reduce your TCP_RTO_MAX, for example OBATA
> Noboru's (http://marc.info/?l=linux-netdev&m=118422471428855): you
> don't have to wait unreasonably long before seeing a retransmit.
> Remember, three minutes!

i know, i waited much more than 180 minutes - about 15 minutes. That is
more than enough for this LAN connection.

It's all on the LAN directly via a single gigabit switch and no packet
dropping. I noticed the hung build immediately as it happened.

> > I retried the same build 10 times and it would not reproduce - so
> > this again is a hard to reproduce condition. (and there's no chance
> > to get a proper tcpdump either, at these traffic levels)
>
> You really should start that capture, and on both client and server.
> You don't need to dump everything, only traffic to or from
> server:distcc.

It's not feasible. That box did in excess of 200 GB of network traffic
in the past 7 hours alone. ~10 clients are doing make -j200 type of
kernel builds to this 16way buildbox so it is not realistic to tcpdump
it - especially given the rarity of this problem. (it has not reoccured
since then) The network is local LAN, gigabit ethernet over a single
gigabit switch.

Ingo

David Newall

unread,
Jul 22, 2008, 11:00:21 AM7/22/08
to
Ingo Molnar wrote:
> * David Newall <dav...@davidnewall.com> wrote:
>
>> You really should start that capture, and on both client and server.
>> You don't need to dump everything, only traffic to or from
>> server:distcc.
>>
>
> It's not feasible. That box did in excess of 200 GB of network traffic
> in the past 7 hours alone.

You only need distcc traffic, and perhaps only after it's hung. With
250k outstanding per socket, are you certain that no traffic was sent?
Is it certain that one packet wasn't being sent each three minutes? I
suppose you're right and the stack really is stuck, but this is such an
easy thing to check and eliminate that you should do so. I suppose,
too, that you should trace the server-side processes and confirm that
they are waiting for socket input. You should dump tcp (for the distcc
port) next time the problem recurs and also check that the server
processes are waiting for socket input.

Patrick McHardy

unread,
Jul 22, 2008, 11:00:24 AM7/22/08
to
Larry Finger wrote:
> David Miller wrote:
>> From: Larry Finger <Larry....@lwfinger.net>
>> Date: Tue, 22 Jul 2008 01:34:28 -0500
>>
>>>> GIT bisecting the lockdep problem is surely going the land you on:
>>>>
>>>> commit e308a5d806c852f56590ffdd3834d0df0cbed8d7
>>> No. It landed on this one.
>>
>> For the lockdep warnings?
>
> When I was just one commit later, I got both the lockdep warning and the
> BUG. This is the commit in question.

I actually don't see how you could still get the warning with
Dave's patch and the two I sent applied.

The warning is triggered by the dev_mc_sync call in
ieee80211_set_multicast_list:

dev_mc_sync(local->mdev, dev);


local->mdev is the wmaster device, which has its type set to
ARPHRD_IEEE80211. dev is regular wireless device with type set
to ARPHRD_ETHER. So they have distinct lockdep classes set
by register_netdevice.

The warning is:

Jul 21 15:11:07 larrylap kernel: NetworkManager/2661 is trying to
acquire lock:
Jul 21 15:11:07 larrylap kernel: (&dev->addr_list_lock){-...}, at:
[<ffffffff803a2961>] dev_mc_sync+0x19/0x57
Jul 21 15:11:07 larrylap kernel:
Jul 21 15:11:07 larrylap kernel: but task is already holding lock:
Jul 21 15:11:07 larrylap kernel: (&dev->addr_list_lock){-...}, at:
[<ffffffff8039e7c5>] dev_set_rx_mode+0x19/0x2e

Jul 21 15:11:07 larrylap kernel:

The only already held is dev->addr_list_lock, the one taken
by dev_mc_sync is local->mdev->addr_list_lock. And this shouldn't
cause any warnings because of the distinct lockdep classes.

Could you please retry with the three patches attached to this
mail? If the lockdep warning still triggers, please post it again.

01.diff
02.diff
03.diff

Ingo Molnar

unread,
Jul 22, 2008, 11:40:10 AM7/22/08
to
* David Newall <dav...@davidnewall.com> wrote:

> Ingo Molnar wrote:
> > * David Newall <dav...@davidnewall.com> wrote:
> >
> >> You really should start that capture, and on both client and server.
> >> You don't need to dump everything, only traffic to or from
> >> server:distcc.
> >>
> >
> > It's not feasible. That box did in excess of 200 GB of network traffic
> > in the past 7 hours alone.
>
> You only need distcc traffic, and perhaps only after it's hung. With
> 250k outstanding per socket, are you certain that no traffic was sent?
> Is it certain that one packet wasn't being sent each three minutes? I
> suppose you're right and the stack really is stuck, but this is such
> an easy thing to check and eliminate that you should do so. I
> suppose, too, that you should trace the server-side processes and
> confirm that they are waiting for socket input. You should dump tcp
> (for the distcc port) next time the problem recurs and also check that
> the server processes are waiting for socket input.

ok, will do that if it happens again.

Ingo

Larry Finger

unread,
Jul 22, 2008, 12:50:13 PM7/22/08
to
David and Patrick,

Here is the latest on this problem.

I pulled from Linus's tree this morning and now have git-05752-g93ded9b. The
kernel WARNING from __netif_schedule and the lockdep warning are present with or
without the patches from yesterday.

As I stated earlier, the kernel WARNING (it was a BUG then) was introduced in
commit 37437bb2 when the BUG statement was entered.

The lockdep warning started with the next commit (16361127).

I am not using any network traffic shaping. Is it correct that the faulty
condition is not that q == &noop_qdisc, but that __netif_schedule was called
when that condition exists?


The lockdep warning is:

=============================================


[ INFO: possible recursive locking detected ]

2.6.26-Linus-git-05752-g93ded9b #49
---------------------------------------------
NetworkManager/2611 is trying to acquire lock:
(&dev->addr_list_lock){-...}, at: [<ffffffff803a2ad1>] dev_mc_sync+0x19/0x57

but task is already holding lock:

(&dev->addr_list_lock){-...}, at: [<ffffffff8039e909>] dev_set_rx_mode+0x19/0x2e

other info that might help us debug this:

2 locks held by NetworkManager/2611:
#0: (rtnl_mutex){--..}, at: [<ffffffff803a8488>] rtnetlink_rcv+0x12/0x27
#1: (&dev->addr_list_lock){-...}, at: [<ffffffff8039e909>]
dev_set_rx_mode+0x19/0x2e

stack backtrace:
Pid: 2611, comm: NetworkManager Not tainted 2.6.26-Linus-git-05752-g93ded9b #49

Call Trace:
[<ffffffff80251b02>] __lock_acquire+0xb7b/0xecc
[<ffffffff80251ea4>] lock_acquire+0x51/0x6a
[<ffffffff803a2ad1>] dev_mc_sync+0x19/0x57
[<ffffffff8040b3fc>] _spin_lock_bh+0x23/0x2c
[<ffffffff803a2ad1>] dev_mc_sync+0x19/0x57
[<ffffffff8039e911>] dev_set_rx_mode+0x21/0x2e
[<ffffffff803a04da>] dev_open+0x8e/0xb0
[<ffffffff8039fe84>] dev_change_flags+0xa6/0x163
[<ffffffff803a7591>] do_setlink+0x286/0x349
[<ffffffff803a849d>] rtnetlink_rcv_msg+0x0/0x1ec
[<ffffffff803a849d>] rtnetlink_rcv_msg+0x0/0x1ec
[<ffffffff803a849d>] rtnetlink_rcv_msg+0x0/0x1ec
[<ffffffff803a77de>] rtnl_setlink+0x10b/0x10d
[<ffffffff803a849d>] rtnetlink_rcv_msg+0x0/0x1ec
[<ffffffff803b416f>] netlink_rcv_skb+0x34/0x7d
[<ffffffff803a8497>] rtnetlink_rcv+0x21/0x27
[<ffffffff803b3c6f>] netlink_unicast+0x1f0/0x261
[<ffffffff8039a58d>] __alloc_skb+0x66/0x12a
[<ffffffff803b3f48>] netlink_sendmsg+0x268/0x27b
[<ffffffff80393cb9>] sock_sendmsg+0xcb/0xe3
[<ffffffff80246aab>] autoremove_wake_function+0x0/0x2e
[<ffffffff8039b2d8>] verify_iovec+0x46/0x82
[<ffffffff80393ee8>] sys_sendmsg+0x217/0x28a
[<ffffffff80393642>] sockfd_lookup_light+0x1a/0x52
[<ffffffff80250990>] trace_hardirqs_on_caller+0xef/0x113
[<ffffffff8040af74>] trace_hardirqs_on_thunk+0x3a/0x3f
[<ffffffff8020be9b>] system_call_after_swapgs+0x7b/0x80
========================================================


The logged data for the WARNING is as follows:

------------[ cut here ]------------


WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()

Modules linked in: af_packet nfs lockd nfs_acl rfkill_input sunrpc

cpufreq_conservative cpufreq_userspace cpufreq_powersave powernow_k8 fuse loop
dm_mod arc4 ecb crypto_blkcipher b43 firmware_class rfkill mac80211 cfg80211

led_class input_polldev battery ac button ssb serio_raw forcedeth sr_mod cdrom
k8temp hwmon sg sd_mod ehci_hcd ohci_hcd usbcore edd fan thermal processor ext3

mbcache jbd pata_amd ahci libata scsi_mod dock

Pid: 1990, comm: b43 Not tainted 2.6.26-Linus-git-05752-g93ded9b #49

Call Trace:
[<ffffffff80233f6d>] warn_on_slowpath+0x51/0x8c
[<ffffffff8039d937>] __netif_schedule+0x2c/0x98
[<ffffffffa015445d>] ieee80211_scan_completed+0x26b/0x2f1 [mac80211]
[<ffffffffa01546de>] ieee80211_sta_scan_work+0x0/0x1b8 [mac80211]
[<ffffffff8024325e>] run_workqueue+0xf0/0x1f2
[<ffffffff8024343b>] worker_thread+0xdb/0xea
[<ffffffff80246aab>] autoremove_wake_function+0x0/0x2e
[<ffffffff80243360>] worker_thread+0x0/0xea
[<ffffffff8024678b>] kthread+0x47/0x73
[<ffffffff8040af74>] trace_hardirqs_on_thunk+0x3a/0x3f
[<ffffffff8020cea9>] child_rip+0xa/0x11
[<ffffffff8020c4df>] restore_args+0x0/0x30
[<ffffffff8024671f>] kthreadd+0x188/0x1ad
[<ffffffff80246744>] kthread+0x0/0x73
[<ffffffff8020ce9f>] child_rip+0x0/0x11

---[ end trace 42d234b678daea7a ]---

Other info I have found. The call to __netif_schedule from
ieee80211_scan_completed is through the following code from
include/linux/netdevice.h:

/**
* netif_wake_queue - restart transmit
* @dev: network device
*
* Allow upper layers to call the device hard_start_xmit routine.
* Used for flow control when transmit resources are available.
*/
static inline void netif_tx_wake_queue(struct netdev_queue *dev_queue)
{
#ifdef CONFIG_NETPOLL_TRAP
if (netpoll_trap()) {
clear_bit(__QUEUE_STATE_XOFF, &dev_queue->state);
return;
}
#endif
if (test_and_clear_bit(__QUEUE_STATE_XOFF, &dev_queue->state))
__netif_schedule(dev_queue->qdisc);
}

It doesn't make any difference if CONFIG_NETPOLL_TRAP is defined or not.

Please let me know if I can provide any further information,

Patrick McHardy

unread,
Jul 22, 2008, 1:30:28 PM7/22/08
to
Larry Finger wrote:
> I pulled from Linus's tree this morning and now have git-05752-g93ded9b.
> The kernel WARNING from __netif_schedule and the lockdep warning are
> present with or without the patches from yesterday.
>
> As I stated earlier, the kernel WARNING (it was a BUG then) was
> introduced in commit 37437bb2 when the BUG statement was entered.
>
> The lockdep warning started with the next commit (16361127).
>
> The lockdep warning is:
>
> =============================================
> [ INFO: possible recursive locking detected ]
> 2.6.26-Linus-git-05752-g93ded9b #49

^^^^^^^^^^^^^^ dirty?

This kernel is not using the patches we sent.

Larry Finger

unread,
Jul 22, 2008, 2:50:16 PM7/22/08
to
Patrick McHardy wrote:
> Larry Finger wrote:
>>
>> =============================================
>> [ INFO: possible recursive locking detected ]
>> 2.6.26-Linus-git-05752-g93ded9b #49
>
> ^^^^^^^^^^^^^^ dirty?
>
> This kernel is not using the patches we sent.

No, but they didn't make any difference. I tried with all 3 applied, then backed
them out one by one. That was the state when I posted before.

Here are the dumps with all 3 patches applied:

=============================================
[ INFO: possible recursive locking detected ]

2.6.26-Linus-05752-g93ded9b-dirty #53
---------------------------------------------
b43/1997 is trying to acquire lock:
(_xmit_IEEE80211#2){-...}, at: [<ffffffffa028f322>]
ieee80211_scan_completed+0x130/0x2e1 [mac80211]

but task is already holding lock:

(_xmit_IEEE80211#2){-...}, at: [<ffffffffa028f322>]
ieee80211_scan_completed+0x130/0x2e1 [mac80211]

other info that might help us debug this:

3 locks held by b43/1997:
#0: ((name)){--..}, at: [<ffffffff80245185>] run_workqueue+0xa7/0x1f2
#1: (&(&local->scan_work)->work){--..}, at: [<ffffffff80245185>]
run_workqueue+0xa7/0x1f2
#2: (_xmit_IEEE80211#2){-...}, at: [<ffffffffa028f322>]
ieee80211_scan_completed+0x130/0x2e1 [mac80211]

stack backtrace:
Pid: 1997, comm: b43 Not tainted 2.6.26-Linus-05752-g93ded9b-dirty #53

Call Trace:
[<ffffffff80255616>] __lock_acquire+0xb7b/0xecc
[<ffffffff8040c9a0>] __mutex_unlock_slowpath+0x100/0x10b
[<ffffffff802559b8>] lock_acquire+0x51/0x6a
[<ffffffffa028f322>] ieee80211_scan_completed+0x130/0x2e1 [mac80211]
[<ffffffff8040dc08>] _spin_lock+0x1e/0x27
[<ffffffffa028f322>] ieee80211_scan_completed+0x130/0x2e1 [mac80211]
[<ffffffffa028f6ce>] ieee80211_sta_scan_work+0x0/0x1b8 [mac80211]
[<ffffffff802451ce>] run_workqueue+0xf0/0x1f2
[<ffffffff802453ab>] worker_thread+0xdb/0xea
[<ffffffff80248a5f>] autoremove_wake_function+0x0/0x2e
[<ffffffff802452d0>] worker_thread+0x0/0xea
[<ffffffff80248731>] kthread+0x47/0x73
[<ffffffff8040d7b1>] trace_hardirqs_on_thunk+0x3a/0x3f
[<ffffffff8020ceb9>] child_rip+0xa/0x11
[<ffffffff8020c4ef>] restore_args+0x0/0x30
[<ffffffff802486c5>] kthreadd+0x19a/0x1bf
[<ffffffff802486ea>] kthread+0x0/0x73
[<ffffffff8020ceaf>] child_rip+0x0/0x11

------------[ cut here ]------------
WARNING: at net/core/dev.c:1344 __netif_schedule+0x2c/0x98()
Modules linked in: af_packet rfkill_input nfs lockd nfs_acl sunrpc

cpufreq_conservative cpufreq_userspace cpufreq_powersave powernow_k8 fuse loop
dm_mod arc4 ecb crypto_blkcipher b43 firmware_class rfkill mac80211

snd_hda_intel cfg80211 led_class input_polldev k8temp snd_pcm snd_timer battery
hwmon sr_mod forcedeth ssb joydev ac button serio_raw cdrom snd soundcore
snd_page_alloc sg sd_mod ohci_hcd ehci_hcd usbcore edd fan thermal processor

ext3 mbcache jbd pata_amd ahci libata scsi_mod dock

Pid: 1997, comm: b43 Not tainted 2.6.26-Linus-05752-g93ded9b-dirty #53

Call Trace:
[<ffffffff80235d49>] warn_on_slowpath+0x51/0x8c
[<ffffffff8040d7b1>] trace_hardirqs_on_thunk+0x3a/0x3f
[<ffffffff803a2413>] __netif_schedule+0x2c/0x98
[<ffffffffa028f44d>] ieee80211_scan_completed+0x25b/0x2e1 [mac80211]
[<ffffffffa028f6ce>] ieee80211_sta_scan_work+0x0/0x1b8 [mac80211]
[<ffffffff802451ce>] run_workqueue+0xf0/0x1f2
[<ffffffff802453ab>] worker_thread+0xdb/0xea
[<ffffffff80248a5f>] autoremove_wake_function+0x0/0x2e
[<ffffffff802452d0>] worker_thread+0x0/0xea
[<ffffffff80248731>] kthread+0x47/0x73
[<ffffffff8040d7b1>] trace_hardirqs_on_thunk+0x3a/0x3f
[<ffffffff8020ceb9>] child_rip+0xa/0x11
[<ffffffff8020c4ef>] restore_args+0x0/0x30
[<ffffffff802486c5>] kthreadd+0x19a/0x1bf
[<ffffffff802486ea>] kthread+0x0/0x73
[<ffffffff8020ceaf>] child_rip+0x0/0x11

---[ end trace 88fab857dc2a4242 ]---

Larry

Patrick McHardy

unread,
Jul 22, 2008, 2:50:18 PM7/22/08
to
Larry Finger wrote:
> Patrick McHardy wrote:
>> Larry Finger wrote:
>>>
>>> =============================================
>>> [ INFO: possible recursive locking detected ]
>>> 2.6.26-Linus-git-05752-g93ded9b #49
>>
>> ^^^^^^^^^^^^^^ dirty?
>>
>> This kernel is not using the patches we sent.
>
> No, but they didn't make any difference. I tried with all 3 applied,
> then backed them out one by one. That was the state when I posted before.

Well, this is a completely different warning.

>
> Here are the dumps with all 3 patches applied:
>
> =============================================
> [ INFO: possible recursive locking detected ]
> 2.6.26-Linus-05752-g93ded9b-dirty #53
> ---------------------------------------------
> b43/1997 is trying to acquire lock:
> (_xmit_IEEE80211#2){-...}, at: [<ffffffffa028f322>]
> ieee80211_scan_completed+0x130/0x2e1 [mac80211]
>
> but task is already holding lock:
> (_xmit_IEEE80211#2){-...}, at: [<ffffffffa028f322>]
> ieee80211_scan_completed+0x130/0x2e1 [mac80211]

--

Larry Finger

unread,
Jul 22, 2008, 3:40:26 PM7/22/08
to
Patrick McHardy wrote:
> Larry Finger wrote:
>> Patrick McHardy wrote:
>>> Larry Finger wrote:
>>>>
>>>> =============================================
>>>> [ INFO: possible recursive locking detected ]
>>>> 2.6.26-Linus-git-05752-g93ded9b #49
>>>
>>> ^^^^^^^^^^^^^^ dirty?
>>>
>>> This kernel is not using the patches we sent.
>>
>> No, but they didn't make any difference. I tried with all 3 applied,
>> then backed them out one by one. That was the state when I posted before.
>
> Well, this is a completely different warning.
>
>>
>> Here are the dumps with all 3 patches applied:
>>
>> =============================================
>> [ INFO: possible recursive locking detected ]
>> 2.6.26-Linus-05752-g93ded9b-dirty #53
>> ---------------------------------------------
>> b43/1997 is trying to acquire lock:
>> (_xmit_IEEE80211#2){-...}, at: [<ffffffffa028f322>]
>> ieee80211_scan_completed+0x130/0x2e1 [mac80211]
>>
>> but task is already holding lock:
>> (_xmit_IEEE80211#2){-...}, at: [<ffffffffa028f322>]
>> ieee80211_scan_completed+0x130/0x2e1 [mac80211]

Sorry. After all those kernel builds I got bleary-eyed and just looked for
recursive locking without any regard for the details.

Larry

David Miller

unread,
Jul 22, 2008, 4:50:18 PM7/22/08
to
From: Larry Finger <Larry....@lwfinger.net>
Date: Tue, 22 Jul 2008 07:52:24 -0500

> David Miller wrote:
> > From: Larry Finger <Larry....@lwfinger.net>
> > Date: Tue, 22 Jul 2008 01:34:28 -0500
> >
> >> David Miller wrote:
> >>> From: Larry Finger <Larry....@lwfinger.net>
> >>> Date: Mon, 21 Jul 2008 17:40:10 -0500
> >>>
> >>>> Sorry :(
> >>>>
> >>>> I used the davem patch, the second version of your first one, and your second
> >>>> one. Both problems persist.
> >>>>
> >>>> Still plugging away on bisection.
> >>> GIT bisecting the lockdep problem is surely going the land you on:
> >>>
> >>> commit e308a5d806c852f56590ffdd3834d0df0cbed8d7
> >> No. It landed on this one.
> >
> > For the lockdep warnings?
>
> No - this one triggers the kernel BUG as follows:

Well, we were trying to fix the lockdep warnings. One
thing at a time :-)

And that BUG is now just a WARN in Linus's tree, so if
you update you should get further along.

Willy Tarreau

unread,
Jul 22, 2008, 5:20:20 PM7/22/08
to
On Tue, Jul 22, 2008 at 05:34:43PM +0200, Ingo Molnar wrote:
> * David Newall <dav...@davidnewall.com> wrote:
>
> > Ingo Molnar wrote:
> > > * David Newall <dav...@davidnewall.com> wrote:
> > >
> > >> You really should start that capture, and on both client and server.
> > >> You don't need to dump everything, only traffic to or from
> > >> server:distcc.
> > >>
> > >
> > > It's not feasible. That box did in excess of 200 GB of network traffic
> > > in the past 7 hours alone.
> >
> > You only need distcc traffic, and perhaps only after it's hung. With
> > 250k outstanding per socket, are you certain that no traffic was sent?
> > Is it certain that one packet wasn't being sent each three minutes? I
> > suppose you're right and the stack really is stuck, but this is such
> > an easy thing to check and eliminate that you should do so. I
> > suppose, too, that you should trace the server-side processes and
> > confirm that they are waiting for socket input. You should dump tcp
> > (for the distcc port) next time the problem recurs and also check that
> > the server processes are waiting for socket input.
>
> ok, will do that if it happens again.

Ingo,

if it can help, I have a "capture" script which allows you to define
a size and will rotate captures within that size. That's what I'm
using to troubleshoot rarely occuring problems in datacenters, so
it's horrible but efficient :-)

You just have to stop it once the problem has happened again. Ping
me if you're interested (I'm lazy to start my laptop right just for
it now in fact).

Willy

David Miller

unread,
Jul 22, 2008, 5:30:16 PM7/22/08
to
From: Patrick McHardy <ka...@trash.net>
Date: Tue, 22 Jul 2008 16:53:30 +0200

> Could you please retry with the three patches attached to this
> mail? If the lockdep warning still triggers, please post it again.

Since I'm convinced the original lockdep spurious warning
issue is cured, and we're looking at something different
now, I've integrated all of these fixes together as one
commit as below.

Thanks a lot Patrick.

netdev: Handle ->addr_list_lock just like ->_xmit_lock for lockdep.

The new address list lock needs to handle the same device layering
issues that the _xmit_lock one does.

This integrates work done by Patrick McHardy.

Signed-off-by: David S. Miller <da...@davemloft.net>

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 9737c06..a641eea 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -5041,6 +5041,7 @@ static int bond_check_params(struct bond_params *params)
}

static struct lock_class_key bonding_netdev_xmit_lock_key;
+static struct lock_class_key bonding_netdev_addr_lock_key;

static void bond_set_lockdep_class_one(struct net_device *dev,
struct netdev_queue *txq,
@@ -5052,6 +5053,8 @@ static void bond_set_lockdep_class_one(struct net_device *dev,

static void bond_set_lockdep_class(struct net_device *dev)
{
+ lockdep_set_class(&dev->addr_list_lock,
+ &bonding_netdev_addr_lock_key);
netdev_for_each_tx_queue(dev, bond_set_lockdep_class_one, NULL);
}

diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c
index b6500b2..58f4b1d 100644
--- a/drivers/net/hamradio/bpqether.c
+++ b/drivers/net/hamradio/bpqether.c
@@ -123,6 +123,7 @@ static LIST_HEAD(bpq_devices);
* off into a separate class since they always nest.
*/
static struct lock_class_key bpq_netdev_xmit_lock_key;
+static struct lock_class_key bpq_netdev_addr_lock_key;

static void bpq_set_lockdep_class_one(struct net_device *dev,
struct netdev_queue *txq,
@@ -133,6 +134,7 @@ static void bpq_set_lockdep_class_one(struct net_device *dev,

static void bpq_set_lockdep_class(struct net_device *dev)
{
+ lockdep_set_class(&dev->addr_list_lock, &bpq_netdev_addr_lock_key);
netdev_for_each_tx_queue(dev, bpq_set_lockdep_class_one, NULL);
}

diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index efbc155..4239450 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -276,6 +276,7 @@ static int macvlan_change_mtu(struct net_device *dev, int new_mtu)
* separate class since they always nest.
*/
static struct lock_class_key macvlan_netdev_xmit_lock_key;
+static struct lock_class_key macvlan_netdev_addr_lock_key;

#define MACVLAN_FEATURES \
(NETIF_F_SG | NETIF_F_ALL_CSUM | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | \
@@ -295,6 +296,8 @@ static void macvlan_set_lockdep_class_one(struct net_device *dev,

static void macvlan_set_lockdep_class(struct net_device *dev)
{
+ lockdep_set_class(&dev->addr_list_lock,
+ &macvlan_netdev_addr_lock_key);
netdev_for_each_tx_queue(dev, macvlan_set_lockdep_class_one, NULL);
}

diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c
index 13d5882..3153fe9 100644
--- a/drivers/net/wireless/hostap/hostap_hw.c
+++ b/drivers/net/wireless/hostap/hostap_hw.c
@@ -3101,6 +3101,7 @@ static void prism2_clear_set_tim_queue(local_info_t *local)
* This is a natural nesting, which needs a split lock type.
*/
static struct lock_class_key hostap_netdev_xmit_lock_key;
+static struct lock_class_key hostap_netdev_addr_lock_key;

static void prism2_set_lockdep_class_one(struct net_device *dev,
struct netdev_queue *txq,
@@ -3112,6 +3113,8 @@ static void prism2_set_lockdep_class_one(struct net_device *dev,

static void prism2_set_lockdep_class(struct net_device *dev)
{
+ lockdep_set_class(&dev->addr_list_lock,
+ &hostap_netdev_addr_lock_key);
netdev_for_each_tx_queue(dev, prism2_set_lockdep_class_one, NULL);
}

diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index f42bc2b..4bf014e 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -569,6 +569,7 @@ static void vlan_dev_set_rx_mode(struct net_device *vlan_dev)
* separate class since they always nest.
*/
static struct lock_class_key vlan_netdev_xmit_lock_key;
+static struct lock_class_key vlan_netdev_addr_lock_key;

static void vlan_dev_set_lockdep_one(struct net_device *dev,
struct netdev_queue *txq,
@@ -581,6 +582,9 @@ static void vlan_dev_set_lockdep_one(struct net_device *dev,

static void vlan_dev_set_lockdep_class(struct net_device *dev, int subclass)
{
+ lockdep_set_class_and_subclass(&dev->addr_list_lock,
+ &vlan_netdev_addr_lock_key,
+ subclass);
netdev_for_each_tx_queue(dev, vlan_dev_set_lockdep_one, &subclass);
}

diff --git a/net/core/dev.c b/net/core/dev.c
index 65eea83..6bf217d 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -261,7 +261,7 @@ static RAW_NOTIFIER_HEAD(netdev_chain);

DEFINE_PER_CPU(struct softnet_data, softnet_data);

-#ifdef CONFIG_DEBUG_LOCK_ALLOC
+#ifdef CONFIG_LOCKDEP
/*
* register_netdevice() inits txq->_xmit_lock and sets lockdep class
* according to dev->type
@@ -301,6 +301,7 @@ static const char *netdev_lock_name[] =
"_xmit_NONE"};

static struct lock_class_key netdev_xmit_lock_key[ARRAY_SIZE(netdev_lock_type)];
+static struct lock_class_key netdev_addr_lock_key[ARRAY_SIZE(netdev_lock_type)];

static inline unsigned short netdev_lock_pos(unsigned short dev_type)
{
@@ -313,8 +314,8 @@ static inline unsigned short netdev_lock_pos(unsigned short dev_type)
return ARRAY_SIZE(netdev_lock_type) - 1;
}

-static inline void netdev_set_lockdep_class(spinlock_t *lock,
- unsigned short dev_type)
+static inline void netdev_set_xmit_lockdep_class(spinlock_t *lock,
+ unsigned short dev_type)
{
int i;

@@ -322,9 +323,22 @@ static inline void netdev_set_lockdep_class(spinlock_t *lock,
lockdep_set_class_and_name(lock, &netdev_xmit_lock_key[i],
netdev_lock_name[i]);
}
+
+static inline void netdev_set_addr_lockdep_class(struct net_device *dev)
+{
+ int i;
+
+ i = netdev_lock_pos(dev->type);
+ lockdep_set_class_and_name(&dev->addr_list_lock,
+ &netdev_addr_lock_key[i],
+ netdev_lock_name[i]);
+}
#else
-static inline void netdev_set_lockdep_class(spinlock_t *lock,
- unsigned short dev_type)
+static inline void netdev_set_xmit_lockdep_class(spinlock_t *lock,
+ unsigned short dev_type)
+{
+}
+static inline void netdev_set_addr_lockdep_class(struct net_device *dev)
{
}
#endif
@@ -3851,7 +3865,7 @@ static void __netdev_init_queue_locks_one(struct net_device *dev,
void *_unused)
{
spin_lock_init(&dev_queue->_xmit_lock);
- netdev_set_lockdep_class(&dev_queue->_xmit_lock, dev->type);
+ netdev_set_xmit_lockdep_class(&dev_queue->_xmit_lock, dev->type);
dev_queue->xmit_lock_owner = -1;
}

@@ -3896,6 +3910,7 @@ int register_netdevice(struct net_device *dev)
net = dev_net(dev);

spin_lock_init(&dev->addr_list_lock);
+ netdev_set_addr_lockdep_class(dev);
netdev_init_queue_locks(dev);

dev->iflink = -1;
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
index fccc250..532e4fa 100644
--- a/net/netrom/af_netrom.c
+++ b/net/netrom/af_netrom.c
@@ -73,6 +73,7 @@ static const struct proto_ops nr_proto_ops;
* separate class since they always nest.
*/
static struct lock_class_key nr_netdev_xmit_lock_key;
+static struct lock_class_key nr_netdev_addr_lock_key;

static void nr_set_lockdep_one(struct net_device *dev,
struct netdev_queue *txq,
@@ -83,6 +84,7 @@ static void nr_set_lockdep_one(struct net_device *dev,

static void nr_set_lockdep_key(struct net_device *dev)
{
+ lockdep_set_class(&dev->addr_list_lock, &nr_netdev_addr_lock_key);
netdev_for_each_tx_queue(dev, nr_set_lockdep_one, NULL);
}

diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c
index dbc963b..a7f1ce1 100644
--- a/net/rose/af_rose.c
+++ b/net/rose/af_rose.c
@@ -74,6 +74,7 @@ ax25_address rose_callsign;
* separate class since they always nest.
*/
static struct lock_class_key rose_netdev_xmit_lock_key;
+static struct lock_class_key rose_netdev_addr_lock_key;

static void rose_set_lockdep_one(struct net_device *dev,
struct netdev_queue *txq,
@@ -84,6 +85,7 @@ static void rose_set_lockdep_one(struct net_device *dev,

static void rose_set_lockdep_key(struct net_device *dev)
{
+ lockdep_set_class(&dev->addr_list_lock, &rose_netdev_addr_lock_key);
netdev_for_each_tx_queue(dev, rose_set_lockdep_one, NULL);

David Miller

unread,
Jul 22, 2008, 7:10:08 PM7/22/08
to
From: Larry Finger <Larry....@lwfinger.net>
Date: Tue, 22 Jul 2008 13:39:08 -0500

Lockdep doesn't like that we have an array of objects (the TX queues)
and we're iterating over them grabbing all of their locks.

Does anyone know how to teach lockdep that this is OK?

Jarek Poplawski

unread,
Jul 23, 2008, 2:20:09 AM7/23/08
to
On 23-07-2008 01:04, David Miller wrote:
> From: Larry Finger <Larry....@lwfinger.net>
> Date: Tue, 22 Jul 2008 13:39:08 -0500
>
>> =============================================
>> [ INFO: possible recursive locking detected ]
>> 2.6.26-Linus-05752-g93ded9b-dirty #53
>> ---------------------------------------------
>> b43/1997 is trying to acquire lock:
>> (_xmit_IEEE80211#2){-...}, at: [<ffffffffa028f322>]
>> ieee80211_scan_completed+0x130/0x2e1 [mac80211]
>>
>> but task is already holding lock:
>> (_xmit_IEEE80211#2){-...}, at: [<ffffffffa028f322>]
>> ieee80211_scan_completed+0x130/0x2e1 [mac80211]
...

> Lockdep doesn't like that we have an array of objects (the TX queues)
> and we're iterating over them grabbing all of their locks.
>
> Does anyone know how to teach lockdep that this is OK?

I guess, David Miller knows...:

http://permalink.gmane.org/gmane.linux.network/99784

Jarek P.

PS: if there is nothing new in lockdep the classical method would
be to change this static array:

static struct lock_class_key
netdev_xmit_lock_key[ARRAY_SIZE(netdev_lock_type)];

to

static struct lock_class_key
netdev_xmit_lock_key[ARRAY_SIZE(netdev_lock_type)][MAX_NUM_TX_QUEUES];

and set lockdep classes per queue as well. (If we are sure we don't
need lockdep subclasses anywhere this could be optimized by using
one lock_class_key per 8 queues and spin_lock_nested()).

David Miller

unread,
Jul 23, 2008, 4:00:23 AM7/23/08
to
From: Jarek Poplawski <jar...@gmail.com>
Date: Wed, 23 Jul 2008 06:20:36 +0000

> PS: if there is nothing new in lockdep the classical method would
> be to change this static array:
>
> static struct lock_class_key
> netdev_xmit_lock_key[ARRAY_SIZE(netdev_lock_type)];
>
> to
>
> static struct lock_class_key
> netdev_xmit_lock_key[ARRAY_SIZE(netdev_lock_type)][MAX_NUM_TX_QUEUES];
>
> and set lockdep classes per queue as well. (If we are sure we don't
> need lockdep subclasses anywhere this could be optimized by using
> one lock_class_key per 8 queues and spin_lock_nested()).

Unfortunately MAX_NUM_TX_QUEUES is USHORT_MAX, so this isn't really
a feasible approach.

spin_lock_nested() isn't all that viable either, as the subclass
limit is something like 8.

Ingo Molnar

unread,
Jul 23, 2008, 4:30:20 AM7/23/08
to

yeah, that would be handy, thanks.

Alas, the problem has not reoccured since then - more than a thousand
kernel builds down the line. Yesterday it triggered so quickly when i
updated the buildbox to the new kernel, and happened repeatedly when i
tried to build a new kernel, that i didnt assume it was something hard
to reproduce - but it went poof after i restarted distccd on the server.

So i'd suggest we do not count this as a regression, i've got no way at
the moment of reproducing it reliably.

Ingo

Jarek Poplawski

unread,
Jul 23, 2008, 5:00:24 AM7/23/08
to
On Wed, Jul 23, 2008 at 12:59:21AM -0700, David Miller wrote:
> From: Jarek Poplawski <jar...@gmail.com>
> Date: Wed, 23 Jul 2008 06:20:36 +0000
>
> > PS: if there is nothing new in lockdep the classical method would
> > be to change this static array:
> >
> > static struct lock_class_key
> > netdev_xmit_lock_key[ARRAY_SIZE(netdev_lock_type)];
> >
> > to
> >
> > static struct lock_class_key
> > netdev_xmit_lock_key[ARRAY_SIZE(netdev_lock_type)][MAX_NUM_TX_QUEUES];
> >
> > and set lockdep classes per queue as well. (If we are sure we don't
> > need lockdep subclasses anywhere this could be optimized by using
> > one lock_class_key per 8 queues and spin_lock_nested()).
>
> Unfortunately MAX_NUM_TX_QUEUES is USHORT_MAX, so this isn't really
> a feasible approach.

Is it used by real devices already? Maybe for the beginning we could
start with something less?

> spin_lock_nested() isn't all that viable either, as the subclass
> limit is something like 8.

This method would need to do some additional counting: depending of
a queue number each 8 subsequent queues share (are set to) the same
class and their number mod 8 gives the subqueue number for
spin_lock_nested().

I'll try to find if there is something new around this in lockdep.
(lockdep people added to CC.)

Jarek P.

Peter Zijlstra

unread,
Jul 23, 2008, 5:10:15 AM7/23/08
to

There isn't.

Is there a static data structure that the driver needs to instantiate to
'create' a queue? Something like:

/* this imaginary e1000 hardware has 16 hardware queues */
static struct net_tx_queue e1000e_tx_queues[16];

In that case you can stick the key in there and do:

int e1000e_init_tx_queue(struct net_tx_queue *txq)
{
...

spin_lock_init(&txq->tx_lock);
lockdep_set_class(&txq->tx_lock, &txq->tx_lock_key);

...
}

( This is what the scheduler runqueues also do )

Jarek Poplawski

unread,
Jul 23, 2008, 5:40:18 AM7/23/08
to

I guess, not.

Then, IMHO, we could be practical and simply skip lockdep validation
for "some" range of locks: e.g. to set the table for the first 256
queues only, and to do e.g. __raw_spin_lock() for bigger numbers. (If
there are any bad locking patterns this should be enough for checking.)

Jarek P.

Peter Zijlstra

unread,
Jul 23, 2008, 6:00:15 AM7/23/08
to

definite NAK on using raw spinlock ops...

I'll go look at this multiqueue stuff to see if there is anything to be
done.. David, what would be a good commit to start reading?

Jarek Poplawski

unread,
Jul 23, 2008, 6:10:27 AM7/23/08
to
On Wed, Jul 23, 2008 at 11:50:14AM +0200, Peter Zijlstra wrote:
...

> definite NAK on using raw spinlock ops...
>
> I'll go look at this multiqueue stuff to see if there is anything to be
> done.. David, what would be a good commit to start reading?

...In the case David ever sleeps: I think, the current Linus' git is
good enough (the problem is with netdevice.h: netif_tx_lock()).

Jarek P.

Peter Zijlstra

unread,
Jul 23, 2008, 7:00:20 AM7/23/08
to
On Wed, 2008-07-23 at 10:13 +0000, Jarek Poplawski wrote:
> On Wed, Jul 23, 2008 at 11:50:14AM +0200, Peter Zijlstra wrote:
> ....

> > definite NAK on using raw spinlock ops...
> >
> > I'll go look at this multiqueue stuff to see if there is anything to be
> > done.. David, what would be a good commit to start reading?
>
> ....In the case David ever sleeps: I think, the current Linus' git is

> good enough (the problem is with netdevice.h: netif_tx_lock()).

Ah, right,...

that takes a whole bunch of locks at once..

Is that really needed? - when I grep for its usage its surprisingly few
drivers using it and even less generic code.

When I look at the mac802.11 code in ieee80211_tx_pending() it looks
like it can do with just one lock at a time, instead of all - but I
might be missing some obvious details.

So I guess my question is, is netif_tx_lock() here to stay, or is the
right fix to convert all those drivers to use __netif_tx_lock() which
locks only a single queue?

It is loading more messages.
0 new messages