linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT]: Networking
@ 2008-07-20 17:44 David Miller
  2008-07-21  0:54 ` Linus Torvalds
                   ` (3 more replies)
  0 siblings, 4 replies; 201+ messages in thread
From: David Miller @ 2008-07-20 17:44 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, netdev, linux-kernel


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.Finger@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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-20 17:44 [GIT]: Networking David Miller
@ 2008-07-21  0:54 ` Linus Torvalds
  2008-07-21  1:03   ` David Miller
  2008-07-21  1:07   ` Linus Torvalds
  2008-07-21  8:36 ` iwlwifi: fix build bug in "iwlwifi: fix LED stall" Ingo Molnar
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 201+ messages in thread
From: Linus Torvalds @ 2008-07-21  0:54 UTC (permalink / raw)
  To: David Miller; +Cc: akpm, netdev, linux-kernel



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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  0:54 ` Linus Torvalds
@ 2008-07-21  1:03   ` David Miller
  2008-07-21  1:09     ` Alexey Dobriyan
  2008-07-21  1:20     ` Patrick McHardy
  2008-07-21  1:07   ` Linus Torvalds
  1 sibling, 2 replies; 201+ messages in thread
From: David Miller @ 2008-07-21  1:03 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, netdev, linux-kernel, jmorris, kaber

From: Linus Torvalds <torvalds@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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  0:54 ` Linus Torvalds
  2008-07-21  1:03   ` David Miller
@ 2008-07-21  1:07   ` Linus Torvalds
  2008-07-21  1:17     ` David Miller
  1 sibling, 1 reply; 201+ messages in thread
From: Linus Torvalds @ 2008-07-21  1:07 UTC (permalink / raw)
  To: David Miller
  Cc: Andrew Morton, netdev, Linux Kernel Mailing List, YOSHIFUJI Hideaki



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")

		Linus

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  1:03   ` David Miller
@ 2008-07-21  1:09     ` Alexey Dobriyan
  2008-07-21  1:14       ` David Miller
  2008-07-21  1:20     ` Patrick McHardy
  1 sibling, 1 reply; 201+ messages in thread
From: Alexey Dobriyan @ 2008-07-21  1:09 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, netdev, linux-kernel

> > > 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).


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  1:09     ` Alexey Dobriyan
@ 2008-07-21  1:14       ` David Miller
  2008-07-21  1:22         ` Alexey Dobriyan
  2008-07-21  2:40         ` Alexey Dobriyan
  0 siblings, 2 replies; 201+ messages in thread
From: David Miller @ 2008-07-21  1:14 UTC (permalink / raw)
  To: adobriyan; +Cc: torvalds, akpm, netdev, linux-kernel

From: Alexey Dobriyan <adobriyan@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?

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  1:07   ` Linus Torvalds
@ 2008-07-21  1:17     ` David Miller
  0 siblings, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-21  1:17 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, netdev, linux-kernel, yoshfuji

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: Text/Plain; charset=iso-8859-7, Size: 1587 bytes --]

From: Linus Torvalds <torvalds@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 <davem@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
 
ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  1:03   ` David Miller
  2008-07-21  1:09     ` Alexey Dobriyan
@ 2008-07-21  1:20     ` Patrick McHardy
  2008-07-21 11:28       ` Stefan Richter
  2008-07-21 11:45       ` James Morris
  1 sibling, 2 replies; 201+ messages in thread
From: Patrick McHardy @ 2008-07-21  1:20 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, netdev, linux-kernel, jmorris

David Miller wrote:
> From: Linus Torvalds <torvalds@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?


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  1:14       ` David Miller
@ 2008-07-21  1:22         ` Alexey Dobriyan
  2008-07-21  2:40         ` Alexey Dobriyan
  1 sibling, 0 replies; 201+ messages in thread
From: Alexey Dobriyan @ 2008-07-21  1:22 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, netdev, linux-kernel

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).


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  1:14       ` David Miller
  2008-07-21  1:22         ` Alexey Dobriyan
@ 2008-07-21  2:40         ` Alexey Dobriyan
  2008-07-21  2:48           ` David Miller
  1 sibling, 1 reply; 201+ messages in thread
From: Alexey Dobriyan @ 2008-07-21  2:40 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, netdev, linux-kernel

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



^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  2:40         ` Alexey Dobriyan
@ 2008-07-21  2:48           ` David Miller
  2008-07-21  5:11             ` David Miller
  0 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-21  2:48 UTC (permalink / raw)
  To: adobriyan; +Cc: torvalds, akpm, netdev, linux-kernel

From: Alexey Dobriyan <adobriyan@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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  2:48           ` David Miller
@ 2008-07-21  5:11             ` David Miller
  2008-07-21  9:48               ` Alexander Beregalov
                                 ` (2 more replies)
  0 siblings, 3 replies; 201+ messages in thread
From: David Miller @ 2008-07-21  5:11 UTC (permalink / raw)
  To: adobriyan; +Cc: torvalds, akpm, netdev, linux-kernel, jeffrey.t.kirsher

From: David Miller <davem@davemloft.net>
Date: Sun, 20 Jul 2008 19:48:56 -0700 (PDT)

> From: Alexey Dobriyan <adobriyan@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 <davem@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:

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* iwlwifi: fix build bug in "iwlwifi: fix LED stall"
  2008-07-20 17:44 [GIT]: Networking David Miller
  2008-07-21  0:54 ` Linus Torvalds
@ 2008-07-21  8:36 ` Ingo Molnar
  2008-07-21 10:02   ` Winkler, Tomas
  2008-07-21 12:12   ` [PATCH] iwlwifi: RS small compile warnings without CONFIG_IWLWIFI_DEBUG Tomas Winkler
  2008-07-21 13:30 ` [crash, bisected] Kernel BUG at ffffffff8079afb1 (__netif_schedule()) Ingo Molnar
  2008-07-21 13:50 ` [GIT]: Networking Ingo Molnar
  3 siblings, 2 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-21  8:36 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, linux-kernel, Tomas Winkler, John W. Linville


hi David,

>       iwlwifi: fix LED stall

please find a small build fix below.

	Ingo

-------------->
commit c61b0199e779caf2dcfdb6e83439c1fdf9f20209
Author: Ingo Molnar <mingo@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 <mingo@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 {

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  5:11             ` David Miller
@ 2008-07-21  9:48               ` Alexander Beregalov
  2008-07-21 10:16                 ` Ben Hutchings
  2008-07-21 11:57               ` Alexey Dobriyan
  2008-07-21 16:49               ` Linus Torvalds
  2 siblings, 1 reply; 201+ messages in thread
From: Alexander Beregalov @ 2008-07-21  9:48 UTC (permalink / raw)
  To: David Miller
  Cc: adobriyan, torvalds, akpm, netdev, linux-kernel, jeffrey.t.kirsher

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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* RE: iwlwifi: fix build bug in "iwlwifi: fix LED stall"
  2008-07-21  8:36 ` iwlwifi: fix build bug in "iwlwifi: fix LED stall" Ingo Molnar
@ 2008-07-21 10:02   ` Winkler, Tomas
  2008-07-21 10:53     ` Ingo Molnar
  2008-07-21 12:12   ` [PATCH] iwlwifi: RS small compile warnings without CONFIG_IWLWIFI_DEBUG Tomas Winkler
  1 sibling, 1 reply; 201+ messages in thread
From: Winkler, Tomas @ 2008-07-21 10:02 UTC (permalink / raw)
  To: Ingo Molnar, David Miller; +Cc: netdev, linux-kernel, John W. Linville



>-----Original Message-----
>From: Ingo Molnar [mailto:mingo@elte.hu]
>Sent: Monday, July 21, 2008 11:37 AM
>To: David Miller
>Cc: netdev@vger.kernel.org; linux-kernel@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.


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  9:48               ` Alexander Beregalov
@ 2008-07-21 10:16                 ` Ben Hutchings
  2008-07-21 15:35                   ` David Miller
  0 siblings, 1 reply; 201+ messages in thread
From: Ben Hutchings @ 2008-07-21 10:16 UTC (permalink / raw)
  To: Alexander Beregalov
  Cc: David Miller, adobriyan, torvalds, akpm, netdev, linux-kernel,
	jeffrey.t.kirsher

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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: iwlwifi: fix build bug in "iwlwifi: fix LED stall"
  2008-07-21 10:02   ` Winkler, Tomas
@ 2008-07-21 10:53     ` Ingo Molnar
  0 siblings, 0 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-21 10:53 UTC (permalink / raw)
  To: Winkler, Tomas; +Cc: David Miller, netdev, linux-kernel, John W. Linville


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

> 
> 
> >-----Original Message-----
> >From: Ingo Molnar [mailto:mingo@elte.hu]
> >Sent: Monday, July 21, 2008 11:37 AM
> >To: David Miller
> >Cc: netdev@vger.kernel.org; linux-kernel@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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  1:20     ` Patrick McHardy
@ 2008-07-21 11:28       ` Stefan Richter
  2008-07-21 11:45       ` James Morris
  1 sibling, 0 replies; 201+ messages in thread
From: Stefan Richter @ 2008-07-21 11:28 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: David Miller, torvalds, akpm, netdev, linux-kernel, jmorris

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/

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  1:20     ` Patrick McHardy
  2008-07-21 11:28       ` Stefan Richter
@ 2008-07-21 11:45       ` James Morris
  2008-07-21 12:05         ` Patrick McHardy
  1 sibling, 1 reply; 201+ messages in thread
From: James Morris @ 2008-07-21 11:45 UTC (permalink / raw)
  To: Patrick McHardy; +Cc: David Miller, torvalds, akpm, netdev, linux-kernel

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
<jmorris@namei.org>

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  5:11             ` David Miller
  2008-07-21  9:48               ` Alexander Beregalov
@ 2008-07-21 11:57               ` Alexey Dobriyan
  2008-07-21 15:27                 ` David Miller
  2008-07-21 16:49               ` Linus Torvalds
  2 siblings, 1 reply; 201+ messages in thread
From: Alexey Dobriyan @ 2008-07-21 11:57 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, netdev, linux-kernel, jeffrey.t.kirsher

On Sun, Jul 20, 2008 at 10:11:06PM -0700, David Miller wrote:
> From: David Miller <davem@davemloft.net>
> Date: Sun, 20 Jul 2008 19:48:56 -0700 (PDT)
> 
> > From: Alexey Dobriyan <adobriyan@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.


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21 11:45       ` James Morris
@ 2008-07-21 12:05         ` Patrick McHardy
  2008-07-21 17:28           ` David Miller
  0 siblings, 1 reply; 201+ messages in thread
From: Patrick McHardy @ 2008-07-21 12:05 UTC (permalink / raw)
  To: James Morris; +Cc: David Miller, torvalds, akpm, netdev, linux-kernel

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.



^ permalink raw reply	[flat|nested] 201+ messages in thread

* [PATCH] iwlwifi: RS small compile warnings without CONFIG_IWLWIFI_DEBUG
  2008-07-21  8:36 ` iwlwifi: fix build bug in "iwlwifi: fix LED stall" Ingo Molnar
  2008-07-21 10:02   ` Winkler, Tomas
@ 2008-07-21 12:12   ` Tomas Winkler
  2008-07-21 12:12     ` [PATCH] iwlwifi: " Tomas Winkler
  1 sibling, 1 reply; 201+ messages in thread
From: Tomas Winkler @ 2008-07-21 12:12 UTC (permalink / raw)
  To: mingo; +Cc: davem, linville, linux-kernel, netdev, Denis V. Lunev

From: Denis V. Lunev <den@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 <den@openvz.org>
Signed-off-by: Tomas Winkler <tomas.winkler@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.


^ permalink raw reply related	[flat|nested] 201+ messages in thread

* [PATCH] iwlwifi: small compile warnings without CONFIG_IWLWIFI_DEBUG
  2008-07-21 12:12   ` [PATCH] iwlwifi: RS small compile warnings without CONFIG_IWLWIFI_DEBUG Tomas Winkler
@ 2008-07-21 12:12     ` Tomas Winkler
  2008-07-21 12:12       ` [PATCH] iwlwifi: compilation error when CONFIG_IWLWIFI_DEBUG is not set Tomas Winkler
  0 siblings, 1 reply; 201+ messages in thread
From: Tomas Winkler @ 2008-07-21 12:12 UTC (permalink / raw)
  To: mingo; +Cc: davem, linville, linux-kernel, netdev, Denis V. Lunev

From: Denis V. Lunev <den@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 <den@openvz.org>
Acked-by: Tomas Winkler <tomasw@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.


^ permalink raw reply related	[flat|nested] 201+ messages in thread

* [PATCH] iwlwifi: compilation error when CONFIG_IWLWIFI_DEBUG is not set
  2008-07-21 12:12     ` [PATCH] iwlwifi: " Tomas Winkler
@ 2008-07-21 12:12       ` Tomas Winkler
  0 siblings, 0 replies; 201+ messages in thread
From: Tomas Winkler @ 2008-07-21 12:12 UTC (permalink / raw)
  To: mingo; +Cc: davem, linville, linux-kernel, netdev, Denis V. Lunev

From: Denis V. Lunev <den@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 <den@openvz.org>
Signed-off-by: Tomas Winkler <tomas.winkler@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.


^ permalink raw reply related	[flat|nested] 201+ messages in thread

* [crash, bisected] Kernel BUG at ffffffff8079afb1 (__netif_schedule())
  2008-07-20 17:44 [GIT]: Networking David Miller
  2008-07-21  0:54 ` Linus Torvalds
  2008-07-21  8:36 ` iwlwifi: fix build bug in "iwlwifi: fix LED stall" Ingo Molnar
@ 2008-07-21 13:30 ` Ingo Molnar
  2008-07-21 13:45   ` [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370 Ingo Molnar
  2008-07-21 15:07   ` [crash, bisected] Kernel BUG at ffffffff8079afb1 (__netif_schedule()) David Miller
  2008-07-21 13:50 ` [GIT]: Networking Ingo Molnar
  3 siblings, 2 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-21 13:30 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, netdev, linux-kernel


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 <davem@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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 13:30 ` [crash, bisected] Kernel BUG at ffffffff8079afb1 (__netif_schedule()) Ingo Molnar
@ 2008-07-21 13:45   ` Ingo Molnar
  2008-07-21 14:30     ` Ingo Molnar
  2008-07-21 18:23     ` [crash] kernel BUG at net/core/dev.c:1328! Ingo Molnar
  2008-07-21 15:07   ` [crash, bisected] Kernel BUG at ffffffff8079afb1 (__netif_schedule()) David Miller
  1 sibling, 2 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-21 13:45 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, netdev, linux-kernel


* Ingo Molnar <mingo@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.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-20 17:44 [GIT]: Networking David Miller
                   ` (2 preceding siblings ...)
  2008-07-21 13:30 ` [crash, bisected] Kernel BUG at ffffffff8079afb1 (__netif_schedule()) Ingo Molnar
@ 2008-07-21 13:50 ` Ingo Molnar
  2008-07-21 14:15   ` Stefan Richter
  3 siblings, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-21 13:50 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, netdev, linux-kernel


David,

* David Miller <davem@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-jan.h.kok@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



^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21 13:50 ` [GIT]: Networking Ingo Molnar
@ 2008-07-21 14:15   ` Stefan Richter
  0 siblings, 0 replies; 201+ messages in thread
From: Stefan Richter @ 2008-07-21 14:15 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: David Miller, torvalds, akpm, netdev, linux-kernel

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/

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 13:45   ` [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370 Ingo Molnar
@ 2008-07-21 14:30     ` Ingo Molnar
  2008-07-21 15:04       ` Ingo Molnar
  2008-07-21 15:10       ` [crash] BUG: unable to handle kernel NULL pointer dereference " David Miller
  2008-07-21 18:23     ` [crash] kernel BUG at net/core/dev.c:1328! Ingo Molnar
  1 sibling, 2 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-21 14:30 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, netdev, linux-kernel


* Ingo Molnar <mingo@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 <tigran@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 gniibe@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 <becker@scyld.com>
initcall atp_init_module+0x0/0x93 returned -19 after 5 msecs
calling  eql_init_module+0x0/0x5b
Equalizer2002: Simon Janes (simon@ncm.com) and David S. Miller (davem@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 <maxk@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.mclagan@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 <hermes@gibson.dropbear.id.au>, Pavel Roskin <proski@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 <proski@gnu.org>, David Gibson <hermes@gibson.dropbear.id.au>, Daniel Barlow <dan@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 <disdos@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!

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 14:30     ` Ingo Molnar
@ 2008-07-21 15:04       ` Ingo Molnar
  2008-07-21 15:24         ` David Miller
  2008-07-21 15:10       ` [crash] BUG: unable to handle kernel NULL pointer dereference " David Miller
  1 sibling, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-21 15:04 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, netdev, linux-kernel


* Ingo Molnar <mingo@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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash, bisected] Kernel BUG at ffffffff8079afb1 (__netif_schedule())
  2008-07-21 13:30 ` [crash, bisected] Kernel BUG at ffffffff8079afb1 (__netif_schedule()) Ingo Molnar
  2008-07-21 13:45   ` [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370 Ingo Molnar
@ 2008-07-21 15:07   ` David Miller
  1 sibling, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-21 15:07 UTC (permalink / raw)
  To: mingo; +Cc: torvalds, akpm, netdev, linux-kernel

From: Ingo Molnar <mingo@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 <bhutchings@solarflare.com>
Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@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);
 

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 14:30     ` Ingo Molnar
  2008-07-21 15:04       ` Ingo Molnar
@ 2008-07-21 15:10       ` David Miller
  1 sibling, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-21 15:10 UTC (permalink / raw)
  To: mingo; +Cc: torvalds, akpm, netdev, linux-kernel, linux-wireless

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: Text/Plain; charset=utf-8, Size: 61238 bytes --]

From: Ingo Molnar <mingo@elte.hu>
Date: Mon, 21 Jul 2008 16:30:23 +0200

> 
> * Ingo Molnar <mingo@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:

Johannes/wireless-folks, can you take a look at this?

Thanks.

> 
> (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 <tigran@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 gniibe@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 <becker@scyld.com>
> initcall atp_init_module+0x0/0x93 returned -19 after 5 msecs
> calling  eql_init_module+0x0/0x5b
> Equalizer2002: Simon Janes (simon@ncm.com) and David S. Miller (davem@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 <maxk@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.mclagan@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 <hermes@gibson.dropbear.id.au>, Pavel Roskin <proski@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 <proski@gnu.org>, David Gibson <hermes@gibson.dropbear.id.au>, Daniel Barlow <dan@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 <disdos@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!
ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 15:04       ` Ingo Molnar
@ 2008-07-21 15:24         ` David Miller
  2008-07-21 18:18           ` Ian Schram
  0 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-21 15:24 UTC (permalink / raw)
  To: mingo; +Cc: torvalds, akpm, netdev, linux-kernel, linux-wireless

From: Ingo Molnar <mingo@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 <mingo@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
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21 11:57               ` Alexey Dobriyan
@ 2008-07-21 15:27                 ` David Miller
  0 siblings, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-21 15:27 UTC (permalink / raw)
  To: adobriyan; +Cc: torvalds, akpm, netdev, linux-kernel, jeffrey.t.kirsher

From: Alexey Dobriyan <adobriyan@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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21 10:16                 ` Ben Hutchings
@ 2008-07-21 15:35                   ` David Miller
  2008-07-21 16:04                     ` Alexander Beregalov
  0 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-21 15:35 UTC (permalink / raw)
  To: bhutchings
  Cc: a.beregalov, adobriyan, torvalds, akpm, netdev, linux-kernel,
	jeffrey.t.kirsher

From: Ben Hutchings <bhutchings@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 <davem@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);
 }
 

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21 15:35                   ` David Miller
@ 2008-07-21 16:04                     ` Alexander Beregalov
  0 siblings, 0 replies; 201+ messages in thread
From: Alexander Beregalov @ 2008-07-21 16:04 UTC (permalink / raw)
  To: David Miller
  Cc: bhutchings, adobriyan, torvalds, akpm, netdev, linux-kernel,
	jeffrey.t.kirsher

2008/7/21 David Miller <davem@davemloft.net>:
> From: Ben Hutchings <bhutchings@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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21  5:11             ` David Miller
  2008-07-21  9:48               ` Alexander Beregalov
  2008-07-21 11:57               ` Alexey Dobriyan
@ 2008-07-21 16:49               ` Linus Torvalds
  2008-07-21 16:53                 ` David Miller
  2 siblings, 1 reply; 201+ messages in thread
From: Linus Torvalds @ 2008-07-21 16:49 UTC (permalink / raw)
  To: David Miller; +Cc: adobriyan, akpm, netdev, linux-kernel, jeffrey.t.kirsher



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;
---

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21 16:49               ` Linus Torvalds
@ 2008-07-21 16:53                 ` David Miller
  0 siblings, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-21 16:53 UTC (permalink / raw)
  To: torvalds; +Cc: adobriyan, akpm, netdev, linux-kernel, jeffrey.t.kirsher

From: Linus Torvalds <torvalds@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.

> 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;
> ---

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21 12:05         ` Patrick McHardy
@ 2008-07-21 17:28           ` David Miller
  2008-07-21 17:40             ` Linus Torvalds
  0 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-21 17:28 UTC (permalink / raw)
  To: kaber; +Cc: jmorris, torvalds, akpm, netdev, linux-kernel

From: Patrick McHardy <kaber@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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21 17:28           ` David Miller
@ 2008-07-21 17:40             ` Linus Torvalds
  2008-07-21 20:33               ` Patrick McHardy
  0 siblings, 1 reply; 201+ messages in thread
From: Linus Torvalds @ 2008-07-21 17:40 UTC (permalink / raw)
  To: David Miller; +Cc: kaber, jmorris, akpm, netdev, linux-kernel



On Mon, 21 Jul 2008, David Miller wrote:

> From: Patrick McHardy <kaber@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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 15:24         ` David Miller
@ 2008-07-21 18:18           ` Ian Schram
  2008-07-21 19:06             ` Ingo Molnar
  0 siblings, 1 reply; 201+ messages in thread
From: Ian Schram @ 2008-07-21 18:18 UTC (permalink / raw)
  To: David Miller; +Cc: mingo, torvalds, akpm, netdev, linux-kernel, wireless, j

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 <ischram@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;



^ permalink raw reply	[flat|nested] 201+ messages in thread

* [crash] kernel BUG at net/core/dev.c:1328!
  2008-07-21 13:45   ` [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370 Ingo Molnar
  2008-07-21 14:30     ` Ingo Molnar
@ 2008-07-21 18:23     ` Ingo Molnar
  2008-07-21 18:35       ` Linus Torvalds
  1 sibling, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-21 18:23 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, netdev, linux-kernel, Stefan Richter


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?

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] kernel BUG at net/core/dev.c:1328!
  2008-07-21 18:23     ` [crash] kernel BUG at net/core/dev.c:1328! Ingo Molnar
@ 2008-07-21 18:35       ` Linus Torvalds
  2008-07-21 18:46         ` Ingo Molnar
  2008-07-21 19:00         ` [crash] kernel BUG at net/core/dev.c:1328! David Miller
  0 siblings, 2 replies; 201+ messages in thread
From: Linus Torvalds @ 2008-07-21 18:35 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: David Miller, akpm, netdev, linux-kernel, Stefan Richter



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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] kernel BUG at net/core/dev.c:1328!
  2008-07-21 18:35       ` Linus Torvalds
@ 2008-07-21 18:46         ` Ingo Molnar
  2008-07-21 19:30           ` Ingo Molnar
  2008-07-22 11:21           ` [TCP bug] stuck distcc connections in latest -git Ingo Molnar
  2008-07-21 19:00         ` [crash] kernel BUG at net/core/dev.c:1328! David Miller
  1 sibling, 2 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-21 18:46 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, netdev, linux-kernel, Stefan Richter


* Linus Torvalds <torvalds@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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] kernel BUG at net/core/dev.c:1328!
  2008-07-21 18:35       ` Linus Torvalds
  2008-07-21 18:46         ` Ingo Molnar
@ 2008-07-21 19:00         ` David Miller
  2008-07-21 19:20           ` Stefan Richter
  2008-07-21 19:44           ` Ingo Molnar
  1 sibling, 2 replies; 201+ messages in thread
From: David Miller @ 2008-07-21 19:00 UTC (permalink / raw)
  To: torvalds; +Cc: mingo, akpm, netdev, linux-kernel, stefanr

From: Linus Torvalds <torvalds@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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 18:18           ` Ian Schram
@ 2008-07-21 19:06             ` Ingo Molnar
  2008-07-21 19:13               ` Larry Finger
  0 siblings, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-21 19:06 UTC (permalink / raw)
  To: Ian Schram
  Cc: David Miller, torvalds, akpm, netdev, linux-kernel, wireless, j


* Ian Schram <ischram@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 <ischram@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 <ischram@telenet.be>
    Signed-off-by: Ingo Molnar <mingo@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)
 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;

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 19:06             ` Ingo Molnar
@ 2008-07-21 19:13               ` Larry Finger
  2008-07-21 19:34                 ` Ingo Molnar
  0 siblings, 1 reply; 201+ messages in thread
From: Larry Finger @ 2008-07-21 19:13 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Ian Schram, David Miller, torvalds, akpm, netdev, linux-kernel,
	wireless, j

Ingo Molnar wrote:
> * Ian Schram <ischram@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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] kernel BUG at net/core/dev.c:1328!
  2008-07-21 19:00         ` [crash] kernel BUG at net/core/dev.c:1328! David Miller
@ 2008-07-21 19:20           ` Stefan Richter
  2008-07-21 20:11             ` David Miller
  2008-07-21 19:44           ` Ingo Molnar
  1 sibling, 1 reply; 201+ messages in thread
From: Stefan Richter @ 2008-07-21 19:20 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, mingo, akpm, netdev, linux-kernel

David Miller wrote:
> From: Linus Torvalds <torvalds@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/

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] kernel BUG at net/core/dev.c:1328!
  2008-07-21 18:46         ` Ingo Molnar
@ 2008-07-21 19:30           ` Ingo Molnar
  2008-07-22 11:21           ` [TCP bug] stuck distcc connections in latest -git Ingo Molnar
  1 sibling, 0 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-21 19:30 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, netdev, linux-kernel, Stefan Richter


* Ingo Molnar <mingo@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)

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 19:13               ` Larry Finger
@ 2008-07-21 19:34                 ` Ingo Molnar
  2008-07-21 19:43                   ` Larry Finger
  0 siblings, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-21 19:34 UTC (permalink / raw)
  To: Larry Finger
  Cc: Ian Schram, David Miller, torvalds, akpm, netdev, linux-kernel,
	wireless, j


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

> Ingo Molnar wrote:
>> * Ian Schram <ischram@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 <mingo@elte.hu>

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 19:34                 ` Ingo Molnar
@ 2008-07-21 19:43                   ` Larry Finger
  2008-07-21 19:47                     ` Linus Torvalds
  2008-07-21 20:21                     ` David Miller
  0 siblings, 2 replies; 201+ messages in thread
From: Larry Finger @ 2008-07-21 19:43 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Ian Schram, David Miller, torvalds, akpm, netdev, linux-kernel,
	wireless, j

Ingo Molnar wrote:
> * Larry Finger <Larry.Finger@lwfinger.net> wrote:
> 
>> Ingo Molnar wrote:
>>> * Ian Schram <ischram@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 <mingo@elte.hu>

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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] kernel BUG at net/core/dev.c:1328!
  2008-07-21 19:00         ` [crash] kernel BUG at net/core/dev.c:1328! David Miller
  2008-07-21 19:20           ` Stefan Richter
@ 2008-07-21 19:44           ` Ingo Molnar
  2008-07-21 20:20             ` David Miller
  1 sibling, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-21 19:44 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, akpm, netdev, linux-kernel, stefanr


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

> From: Linus Torvalds <torvalds@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 <ischram@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 <ischram@telenet.be>
    Signed-off-by: Ingo Molnar <mingo@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)
 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;

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 19:43                   ` Larry Finger
@ 2008-07-21 19:47                     ` Linus Torvalds
  2008-07-21 20:15                       ` David Miller
  2008-07-21 20:28                       ` Larry Finger
  2008-07-21 20:21                     ` David Miller
  1 sibling, 2 replies; 201+ messages in thread
From: Linus Torvalds @ 2008-07-21 19:47 UTC (permalink / raw)
  To: Larry Finger
  Cc: Ingo Molnar, Ian Schram, David Miller, akpm, netdev,
	linux-kernel, wireless, j



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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] kernel BUG at net/core/dev.c:1328!
  2008-07-21 19:20           ` Stefan Richter
@ 2008-07-21 20:11             ` David Miller
  2008-07-21 21:26               ` Stefan Richter
  0 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-21 20:11 UTC (permalink / raw)
  To: stefanr; +Cc: torvalds, mingo, akpm, netdev, linux-kernel

From: Stefan Richter <stefanr@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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 19:47                     ` Linus Torvalds
@ 2008-07-21 20:15                       ` David Miller
  2008-07-21 20:28                       ` Larry Finger
  1 sibling, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-21 20:15 UTC (permalink / raw)
  To: torvalds
  Cc: Larry.Finger, mingo, ischram, akpm, netdev, linux-kernel,
	linux-wireless, j

From: Linus Torvalds <torvalds@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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] kernel BUG at net/core/dev.c:1328!
  2008-07-21 19:44           ` Ingo Molnar
@ 2008-07-21 20:20             ` David Miller
  0 siblings, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-21 20:20 UTC (permalink / raw)
  To: mingo; +Cc: torvalds, akpm, netdev, linux-kernel, stefanr

From: Ingo Molnar <mingo@elte.hu>
Date: Mon, 21 Jul 2008 21:44:14 +0200

> 
> * David Miller <davem@davemloft.net> wrote:
> 
> > From: Linus Torvalds <torvalds@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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 19:43                   ` Larry Finger
  2008-07-21 19:47                     ` Linus Torvalds
@ 2008-07-21 20:21                     ` David Miller
  2008-07-21 20:38                       ` Larry Finger
  1 sibling, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-21 20:21 UTC (permalink / raw)
  To: Larry.Finger
  Cc: mingo, ischram, torvalds, akpm, netdev, linux-kernel, linux-wireless, j

From: Larry Finger <Larry.Finger@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.


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 19:47                     ` Linus Torvalds
  2008-07-21 20:15                       ` David Miller
@ 2008-07-21 20:28                       ` Larry Finger
  1 sibling, 0 replies; 201+ messages in thread
From: Larry Finger @ 2008-07-21 20:28 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Ingo Molnar, Ian Schram, David Miller, akpm, netdev,
	linux-kernel, wireless, j

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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21 17:40             ` Linus Torvalds
@ 2008-07-21 20:33               ` Patrick McHardy
  2008-07-23 23:42                 ` David Miller
  0 siblings, 1 reply; 201+ messages in thread
From: Patrick McHardy @ 2008-07-21 20:33 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, jmorris, akpm, netdev, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1284 bytes --]

Linus Torvalds wrote:
>> From: Patrick McHardy <kaber@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.


[-- Attachment #2: x --]
[-- Type: text/plain, Size: 1098 bytes --]

netfilter: make security table depend on NETFILTER_ADVANCED

Signed-off-by: Patrick McHardy <kaber@trash.net>
diff --git a/net/ipv4/netfilter/Kconfig b/net/ipv4/netfilter/Kconfig
index f23e60c..90eb7cb 100644
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
@@ -369,7 +369,7 @@ config IP_NF_SECURITY
 	tristate "Security table"
 	depends on IP_NF_IPTABLES
 	depends on SECURITY
-	default m if NETFILTER_ADVANCED=n
+	depends on NETFILTER_ADVANCED
 	help
 	  This option adds a `security' table to iptables, for use
 	  with Mandatory Access Control (MAC) policy.
diff --git a/net/ipv6/netfilter/Kconfig b/net/ipv6/netfilter/Kconfig
index 689dec8..0cfcce7 100644
--- a/net/ipv6/netfilter/Kconfig
+++ b/net/ipv6/netfilter/Kconfig
@@ -213,7 +213,7 @@ config IP6_NF_SECURITY
        tristate "Security table"
        depends on IP6_NF_IPTABLES
        depends on SECURITY
-       default m if NETFILTER_ADVANCED=n
+       depends on NETFILTER_ADVANCED
        help
          This option adds a `security' table to iptables, for use
          with Mandatory Access Control (MAC) policy.

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 20:21                     ` David Miller
@ 2008-07-21 20:38                       ` Larry Finger
  2008-07-21 20:46                         ` David Miller
  0 siblings, 1 reply; 201+ messages in thread
From: Larry Finger @ 2008-07-21 20:38 UTC (permalink / raw)
  To: David Miller
  Cc: mingo, ischram, torvalds, akpm, netdev, linux-kernel, linux-wireless, j

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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 20:38                       ` Larry Finger
@ 2008-07-21 20:46                         ` David Miller
  2008-07-21 20:51                           ` Patrick McHardy
  2008-07-25  6:20                           ` [lockdep warning] AOE / networking: aoenet_xmit: noop_qdisc.q.lock, INFO: inconsistent lock state at 0000000000000370 Ingo Molnar
  0 siblings, 2 replies; 201+ messages in thread
From: David Miller @ 2008-07-21 20:46 UTC (permalink / raw)
  To: Larry.Finger
  Cc: mingo, ischram, torvalds, akpm, netdev, linux-kernel, linux-wireless, j

From: Larry Finger <Larry.Finger@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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 20:46                         ` David Miller
@ 2008-07-21 20:51                           ` Patrick McHardy
  2008-07-21 21:01                             ` David Miller
  2008-07-25  6:20                           ` [lockdep warning] AOE / networking: aoenet_xmit: noop_qdisc.q.lock, INFO: inconsistent lock state at 0000000000000370 Ingo Molnar
  1 sibling, 1 reply; 201+ messages in thread
From: Patrick McHardy @ 2008-07-21 20:51 UTC (permalink / raw)
  To: David Miller
  Cc: Larry.Finger, mingo, ischram, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, j

David Miller wrote:
> From: Larry Finger <Larry.Finger@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.


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 20:51                           ` Patrick McHardy
@ 2008-07-21 21:01                             ` David Miller
  2008-07-21 21:06                               ` Patrick McHardy
  0 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-21 21:01 UTC (permalink / raw)
  To: kaber
  Cc: Larry.Finger, mingo, ischram, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, j

From: Patrick McHardy <kaber@trash.net>
Date: Mon, 21 Jul 2008 22:51:53 +0200

> David Miller wrote:
> > From: Larry Finger <Larry.Finger@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);
 }
 

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 21:01                             ` David Miller
@ 2008-07-21 21:06                               ` Patrick McHardy
  2008-07-21 21:35                                 ` Patrick McHardy
  0 siblings, 1 reply; 201+ messages in thread
From: Patrick McHardy @ 2008-07-21 21:06 UTC (permalink / raw)
  To: David Miller
  Cc: Larry.Finger, mingo, ischram, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, j

David Miller wrote:
> From: Patrick McHardy <kaber@trash.net>
> Date: Mon, 21 Jul 2008 22:51:53 +0200
> 
>> David Miller wrote:
>>> From: Larry Finger <Larry.Finger@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 :)



^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] kernel BUG at net/core/dev.c:1328!
  2008-07-21 20:11             ` David Miller
@ 2008-07-21 21:26               ` Stefan Richter
  0 siblings, 0 replies; 201+ messages in thread
From: Stefan Richter @ 2008-07-21 21:26 UTC (permalink / raw)
  To: David Miller; +Cc: torvalds, mingo, akpm, netdev, linux-kernel

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/

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 21:06                               ` Patrick McHardy
@ 2008-07-21 21:35                                 ` Patrick McHardy
  2008-07-21 21:42                                   ` Patrick McHardy
  2008-07-21 21:51                                   ` Larry Finger
  0 siblings, 2 replies; 201+ messages in thread
From: Patrick McHardy @ 2008-07-21 21:35 UTC (permalink / raw)
  To: David Miller
  Cc: Larry.Finger, mingo, ischram, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, j

[-- Attachment #1: Type: text/plain, Size: 659 bytes --]

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.



[-- Attachment #2: x --]
[-- Type: text/plain, Size: 2579 bytes --]

net: set lockdep class for dev->addr_list_lock

Initialize dev->addr_list_lock lockdep classes equally to dev->_xmit_lock.

Signed-off-by: Patrick McHardy <kaber@trash.net>

diff --git a/net/core/dev.c b/net/core/dev.c
index 2eed17b..9cfed90 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -299,6 +299,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)
 {
@@ -311,8 +312,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;
 
@@ -320,9 +321,23 @@ 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(spinlock_t *lock,
+						 unsigned short dev_type)
+{
+	int i;
+
+	i = netdev_lock_pos(dev_type);
+	lockdep_set_class_and_name(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(spinlock_t *lock,
+						 unsigned short dev_type)
 {
 }
 #endif
@@ -3843,14 +3858,15 @@ 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;
 }
 
-static void netdev_init_queue_locks(struct net_device *dev)
+static void netdev_init_locks(struct net_device *dev)
 {
 	netdev_for_each_tx_queue(dev, __netdev_init_queue_locks_one, NULL);
 	__netdev_init_queue_locks_one(dev, &dev->rx_queue, NULL);
+	netdev_set_addr_lockdep_class(&dev->addr_list_lock, dev->type);
 }
 
 /**
@@ -3888,7 +3904,7 @@ int register_netdevice(struct net_device *dev)
 	net = dev_net(dev);
 
 	spin_lock_init(&dev->addr_list_lock);
-	netdev_init_queue_locks(dev);
+	netdev_init_locks(dev);
 
 	dev->iflink = -1;
 

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 21:35                                 ` Patrick McHardy
@ 2008-07-21 21:42                                   ` Patrick McHardy
  2008-07-21 21:51                                   ` Larry Finger
  1 sibling, 0 replies; 201+ messages in thread
From: Patrick McHardy @ 2008-07-21 21:42 UTC (permalink / raw)
  To: David Miller
  Cc: Larry.Finger, mingo, ischram, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, j

[-- Attachment #1: Type: text/plain, Size: 814 bytes --]

Patrick McHardy wrote:
> 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.

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.


[-- Attachment #2: x --]
[-- Type: text/plain, Size: 2233 bytes --]

net: set lockdep class for dev->addr_list_lock

Initialize dev->addr_list_lock lockdep classes equally to dev->_xmit_lock.

Signed-off-by: Patrick McHardy <kaber@trash.net>

diff --git a/net/core/dev.c b/net/core/dev.c
index 2eed17b..6f8b6c5 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -299,6 +299,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)
 {
@@ -311,8 +312,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;
 
@@ -320,9 +321,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
@@ -3843,7 +3857,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;
 }
 
@@ -3888,6 +3902,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;

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 21:35                                 ` Patrick McHardy
  2008-07-21 21:42                                   ` Patrick McHardy
@ 2008-07-21 21:51                                   ` Larry Finger
  2008-07-21 22:04                                     ` Patrick McHardy
  1 sibling, 1 reply; 201+ messages in thread
From: Larry Finger @ 2008-07-21 21:51 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: David Miller, mingo, ischram, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, j

Patrick McHardy wrote:
> 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.

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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 21:51                                   ` Larry Finger
@ 2008-07-21 22:04                                     ` Patrick McHardy
  2008-07-21 22:40                                       ` Larry Finger
  0 siblings, 1 reply; 201+ messages in thread
From: Patrick McHardy @ 2008-07-21 22:04 UTC (permalink / raw)
  To: Larry Finger
  Cc: David Miller, mingo, ischram, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, j

[-- Attachment #1: Type: text/plain, Size: 398 bytes --]

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? :)



[-- Attachment #2: x --]
[-- Type: text/plain, Size: 389 bytes --]

diff --git a/net/core/dev.c b/net/core/dev.c
index 2eed17b..371b1a0 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -259,7 +259,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

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 22:04                                     ` Patrick McHardy
@ 2008-07-21 22:40                                       ` Larry Finger
  2008-07-21 23:15                                         ` David Miller
  0 siblings, 1 reply; 201+ messages in thread
From: Larry Finger @ 2008-07-21 22:40 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: David Miller, mingo, ischram, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, j

Patrick McHardy wrote:
> 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? :)

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.

Larry

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 22:40                                       ` Larry Finger
@ 2008-07-21 23:15                                         ` David Miller
  2008-07-22  6:34                                           ` Larry Finger
  0 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-21 23:15 UTC (permalink / raw)
  To: Larry.Finger
  Cc: kaber, mingo, ischram, torvalds, akpm, netdev, linux-kernel,
	linux-wireless, j

From: Larry Finger <Larry.Finger@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 <davem@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 <davem@davemloft.net>


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-21 23:15                                         ` David Miller
@ 2008-07-22  6:34                                           ` Larry Finger
  2008-07-22 10:51                                             ` Jarek Poplawski
  2008-07-22 11:32                                             ` David Miller
  0 siblings, 2 replies; 201+ messages in thread
From: Larry Finger @ 2008-07-22  6:34 UTC (permalink / raw)
  To: David Miller
  Cc: kaber, mingo, ischram, torvalds, akpm, netdev, linux-kernel,
	linux-wireless, j

David Miller wrote:
> From: Larry Finger <Larry.Finger@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 <davem@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 <davem@davemloft.net>

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

Larry

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-22  6:34                                           ` Larry Finger
@ 2008-07-22 10:51                                             ` Jarek Poplawski
  2008-07-22 11:32                                             ` David Miller
  1 sibling, 0 replies; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-22 10:51 UTC (permalink / raw)
  To: Larry Finger
  Cc: David Miller, kaber, mingo, ischram, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, j

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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* [TCP bug] stuck distcc connections in latest -git
  2008-07-21 18:46         ` Ingo Molnar
  2008-07-21 19:30           ` Ingo Molnar
@ 2008-07-22 11:21           ` Ingo Molnar
  2008-07-22 13:45             ` David Newall
  1 sibling, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-22 11:21 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: David Miller, akpm, netdev, linux-kernel, Stefan Richter


* Ingo Molnar <mingo@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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-22  6:34                                           ` Larry Finger
  2008-07-22 10:51                                             ` Jarek Poplawski
@ 2008-07-22 11:32                                             ` David Miller
  2008-07-22 12:52                                               ` Larry Finger
  2008-07-22 13:02                                               ` Larry Finger
  1 sibling, 2 replies; 201+ messages in thread
From: David Miller @ 2008-07-22 11:32 UTC (permalink / raw)
  To: Larry.Finger
  Cc: kaber, mingo, ischram, torvalds, akpm, netdev, linux-kernel,
	linux-wireless, j

From: Larry Finger <Larry.Finger@lwfinger.net>
Date: Tue, 22 Jul 2008 01:34:28 -0500

> David Miller wrote:
> > From: Larry Finger <Larry.Finger@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?

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-22 11:32                                             ` David Miller
@ 2008-07-22 12:52                                               ` Larry Finger
  2008-07-22 20:43                                                 ` David Miller
  2008-07-22 13:02                                               ` Larry Finger
  1 sibling, 1 reply; 201+ messages in thread
From: Larry Finger @ 2008-07-22 12:52 UTC (permalink / raw)
  To: David Miller
  Cc: kaber, mingo, ischram, torvalds, akpm, netdev, linux-kernel,
	linux-wireless, j

David Miller wrote:
> From: Larry Finger <Larry.Finger@lwfinger.net>
> Date: Tue, 22 Jul 2008 01:34:28 -0500
> 
>> David Miller wrote:
>>> From: Larry Finger <Larry.Finger@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



^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-22 11:32                                             ` David Miller
  2008-07-22 12:52                                               ` Larry Finger
@ 2008-07-22 13:02                                               ` Larry Finger
  2008-07-22 14:53                                                 ` Patrick McHardy
  2008-07-22 16:39                                                 ` Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98() Larry Finger
  1 sibling, 2 replies; 201+ messages in thread
From: Larry Finger @ 2008-07-22 13:02 UTC (permalink / raw)
  To: David Miller
  Cc: kaber, mingo, ischram, torvalds, akpm, netdev, linux-kernel,
	linux-wireless, j

David Miller wrote:
> From: Larry Finger <Larry.Finger@lwfinger.net>
> Date: Tue, 22 Jul 2008 01:34:28 -0500
> 
>> David Miller wrote:
>>> From: Larry Finger <Larry.Finger@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 <davem@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 <davem@davemloft.net>

Larry

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug] stuck distcc connections in latest -git
  2008-07-22 11:21           ` [TCP bug] stuck distcc connections in latest -git Ingo Molnar
@ 2008-07-22 13:45             ` David Newall
  2008-07-22 13:57               ` Ingo Molnar
  0 siblings, 1 reply; 201+ messages in thread
From: David Newall @ 2008-07-22 13:45 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Linus Torvalds, David Miller, akpm, netdev, linux-kernel, Stefan Richter

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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug] stuck distcc connections in latest -git
  2008-07-22 13:45             ` David Newall
@ 2008-07-22 13:57               ` Ingo Molnar
  2008-07-22 14:54                 ` David Newall
  0 siblings, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-22 13:57 UTC (permalink / raw)
  To: David Newall
  Cc: Linus Torvalds, David Miller, akpm, netdev, linux-kernel, Stefan Richter


* David Newall <davidn@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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-22 13:02                                               ` Larry Finger
@ 2008-07-22 14:53                                                 ` Patrick McHardy
  2008-07-22 21:17                                                   ` David Miller
  2008-07-22 16:39                                                 ` Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98() Larry Finger
  1 sibling, 1 reply; 201+ messages in thread
From: Patrick McHardy @ 2008-07-22 14:53 UTC (permalink / raw)
  To: Larry Finger
  Cc: David Miller, mingo, ischram, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, j

[-- Attachment #1: Type: text/plain, Size: 1663 bytes --]

Larry Finger wrote:
> David Miller wrote:
>> From: Larry Finger <Larry.Finger@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.


[-- Attachment #2: 01.diff --]
[-- Type: text/x-diff, Size: 5578 bytes --]

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);
 }
 


[-- Attachment #3: 02.diff --]
[-- Type: text/x-diff, Size: 2233 bytes --]

net: set lockdep class for dev->addr_list_lock

Initialize dev->addr_list_lock lockdep classes equally to dev->_xmit_lock.

Signed-off-by: Patrick McHardy <kaber@trash.net>

diff --git a/net/core/dev.c b/net/core/dev.c
index 2eed17b..6f8b6c5 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -299,6 +299,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)
 {
@@ -311,8 +312,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;
 
@@ -320,9 +321,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
@@ -3843,7 +3857,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;
 }
 
@@ -3888,6 +3902,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;

[-- Attachment #4: 03.diff --]
[-- Type: text/x-diff, Size: 389 bytes --]

diff --git a/net/core/dev.c b/net/core/dev.c
index 2eed17b..371b1a0 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -259,7 +259,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

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [TCP bug] stuck distcc connections in latest -git
  2008-07-22 13:57               ` Ingo Molnar
@ 2008-07-22 14:54                 ` David Newall
  2008-07-22 15:34                   ` Ingo Molnar
  0 siblings, 1 reply; 201+ messages in thread
From: David Newall @ 2008-07-22 14:54 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Linus Torvalds, David Miller, akpm, netdev, linux-kernel, Stefan Richter

Ingo Molnar wrote:
> * David Newall <davidn@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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug] stuck distcc connections in latest -git
  2008-07-22 14:54                 ` David Newall
@ 2008-07-22 15:34                   ` Ingo Molnar
  2008-07-22 21:12                     ` Willy Tarreau
  0 siblings, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-22 15:34 UTC (permalink / raw)
  To: David Newall
  Cc: Linus Torvalds, David Miller, akpm, netdev, linux-kernel, Stefan Richter

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

> Ingo Molnar wrote:
> > * David Newall <davidn@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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-22 13:02                                               ` Larry Finger
  2008-07-22 14:53                                                 ` Patrick McHardy
@ 2008-07-22 16:39                                                 ` Larry Finger
  2008-07-22 17:20                                                   ` Patrick McHardy
  1 sibling, 1 reply; 201+ messages in thread
From: Larry Finger @ 2008-07-22 16:39 UTC (permalink / raw)
  To: David Miller, Patrick McHardy
  Cc: torvalds, akpm, netdev, linux-kernel, linux-wireless

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,

Larry

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-22 16:39                                                 ` Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98() Larry Finger
@ 2008-07-22 17:20                                                   ` Patrick McHardy
  2008-07-22 18:39                                                     ` Larry Finger
  0 siblings, 1 reply; 201+ messages in thread
From: Patrick McHardy @ 2008-07-22 17:20 UTC (permalink / raw)
  To: Larry Finger
  Cc: David Miller, torvalds, akpm, netdev, linux-kernel, linux-wireless

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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-22 17:20                                                   ` Patrick McHardy
@ 2008-07-22 18:39                                                     ` Larry Finger
  2008-07-22 18:44                                                       ` Patrick McHardy
  2008-07-22 23:04                                                       ` David Miller
  0 siblings, 2 replies; 201+ messages in thread
From: Larry Finger @ 2008-07-22 18:39 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: David Miller, torvalds, akpm, netdev, linux-kernel, linux-wireless

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





^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-22 18:39                                                     ` Larry Finger
@ 2008-07-22 18:44                                                       ` Patrick McHardy
  2008-07-22 19:30                                                         ` Larry Finger
  2008-07-22 23:04                                                       ` David Miller
  1 sibling, 1 reply; 201+ messages in thread
From: Patrick McHardy @ 2008-07-22 18:44 UTC (permalink / raw)
  To: Larry Finger
  Cc: David Miller, torvalds, akpm, netdev, linux-kernel, linux-wireless

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] 


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-22 18:44                                                       ` Patrick McHardy
@ 2008-07-22 19:30                                                         ` Larry Finger
  0 siblings, 0 replies; 201+ messages in thread
From: Larry Finger @ 2008-07-22 19:30 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: David Miller, torvalds, akpm, netdev, linux-kernel, linux-wireless

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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-22 12:52                                               ` Larry Finger
@ 2008-07-22 20:43                                                 ` David Miller
  0 siblings, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-22 20:43 UTC (permalink / raw)
  To: Larry.Finger
  Cc: kaber, mingo, ischram, torvalds, akpm, netdev, linux-kernel,
	linux-wireless, j

From: Larry Finger <Larry.Finger@lwfinger.net>
Date: Tue, 22 Jul 2008 07:52:24 -0500

> David Miller wrote:
> > From: Larry Finger <Larry.Finger@lwfinger.net>
> > Date: Tue, 22 Jul 2008 01:34:28 -0500
> > 
> >> David Miller wrote:
> >>> From: Larry Finger <Larry.Finger@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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug] stuck distcc connections in latest -git
  2008-07-22 15:34                   ` Ingo Molnar
@ 2008-07-22 21:12                     ` Willy Tarreau
  2008-07-23  8:26                       ` Ingo Molnar
  0 siblings, 1 reply; 201+ messages in thread
From: Willy Tarreau @ 2008-07-22 21:12 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: David Newall, Linus Torvalds, David Miller, akpm, netdev,
	linux-kernel, Stefan Richter

On Tue, Jul 22, 2008 at 05:34:43PM +0200, Ingo Molnar wrote:
> * David Newall <davidn@davidnewall.com> wrote:
> 
> > Ingo Molnar wrote:
> > > * David Newall <davidn@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


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
  2008-07-22 14:53                                                 ` Patrick McHardy
@ 2008-07-22 21:17                                                   ` David Miller
  0 siblings, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-22 21:17 UTC (permalink / raw)
  To: kaber
  Cc: Larry.Finger, mingo, ischram, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, j

From: Patrick McHardy <kaber@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 <davem@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);
 }
 

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-22 18:39                                                     ` Larry Finger
  2008-07-22 18:44                                                       ` Patrick McHardy
@ 2008-07-22 23:04                                                       ` David Miller
  2008-07-23  6:20                                                         ` Jarek Poplawski
  1 sibling, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-22 23:04 UTC (permalink / raw)
  To: Larry.Finger; +Cc: kaber, torvalds, akpm, netdev, linux-kernel, linux-wireless

From: Larry Finger <Larry.Finger@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]
> 
> 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

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?

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-22 23:04                                                       ` David Miller
@ 2008-07-23  6:20                                                         ` Jarek Poplawski
  2008-07-23  7:59                                                           ` David Miller
  0 siblings, 1 reply; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-23  6:20 UTC (permalink / raw)
  To: David Miller
  Cc: Larry.Finger, kaber, torvalds, akpm, netdev, linux-kernel,
	linux-wireless

On 23-07-2008 01:04, David Miller wrote:
> From: Larry Finger <Larry.Finger@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()).

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23  6:20                                                         ` Jarek Poplawski
@ 2008-07-23  7:59                                                           ` David Miller
  2008-07-23  8:54                                                             ` Jarek Poplawski
  0 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-23  7:59 UTC (permalink / raw)
  To: jarkao2
  Cc: Larry.Finger, kaber, torvalds, akpm, netdev, linux-kernel,
	linux-wireless

From: Jarek Poplawski <jarkao2@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.


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug] stuck distcc connections in latest -git
  2008-07-22 21:12                     ` Willy Tarreau
@ 2008-07-23  8:26                       ` Ingo Molnar
  2008-07-24  6:04                         ` [TCP bug, regression] " Ingo Molnar
  0 siblings, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-23  8:26 UTC (permalink / raw)
  To: Willy Tarreau
  Cc: David Newall, Linus Torvalds, David Miller, akpm, netdev,
	linux-kernel, Stefan Richter


* Willy Tarreau <w@1wt.eu> wrote:

> On Tue, Jul 22, 2008 at 05:34:43PM +0200, Ingo Molnar wrote:
> > * David Newall <davidn@davidnewall.com> wrote:
> > 
> > > Ingo Molnar wrote:
> > > > * David Newall <davidn@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).

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

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23  7:59                                                           ` David Miller
@ 2008-07-23  8:54                                                             ` Jarek Poplawski
  2008-07-23  9:03                                                               ` Peter Zijlstra
  0 siblings, 1 reply; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-23  8:54 UTC (permalink / raw)
  To: David Miller
  Cc: Larry.Finger, kaber, torvalds, akpm, netdev, linux-kernel,
	linux-wireless, peterz, mingo

On Wed, Jul 23, 2008 at 12:59:21AM -0700, David Miller wrote:
> From: Jarek Poplawski <jarkao2@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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23  8:54                                                             ` Jarek Poplawski
@ 2008-07-23  9:03                                                               ` Peter Zijlstra
  2008-07-23  9:35                                                                 ` Jarek Poplawski
  0 siblings, 1 reply; 201+ messages in thread
From: Peter Zijlstra @ 2008-07-23  9:03 UTC (permalink / raw)
  To: Jarek Poplawski
  Cc: David Miller, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo

On Wed, 2008-07-23 at 08:54 +0000, Jarek Poplawski wrote:
> On Wed, Jul 23, 2008 at 12:59:21AM -0700, David Miller wrote:
> > From: Jarek Poplawski <jarkao2@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.)

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 )


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23  9:03                                                               ` Peter Zijlstra
@ 2008-07-23  9:35                                                                 ` Jarek Poplawski
  2008-07-23  9:50                                                                   ` Peter Zijlstra
  0 siblings, 1 reply; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-23  9:35 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: David Miller, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo

On Wed, Jul 23, 2008 at 11:03:06AM +0200, Peter Zijlstra wrote:
> On Wed, 2008-07-23 at 08:54 +0000, Jarek Poplawski wrote:
> > On Wed, Jul 23, 2008 at 12:59:21AM -0700, David Miller wrote:
> > > From: Jarek Poplawski <jarkao2@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.)
> 
> 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]; 

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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23  9:35                                                                 ` Jarek Poplawski
@ 2008-07-23  9:50                                                                   ` Peter Zijlstra
  2008-07-23 10:13                                                                     ` Jarek Poplawski
  0 siblings, 1 reply; 201+ messages in thread
From: Peter Zijlstra @ 2008-07-23  9:50 UTC (permalink / raw)
  To: Jarek Poplawski
  Cc: David Miller, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo

On Wed, 2008-07-23 at 09:35 +0000, Jarek Poplawski wrote:
> On Wed, Jul 23, 2008 at 11:03:06AM +0200, Peter Zijlstra wrote:
> > On Wed, 2008-07-23 at 08:54 +0000, Jarek Poplawski wrote:
> > > On Wed, Jul 23, 2008 at 12:59:21AM -0700, David Miller wrote:
> > > > From: Jarek Poplawski <jarkao2@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.)
> > 
> > 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]; 
> 
> 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.)

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?



^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23  9:50                                                                   ` Peter Zijlstra
@ 2008-07-23 10:13                                                                     ` Jarek Poplawski
  2008-07-23 10:58                                                                       ` Peter Zijlstra
  0 siblings, 1 reply; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-23 10:13 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: David Miller, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo

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.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23 10:13                                                                     ` Jarek Poplawski
@ 2008-07-23 10:58                                                                       ` Peter Zijlstra
  2008-07-23 11:35                                                                         ` Jarek Poplawski
  2008-07-23 20:14                                                                         ` David Miller
  0 siblings, 2 replies; 201+ messages in thread
From: Peter Zijlstra @ 2008-07-23 10:58 UTC (permalink / raw)
  To: Jarek Poplawski
  Cc: David Miller, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo

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?


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23 10:58                                                                       ` Peter Zijlstra
@ 2008-07-23 11:35                                                                         ` Jarek Poplawski
  2008-07-23 11:49                                                                           ` Jarek Poplawski
  2008-07-23 20:14                                                                         ` David Miller
  1 sibling, 1 reply; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-23 11:35 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: David Miller, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo

On Wed, Jul 23, 2008 at 12:58:16PM +0200, Peter Zijlstra wrote:
...
> 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's a new thing mainly for new hardware/drivers, and just after
conversion (older drivers effectively use __netif_tx_lock()), so it'll
probably stay for some time until something better is found. David,
will tell the rest, I hope.

Jarek P.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23 11:35                                                                         ` Jarek Poplawski
@ 2008-07-23 11:49                                                                           ` Jarek Poplawski
  2008-07-23 20:16                                                                             ` David Miller
  0 siblings, 1 reply; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-23 11:49 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: David Miller, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo

On Wed, Jul 23, 2008 at 11:35:19AM +0000, Jarek Poplawski wrote:
> On Wed, Jul 23, 2008 at 12:58:16PM +0200, Peter Zijlstra wrote:
...
> > 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's a new thing mainly for new hardware/drivers, and just after
> conversion (older drivers effectively use __netif_tx_lock()), so it'll
> probably stay for some time until something better is found. David,
> will tell the rest, I hope.

...And, of course, these new drivers should also lock a single queue
where possible.
 
Jarek P.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23 10:58                                                                       ` Peter Zijlstra
  2008-07-23 11:35                                                                         ` Jarek Poplawski
@ 2008-07-23 20:14                                                                         ` David Miller
  2008-07-24  7:00                                                                           ` Peter Zijlstra
  2008-07-25 17:04                                                                           ` Ingo Oeser
  1 sibling, 2 replies; 201+ messages in thread
From: David Miller @ 2008-07-23 20:14 UTC (permalink / raw)
  To: peterz
  Cc: jarkao2, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo

From: Peter Zijlstra <peterz@infradead.org>
Date: Wed, 23 Jul 2008 12:58:16 +0200

> 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's staying.

It's trying to block all potential calls into the ->hard_start_xmit()
method of the driver, and the only reliable way to do that is to take
all the TX queue locks.  And in one form or another, we're going to
have this "grab/release all the TX queue locks" construct.

I find it interesting that this cannot be simply described to lockdep
:-)

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23 11:49                                                                           ` Jarek Poplawski
@ 2008-07-23 20:16                                                                             ` David Miller
  2008-07-23 20:43                                                                               ` Jarek Poplawski
  2008-07-24  9:10                                                                               ` Peter Zijlstra
  0 siblings, 2 replies; 201+ messages in thread
From: David Miller @ 2008-07-23 20:16 UTC (permalink / raw)
  To: jarkao2
  Cc: peterz, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo

From: Jarek Poplawski <jarkao2@gmail.com>
Date: Wed, 23 Jul 2008 11:49:14 +0000

> On Wed, Jul 23, 2008 at 11:35:19AM +0000, Jarek Poplawski wrote:
> > On Wed, Jul 23, 2008 at 12:58:16PM +0200, Peter Zijlstra wrote:
> ...
> > > 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's a new thing mainly for new hardware/drivers, and just after
> > conversion (older drivers effectively use __netif_tx_lock()), so it'll
> > probably stay for some time until something better is found. David,
> > will tell the rest, I hope.
> 
> ...And, of course, these new drivers should also lock a single queue
> where possible.

It isn't going away.

There will always be a need for a "stop all the TX queues" operation.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23 20:16                                                                             ` David Miller
@ 2008-07-23 20:43                                                                               ` Jarek Poplawski
  2008-07-23 20:55                                                                                 ` David Miller
  2008-07-24  9:10                                                                               ` Peter Zijlstra
  1 sibling, 1 reply; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-23 20:43 UTC (permalink / raw)
  To: David Miller
  Cc: peterz, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo

On Wed, Jul 23, 2008 at 01:16:07PM -0700, David Miller wrote:
...
> There will always be a need for a "stop all the TX queues" operation.

The question is if the current way is "all correct". As a matter of
fact I think Peter's doubts could be justified: taking "USHORT_MAX"
locks looks really dubious (so maybe it's not so strange lockdep
didn't get used to this).

Jarek P.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23 20:43                                                                               ` Jarek Poplawski
@ 2008-07-23 20:55                                                                                 ` David Miller
  0 siblings, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-23 20:55 UTC (permalink / raw)
  To: jarkao2
  Cc: peterz, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo

From: Jarek Poplawski <jarkao2@gmail.com>
Date: Wed, 23 Jul 2008 22:43:35 +0200

> On Wed, Jul 23, 2008 at 01:16:07PM -0700, David Miller wrote:
> ...
> > There will always be a need for a "stop all the TX queues" operation.
> 
> The question is if the current way is "all correct". As a matter of
> fact I think Peter's doubts could be justified: taking "USHORT_MAX"
> locks looks really dubious (so maybe it's not so strange lockdep
> didn't get used to this).

There are, of course, potentially other ways to achieve the objective.

And for non-multiqueue aware devices (which is the vast majority of
the 400 or so networking drivers we have) there is only one queue and
thus one lock taken.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [GIT]: Networking
  2008-07-21 20:33               ` Patrick McHardy
@ 2008-07-23 23:42                 ` David Miller
  0 siblings, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-23 23:42 UTC (permalink / raw)
  To: kaber; +Cc: torvalds, jmorris, akpm, netdev, linux-kernel

From: Patrick McHardy <kaber@trash.net>
Date: Mon, 21 Jul 2008 22:33:18 +0200

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

I've applied this, thanks Patrick.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-23  8:26                       ` Ingo Molnar
@ 2008-07-24  6:04                         ` Ingo Molnar
  2008-07-24  6:32                           ` Ingo Molnar
  2008-07-24  9:05                           ` Herbert Xu
  0 siblings, 2 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-24  6:04 UTC (permalink / raw)
  To: Willy Tarreau, David S. Miller
  Cc: David Newall, Linus Torvalds, akpm, netdev, linux-kernel,
	Stefan Richter, Rafael J. Wysocki


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

> Alas, the problem has not reoccured since then - more than a thousand 
> kernel builds down the line. [...]

the permanently hug distcc kernel build bug triggered again, twice. 
First time it happened yesterday, i left it running overnight and it 
never recovered after a 14+ hours of wait.

It shows a similar pattern, 'ESTABLISHED' state on both sides, but the 
client-side is stuck and the server (running latest kernel) is seemingly 
clueless about that fact:

 client:

  Proto Recv-Q Send-Q Local Address       Foreign Address     State
  tcp        0 375450 10.0.1.16:39201     10.0.1.19:3632      ESTABLISHED

 server:

  Proto Recv-Q Send-Q Local Address       Foreign Address     State
  tcp        0      0 10.0.1.19:3632      10.0.1.16:39201     ESTABLISHED

i waited ~30 minutes in this second case.

the client (running 2.6.24) does periodic 120 seconds retransmits:

07:40:48.255452 IP dione.39201 > phoenix.distcc: . 1608:2144(536) ack 1 win 584007:40:48.255547 IP phoenix.distcc > dione.39201: . ack 2144 win 65535
07:40:48.255564 IP dione.39201 > phoenix.distcc: . 67143:67679(536) ack 1 win 5840
07:40:48.255648 IP phoenix.distcc > dione.39201: . ack 2144 win 65535
07:42:48.255440 IP dione.39201 > phoenix.distcc: . 2144:2680(536) ack 1 win 5840
07:42:48.255559 IP phoenix.distcc > dione.39201: . ack 2680 win 65535
07:42:48.255570 IP dione.39201 > phoenix.distcc: . 67679:68215(536) ack 1 win 5840
07:42:48.255659 IP phoenix.distcc > dione.39201: . ack 2680 win 65535
07:44:48.255436 IP dione.39201 > phoenix.distcc: . 2680:3216(536) ack 1 win 584007:44:48.255570 IP phoenix.distcc > dione.39201: . ack 3216 win 65535
07:44:48.255585 IP dione.39201 > phoenix.distcc: . 68215:68751(536) ack 1 win 5840
07:44:48.255669 IP phoenix.distcc > dione.39201: . ack 3216 win 65535

the server (running the latest kernel) responds:

07:40:47.551098 IP dione.39201 > phoenix.distcc: . 1072:1608(536) ack 1 win 584007:40:47.551141 IP phoenix.distcc > dione.39201: . ack 1608 win 65535
07:40:47.551204 IP dione.39201 > phoenix.distcc: . 66607:67143(536) ack 1 win 5840
07:40:47.551213 IP phoenix.distcc > dione.39201: . ack 1608 win 65535
07:42:47.570994 IP dione.39201 > phoenix.distcc: . 1608:2144(536) ack 1 win 584007:42:47.571027 IP phoenix.distcc > dione.39201: . ack 2144 win 65535
07:42:47.571117 IP dione.39201 > phoenix.distcc: . 67143:67679(536) ack 1 win 5840
07:42:47.571127 IP phoenix.distcc > dione.39201: . ack 2144 win 65535
07:44:47.590901 IP dione.39201 > phoenix.distcc: . 2144:2680(536) ack 1 win 584007:44:47.590960 IP phoenix.distcc > dione.39201: . ack 2680 win 65535
07:44:47.591042 IP dione.39201 > phoenix.distcc: . 67679:68215(536) ack 1 win 5840
07:44:47.591054 IP phoenix.distcc > dione.39201: . ack 2680 win 65535

full client socket state:

 dione:~> grep $(printf "%X\n" 39201) /proc/net/tcp
   44: 1001000A:9921 1301000A:0E30 01 0005ABF2:00000000 01:00002B8A 
       00000000   500        0 63130083 2 ffff81000c762d00 120000 0 0 28 101

 [ a few minutes later ]

   44: 1001000A:9921 1301000A:0E30 01 0005A392:00000000 01:00002BF0 
       00000000   500        0 63130083 2 ffff81000c762d00 120000 0 0 32 101

 [ i.e. the tx queue did increase by 2144 bytes - 4x 536 bytes ]

full server socket state:

 phoenix:~> grep $(printf "%X\n" 39201) /proc/net/tcp
    6: 1301000A:0E30 1001000A:9921 01 00000000:00000000 00:00000000 
       00000000    99        0 728382 1 ffff88042d8db280 300 4 30 2 -1

 [ a few minutes later ]

    6: 1301000A:0E30 1001000A:9921 01 00000000:00000000 00:00000000 
       00000000    99        0 728382 1 ffff88042d8db280 300 4 30 2 -1

 [ i.e. no change - no pending packets ]

I've started a longer capture session as well - it seems the TCP stack 
is slowly cycling through retransmissions of 536-byte packets, with 
375450 bytes pending? At 120 seconds a pop that would be about 23 hours 
to make any progress on - but i'm not sure i interpreted that right. It 
all looks very weird.

The timestamps of the two boxes are synced up to within about 1 second:

  earth4:~> for N in dione phoenix; do ssh $N date; done
  Thu Jul 24 07:44:02 CEST 2008
  Thu Jul 24 07:44:02 CEST 2008

( but the two boxes are responding to each other fine, so ordering of 
  events is not a question here. )

Any other state you'd like to see before i continue with -tip testing? 

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  6:04                         ` [TCP bug, regression] " Ingo Molnar
@ 2008-07-24  6:32                           ` Ingo Molnar
  2008-07-24  7:33                             ` Willy Tarreau
  2008-07-24  7:53                             ` Herbert Xu
  2008-07-24  9:05                           ` Herbert Xu
  1 sibling, 2 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-24  6:32 UTC (permalink / raw)
  To: Willy Tarreau, David S. Miller
  Cc: David Newall, Linus Torvalds, akpm, netdev, linux-kernel,
	Stefan Richter, Rafael J. Wysocki


here's a longer log from the server, with sequences, flags, etc:

08:06:47.809947 IP (tos 0x0, ttl 64, id 13998, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234555110:234555646(536) ack 2272574194 win 5840
08:06:47.809974 IP (tos 0x0, ttl 64, id 27389, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x9900 (correct), 2272574194:2272574194(0) ack 234555646 win 65535
08:06:47.810051 IP (tos 0x0, ttl 64, id 13999, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234620645:234621181(536) ack 2272574194 win 5840
08:06:47.810065 IP (tos 0x0, ttl 64, id 27390, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x9900 (correct), 2272574194:2272574194(0) ack 234555646 win 65535
08:08:47.829813 IP (tos 0x0, ttl 64, id 14000, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234555646:234556182(536) ack 2272574194 win 5840
08:08:47.829909 IP (tos 0x0, ttl 64, id 27391, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x96e8 (correct), 2272574194:2272574194(0) ack 234556182 win 65535
08:08:47.830009 IP (tos 0x0, ttl 64, id 14001, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234621181:234621717(536) ack 2272574194 win 5840
08:08:47.830026 IP (tos 0x0, ttl 64, id 27392, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x96e8 (correct), 2272574194:2272574194(0) ack 234556182 win 65535
08:10:47.849756 IP (tos 0x0, ttl 64, id 14002, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234556182:234556718(536) ack 2272574194 win 5840
08:10:47.849845 IP (tos 0x0, ttl 64, id 27393, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x94d0 (correct), 2272574194:2272574194(0) ack 234556718 win 65535
08:10:47.849936 IP (tos 0x0, ttl 64, id 14003, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234621717:234622253(536) ack 2272574194 win 5840
08:10:47.849951 IP (tos 0x0, ttl 64, id 27394, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x94d0 (correct), 2272574194:2272574194(0) ack 234556718 win 65535
08:12:47.870018 IP (tos 0x0, ttl 64, id 14004, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234556718:234557254(536) ack 2272574194 win 5840
08:12:47.870091 IP (tos 0x0, ttl 64, id 27395, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x92b8 (correct), 2272574194:2272574194(0) ack 234557254 win 65535
08:12:47.870217 IP (tos 0x0, ttl 64, id 14005, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234622253:234622789(536) ack 2272574194 win 5840
08:12:47.870266 IP (tos 0x0, ttl 64, id 27396, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x92b8 (correct), 2272574194:2272574194(0) ack 234557254 win 65535
08:14:47.889925 IP (tos 0x0, ttl 64, id 14006, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234557254:234557790(536) ack 2272574194 win 5840
08:14:47.890006 IP (tos 0x0, ttl 64, id 27397, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x90a0 (correct), 2272574194:2272574194(0) ack 234557790 win 65535
08:14:47.890105 IP (tos 0x0, ttl 64, id 14007, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234622789:234623325(536) ack 2272574194 win 5840
08:14:47.890120 IP (tos 0x0, ttl 64, id 27398, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x90a0 (correct), 2272574194:2272574194(0) ack 234557790 win 65535
08:16:47.909483 IP (tos 0x0, ttl 64, id 14008, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234557790:234558326(536) ack 2272574194 win 5840
08:16:47.909583 IP (tos 0x0, ttl 64, id 27399, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8e88 (correct), 2272574194:2272574194(0) ack 234558326 win 65535
08:16:47.909700 IP (tos 0x0, ttl 64, id 14009, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234623325:234623861(536) ack 2272574194 win 5840
08:16:47.909717 IP (tos 0x0, ttl 64, id 27400, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8e88 (correct), 2272574194:2272574194(0) ack 234558326 win 65535
08:18:47.929372 IP (tos 0x0, ttl 64, id 14010, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234558326:234558862(536) ack 2272574194 win 5840
08:18:47.929428 IP (tos 0x0, ttl 64, id 27401, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8c70 (correct), 2272574194:2272574194(0) ack 234558862 win 65535
08:18:47.929506 IP (tos 0x0, ttl 64, id 14011, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234623861:234624397(536) ack 2272574194 win 5840
08:18:47.929519 IP (tos 0x0, ttl 64, id 27402, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8c70 (correct), 2272574194:2272574194(0) ack 234558862 win 65535
08:20:47.949661 IP (tos 0x0, ttl 64, id 14012, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234558862:234559398(536) ack 2272574194 win 5840
08:20:47.949761 IP (tos 0x0, ttl 64, id 27403, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8a58 (correct), 2272574194:2272574194(0) ack 234559398 win 65535
08:20:47.949867 IP (tos 0x0, ttl 64, id 14013, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234624397:234624933(536) ack 2272574194 win 5840
08:20:47.949884 IP (tos 0x0, ttl 64, id 27404, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8a58 (correct), 2272574194:2272574194(0) ack 234559398 win 65535
08:22:47.969196 IP (tos 0x0, ttl 64, id 14014, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234559398:234559934(536) ack 2272574194 win 5840
08:22:47.969291 IP (tos 0x0, ttl 64, id 27405, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8840 (correct), 2272574194:2272574194(0) ack 234559934 win 65535
08:22:47.969372 IP (tos 0x0, ttl 64, id 14015, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234624933:234625469(536) ack 2272574194 win 5840
08:22:47.969433 IP (tos 0x0, ttl 64, id 27406, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8840 (correct), 2272574194:2272574194(0) ack 234559934 win 65535
08:24:47.989458 IP (tos 0x0, ttl 64, id 14016, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234559934:234560470(536) ack 2272574194 win 5840
08:24:47.989518 IP (tos 0x0, ttl 64, id 27407, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8628 (correct), 2272574194:2272574194(0) ack 234560470 win 65535
08:24:47.989642 IP (tos 0x0, ttl 64, id 14017, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234625469:234626005(536) ack 2272574194 win 5840
08:24:47.989655 IP (tos 0x0, ttl 64, id 27408, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8628 (correct), 2272574194:2272574194(0) ack 234560470 win 65535
08:26:48.009355 IP (tos 0x0, ttl 64, id 14018, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234560470:234561006(536) ack 2272574194 win 5840
08:26:48.009432 IP (tos 0x0, ttl 64, id 27409, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8410 (correct), 2272574194:2272574194(0) ack 234561006 win 65535
08:26:48.009523 IP (tos 0x0, ttl 64, id 14019, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234626005:234626541(536) ack 2272574194 win 5840
08:26:48.009539 IP (tos 0x0, ttl 64, id 27410, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8410 (correct), 2272574194:2272574194(0) ack 234561006 win 65535
08:28:48.028909 IP (tos 0x0, ttl 64, id 14020, offset 0, flags [DF], proto TCP (6), length 290) dione.39201 > phoenix.distcc: . 234561006:234561256(250) ack 2272574194 win 5840
08:28:48.028961 IP (tos 0x0, ttl 64, id 27411, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8316 (correct), 2272574194:2272574194(0) ack 234561256 win 65535
08:28:48.029044 IP (tos 0x0, ttl 64, id 14021, offset 0, flags [DF], proto TCP (6), length 147) dione.39201 > phoenix.distcc: P 234626541:234626648(107) ack 2272574194 win 5840
08:28:48.029057 IP (tos 0x0, ttl 64, id 27412, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8316 (correct), 2272574194:2272574194(0) ack 234561256 win 65535
08:30:48.049167 IP (tos 0x0, ttl 64, id 14022, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234561256:234561792(536) ack 2272574194 win 5840
08:30:48.049223 IP (tos 0x0, ttl 64, id 27413, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
08:30:48.049341 IP (tos 0x0, ttl 64, id 14023, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234626648:234627184(536) ack 2272574194 win 5840
08:30:48.049348 IP (tos 0x0, ttl 64, id 14024, offset 0, flags [DF], proto TCP (6), length 183) dione.39201 > phoenix.distcc: . 234627184:234627327(143) ack 2272574194 win 5840
08:30:48.049354 IP (tos 0x0, ttl 64, id 27414, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
08:30:48.049359 IP (tos 0x0, ttl 64, id 27415, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23 20:14                                                                         ` David Miller
@ 2008-07-24  7:00                                                                           ` Peter Zijlstra
  2008-07-25 17:04                                                                           ` Ingo Oeser
  1 sibling, 0 replies; 201+ messages in thread
From: Peter Zijlstra @ 2008-07-24  7:00 UTC (permalink / raw)
  To: David Miller
  Cc: jarkao2, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo

On Wed, 2008-07-23 at 13:14 -0700, David Miller wrote:
> From: Peter Zijlstra <peterz@infradead.org>
> Date: Wed, 23 Jul 2008 12:58:16 +0200
> 
> > 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's staying.
> 
> It's trying to block all potential calls into the ->hard_start_xmit()
> method of the driver, and the only reliable way to do that is to take
> all the TX queue locks.  And in one form or another, we're going to
> have this "grab/release all the TX queue locks" construct.
> 
> I find it interesting that this cannot be simply described to lockdep
> :-)

If you think its OK to take USHORT_MAX locks at once, I'm afraid we'll
have to agree to disagree :-/

Thing is, lockdep wants to be able to describe the locking hierarchy
with classes, and each class needs to be in static storage for various
reasons.

So if you make a locking hierarchy that is USHORT_MAX deep, you need at
least that amount of static classes.

Also, you'll run into the fact that lockdep will only track like 48 held
locks, after that it self terminates.

I'm aware of only 2 sites in the kernel that break this limit. The
down-side of stretching this limit is that deep lock chains come with
costs (esp so on -rt), so I'm not particularly eager to grow this - it
might give the impresssion its a good idea to have very long lock
chains.


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  6:32                           ` Ingo Molnar
@ 2008-07-24  7:33                             ` Willy Tarreau
  2008-07-24  8:35                               ` Ingo Molnar
  2008-07-24  7:53                             ` Herbert Xu
  1 sibling, 1 reply; 201+ messages in thread
From: Willy Tarreau @ 2008-07-24  7:33 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: David S. Miller, David Newall, Linus Torvalds, akpm, netdev,
	linux-kernel, Stefan Richter, Rafael J. Wysocki

On Thu, Jul 24, 2008 at 08:32:42AM +0200, Ingo Molnar wrote:
> 
> here's a longer log from the server, with sequences, flags, etc:

good. The sequence numbers from dione to phoenix are bouncing back and
forth because a big data chunk was lost, so dione is alternatively
sending and old segment (retransmit) which, when ACKed, allows it to
slide the window forward and send one more chunk from the window tip.

> 08:06:47.809947 IP (tos 0x0, ttl 64, id 13998, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234555110:234555646(536) ack 2272574194 win 5840
> 08:06:47.809974 IP (tos 0x0, ttl 64, id 27389, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x9900 (correct), 2272574194:2272574194(0) ack 234555646 win 65535
> 08:06:47.810051 IP (tos 0x0, ttl 64, id 13999, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234620645:234621181(536) ack 2272574194 win 5840
> 08:06:47.810065 IP (tos 0x0, ttl 64, id 27390, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x9900 (correct), 2272574194:2272574194(0) ack 234555646 win 65535
> 08:08:47.829813 IP (tos 0x0, ttl 64, id 14000, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234555646:234556182(536) ack 2272574194 win 5840
> 08:08:47.829909 IP (tos 0x0, ttl 64, id 27391, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x96e8 (correct), 2272574194:2272574194(0) ack 234556182 win 65535
> 08:08:47.830009 IP (tos 0x0, ttl 64, id 14001, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234621181:234621717(536) ack 2272574194 win 5840
(...)
> 08:30:48.049167 IP (tos 0x0, ttl 64, id 14022, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234561256:234561792(536) ack 2272574194 win 5840
> 08:30:48.049223 IP (tos 0x0, ttl 64, id 27413, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
> 08:30:48.049341 IP (tos 0x0, ttl 64, id 14023, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234626648:234627184(536) ack 2272574194 win 5840
> 08:30:48.049348 IP (tos 0x0, ttl 64, id 14024, offset 0, flags [DF], proto TCP (6), length 183) dione.39201 > phoenix.distcc: . 234627184:234627327(143) ack 2272574194 win 5840

here it looks like dione believes it does not have the chunk starting
at 234561792. Maybe it moved its window too far ? It only sends the
tip of the window.

> 08:30:48.049354 IP (tos 0x0, ttl 64, id 27414, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
> 08:30:48.049359 IP (tos 0x0, ttl 64, id 27415, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535

And phoenix insists on getting what is missing from the window.

So dione is wrong here.

Regards,
Willy


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  6:32                           ` Ingo Molnar
  2008-07-24  7:33                             ` Willy Tarreau
@ 2008-07-24  7:53                             ` Herbert Xu
  2008-07-24  8:24                               ` Willy Tarreau
  2008-07-24  8:27                               ` Ingo Molnar
  1 sibling, 2 replies; 201+ messages in thread
From: Herbert Xu @ 2008-07-24  7:53 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: w, davem, davidn, torvalds, akpm, netdev, linux-kernel, stefanr, rjw

Ingo Molnar <mingo@elte.hu> wrote:
> 
> here's a longer log from the server, with sequences, flags, etc:

Sorry but which is the server, phoenix?

> 08:28:48.029057 IP (tos 0x0, ttl 64, id 27412, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8316 (correct), 2272574194:2272574194(0) ack 234561256 win 65535
> 08:30:48.049167 IP (tos 0x0, ttl 64, id 14022, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234561256:234561792(536) ack 2272574194 win 5840
> 08:30:48.049223 IP (tos 0x0, ttl 64, id 27413, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
> 08:30:48.049341 IP (tos 0x0, ttl 64, id 14023, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234626648:234627184(536) ack 2272574194 win 5840
> 08:30:48.049348 IP (tos 0x0, ttl 64, id 14024, offset 0, flags [DF], proto TCP (6), length 183) dione.39201 > phoenix.distcc: . 234627184:234627327(143) ack 2272574194 win 5840
> 08:30:48.049354 IP (tos 0x0, ttl 64, id 27414, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
> 08:30:48.049359 IP (tos 0x0, ttl 64, id 27415, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535

No further traffic is generated for this connection?

For a problem like this, you really need to dump on both sides
to get the full picture.  Otherwise it's difficult to tell why
we have a gap after 234561792 which is never filled in by dione.

BTW any reason why you appear to have SACK off?

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  7:53                             ` Herbert Xu
@ 2008-07-24  8:24                               ` Willy Tarreau
  2008-07-24  8:27                               ` Ingo Molnar
  1 sibling, 0 replies; 201+ messages in thread
From: Willy Tarreau @ 2008-07-24  8:24 UTC (permalink / raw)
  To: Herbert Xu
  Cc: Ingo Molnar, davem, davidn, torvalds, akpm, netdev, linux-kernel,
	stefanr, rjw

On Thu, Jul 24, 2008 at 03:53:40PM +0800, Herbert Xu wrote:
> Ingo Molnar <mingo@elte.hu> wrote:
> > 
> > here's a longer log from the server, with sequences, flags, etc:
> 
> Sorry but which is the server, phoenix?
> 
> > 08:28:48.029057 IP (tos 0x0, ttl 64, id 27412, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8316 (correct), 2272574194:2272574194(0) ack 234561256 win 65535
> > 08:30:48.049167 IP (tos 0x0, ttl 64, id 14022, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234561256:234561792(536) ack 2272574194 win 5840
> > 08:30:48.049223 IP (tos 0x0, ttl 64, id 27413, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
> > 08:30:48.049341 IP (tos 0x0, ttl 64, id 14023, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234626648:234627184(536) ack 2272574194 win 5840
> > 08:30:48.049348 IP (tos 0x0, ttl 64, id 14024, offset 0, flags [DF], proto TCP (6), length 183) dione.39201 > phoenix.distcc: . 234627184:234627327(143) ack 2272574194 win 5840
> > 08:30:48.049354 IP (tos 0x0, ttl 64, id 27414, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
> > 08:30:48.049359 IP (tos 0x0, ttl 64, id 27415, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
> 
> No further traffic is generated for this connection?
> 
> For a problem like this, you really need to dump on both sides
> to get the full picture.  Otherwise it's difficult to tell why
> we have a gap after 234561792 which is never filled in by dione.

Given the TTLs, it looks to me like both are on the same LAN. Also,
234561792 is the window trail it seems.

> BTW any reason why you appear to have SACK off?

and also MSS is at the lowest value (536), maybe because of numerous
losses on large segments ?

Willy


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  7:53                             ` Herbert Xu
  2008-07-24  8:24                               ` Willy Tarreau
@ 2008-07-24  8:27                               ` Ingo Molnar
  2008-07-24  8:36                                 ` David Miller
  1 sibling, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-24  8:27 UTC (permalink / raw)
  To: Herbert Xu
  Cc: w, davem, davidn, torvalds, akpm, netdev, linux-kernel, stefanr, rjw


* Herbert Xu <herbert@gondor.apana.org.au> wrote:

> Ingo Molnar <mingo@elte.hu> wrote:
> > 
> > here's a longer log from the server, with sequences, flags, etc:
> 
> Sorry but which is the server, phoenix?

yeah.

> > 08:28:48.029057 IP (tos 0x0, ttl 64, id 27412, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x8316 (correct), 2272574194:2272574194(0) ack 234561256 win 65535
> > 08:30:48.049167 IP (tos 0x0, ttl 64, id 14022, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234561256:234561792(536) ack 2272574194 win 5840
> > 08:30:48.049223 IP (tos 0x0, ttl 64, id 27413, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
> > 08:30:48.049341 IP (tos 0x0, ttl 64, id 14023, offset 0, flags [DF], proto TCP (6), length 576) dione.39201 > phoenix.distcc: . 234626648:234627184(536) ack 2272574194 win 5840
> > 08:30:48.049348 IP (tos 0x0, ttl 64, id 14024, offset 0, flags [DF], proto TCP (6), length 183) dione.39201 > phoenix.distcc: . 234627184:234627327(143) ack 2272574194 win 5840
> > 08:30:48.049354 IP (tos 0x0, ttl 64, id 27414, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
> > 08:30:48.049359 IP (tos 0x0, ttl 64, id 27415, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
> 
> No further traffic is generated for this connection?

you mean besides the periodic 2 minute stuff? Correct.

> For a problem like this, you really need to dump on both sides to get 
> the full picture.  Otherwise it's difficult to tell why we have a gap 
> after 234561792 which is never filled in by dione.

well, i dumped on both sides and posted the result (in my first mail), 
didnt i?

> BTW any reason why you appear to have SACK off?

default distro setup, Fedora 9 and Fedora 8. No extra tweaking that i'm 
aware of.

Fortunately this is my lucky day and i just triggered an half-incident, 
a "half hang". The connection was stuck for about 40 minutes - and 2 
minutes after i started tracing it on both sides it got unstuck. If the 
stall is shorter than that i'd normally not notice it. (except for a 
drop in testing throughput)

Server (phoenix) and client (dione) dumps attached.

Note, these hung TCP problems started after i upgraded the server's 
kernel to the big networking merge. Somewhere in the 24 hours preceding 
my first report:

    Date: Tue, 22 Jul 2008 13:21:33 +0200

I upgrade the server's kernel daily, so the regression window is pretty 
accurate. So the prime suspect is one of these 1232 commits:

| commit db6d8c7a4027b48d797b369a53f8470aaeed7063
| Merge: 3a53337... fb65a7c...
| Author: Linus Torvalds <torvalds@linux-foundation.org>
| Date:   Sun Jul 20 17:43:29 2008 -0700
|
|    Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
|
|    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (1232 commits)

i.e.:

  last known good kernel is:             v2.6.26-3465-g5b664cb
  first known broken kernel is:          v2.6.26-4811-gdb6d8c7
  last tested (still broken) kernel is:  v2.6.26-6077-gc010b2f

Still not reproducible enough to bisect it.

Thanks,

	Ingo

------------------>
[traced on the client, dione]

10:03:23.590481 IP (tos 0x0, ttl 64, id 46098, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xb6ce), 1979565914:1979566450(536) ack 2260258133 win 5840
10:03:23.590593 IP (tos 0x0, ttl 64, id 19850, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5a6b (correct), 2260258133:2260258133(0) ack 1979566450 win 65535
10:03:23.590605 IP (tos 0x0, ttl 64, id 46099, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x2bd1), 1979631449:1979631985(536) ack 2260258133 win 5840
10:03:23.590693 IP (tos 0x0, ttl 64, id 19851, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5a6b (correct), 2260258133:2260258133(0) ack 1979566450 win 65535
10:05:23.590442 IP (tos 0x0, ttl 64, id 46100, offset 0, flags [DF], proto TCP (6), length 183) dione.40344 > phoenix.distcc: ., cksum 0x16cc (incorrect (-> 0xc006), 1979566450:1979566593(143) ack 2260258133 win 5840
10:05:23.590580 IP (tos 0x0, ttl 64, id 19852, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x59dc (correct), 2260258133:2260258133(0) ack 1979566593 win 65535
10:05:23.590605 IP (tos 0x0, ttl 64, id 46101, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xa38a), 1979566593:1979567129(536) ack 2260258133 win 5840
10:05:23.590608 IP (tos 0x0, ttl 64, id 46102, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x7d22), 1979567129:1979567665(536) ack 2260258133 win 5840
10:05:23.590879 IP (tos 0x0, ttl 64, id 19853, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5a6b (correct), 2260258133:2260258133(0) ack 1979631985 win 65535
10:05:23.590976 IP (tos 0x0, ttl 64, id 46103, offset 0, flags [DF], proto TCP (6), length 1648) dione.40344 > phoenix.distcc: ., cksum 0x1c85 (incorrect (-> 0x2436), 1979631985:1979633593(1608) ack 2260258133 win 5840
10:05:23.590982 IP (tos 0x0, ttl 64, id 19854, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5a6b (correct), 2260258133:2260258133(0) ack 1979631985 win 65535
10:05:23.590986 IP (tos 0x0, ttl 64, id 46106, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x0eb7), 1979633593:1979634129(536) ack 2260258133 win 5840
10:05:23.591079 IP (tos 0x0, ttl 64, id 19855, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5853 (correct), 2260258133:2260258133(0) ack 1979632521 win 65535
10:05:23.591087 IP (tos 0x0, ttl 64, id 46107, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x3e75), 1979634129:1979634665(536) ack 2260258133 win 5840
10:05:23.591090 IP (tos 0x0, ttl 64, id 19856, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x563b (correct), 2260258133:2260258133(0) ack 1979633057 win 65535
10:05:23.591094 IP (tos 0x0, ttl 64, id 46108, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x48d3), 1979634665:1979635737(1072) ack 2260258133 win 5840
10:05:23.591098 IP (tos 0x0, ttl 64, id 19857, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5423 (correct), 2260258133:2260258133(0) ack 1979633593 win 65535
10:05:23.591103 IP (tos 0x0, ttl 64, id 46110, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xe7b1), 1979635737:1979636809(1072) ack 2260258133 win 5840
10:05:23.591107 IP (tos 0x0, ttl 64, id 19858, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x520b (correct), 2260258133:2260258133(0) ack 1979634129 win 65535
10:05:23.591111 IP (tos 0x0, ttl 64, id 46112, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x5fa7), 1979636809:1979637881(1072) ack 2260258133 win 5840
10:05:23.591179 IP (tos 0x0, ttl 64, id 19859, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4ff3 (correct), 2260258133:2260258133(0) ack 1979634665 win 65535
10:05:23.591186 IP (tos 0x0, ttl 64, id 46114, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x8a24), 1979637881:1979638953(1072) ack 2260258133 win 5840
10:05:23.591190 IP (tos 0x0, ttl 64, id 19860, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4ddb (correct), 2260258133:2260258133(0) ack 1979635201 win 65535
10:05:23.591194 IP (tos 0x0, ttl 64, id 46116, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x0da7), 1979638953:1979640025(1072) ack 2260258133 win 5840
10:05:23.591198 IP (tos 0x0, ttl 64, id 19861, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4bc3 (correct), 2260258133:2260258133(0) ack 1979635737 win 65535
10:05:23.591202 IP (tos 0x0, ttl 64, id 46118, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x7008), 1979640025:1979641097(1072) ack 2260258133 win 5840
10:05:23.591206 IP (tos 0x0, ttl 64, id 19862, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x49ab (correct), 2260258133:2260258133(0) ack 1979636273 win 65535
10:05:23.591210 IP (tos 0x0, ttl 64, id 46120, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x9591), 1979641097:1979642169(1072) ack 2260258133 win 5840
10:05:23.591214 IP (tos 0x0, ttl 64, id 19863, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4793 (correct), 2260258133:2260258133(0) ack 1979636809 win 65535
10:05:23.591219 IP (tos 0x0, ttl 64, id 46122, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x3377), 1979642169:1979643241(1072) ack 2260258133 win 5840
10:05:23.591222 IP (tos 0x0, ttl 64, id 19864, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x457b (correct), 2260258133:2260258133(0) ack 1979637345 win 65535
10:05:23.591228 IP (tos 0x0, ttl 64, id 46124, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xf421), 1979643241:1979644313(1072) ack 2260258133 win 5840
10:05:23.591232 IP (tos 0x0, ttl 64, id 19865, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4363 (correct), 2260258133:2260258133(0) ack 1979637881 win 65535
10:05:23.591236 IP (tos 0x0, ttl 64, id 46126, offset 0, flags [DF], proto TCP (6), length 433) dione.40344 > phoenix.distcc: ., cksum 0x17c6 (incorrect (-> 0x4f0c), 1979644313:1979644706(393) ack 2260258133 win 5840
10:05:23.591239 IP (tos 0x0, ttl 64, id 46127, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xd389), 1979644706:1979645242(536) ack 2260258133 win 5840
10:05:23.591254 IP (tos 0x0, ttl 64, id 19866, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x414b (correct), 2260258133:2260258133(0) ack 1979638417 win 65535
10:05:23.591257 IP (tos 0x0, ttl 64, id 46128, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x10ea), 1979645242:1979646314(1072) ack 2260258133 win 5840
10:05:23.591259 IP (tos 0x0, ttl 64, id 19867, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3f33 (correct), 2260258133:2260258133(0) ack 1979638953 win 65535
10:05:23.591262 IP (tos 0x0, ttl 64, id 46130, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x7867), 1979646314:1979647386(1072) ack 2260258133 win 5840
10:05:23.591264 IP (tos 0x0, ttl 64, id 19868, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3d1b (correct), 2260258133:2260258133(0) ack 1979639489 win 65535
10:05:23.591267 IP (tos 0x0, ttl 64, id 46132, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x0843), 1979647386:1979648458(1072) ack 2260258133 win 5840
10:05:23.591269 IP (tos 0x0, ttl 64, id 19869, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3b03 (correct), 2260258133:2260258133(0) ack 1979640025 win 65535
10:05:23.591272 IP (tos 0x0, ttl 64, id 46134, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x3bd3), 1979648458:1979649530(1072) ack 2260258133 win 5840
10:05:23.591274 IP (tos 0x0, ttl 64, id 19870, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x38eb (correct), 2260258133:2260258133(0) ack 1979640561 win 65535
10:05:23.591276 IP (tos 0x0, ttl 64, id 46136, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xe070), 1979649530:1979650602(1072) ack 2260258133 win 5840
10:05:23.591330 IP (tos 0x0, ttl 64, id 19871, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x36d3 (correct), 2260258133:2260258133(0) ack 1979641097 win 65535
10:05:23.591333 IP (tos 0x0, ttl 64, id 46138, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xc112), 1979650602:1979651674(1072) ack 2260258133 win 5840
10:05:23.591336 IP (tos 0x0, ttl 64, id 19872, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x34bb (correct), 2260258133:2260258133(0) ack 1979641633 win 65535
10:05:23.591338 IP (tos 0x0, ttl 64, id 46140, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x49a1), 1979651674:1979652746(1072) ack 2260258133 win 5840
10:05:23.591341 IP (tos 0x0, ttl 64, id 19873, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x32a3 (correct), 2260258133:2260258133(0) ack 1979642169 win 65535
10:05:23.591343 IP (tos 0x0, ttl 64, id 46142, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xd0d1), 1979652746:1979653818(1072) ack 2260258133 win 5840
10:05:23.591345 IP (tos 0x0, ttl 64, id 19874, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x308b (correct), 2260258133:2260258133(0) ack 1979642705 win 65535
10:05:23.591348 IP (tos 0x0, ttl 64, id 46144, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x835e), 1979653818:1979654890(1072) ack 2260258133 win 5840
10:05:23.591350 IP (tos 0x0, ttl 64, id 19875, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2e73 (correct), 2260258133:2260258133(0) ack 1979643241 win 65535
10:05:23.591352 IP (tos 0x0, ttl 64, id 46146, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xffb0), 1979654890:1979655962(1072) ack 2260258133 win 5840
10:05:23.591354 IP (tos 0x0, ttl 64, id 19876, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2c5b (correct), 2260258133:2260258133(0) ack 1979643777 win 65535
10:05:23.591357 IP (tos 0x0, ttl 64, id 46148, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x4b8d), 1979655962:1979656498(536) ack 2260258133 win 5840
10:05:23.591359 IP (tos 0x0, ttl 64, id 19877, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2a43 (correct), 2260258133:2260258133(0) ack 1979644313 win 65535
10:05:23.591361 IP (tos 0x0, ttl 64, id 46149, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x7825), 1979656498:1979657034(536) ack 2260258133 win 5840
10:05:23.591362 IP (tos 0x0, ttl 64, id 19878, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x28ba (correct), 2260258133:2260258133(0) ack 1979644706 win 65535
10:05:23.591364 IP (tos 0x0, ttl 64, id 46150, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xdf49), 1979657034:1979658106(1072) ack 2260258133 win 5840
10:05:23.591367 IP (tos 0x0, ttl 64, id 19879, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x26a2 (correct), 2260258133:2260258133(0) ack 1979645242 win 65535
10:05:23.591369 IP (tos 0x0, ttl 64, id 46152, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xcd06), 1979658106:1979658642(536) ack 2260258133 win 5840
10:05:23.591371 IP (tos 0x0, ttl 64, id 19880, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x248a (correct), 2260258133:2260258133(0) ack 1979645778 win 65535
10:05:23.591373 IP (tos 0x0, ttl 64, id 46153, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xf71e), 1979658642:1979659178(536) ack 2260258133 win 5840
10:05:23.591374 IP (tos 0x0, ttl 64, id 19881, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2272 (correct), 2260258133:2260258133(0) ack 1979646314 win 65535
10:05:23.591377 IP (tos 0x0, ttl 64, id 46154, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x2b14), 1979659178:1979659714(536) ack 2260258133 win 5840
10:05:23.591378 IP (tos 0x0, ttl 64, id 19882, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x205a (correct), 2260258133:2260258133(0) ack 1979646850 win 65535
10:05:23.591381 IP (tos 0x0, ttl 64, id 46155, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xb4b3), 1979659714:1979660250(536) ack 2260258133 win 5840
10:05:23.591382 IP (tos 0x0, ttl 64, id 19883, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1e42 (correct), 2260258133:2260258133(0) ack 1979647386 win 65535
10:05:23.591384 IP (tos 0x0, ttl 64, id 46156, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xfe09), 1979660250:1979661322(1072) ack 2260258133 win 5840
10:05:23.591387 IP (tos 0x0, ttl 64, id 19884, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1c2a (correct), 2260258133:2260258133(0) ack 1979647922 win 65535
10:05:23.591389 IP (tos 0x0, ttl 64, id 46158, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x0961), 1979661322:1979661858(536) ack 2260258133 win 5840
10:05:23.591391 IP (tos 0x0, ttl 64, id 19885, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1a12 (correct), 2260258133:2260258133(0) ack 1979648458 win 65535
10:05:23.591392 IP (tos 0x0, ttl 64, id 46159, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xacb2), 1979661858:1979662394(536) ack 2260258133 win 5840
10:05:23.591427 IP (tos 0x0, ttl 64, id 19886, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x17fa (correct), 2260258133:2260258133(0) ack 1979648994 win 65535
10:05:23.591431 IP (tos 0x0, ttl 64, id 46160, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x0efd), 1979662394:1979662930(536) ack 2260258133 win 5840
10:05:23.591433 IP (tos 0x0, ttl 64, id 19887, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x15e2 (correct), 2260258133:2260258133(0) ack 1979649530 win 65535
10:05:23.591434 IP (tos 0x0, ttl 64, id 46161, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x79a1), 1979662930:1979663466(536) ack 2260258133 win 5840
10:05:23.591436 IP (tos 0x0, ttl 64, id 19888, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x13ca (correct), 2260258133:2260258133(0) ack 1979650066 win 65535
10:05:23.591438 IP (tos 0x0, ttl 64, id 46162, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xc709), 1979663466:1979664002(536) ack 2260258133 win 5840
10:05:23.591440 IP (tos 0x0, ttl 64, id 19889, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x11b2 (correct), 2260258133:2260258133(0) ack 1979650602 win 65535
10:05:23.591442 IP (tos 0x0, ttl 64, id 46163, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x6bcf), 1979664002:1979664538(536) ack 2260258133 win 5840
10:05:23.591443 IP (tos 0x0, ttl 64, id 19890, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0f9a (correct), 2260258133:2260258133(0) ack 1979651138 win 65535
10:05:23.591446 IP (tos 0x0, ttl 64, id 46164, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xc469), 1979664538:1979665610(1072) ack 2260258133 win 5840
10:05:23.591448 IP (tos 0x0, ttl 64, id 19891, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0d82 (correct), 2260258133:2260258133(0) ack 1979651674 win 65535
10:05:23.591450 IP (tos 0x0, ttl 64, id 46166, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xbd17), 1979665610:1979666146(536) ack 2260258133 win 5840
10:05:23.591452 IP (tos 0x0, ttl 64, id 19892, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0b6a (correct), 2260258133:2260258133(0) ack 1979652210 win 65535
10:05:23.591455 IP (tos 0x0, ttl 64, id 46167, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x5899), 1979666146:1979666682(536) ack 2260258133 win 5840
10:05:23.591456 IP (tos 0x0, ttl 64, id 19893, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0952 (correct), 2260258133:2260258133(0) ack 1979652746 win 65535
10:05:23.591458 IP (tos 0x0, ttl 64, id 46168, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xd662), 1979666682:1979667218(536) ack 2260258133 win 5840
10:05:23.591460 IP (tos 0x0, ttl 64, id 19894, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x073a (correct), 2260258133:2260258133(0) ack 1979653282 win 65535
10:05:23.591462 IP (tos 0x0, ttl 64, id 46169, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xc61f), 1979667218:1979667754(536) ack 2260258133 win 5840
10:05:23.591478 IP (tos 0x0, ttl 64, id 19895, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0522 (correct), 2260258133:2260258133(0) ack 1979653818 win 65535
10:05:23.591481 IP (tos 0x0, ttl 64, id 46170, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x85e0), 1979667754:1979668290(536) ack 2260258133 win 5840
10:05:23.591483 IP (tos 0x0, ttl 64, id 19896, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x030a (correct), 2260258133:2260258133(0) ack 1979654354 win 65535
10:05:23.591486 IP (tos 0x0, ttl 64, id 46171, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xaa37), 1979668290:1979668826(536) ack 2260258133 win 5840
10:05:23.591487 IP (tos 0x0, ttl 64, id 19897, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x00f2 (correct), 2260258133:2260258133(0) ack 1979654890 win 65535
10:05:23.591489 IP (tos 0x0, ttl 64, id 46172, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x01c9), 1979668826:1979669362(536) ack 2260258133 win 5840
10:05:23.591491 IP (tos 0x0, ttl 64, id 19898, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfed9 (correct), 2260258133:2260258133(0) ack 1979655426 win 65535
10:05:23.591494 IP (tos 0x0, ttl 64, id 46173, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xe9d9), 1979669362:1979669898(536) ack 2260258133 win 5840
10:05:23.591497 IP (tos 0x0, ttl 64, id 19899, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfcc1 (correct), 2260258133:2260258133(0) ack 1979655962 win 65535
10:05:23.591499 IP (tos 0x0, ttl 64, id 46174, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xea9c), 1979669898:1979670434(536) ack 2260258133 win 5840
10:05:23.591528 IP (tos 0x0, ttl 64, id 19900, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfaa9 (correct), 2260258133:2260258133(0) ack 1979656498 win 65535
10:05:23.591531 IP (tos 0x0, ttl 64, id 46175, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xeb5e), 1979670434:1979670970(536) ack 2260258133 win 5840
10:05:23.591533 IP (tos 0x0, ttl 64, id 19901, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf891 (correct), 2260258133:2260258133(0) ack 1979657034 win 65535
10:05:23.591535 IP (tos 0x0, ttl 64, id 46176, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x80a0), 1979670970:1979671506(536) ack 2260258133 win 5840
10:05:23.591536 IP (tos 0x0, ttl 64, id 19902, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf679 (correct), 2260258133:2260258133(0) ack 1979657570 win 65535
10:05:23.591539 IP (tos 0x0, ttl 64, id 46177, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x8520), 1979671506:1979672042(536) ack 2260258133 win 5840
10:05:23.591540 IP (tos 0x0, ttl 64, id 19903, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf461 (correct), 2260258133:2260258133(0) ack 1979658106 win 65535
10:05:23.591543 IP (tos 0x0, ttl 64, id 46178, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x52db), 1979672042:1979672578(536) ack 2260258133 win 5840
10:05:23.591544 IP (tos 0x0, ttl 64, id 19904, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf249 (correct), 2260258133:2260258133(0) ack 1979658642 win 65535
10:05:23.591546 IP (tos 0x0, ttl 64, id 46179, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x2fce), 1979672578:1979673650(1072) ack 2260258133 win 5840
10:05:23.591549 IP (tos 0x0, ttl 64, id 19905, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf031 (correct), 2260258133:2260258133(0) ack 1979659178 win 65535
10:05:23.591551 IP (tos 0x0, ttl 64, id 46181, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x7537), 1979673650:1979674186(536) ack 2260258133 win 5840
10:05:23.591553 IP (tos 0x0, ttl 64, id 19906, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xee19 (correct), 2260258133:2260258133(0) ack 1979659714 win 65535
10:05:23.591555 IP (tos 0x0, ttl 64, id 46182, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x5a7a), 1979674186:1979674722(536) ack 2260258133 win 5840
10:05:23.591556 IP (tos 0x0, ttl 64, id 19907, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xec01 (correct), 2260258133:2260258133(0) ack 1979660250 win 65535
10:05:23.591558 IP (tos 0x0, ttl 64, id 46183, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x8257), 1979674722:1979675258(536) ack 2260258133 win 5840
10:05:23.591578 IP (tos 0x0, ttl 64, id 19908, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe9e9 (correct), 2260258133:2260258133(0) ack 1979660786 win 65535
10:05:23.591582 IP (tos 0x0, ttl 64, id 46184, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x0c07), 1979675258:1979675794(536) ack 2260258133 win 5840
10:05:23.591583 IP (tos 0x0, ttl 64, id 19909, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe7d1 (correct), 2260258133:2260258133(0) ack 1979661322 win 65535
10:05:23.591586 IP (tos 0x0, ttl 64, id 46185, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x4cec), 1979675794:1979676330(536) ack 2260258133 win 5840
10:05:23.591587 IP (tos 0x0, ttl 64, id 19910, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe5b9 (correct), 2260258133:2260258133(0) ack 1979661858 win 65535
10:05:23.591589 IP (tos 0x0, ttl 64, id 46186, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x3599), 1979676330:1979676866(536) ack 2260258133 win 5840
10:05:23.591590 IP (tos 0x0, ttl 64, id 19911, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe3a1 (correct), 2260258133:2260258133(0) ack 1979662394 win 65535
10:05:23.591592 IP (tos 0x0, ttl 64, id 46187, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x8a1b), 1979676866:1979677402(536) ack 2260258133 win 5840
10:05:23.591593 IP (tos 0x0, ttl 64, id 19912, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe189 (correct), 2260258133:2260258133(0) ack 1979662930 win 65535
10:05:23.591596 IP (tos 0x0, ttl 64, id 46188, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x2335), 1979677402:1979677938(536) ack 2260258133 win 5840
10:05:23.591597 IP (tos 0x0, ttl 64, id 19913, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xdf71 (correct), 2260258133:2260258133(0) ack 1979663466 win 65535
10:05:23.591599 IP (tos 0x0, ttl 64, id 46189, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x2c5e), 1979677938:1979678474(536) ack 2260258133 win 5840
10:05:23.591601 IP (tos 0x0, ttl 64, id 19914, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xdd59 (correct), 2260258133:2260258133(0) ack 1979664002 win 65535
10:05:23.591604 IP (tos 0x0, ttl 64, id 46190, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xaa8b), 1979678474:1979679010(536) ack 2260258133 win 5840
10:05:23.591607 IP (tos 0x0, ttl 64, id 19915, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xdb41 (correct), 2260258133:2260258133(0) ack 1979664538 win 65535
10:05:23.591609 IP (tos 0x0, ttl 64, id 46191, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xd126), 1979679010:1979679546(536) ack 2260258133 win 5840
10:05:23.591611 IP (tos 0x0, ttl 64, id 19916, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd929 (correct), 2260258133:2260258133(0) ack 1979665074 win 65535
10:05:23.591614 IP (tos 0x0, ttl 64, id 46192, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xba76), 1979679546:1979680082(536) ack 2260258133 win 5840
10:05:23.591615 IP (tos 0x0, ttl 64, id 19917, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd711 (correct), 2260258133:2260258133(0) ack 1979665610 win 65535
10:05:23.591617 IP (tos 0x0, ttl 64, id 46193, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x774f), 1979680082:1979680618(536) ack 2260258133 win 5840
10:05:23.591678 IP (tos 0x0, ttl 64, id 19918, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd4f9 (correct), 2260258133:2260258133(0) ack 1979666146 win 65535
10:05:23.591681 IP (tos 0x0, ttl 64, id 46194, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x603a), 1979680618:1979681154(536) ack 2260258133 win 5840
10:05:23.591683 IP (tos 0x0, ttl 64, id 19919, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd2e1 (correct), 2260258133:2260258133(0) ack 1979666682 win 65535
10:05:23.591686 IP (tos 0x0, ttl 64, id 46195, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x544a), 1979681154:1979681690(536) ack 2260258133 win 5840
10:05:23.591687 IP (tos 0x0, ttl 64, id 19920, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd0c9 (correct), 2260258133:2260258133(0) ack 1979667218 win 65535
10:05:23.591689 IP (tos 0x0, ttl 64, id 46196, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xc45b), 1979681690:1979682226(536) ack 2260258133 win 5840
10:05:23.591690 IP (tos 0x0, ttl 64, id 19921, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xceb1 (correct), 2260258133:2260258133(0) ack 1979667754 win 65535
10:05:23.591693 IP (tos 0x0, ttl 64, id 46197, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xf8bc), 1979682226:1979682762(536) ack 2260258133 win 5840
10:05:23.591694 IP (tos 0x0, ttl 64, id 19922, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xcc99 (correct), 2260258133:2260258133(0) ack 1979668290 win 65535
10:05:23.591696 IP (tos 0x0, ttl 64, id 46198, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xf997), 1979682762:1979683298(536) ack 2260258133 win 5840
10:05:23.591697 IP (tos 0x0, ttl 64, id 19923, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xca81 (correct), 2260258133:2260258133(0) ack 1979668826 win 65535
10:05:23.591699 IP (tos 0x0, ttl 64, id 46199, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x4b6b), 1979683298:1979683834(536) ack 2260258133 win 5840
10:05:23.591701 IP (tos 0x0, ttl 64, id 19924, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc869 (correct), 2260258133:2260258133(0) ack 1979669362 win 65535
10:05:23.591703 IP (tos 0x0, ttl 64, id 46200, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x9b8b), 1979683834:1979684370(536) ack 2260258133 win 5840
10:05:23.591704 IP (tos 0x0, ttl 64, id 19925, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc651 (correct), 2260258133:2260258133(0) ack 1979669898 win 65535
10:05:23.591707 IP (tos 0x0, ttl 64, id 46201, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xd84e), 1979684370:1979684906(536) ack 2260258133 win 5840
10:05:23.591708 IP (tos 0x0, ttl 64, id 19926, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc439 (correct), 2260258133:2260258133(0) ack 1979670434 win 65535
10:05:23.591710 IP (tos 0x0, ttl 64, id 46202, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x2b48), 1979684906:1979685442(536) ack 2260258133 win 5840
10:05:23.591712 IP (tos 0x0, ttl 64, id 19927, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc221 (correct), 2260258133:2260258133(0) ack 1979670970 win 65535
10:05:23.591713 IP (tos 0x0, ttl 64, id 46203, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x5916), 1979685442:1979685978(536) ack 2260258133 win 5840
10:05:23.591715 IP (tos 0x0, ttl 64, id 19928, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc009 (correct), 2260258133:2260258133(0) ack 1979671506 win 65535
10:05:23.591717 IP (tos 0x0, ttl 64, id 46204, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xbe9a), 1979685978:1979686514(536) ack 2260258133 win 5840
10:05:23.591719 IP (tos 0x0, ttl 64, id 19929, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xbdf1 (correct), 2260258133:2260258133(0) ack 1979672042 win 65535
10:05:23.591721 IP (tos 0x0, ttl 64, id 46205, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xb3b0), 1979686514:1979687050(536) ack 2260258133 win 5840
10:05:23.591722 IP (tos 0x0, ttl 64, id 19930, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xbbd9 (correct), 2260258133:2260258133(0) ack 1979672578 win 65535
10:05:23.591724 IP (tos 0x0, ttl 64, id 46206, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xa518), 1979687050:1979688122(1072) ack 2260258133 win 5840
10:05:23.591726 IP (tos 0x0, ttl 64, id 19931, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb9c1 (correct), 2260258133:2260258133(0) ack 1979673114 win 65535
10:05:23.591729 IP (tos 0x0, ttl 64, id 46208, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x247f), 1979688122:1979688658(536) ack 2260258133 win 5840
10:05:23.591730 IP (tos 0x0, ttl 64, id 19932, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb7a9 (correct), 2260258133:2260258133(0) ack 1979673650 win 65535
10:05:23.591732 IP (tos 0x0, ttl 64, id 46209, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xdc70), 1979688658:1979689194(536) ack 2260258133 win 5840
10:05:23.591734 IP (tos 0x0, ttl 64, id 19933, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb591 (correct), 2260258133:2260258133(0) ack 1979674186 win 65535
10:05:23.591736 IP (tos 0x0, ttl 64, id 46210, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xc420), 1979689194:1979689730(536) ack 2260258133 win 5840
10:05:23.591739 IP (tos 0x0, ttl 64, id 19934, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb379 (correct), 2260258133:2260258133(0) ack 1979674722 win 65535
10:05:23.591741 IP (tos 0x0, ttl 64, id 46211, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x6b75), 1979689730:1979690266(536) ack 2260258133 win 5840
10:05:23.591743 IP (tos 0x0, ttl 64, id 19935, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb161 (correct), 2260258133:2260258133(0) ack 1979675258 win 65535
10:05:23.591745 IP (tos 0x0, ttl 64, id 46212, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x9f8c), 1979690266:1979690802(536) ack 2260258133 win 5840
10:05:23.591746 IP (tos 0x0, ttl 64, id 19936, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xaf49 (correct), 2260258133:2260258133(0) ack 1979675794 win 65535
10:05:23.591748 IP (tos 0x0, ttl 64, id 46213, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xf695), 1979690802:1979691338(536) ack 2260258133 win 5840
10:05:23.591752 IP (tos 0x0, ttl 64, id 19937, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xad31 (correct), 2260258133:2260258133(0) ack 1979676330 win 65535
10:05:23.591755 IP (tos 0x0, ttl 64, id 46214, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x0f0f), 1979691338:1979691874(536) ack 2260258133 win 5840
10:05:23.591777 IP (tos 0x0, ttl 64, id 19938, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xab19 (correct), 2260258133:2260258133(0) ack 1979676866 win 65535
10:05:23.591780 IP (tos 0x0, ttl 64, id 46215, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x3612), 1979691874:1979692410(536) ack 2260258133 win 5840
10:05:23.591782 IP (tos 0x0, ttl 64, id 19939, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa901 (correct), 2260258133:2260258133(0) ack 1979677402 win 65535
10:05:23.591784 IP (tos 0x0, ttl 64, id 46216, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xe8f0), 1979692410:1979692946(536) ack 2260258133 win 5840
10:05:23.591786 IP (tos 0x0, ttl 64, id 19940, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa6e9 (correct), 2260258133:2260258133(0) ack 1979677938 win 65535
10:05:23.591788 IP (tos 0x0, ttl 64, id 46217, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x7b58), 1979692946:1979693482(536) ack 2260258133 win 5840
10:05:23.591789 IP (tos 0x0, ttl 64, id 19941, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa4d1 (correct), 2260258133:2260258133(0) ack 1979678474 win 65535
10:05:23.591791 IP (tos 0x0, ttl 64, id 46218, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x4dcc), 1979693482:1979694018(536) ack 2260258133 win 5840
10:05:23.591792 IP (tos 0x0, ttl 64, id 19942, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa2b9 (correct), 2260258133:2260258133(0) ack 1979679010 win 65535
10:05:23.591794 IP (tos 0x0, ttl 64, id 46219, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xe1c4), 1979694018:1979694554(536) ack 2260258133 win 5840
10:05:23.591796 IP (tos 0x0, ttl 64, id 19943, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa0a1 (correct), 2260258133:2260258133(0) ack 1979679546 win 65535
10:05:23.591798 IP (tos 0x0, ttl 64, id 46220, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xba54), 1979694554:1979695090(536) ack 2260258133 win 5840
10:05:23.591800 IP (tos 0x0, ttl 64, id 19944, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9e89 (correct), 2260258133:2260258133(0) ack 1979680082 win 65535
10:05:23.591802 IP (tos 0x0, ttl 64, id 46221, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xf5a2), 1979695090:1979695626(536) ack 2260258133 win 5840
10:05:23.591803 IP (tos 0x0, ttl 64, id 19945, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9c71 (correct), 2260258133:2260258133(0) ack 1979680618 win 65535
10:05:23.591805 IP (tos 0x0, ttl 64, id 46222, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x490c), 1979695626:1979696162(536) ack 2260258133 win 5840
10:05:23.591807 IP (tos 0x0, ttl 64, id 19946, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9a59 (correct), 2260258133:2260258133(0) ack 1979681154 win 65535
10:05:23.591811 IP (tos 0x0, ttl 64, id 46223, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x5eac), 1979696162:1979696698(536) ack 2260258133 win 5840
10:05:23.591812 IP (tos 0x0, ttl 64, id 19947, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9841 (correct), 2260258133:2260258133(0) ack 1979681690 win 65535
10:05:23.591814 IP (tos 0x0, ttl 64, id 46224, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x08a7), 1979696698:1979697234(536) ack 2260258133 win 5840
10:05:23.591816 IP (tos 0x0, ttl 64, id 19948, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9629 (correct), 2260258133:2260258133(0) ack 1979682226 win 65535
10:05:23.591818 IP (tos 0x0, ttl 64, id 46225, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x6d23), 1979697234:1979697770(536) ack 2260258133 win 5840
10:05:23.591819 IP (tos 0x0, ttl 64, id 19949, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9411 (correct), 2260258133:2260258133(0) ack 1979682762 win 65535
10:05:23.591821 IP (tos 0x0, ttl 64, id 46226, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xc833), 1979697770:1979698306(536) ack 2260258133 win 5840
10:05:23.591823 IP (tos 0x0, ttl 64, id 19950, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x91f9 (correct), 2260258133:2260258133(0) ack 1979683298 win 65535
10:05:23.591825 IP (tos 0x0, ttl 64, id 46227, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x78e9), 1979698306:1979698842(536) ack 2260258133 win 5840
10:05:23.591827 IP (tos 0x0, ttl 64, id 19951, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8fe1 (correct), 2260258133:2260258133(0) ack 1979683834 win 65535
10:05:23.591829 IP (tos 0x0, ttl 64, id 46228, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xc1db), 1979698842:1979699378(536) ack 2260258133 win 5840
10:05:23.591831 IP (tos 0x0, ttl 64, id 19952, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8dc9 (correct), 2260258133:2260258133(0) ack 1979684370 win 65535
10:05:23.591833 IP (tos 0x0, ttl 64, id 46229, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xcd2a), 1979699378:1979699914(536) ack 2260258133 win 5840
10:05:23.591834 IP (tos 0x0, ttl 64, id 19953, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8bb1 (correct), 2260258133:2260258133(0) ack 1979684906 win 65535
10:05:23.591836 IP (tos 0x0, ttl 64, id 46230, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x347f), 1979699914:1979700450(536) ack 2260258133 win 5840
10:05:23.591839 IP (tos 0x0, ttl 64, id 19954, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8999 (correct), 2260258133:2260258133(0) ack 1979685442 win 65535
10:05:23.591842 IP (tos 0x0, ttl 64, id 19955, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8781 (correct), 2260258133:2260258133(0) ack 1979685978 win 65535
10:05:23.591846 IP (tos 0x0, ttl 64, id 19956, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8569 (correct), 2260258133:2260258133(0) ack 1979686514 win 65535
10:05:23.591851 IP (tos 0x0, ttl 64, id 19957, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8351 (correct), 2260258133:2260258133(0) ack 1979687050 win 65535
10:05:23.591929 IP (tos 0x0, ttl 64, id 19962, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x78d9 (correct), 2260258133:2260258133(0) ack 1979689730 win 65535
10:05:23.591932 IP (tos 0x0, ttl 64, id 46240, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x0a1e), 1979705274:1979705810(536) ack 2260258133 win 5840
10:05:23.591934 IP (tos 0x0, ttl 64, id 19963, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x76c1 (correct), 2260258133:2260258133(0) ack 1979690266 win 65535
10:05:23.591936 IP (tos 0x0, ttl 64, id 46241, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x6f73), 1979705810:1979706346(536) ack 2260258133 win 5840
10:05:23.591938 IP (tos 0x0, ttl 64, id 19964, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x74a9 (correct), 2260258133:2260258133(0) ack 1979690802 win 65535
10:05:23.591940 IP (tos 0x0, ttl 64, id 46242, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xd5d3), 1979706346:1979706882(536) ack 2260258133 win 5840
10:05:23.591941 IP (tos 0x0, ttl 64, id 19965, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7291 (correct), 2260258133:2260258133(0) ack 1979691338 win 65535
10:05:23.591943 IP (tos 0x0, ttl 64, id 46243, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x46e8), 1979706882:1979707418(536) ack 2260258133 win 5840
10:05:23.591944 IP (tos 0x0, ttl 64, id 19966, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7079 (correct), 2260258133:2260258133(0) ack 1979691874 win 65535
10:05:23.591946 IP (tos 0x0, ttl 64, id 46244, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xc9ee), 1979707418:1979707954(536) ack 2260258133 win 5840
10:05:23.591948 IP (tos 0x0, ttl 64, id 19967, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6e61 (correct), 2260258133:2260258133(0) ack 1979692410 win 65535
10:05:23.591950 IP (tos 0x0, ttl 64, id 46245, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x1cc0), 1979707954:1979708490(536) ack 2260258133 win 5840
10:05:23.591951 IP (tos 0x0, ttl 64, id 19968, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6c49 (correct), 2260258133:2260258133(0) ack 1979692946 win 65535
10:05:23.592525 IP (tos 0x0, ttl 64, id 19969, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6a31 (correct), 2260258133:2260258133(0) ack 1979693482 win 65535
10:05:23.592528 IP (tos 0x0, ttl 64, id 46247, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x5666), 1979709026:1979709562(536) ack 2260258133 win 5840
10:05:23.592530 IP (tos 0x0, ttl 64, id 19970, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6819 (correct), 2260258133:2260258133(0) ack 1979694018 win 65535
10:05:23.592532 IP (tos 0x0, ttl 64, id 46248, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: P, cksum 0x1855 (incorrect (-> 0x8fb5), 1979709562:1979710098(536) ack 2260258133 win 5840
10:05:23.592533 IP (tos 0x0, ttl 64, id 19971, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6601 (correct), 2260258133:2260258133(0) ack 1979694554 win 65535
10:05:23.592536 IP (tos 0x0, ttl 64, id 46249, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xbea5), 1979710098:1979710634(536) ack 2260258133 win 5840
10:05:23.592538 IP (tos 0x0, ttl 64, id 19972, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x63e9 (correct), 2260258133:2260258133(0) ack 1979695090 win 65535
10:05:23.592540 IP (tos 0x0, ttl 64, id 46250, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x4592), 1979710634:1979711170(536) ack 2260258133 win 5840
10:05:23.592541 IP (tos 0x0, ttl 64, id 19973, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x61d1 (correct), 2260258133:2260258133(0) ack 1979695626 win 65535
10:05:23.592543 IP (tos 0x0, ttl 64, id 46251, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x850b), 1979711170:1979711706(536) ack 2260258133 win 5840
10:05:23.592544 IP (tos 0x0, ttl 64, id 19974, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5fb9 (correct), 2260258133:2260258133(0) ack 1979696162 win 65535
10:05:23.592546 IP (tos 0x0, ttl 64, id 46252, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xb083), 1979711706:1979712242(536) ack 2260258133 win 5840
10:05:23.592547 IP (tos 0x0, ttl 64, id 19975, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5da1 (correct), 2260258133:2260258133(0) ack 1979696698 win 65535
10:05:23.592549 IP (tos 0x0, ttl 64, id 46253, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x2a6c), 1979712242:1979712778(536) ack 2260258133 win 5840
10:05:23.592551 IP (tos 0x0, ttl 64, id 19976, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5b89 (correct), 2260258133:2260258133(0) ack 1979697234 win 65535
10:05:23.592553 IP (tos 0x0, ttl 64, id 46254, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x48bc), 1979712778:1979713314(536) ack 2260258133 win 5840
10:05:23.592554 IP (tos 0x0, ttl 64, id 19977, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5971 (correct), 2260258133:2260258133(0) ack 1979697770 win 65535
10:05:23.592557 IP (tos 0x0, ttl 64, id 46255, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x12b7), 1979713314:1979713850(536) ack 2260258133 win 5840
10:05:23.592558 IP (tos 0x0, ttl 64, id 19978, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5759 (correct), 2260258133:2260258133(0) ack 1979698306 win 65535
10:05:23.592561 IP (tos 0x0, ttl 64, id 46256, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x94da), 1979713850:1979714386(536) ack 2260258133 win 5840
10:05:23.592562 IP (tos 0x0, ttl 64, id 19979, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5541 (correct), 2260258133:2260258133(0) ack 1979698842 win 65535
10:05:23.592564 IP (tos 0x0, ttl 64, id 46257, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x7562), 1979714386:1979714922(536) ack 2260258133 win 5840
10:05:23.592565 IP (tos 0x0, ttl 64, id 19980, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5329 (correct), 2260258133:2260258133(0) ack 1979699378 win 65535
10:05:23.592568 IP (tos 0x0, ttl 64, id 46258, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x7053), 1979714922:1979715458(536) ack 2260258133 win 5840
10:05:23.592569 IP (tos 0x0, ttl 64, id 19981, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5111 (correct), 2260258133:2260258133(0) ack 1979699914 win 65535
10:05:23.592571 IP (tos 0x0, ttl 64, id 46259, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x227a), 1979715458:1979715994(536) ack 2260258133 win 5840
10:05:23.592572 IP (tos 0x0, ttl 64, id 19982, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4ef9 (correct), 2260258133:2260258133(0) ack 1979700450 win 65535
10:05:23.592574 IP (tos 0x0, ttl 64, id 46260, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x6540), 1979715994:1979717066(1072) ack 2260258133 win 5840
10:05:23.592576 IP (tos 0x0, ttl 64, id 19983, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4ce1 (correct), 2260258133:2260258133(0) ack 1979700986 win 65535
10:05:23.592579 IP (tos 0x0, ttl 64, id 46262, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xb7e1), 1979717066:1979717602(536) ack 2260258133 win 5840
10:05:23.592580 IP (tos 0x0, ttl 64, id 19984, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4ac9 (correct), 2260258133:2260258133(0) ack 1979701522 win 65535
10:05:23.592583 IP (tos 0x0, ttl 64, id 46263, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xa084), 1979717602:1979718138(536) ack 2260258133 win 5840
10:05:23.592585 IP (tos 0x0, ttl 64, id 19985, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x48b1 (correct), 2260258133:2260258133(0) ack 1979702058 win 65535
10:05:23.592587 IP (tos 0x0, ttl 64, id 46264, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x364b), 1979718138:1979718674(536) ack 2260258133 win 5840
10:05:23.592589 IP (tos 0x0, ttl 64, id 19986, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4699 (correct), 2260258133:2260258133(0) ack 1979702594 win 65535
10:05:23.592591 IP (tos 0x0, ttl 64, id 46265, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x3872), 1979718674:1979719210(536) ack 2260258133 win 5840
10:05:23.592592 IP (tos 0x0, ttl 64, id 19987, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4481 (correct), 2260258133:2260258133(0) ack 1979703130 win 65535
10:05:23.592595 IP (tos 0x0, ttl 64, id 46266, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x2200), 1979719210:1979719746(536) ack 2260258133 win 5840
10:05:23.592596 IP (tos 0x0, ttl 64, id 19988, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4269 (correct), 2260258133:2260258133(0) ack 1979703666 win 65535
10:05:23.592598 IP (tos 0x0, ttl 64, id 46267, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x0837), 1979719746:1979720282(536) ack 2260258133 win 5840
10:05:23.592599 IP (tos 0x0, ttl 64, id 19989, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3e39 (correct), 2260258133:2260258133(0) ack 1979704738 win 65535
10:05:23.592601 IP (tos 0x0, ttl 64, id 46268, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xd07f), 1979720282:1979721354(1072) ack 2260258133 win 5840
10:05:23.592604 IP (tos 0x0, ttl 64, id 19990, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3a09 (correct), 2260258133:2260258133(0) ack 1979705810 win 65535
10:05:23.592606 IP (tos 0x0, ttl 64, id 46270, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x3c59), 1979721354:1979722426(1072) ack 2260258133 win 5840
10:05:23.592608 IP (tos 0x0, ttl 64, id 19991, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x35d9 (correct), 2260258133:2260258133(0) ack 1979706882 win 65535
10:05:23.592611 IP (tos 0x0, ttl 64, id 46272, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x6f49), 1979722426:1979723498(1072) ack 2260258133 win 5840
10:05:23.592613 IP (tos 0x0, ttl 64, id 19992, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x31a9 (correct), 2260258133:2260258133(0) ack 1979707954 win 65535
10:05:23.592615 IP (tos 0x0, ttl 64, id 46274, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xf4f1), 1979723498:1979724570(1072) ack 2260258133 win 5840
10:05:23.592628 IP (tos 0x0, ttl 64, id 19993, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2d79 (correct), 2260258133:2260258133(0) ack 1979709026 win 65535
10:05:23.592631 IP (tos 0x0, ttl 64, id 46276, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xcdd6), 1979724570:1979725642(1072) ack 2260258133 win 5840
10:05:23.592633 IP (tos 0x0, ttl 64, id 19994, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2949 (correct), 2260258133:2260258133(0) ack 1979710098 win 65535
10:05:23.592635 IP (tos 0x0, ttl 64, id 46278, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x2b34), 1979725642:1979726714(1072) ack 2260258133 win 5840
10:05:23.592637 IP (tos 0x0, ttl 64, id 19995, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2519 (correct), 2260258133:2260258133(0) ack 1979711170 win 65535
10:05:23.592639 IP (tos 0x0, ttl 64, id 46280, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x5e7b), 1979726714:1979727786(1072) ack 2260258133 win 5840
10:05:23.592641 IP (tos 0x0, ttl 64, id 19996, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x20e9 (correct), 2260258133:2260258133(0) ack 1979712242 win 65535
10:05:23.592643 IP (tos 0x0, ttl 64, id 46282, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x20e4), 1979727786:1979728858(1072) ack 2260258133 win 5840
10:05:23.592645 IP (tos 0x0, ttl 64, id 19997, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1cb9 (correct), 2260258133:2260258133(0) ack 1979713314 win 65535
10:05:23.592648 IP (tos 0x0, ttl 64, id 46284, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x4d20), 1979728858:1979729930(1072) ack 2260258133 win 5840
10:05:23.592650 IP (tos 0x0, ttl 64, id 19998, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1889 (correct), 2260258133:2260258133(0) ack 1979714386 win 65535
10:05:23.592652 IP (tos 0x0, ttl 64, id 46286, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x4346), 1979729930:1979731002(1072) ack 2260258133 win 5840
10:05:23.592654 IP (tos 0x0, ttl 64, id 19999, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1459 (correct), 2260258133:2260258133(0) ack 1979715458 win 65535
10:05:23.592656 IP (tos 0x0, ttl 64, id 46288, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xfadd), 1979731002:1979732074(1072) ack 2260258133 win 5840
10:05:23.592660 IP (tos 0x0, ttl 64, id 20000, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1029 (correct), 2260258133:2260258133(0) ack 1979716530 win 65535
10:05:23.592663 IP (tos 0x0, ttl 64, id 46290, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x622e), 1979732074:1979733146(1072) ack 2260258133 win 5840
10:05:23.592675 IP (tos 0x0, ttl 64, id 20001, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0bf9 (correct), 2260258133:2260258133(0) ack 1979717602 win 65535
10:05:23.592678 IP (tos 0x0, ttl 64, id 46292, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x87ff), 1979733146:1979734218(1072) ack 2260258133 win 5840
10:05:23.592681 IP (tos 0x0, ttl 64, id 20002, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x07c9 (correct), 2260258133:2260258133(0) ack 1979718674 win 65535
10:05:23.592683 IP (tos 0x0, ttl 64, id 46294, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x8c01), 1979734218:1979735290(1072) ack 2260258133 win 5840
10:05:23.592685 IP (tos 0x0, ttl 64, id 20003, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0399 (correct), 2260258133:2260258133(0) ack 1979719746 win 65535
10:05:23.592687 IP (tos 0x0, ttl 64, id 46296, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xc229), 1979735290:1979736362(1072) ack 2260258133 win 5840
10:05:23.592726 IP (tos 0x0, ttl 64, id 20004, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xff68 (correct), 2260258133:2260258133(0) ack 1979720818 win 65535
10:05:23.592729 IP (tos 0x0, ttl 64, id 46298, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x3c79), 1979736362:1979737434(1072) ack 2260258133 win 5840
10:05:23.592731 IP (tos 0x0, ttl 64, id 20005, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfb38 (correct), 2260258133:2260258133(0) ack 1979721890 win 65535
10:05:23.592734 IP (tos 0x0, ttl 64, id 46300, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x4d00), 1979737434:1979738506(1072) ack 2260258133 win 5840
10:05:23.592736 IP (tos 0x0, ttl 64, id 20006, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf708 (correct), 2260258133:2260258133(0) ack 1979722962 win 65535
10:05:23.592738 IP (tos 0x0, ttl 64, id 46302, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xc88b), 1979738506:1979739578(1072) ack 2260258133 win 5840
10:05:23.592740 IP (tos 0x0, ttl 64, id 20007, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf2d8 (correct), 2260258133:2260258133(0) ack 1979724034 win 65535
10:05:23.592743 IP (tos 0x0, ttl 64, id 46304, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x252a), 1979739578:1979740650(1072) ack 2260258133 win 5840
10:05:23.592776 IP (tos 0x0, ttl 64, id 20008, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xeea8 (correct), 2260258133:2260258133(0) ack 1979725106 win 65535
10:05:23.592780 IP (tos 0x0, ttl 64, id 46306, offset 0, flags [DF], proto TCP (6), length 1648) dione.40344 > phoenix.distcc: ., cksum 0x1c85 (incorrect (-> 0xe96f), 1979740650:1979742258(1608) ack 2260258133 win 5840
10:05:23.592782 IP (tos 0x0, ttl 64, id 20009, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xea78 (correct), 2260258133:2260258133(0) ack 1979726178 win 65535
10:05:23.592784 IP (tos 0x0, ttl 64, id 46309, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x41ec), 1979742258:1979742794(536) ack 2260258133 win 5840
10:05:23.592786 IP (tos 0x0, ttl 64, id 46310, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x7642), 1979742794:1979743330(536) ack 2260258133 win 5840
10:05:23.592787 IP (tos 0x0, ttl 64, id 20010, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe648 (correct), 2260258133:2260258133(0) ack 1979727250 win 65535
10:05:23.592790 IP (tos 0x0, ttl 64, id 46311, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x7309), 1979743330:1979744402(1072) ack 2260258133 win 5840
10:05:23.592792 IP (tos 0x0, ttl 64, id 20011, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe218 (correct), 2260258133:2260258133(0) ack 1979728322 win 65535
10:05:23.592795 IP (tos 0x0, ttl 64, id 46313, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xde30), 1979744402:1979745474(1072) ack 2260258133 win 5840
10:05:23.592825 IP (tos 0x0, ttl 64, id 20012, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xdde8 (correct), 2260258133:2260258133(0) ack 1979729394 win 65535
10:05:23.592829 IP (tos 0x0, ttl 64, id 46315, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xd0c5), 1979745474:1979746546(1072) ack 2260258133 win 5840
10:05:23.592831 IP (tos 0x0, ttl 64, id 20013, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd9b8 (correct), 2260258133:2260258133(0) ack 1979730466 win 65535
10:05:23.592834 IP (tos 0x0, ttl 64, id 46317, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x0bde), 1979746546:1979747618(1072) ack 2260258133 win 5840
10:05:23.592836 IP (tos 0x0, ttl 64, id 20014, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd588 (correct), 2260258133:2260258133(0) ack 1979731538 win 65535
10:05:23.592839 IP (tos 0x0, ttl 64, id 46319, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xbf84), 1979747618:1979748690(1072) ack 2260258133 win 5840
10:05:23.592875 IP (tos 0x0, ttl 64, id 20015, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd158 (correct), 2260258133:2260258133(0) ack 1979732610 win 65535
10:05:23.592879 IP (tos 0x0, ttl 64, id 46321, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xf352), 1979748690:1979749762(1072) ack 2260258133 win 5840
10:05:23.592881 IP (tos 0x0, ttl 64, id 20016, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xcd28 (correct), 2260258133:2260258133(0) ack 1979733682 win 65535
10:05:23.592884 IP (tos 0x0, ttl 64, id 46323, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x4bd9), 1979749762:1979750834(1072) ack 2260258133 win 5840
10:05:23.592886 IP (tos 0x0, ttl 64, id 20017, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc8f8 (correct), 2260258133:2260258133(0) ack 1979734754 win 65535
10:05:23.592889 IP (tos 0x0, ttl 64, id 46325, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x5806), 1979750834:1979751906(1072) ack 2260258133 win 5840
10:05:23.592926 IP (tos 0x0, ttl 64, id 20018, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc4c8 (correct), 2260258133:2260258133(0) ack 1979735826 win 65535
10:05:23.592930 IP (tos 0x0, ttl 64, id 46327, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x2dda), 1979751906:1979752978(1072) ack 2260258133 win 5840
10:05:23.592932 IP (tos 0x0, ttl 64, id 20019, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc098 (correct), 2260258133:2260258133(0) ack 1979736898 win 65535
10:05:23.592935 IP (tos 0x0, ttl 64, id 46329, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x0534), 1979752978:1979754050(1072) ack 2260258133 win 5840
10:05:23.592938 IP (tos 0x0, ttl 64, id 20020, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xbc68 (correct), 2260258133:2260258133(0) ack 1979737970 win 65535
10:05:23.592940 IP (tos 0x0, ttl 64, id 46331, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xe89d), 1979754050:1979755122(1072) ack 2260258133 win 5840
10:05:23.592975 IP (tos 0x0, ttl 64, id 20021, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb838 (correct), 2260258133:2260258133(0) ack 1979739042 win 65535
10:05:23.592978 IP (tos 0x0, ttl 64, id 46333, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x58cb), 1979755122:1979756194(1072) ack 2260258133 win 5840
10:05:23.592980 IP (tos 0x0, ttl 64, id 20022, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb408 (correct), 2260258133:2260258133(0) ack 1979740114 win 65535
10:05:23.592983 IP (tos 0x0, ttl 64, id 46335, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x5bf2), 1979756194:1979757266(1072) ack 2260258133 win 5840
10:05:23.592985 IP (tos 0x0, ttl 64, id 20023, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xafd8 (correct), 2260258133:2260258133(0) ack 1979741186 win 65535
10:05:23.592988 IP (tos 0x0, ttl 64, id 46337, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x4592), 1979757266:1979758338(1072) ack 2260258133 win 5840
10:05:23.592990 IP (tos 0x0, ttl 64, id 20024, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xaba8 (correct), 2260258133:2260258133(0) ack 1979742258 win 65535
10:05:23.592993 IP (tos 0x0, ttl 64, id 46339, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x6c1b), 1979758338:1979759410(1072) ack 2260258133 win 5840
10:05:23.592996 IP (tos 0x0, ttl 64, id 20025, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa778 (correct), 2260258133:2260258133(0) ack 1979743330 win 65535
10:05:23.592999 IP (tos 0x0, ttl 64, id 46341, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x1f54), 1979759410:1979760482(1072) ack 2260258133 win 5840
10:05:23.593025 IP (tos 0x0, ttl 64, id 20026, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa348 (correct), 2260258133:2260258133(0) ack 1979744402 win 65535
10:05:23.593028 IP (tos 0x0, ttl 64, id 46343, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xdab7), 1979760482:1979761554(1072) ack 2260258133 win 5840
10:05:23.593031 IP (tos 0x0, ttl 64, id 20027, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9f18 (correct), 2260258133:2260258133(0) ack 1979745474 win 65535
10:05:23.593033 IP (tos 0x0, ttl 64, id 46345, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x45d7), 1979761554:1979762626(1072) ack 2260258133 win 5840
10:05:23.593075 IP (tos 0x0, ttl 64, id 20028, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9ae8 (correct), 2260258133:2260258133(0) ack 1979746546 win 65535
10:05:23.593078 IP (tos 0x0, ttl 64, id 46347, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xd943), 1979762626:1979763698(1072) ack 2260258133 win 5840
10:05:23.593081 IP (tos 0x0, ttl 64, id 20029, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x96b8 (correct), 2260258133:2260258133(0) ack 1979747618 win 65535
10:05:23.593083 IP (tos 0x0, ttl 64, id 46349, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x93b7), 1979763698:1979764770(1072) ack 2260258133 win 5840
10:05:23.593126 IP (tos 0x0, ttl 64, id 20030, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9288 (correct), 2260258133:2260258133(0) ack 1979748690 win 65535
10:05:23.593129 IP (tos 0x0, ttl 64, id 46351, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xcddd), 1979764770:1979765842(1072) ack 2260258133 win 5840
10:05:23.593131 IP (tos 0x0, ttl 64, id 20031, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8e58 (correct), 2260258133:2260258133(0) ack 1979749762 win 65535
10:05:23.593133 IP (tos 0x0, ttl 64, id 46353, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x4597), 1979765842:1979766914(1072) ack 2260258133 win 5840
10:05:23.593136 IP (tos 0x0, ttl 64, id 20032, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8a28 (correct), 2260258133:2260258133(0) ack 1979750834 win 65535
10:05:23.593138 IP (tos 0x0, ttl 64, id 46355, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x7032), 1979766914:1979767986(1072) ack 2260258133 win 5840
10:05:23.593140 IP (tos 0x0, ttl 64, id 20033, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x85f8 (correct), 2260258133:2260258133(0) ack 1979751906 win 65535
10:05:23.593142 IP (tos 0x0, ttl 64, id 46357, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xe4c4), 1979767986:1979769058(1072) ack 2260258133 win 5840
10:05:23.593144 IP (tos 0x0, ttl 64, id 20034, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x81c8 (correct), 2260258133:2260258133(0) ack 1979752978 win 65535
10:05:23.593146 IP (tos 0x0, ttl 64, id 46359, offset 0, flags [DF], proto TCP (6), length 1648) dione.40344 > phoenix.distcc: ., cksum 0x1c85 (incorrect (-> 0x3453), 1979769058:1979770666(1608) ack 2260258133 win 5840
10:05:23.593175 IP (tos 0x0, ttl 64, id 20035, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7d98 (correct), 2260258133:2260258133(0) ack 1979754050 win 65535
10:05:23.593178 IP (tos 0x0, ttl 64, id 46362, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x63e6), 1979770666:1979771738(1072) ack 2260258133 win 5840
10:05:23.593180 IP (tos 0x0, ttl 64, id 20036, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7968 (correct), 2260258133:2260258133(0) ack 1979755122 win 65535
10:05:23.593182 IP (tos 0x0, ttl 64, id 46364, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xdfe0), 1979771738:1979772810(1072) ack 2260258133 win 5840
10:05:23.593184 IP (tos 0x0, ttl 64, id 20037, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7538 (correct), 2260258133:2260258133(0) ack 1979756194 win 65535
10:05:23.593186 IP (tos 0x0, ttl 64, id 46366, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x02c0), 1979772810:1979773882(1072) ack 2260258133 win 5840
10:05:23.593224 IP (tos 0x0, ttl 64, id 20038, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7108 (correct), 2260258133:2260258133(0) ack 1979757266 win 65535
10:05:23.593228 IP (tos 0x0, ttl 64, id 46368, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x993d), 1979773882:1979774954(1072) ack 2260258133 win 5840
10:05:23.593230 IP (tos 0x0, ttl 64, id 20039, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6cd8 (correct), 2260258133:2260258133(0) ack 1979758338 win 65535
10:05:23.593232 IP (tos 0x0, ttl 64, id 46370, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x3a5f), 1979774954:1979775490(536) ack 2260258133 win 5840
10:05:23.593234 IP (tos 0x0, ttl 64, id 46371, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x8d5f), 1979775490:1979776026(536) ack 2260258133 win 5840
10:05:23.593236 IP (tos 0x0, ttl 64, id 20040, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x68a8 (correct), 2260258133:2260258133(0) ack 1979759410 win 65535
10:05:23.593238 IP (tos 0x0, ttl 64, id 46372, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x3d19), 1979776026:1979777098(1072) ack 2260258133 win 5840
10:05:23.593241 IP (tos 0x0, ttl 64, id 20041, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6478 (correct), 2260258133:2260258133(0) ack 1979760482 win 65535
10:05:23.593243 IP (tos 0x0, ttl 64, id 46374, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x30aa), 1979777098:1979778170(1072) ack 2260258133 win 5840
10:05:23.593276 IP (tos 0x0, ttl 64, id 20042, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6048 (correct), 2260258133:2260258133(0) ack 1979761554 win 65535
10:05:23.593279 IP (tos 0x0, ttl 64, id 46376, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x45a2), 1979778170:1979779242(1072) ack 2260258133 win 5840
10:05:23.593282 IP (tos 0x0, ttl 64, id 20043, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5c18 (correct), 2260258133:2260258133(0) ack 1979762626 win 65535
10:05:23.593284 IP (tos 0x0, ttl 64, id 46378, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x24fe), 1979779242:1979780314(1072) ack 2260258133 win 5840
10:05:23.593286 IP (tos 0x0, ttl 64, id 20044, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x57e8 (correct), 2260258133:2260258133(0) ack 1979763698 win 65535
10:05:23.593289 IP (tos 0x0, ttl 64, id 46380, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x747e), 1979780314:1979781386(1072) ack 2260258133 win 5840
10:05:23.593324 IP (tos 0x0, ttl 64, id 20045, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x53b8 (correct), 2260258133:2260258133(0) ack 1979764770 win 65535
10:05:23.593327 IP (tos 0x0, ttl 64, id 46382, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x7b2c), 1979781386:1979782458(1072) ack 2260258133 win 5840
10:05:23.593329 IP (tos 0x0, ttl 64, id 20046, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4f88 (correct), 2260258133:2260258133(0) ack 1979765842 win 65535
10:05:23.593332 IP (tos 0x0, ttl 64, id 46384, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xe8d3), 1979782458:1979783530(1072) ack 2260258133 win 5840
10:05:23.593334 IP (tos 0x0, ttl 64, id 20047, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4b58 (correct), 2260258133:2260258133(0) ack 1979766914 win 65535
10:05:23.593336 IP (tos 0x0, ttl 64, id 46386, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x007d), 1979783530:1979784602(1072) ack 2260258133 win 5840
10:05:23.593375 IP (tos 0x0, ttl 64, id 20048, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4728 (correct), 2260258133:2260258133(0) ack 1979767986 win 65535
10:05:23.593378 IP (tos 0x0, ttl 64, id 46388, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xb086), 1979784602:1979785674(1072) ack 2260258133 win 5840
10:05:23.593380 IP (tos 0x0, ttl 64, id 20049, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x42f8 (correct), 2260258133:2260258133(0) ack 1979769058 win 65535
10:05:23.593382 IP (tos 0x0, ttl 64, id 46390, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xaf52), 1979785674:1979786746(1072) ack 2260258133 win 5840
10:05:23.593384 IP (tos 0x0, ttl 64, id 20050, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3ec8 (correct), 2260258133:2260258133(0) ack 1979770130 win 65535
10:05:23.593387 IP (tos 0x0, ttl 64, id 46392, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x0e0b), 1979786746:1979787818(1072) ack 2260258133 win 5840
10:05:23.593388 IP (tos 0x0, ttl 64, id 20051, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3a98 (correct), 2260258133:2260258133(0) ack 1979771202 win 65535
10:05:23.593391 IP (tos 0x0, ttl 64, id 46394, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x7680), 1979787818:1979788890(1072) ack 2260258133 win 5840
10:05:23.593425 IP (tos 0x0, ttl 64, id 20052, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3668 (correct), 2260258133:2260258133(0) ack 1979772274 win 65535
10:05:23.593429 IP (tos 0x0, ttl 64, id 46396, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x329f), 1979788890:1979789962(1072) ack 2260258133 win 5840
10:05:23.593431 IP (tos 0x0, ttl 64, id 20053, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3238 (correct), 2260258133:2260258133(0) ack 1979773346 win 65535
10:05:23.593434 IP (tos 0x0, ttl 64, id 46398, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x1cf9), 1979789962:1979791034(1072) ack 2260258133 win 5840
10:05:23.593436 IP (tos 0x0, ttl 64, id 20054, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2e08 (correct), 2260258133:2260258133(0) ack 1979774418 win 65535
10:05:23.593438 IP (tos 0x0, ttl 64, id 46400, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x19f5), 1979791034:1979792106(1072) ack 2260258133 win 5840
10:05:23.593475 IP (tos 0x0, ttl 64, id 20055, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x29d8 (correct), 2260258133:2260258133(0) ack 1979775490 win 65535
10:05:23.593478 IP (tos 0x0, ttl 64, id 46402, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xb0fd), 1979792106:1979793178(1072) ack 2260258133 win 5840
10:05:23.593480 IP (tos 0x0, ttl 64, id 20056, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x25a8 (correct), 2260258133:2260258133(0) ack 1979776562 win 65535
10:05:23.593483 IP (tos 0x0, ttl 64, id 46404, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xb5e2), 1979793178:1979794250(1072) ack 2260258133 win 5840
10:05:23.593485 IP (tos 0x0, ttl 64, id 20057, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2178 (correct), 2260258133:2260258133(0) ack 1979777634 win 65535
10:05:23.593487 IP (tos 0x0, ttl 64, id 46406, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xe950), 1979794250:1979795322(1072) ack 2260258133 win 5840
10:05:23.593524 IP (tos 0x0, ttl 64, id 20058, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1d48 (correct), 2260258133:2260258133(0) ack 1979778706 win 65535
10:05:23.593527 IP (tos 0x0, ttl 64, id 46408, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x9434), 1979795322:1979796394(1072) ack 2260258133 win 5840
10:05:23.593529 IP (tos 0x0, ttl 64, id 20059, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1918 (correct), 2260258133:2260258133(0) ack 1979779778 win 65535
10:05:23.593533 IP (tos 0x0, ttl 64, id 46410, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xb348), 1979796394:1979797466(1072) ack 2260258133 win 5840
10:05:23.593535 IP (tos 0x0, ttl 64, id 20060, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x14e8 (correct), 2260258133:2260258133(0) ack 1979780850 win 65535
10:05:23.593537 IP (tos 0x0, ttl 64, id 46412, offset 0, flags [DF], proto TCP (6), length 1648) dione.40344 > phoenix.distcc: ., cksum 0x1c85 (incorrect (-> 0xeb0a), 1979797466:1979799074(1608) ack 2260258133 win 5840
10:05:23.593539 IP (tos 0x0, ttl 64, id 20061, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x10b8 (correct), 2260258133:2260258133(0) ack 1979781922 win 65535
10:05:23.593542 IP (tos 0x0, ttl 64, id 46415, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x6ed1), 1979799074:1979800146(1072) ack 2260258133 win 5840
10:05:23.593574 IP (tos 0x0, ttl 64, id 20062, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0c88 (correct), 2260258133:2260258133(0) ack 1979782994 win 65535
10:05:23.593577 IP (tos 0x0, ttl 64, id 46417, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xed63), 1979800146:1979801218(1072) ack 2260258133 win 5840
10:05:23.593580 IP (tos 0x0, ttl 64, id 20063, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0858 (correct), 2260258133:2260258133(0) ack 1979784066 win 65535
10:05:23.593583 IP (tos 0x0, ttl 64, id 46419, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x2fc8), 1979801218:1979802290(1072) ack 2260258133 win 5840
10:05:23.593585 IP (tos 0x0, ttl 64, id 20064, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0428 (correct), 2260258133:2260258133(0) ack 1979785138 win 65535
10:05:23.593588 IP (tos 0x0, ttl 64, id 46421, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xbdec), 1979802290:1979803362(1072) ack 2260258133 win 5840
10:05:23.593625 IP (tos 0x0, ttl 64, id 20065, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfff7 (correct), 2260258133:2260258133(0) ack 1979786210 win 65535
10:05:23.593629 IP (tos 0x0, ttl 64, id 46423, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x8d89), 1979803362:1979804434(1072) ack 2260258133 win 5840
10:05:23.593631 IP (tos 0x0, ttl 64, id 20066, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfbc7 (correct), 2260258133:2260258133(0) ack 1979787282 win 65535
10:05:23.593634 IP (tos 0x0, ttl 64, id 46425, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xf8a1), 1979804434:1979805506(1072) ack 2260258133 win 5840
10:05:23.593636 IP (tos 0x0, ttl 64, id 20067, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf797 (correct), 2260258133:2260258133(0) ack 1979788354 win 65535
10:05:23.593639 IP (tos 0x0, ttl 64, id 46427, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xe481), 1979805506:1979806578(1072) ack 2260258133 win 5840
10:05:23.593674 IP (tos 0x0, ttl 64, id 20068, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf367 (correct), 2260258133:2260258133(0) ack 1979789426 win 65535
10:05:23.593677 IP (tos 0x0, ttl 64, id 46429, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xcd5e), 1979806578:1979807650(1072) ack 2260258133 win 5840
10:05:23.593680 IP (tos 0x0, ttl 64, id 20069, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xef37 (correct), 2260258133:2260258133(0) ack 1979790498 win 65535
10:05:23.593682 IP (tos 0x0, ttl 64, id 46431, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: P, cksum 0x1855 (incorrect (-> 0x2e6b), 1979807650:1979808186(536) ack 2260258133 win 5840
10:05:23.593684 IP (tos 0x0, ttl 64, id 46432, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x614f), 1979808186:1979808722(536) ack 2260258133 win 5840
10:05:23.593687 IP (tos 0x0, ttl 64, id 20070, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xeb07 (correct), 2260258133:2260258133(0) ack 1979791570 win 65535
10:05:23.593690 IP (tos 0x0, ttl 64, id 46433, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xcf1f), 1979808722:1979809794(1072) ack 2260258133 win 5840
10:05:23.593692 IP (tos 0x0, ttl 64, id 20071, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe6d7 (correct), 2260258133:2260258133(0) ack 1979792642 win 65535
10:05:23.593695 IP (tos 0x0, ttl 64, id 46435, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x77bb), 1979809794:1979810866(1072) ack 2260258133 win 5840
10:05:23.593724 IP (tos 0x0, ttl 64, id 20072, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe2a7 (correct), 2260258133:2260258133(0) ack 1979793714 win 65535
10:05:23.593727 IP (tos 0x0, ttl 64, id 46437, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x6107), 1979810866:1979811938(1072) ack 2260258133 win 5840
10:05:23.593730 IP (tos 0x0, ttl 64, id 20073, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xde77 (correct), 2260258133:2260258133(0) ack 1979794786 win 65535
10:05:23.593733 IP (tos 0x0, ttl 64, id 46439, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x241a), 1979811938:1979813010(1072) ack 2260258133 win 5840
10:05:23.593735 IP (tos 0x0, ttl 64, id 20074, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xda47 (correct), 2260258133:2260258133(0) ack 1979795858 win 65535
10:05:23.593738 IP (tos 0x0, ttl 64, id 46441, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x388b), 1979813010:1979814082(1072) ack 2260258133 win 5840
10:05:23.593774 IP (tos 0x0, ttl 64, id 20075, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd617 (correct), 2260258133:2260258133(0) ack 1979796930 win 65535
10:05:23.593778 IP (tos 0x0, ttl 64, id 46443, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x077a), 1979814082:1979815154(1072) ack 2260258133 win 5840
10:05:23.593780 IP (tos 0x0, ttl 64, id 20076, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd1e7 (correct), 2260258133:2260258133(0) ack 1979798002 win 65535
10:05:23.593783 IP (tos 0x0, ttl 64, id 46445, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x272d), 1979815154:1979816226(1072) ack 2260258133 win 5840
10:05:23.593785 IP (tos 0x0, ttl 64, id 20077, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xcdb7 (correct), 2260258133:2260258133(0) ack 1979799074 win 65535
10:05:23.593788 IP (tos 0x0, ttl 64, id 46447, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x5108), 1979816226:1979817298(1072) ack 2260258133 win 5840
10:05:23.593790 IP (tos 0x0, ttl 64, id 20078, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc987 (correct), 2260258133:2260258133(0) ack 1979800146 win 65535
10:05:23.593792 IP (tos 0x0, ttl 64, id 46449, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x496c), 1979817298:1979818370(1072) ack 2260258133 win 5840
10:05:23.593824 IP (tos 0x0, ttl 64, id 20079, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc557 (correct), 2260258133:2260258133(0) ack 1979801218 win 65535
10:05:23.593827 IP (tos 0x0, ttl 64, id 46451, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x8a17), 1979818370:1979819442(1072) ack 2260258133 win 5840
10:05:23.593829 IP (tos 0x0, ttl 64, id 20080, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc127 (correct), 2260258133:2260258133(0) ack 1979802290 win 65535
10:05:23.593832 IP (tos 0x0, ttl 64, id 46453, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xa11a), 1979819442:1979820514(1072) ack 2260258133 win 5840
10:05:23.593835 IP (tos 0x0, ttl 64, id 20081, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xbcf7 (correct), 2260258133:2260258133(0) ack 1979803362 win 65535
10:05:23.593837 IP (tos 0x0, ttl 64, id 46455, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x2ef0), 1979820514:1979821586(1072) ack 2260258133 win 5840
10:05:23.593874 IP (tos 0x0, ttl 64, id 20082, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb8c7 (correct), 2260258133:2260258133(0) ack 1979804434 win 65535
10:05:23.593877 IP (tos 0x0, ttl 64, id 46457, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x8153), 1979821586:1979822658(1072) ack 2260258133 win 5840
10:05:23.593879 IP (tos 0x0, ttl 64, id 20083, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb497 (correct), 2260258133:2260258133(0) ack 1979805506 win 65535
10:05:23.593882 IP (tos 0x0, ttl 64, id 46459, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xb26b), 1979822658:1979823730(1072) ack 2260258133 win 5840
10:05:23.593884 IP (tos 0x0, ttl 64, id 20084, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb067 (correct), 2260258133:2260258133(0) ack 1979806578 win 65535
10:05:23.593886 IP (tos 0x0, ttl 64, id 46461, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x3cdc), 1979823730:1979824802(1072) ack 2260258133 win 5840
10:05:23.593924 IP (tos 0x0, ttl 64, id 20085, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xac37 (correct), 2260258133:2260258133(0) ack 1979807650 win 65535
10:05:23.593927 IP (tos 0x0, ttl 64, id 46463, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xeb21), 1979824802:1979825874(1072) ack 2260258133 win 5840
10:05:23.593929 IP (tos 0x0, ttl 64, id 20086, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa807 (correct), 2260258133:2260258133(0) ack 1979808722 win 65535
10:05:23.593931 IP (tos 0x0, ttl 64, id 46465, offset 0, flags [DF], proto TCP (6), length 1648) dione.40344 > phoenix.distcc: ., cksum 0x1c85 (incorrect (-> 0x58c9), 1979825874:1979827482(1608) ack 2260258133 win 5840
10:05:23.593973 IP (tos 0x0, ttl 64, id 20087, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa3d7 (correct), 2260258133:2260258133(0) ack 1979809794 win 65535
10:05:23.593976 IP (tos 0x0, ttl 64, id 46468, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x1cd2), 1979827482:1979828554(1072) ack 2260258133 win 5840
10:05:23.593978 IP (tos 0x0, ttl 64, id 20088, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9fa7 (correct), 2260258133:2260258133(0) ack 1979810866 win 65535
10:05:23.593981 IP (tos 0x0, ttl 64, id 46470, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x437a), 1979828554:1979829626(1072) ack 2260258133 win 5840
10:05:23.593982 IP (tos 0x0, ttl 64, id 20089, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9b77 (correct), 2260258133:2260258133(0) ack 1979811938 win 65535
10:05:23.593985 IP (tos 0x0, ttl 64, id 46472, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xe4cc), 1979829626:1979830698(1072) ack 2260258133 win 5840
10:05:23.593987 IP (tos 0x0, ttl 64, id 20090, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9747 (correct), 2260258133:2260258133(0) ack 1979813010 win 65535
10:05:23.593989 IP (tos 0x0, ttl 64, id 46474, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xf8ec), 1979830698:1979831770(1072) ack 2260258133 win 5840
10:05:23.593991 IP (tos 0x0, ttl 64, id 20091, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9317 (correct), 2260258133:2260258133(0) ack 1979814082 win 65535
10:05:23.593993 IP (tos 0x0, ttl 64, id 46476, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x590e), 1979831770:1979832842(1072) ack 2260258133 win 5840
10:05:23.593995 IP (tos 0x0, ttl 64, id 20092, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8ee7 (correct), 2260258133:2260258133(0) ack 1979815154 win 65535
10:05:23.593997 IP (tos 0x0, ttl 64, id 46478, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x4a1d), 1979832842:1979833914(1072) ack 2260258133 win 5840
10:05:23.594023 IP (tos 0x0, ttl 64, id 20093, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8ab7 (correct), 2260258133:2260258133(0) ack 1979816226 win 65535
10:05:23.594027 IP (tos 0x0, ttl 64, id 46480, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xad03), 1979833914:1979834986(1072) ack 2260258133 win 5840
10:05:23.594074 IP (tos 0x0, ttl 64, id 20094, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8687 (correct), 2260258133:2260258133(0) ack 1979817298 win 65535
10:05:23.594077 IP (tos 0x0, ttl 64, id 46482, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x1787), 1979834986:1979836058(1072) ack 2260258133 win 5840
10:05:23.594080 IP (tos 0x0, ttl 64, id 20095, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8257 (correct), 2260258133:2260258133(0) ack 1979818370 win 65535
10:05:23.594082 IP (tos 0x0, ttl 64, id 46484, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x3108), 1979836058:1979837130(1072) ack 2260258133 win 5840
10:05:23.594084 IP (tos 0x0, ttl 64, id 20096, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7e27 (correct), 2260258133:2260258133(0) ack 1979819442 win 65535
10:05:23.594087 IP (tos 0x0, ttl 64, id 46486, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xe5bf), 1979837130:1979838202(1072) ack 2260258133 win 5840
10:05:23.594089 IP (tos 0x0, ttl 64, id 20097, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x79f7 (correct), 2260258133:2260258133(0) ack 1979820514 win 65535
10:05:23.594091 IP (tos 0x0, ttl 64, id 46488, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x4a5e), 1979838202:1979839274(1072) ack 2260258133 win 5840
10:05:23.594093 IP (tos 0x0, ttl 64, id 20098, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x75c7 (correct), 2260258133:2260258133(0) ack 1979821586 win 65535
10:05:23.594095 IP (tos 0x0, ttl 64, id 46490, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x0bc1), 1979839274:1979840346(1072) ack 2260258133 win 5840
10:05:23.594096 IP (tos 0x0, ttl 64, id 20099, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7197 (correct), 2260258133:2260258133(0) ack 1979822658 win 65535
10:05:23.594098 IP (tos 0x0, ttl 64, id 46492, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xab2d), 1979840346:1979840882(536) ack 2260258133 win 5840
10:05:23.594100 IP (tos 0x0, ttl 64, id 46493, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x56a2), 1979840882:1979841418(536) ack 2260258133 win 5840
10:05:23.594124 IP (tos 0x0, ttl 64, id 20100, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6d67 (correct), 2260258133:2260258133(0) ack 1979823730 win 65535
10:05:23.594126 IP (tos 0x0, ttl 64, id 46494, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xe6a5), 1979841418:1979842490(1072) ack 2260258133 win 5840
10:05:23.594128 IP (tos 0x0, ttl 64, id 20101, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6937 (correct), 2260258133:2260258133(0) ack 1979824802 win 65535
10:05:23.594130 IP (tos 0x0, ttl 64, id 46496, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xa8be), 1979842490:1979843562(1072) ack 2260258133 win 5840
10:05:23.594174 IP (tos 0x0, ttl 64, id 20102, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6507 (correct), 2260258133:2260258133(0) ack 1979825874 win 65535
10:05:23.594177 IP (tos 0x0, ttl 64, id 46498, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xdd94), 1979843562:1979844634(1072) ack 2260258133 win 5840
10:05:23.594180 IP (tos 0x0, ttl 64, id 20103, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x60d7 (correct), 2260258133:2260258133(0) ack 1979826946 win 65535
10:05:23.594182 IP (tos 0x0, ttl 64, id 46500, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xc674), 1979844634:1979845706(1072) ack 2260258133 win 5840
10:05:23.594184 IP (tos 0x0, ttl 64, id 20104, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5ca7 (correct), 2260258133:2260258133(0) ack 1979828018 win 65535
10:05:23.594187 IP (tos 0x0, ttl 64, id 46502, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x3f94), 1979845706:1979846778(1072) ack 2260258133 win 5840
10:05:23.594188 IP (tos 0x0, ttl 64, id 20105, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5877 (correct), 2260258133:2260258133(0) ack 1979829090 win 65535
10:05:23.594191 IP (tos 0x0, ttl 64, id 46504, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x89a4), 1979846778:1979847850(1072) ack 2260258133 win 5840
10:05:23.594223 IP (tos 0x0, ttl 64, id 20106, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5447 (correct), 2260258133:2260258133(0) ack 1979830162 win 65535
10:05:23.594226 IP (tos 0x0, ttl 64, id 46506, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x6d13), 1979847850:1979848922(1072) ack 2260258133 win 5840
10:05:23.594228 IP (tos 0x0, ttl 64, id 20107, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5017 (correct), 2260258133:2260258133(0) ack 1979831234 win 65535
10:05:23.594231 IP (tos 0x0, ttl 64, id 46508, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x439e), 1979848922:1979849994(1072) ack 2260258133 win 5840
10:05:23.594274 IP (tos 0x0, ttl 64, id 20108, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4be7 (correct), 2260258133:2260258133(0) ack 1979832306 win 65535
10:05:23.594277 IP (tos 0x0, ttl 64, id 46510, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x155e), 1979849994:1979851066(1072) ack 2260258133 win 5840
10:05:23.594279 IP (tos 0x0, ttl 64, id 20109, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x47b7 (correct), 2260258133:2260258133(0) ack 1979833378 win 65535
10:05:23.594282 IP (tos 0x0, ttl 64, id 46512, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x5933), 1979851066:1979852138(1072) ack 2260258133 win 5840
10:05:23.594284 IP (tos 0x0, ttl 64, id 20110, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4387 (correct), 2260258133:2260258133(0) ack 1979834450 win 65535
10:05:23.594287 IP (tos 0x0, ttl 64, id 46514, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x43e1), 1979852138:1979853210(1072) ack 2260258133 win 5840
10:05:23.594289 IP (tos 0x0, ttl 64, id 20111, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3f57 (correct), 2260258133:2260258133(0) ack 1979835522 win 65535
10:05:23.594292 IP (tos 0x0, ttl 64, id 46516, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x15cd), 1979853210:1979854282(1072) ack 2260258133 win 5840
10:05:23.594323 IP (tos 0x0, ttl 64, id 20112, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3b27 (correct), 2260258133:2260258133(0) ack 1979836594 win 65535
10:05:23.594326 IP (tos 0x0, ttl 64, id 46518, offset 0, flags [DF], proto TCP (6), length 1648) dione.40344 > phoenix.distcc: ., cksum 0x1c85 (incorrect (-> 0x8bdd), 1979854282:1979855890(1608) ack 2260258133 win 5840
10:05:23.594329 IP (tos 0x0, ttl 64, id 20113, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x36f7 (correct), 2260258133:2260258133(0) ack 1979837666 win 65535
10:05:23.594331 IP (tos 0x0, ttl 64, id 46521, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x1397), 1979855890:1979856962(1072) ack 2260258133 win 5840
10:05:23.594333 IP (tos 0x0, ttl 64, id 20114, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x32c7 (correct), 2260258133:2260258133(0) ack 1979838738 win 65535
10:05:23.594336 IP (tos 0x0, ttl 64, id 46523, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xb2f5), 1979856962:1979858034(1072) ack 2260258133 win 5840
10:05:23.594373 IP (tos 0x0, ttl 64, id 20115, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2e97 (correct), 2260258133:2260258133(0) ack 1979839810 win 65535
10:05:23.594376 IP (tos 0x0, ttl 64, id 46525, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x432e), 1979858034:1979859106(1072) ack 2260258133 win 5840
10:05:23.594379 IP (tos 0x0, ttl 64, id 20116, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2a67 (correct), 2260258133:2260258133(0) ack 1979840882 win 65535
10:05:23.594381 IP (tos 0x0, ttl 64, id 46527, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x03cf), 1979859106:1979860178(1072) ack 2260258133 win 5840
10:05:23.594384 IP (tos 0x0, ttl 64, id 20117, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2637 (correct), 2260258133:2260258133(0) ack 1979841954 win 65535
10:05:23.594387 IP (tos 0x0, ttl 64, id 46529, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x2c9b), 1979860178:1979861250(1072) ack 2260258133 win 5840
10:05:23.594389 IP (tos 0x0, ttl 64, id 20118, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2207 (correct), 2260258133:2260258133(0) ack 1979843026 win 65535
10:05:23.594391 IP (tos 0x0, ttl 64, id 46531, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x0c0d), 1979861250:1979862322(1072) ack 2260258133 win 5840
10:05:23.594424 IP (tos 0x0, ttl 64, id 20119, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1dd7 (correct), 2260258133:2260258133(0) ack 1979844098 win 65535
10:05:23.594427 IP (tos 0x0, ttl 64, id 46533, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x390e), 1979862322:1979863394(1072) ack 2260258133 win 5840
10:05:23.594429 IP (tos 0x0, ttl 64, id 20120, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x19a7 (correct), 2260258133:2260258133(0) ack 1979845170 win 65535
10:05:23.594432 IP (tos 0x0, ttl 64, id 46535, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x995c), 1979863394:1979864466(1072) ack 2260258133 win 5840
10:05:23.594434 IP (tos 0x0, ttl 64, id 20121, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1577 (correct), 2260258133:2260258133(0) ack 1979846242 win 65535
10:05:23.594436 IP (tos 0x0, ttl 64, id 46537, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x9612), 1979864466:1979865538(1072) ack 2260258133 win 5840
10:05:23.594440 IP (tos 0x0, ttl 64, id 20122, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1147 (correct), 2260258133:2260258133(0) ack 1979847314 win 65535
10:05:23.594472 IP (tos 0x0, ttl 64, id 20123, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0d17 (correct), 2260258133:2260258133(0) ack 1979848386 win 65535
10:05:23.594476 IP (tos 0x0, ttl 64, id 46541, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xd7c5), 1979866610:1979867682(1072) ack 2260258133 win 5840
10:05:23.594478 IP (tos 0x0, ttl 64, id 20124, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x08e7 (correct), 2260258133:2260258133(0) ack 1979849458 win 65535
10:05:23.594480 IP (tos 0x0, ttl 64, id 46543, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xdd22), 1979867682:1979868754(1072) ack 2260258133 win 5840
10:05:23.594522 IP (tos 0x0, ttl 64, id 20125, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x04b7 (correct), 2260258133:2260258133(0) ack 1979850530 win 65535
10:05:23.594526 IP (tos 0x0, ttl 64, id 46545, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x7538), 1979868754:1979869826(1072) ack 2260258133 win 5840
10:05:23.594528 IP (tos 0x0, ttl 64, id 20126, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0087 (correct), 2260258133:2260258133(0) ack 1979851602 win 65535
10:05:23.594530 IP (tos 0x0, ttl 64, id 46547, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x765a), 1979869826:1979870898(1072) ack 2260258133 win 5840
10:05:23.594532 IP (tos 0x0, ttl 64, id 20127, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfc56 (correct), 2260258133:2260258133(0) ack 1979852674 win 65535
10:05:23.594535 IP (tos 0x0, ttl 64, id 46549, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x690b), 1979870898:1979871970(1072) ack 2260258133 win 5840
10:05:23.594537 IP (tos 0x0, ttl 64, id 20128, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf826 (correct), 2260258133:2260258133(0) ack 1979853746 win 65535
10:05:23.594540 IP (tos 0x0, ttl 64, id 46551, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xfa9b), 1979871970:1979873042(1072) ack 2260258133 win 5840
10:05:23.594572 IP (tos 0x0, ttl 64, id 20129, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf3f6 (correct), 2260258133:2260258133(0) ack 1979854818 win 65535
10:05:23.594576 IP (tos 0x0, ttl 64, id 46553, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x7701), 1979873042:1979873578(536) ack 2260258133 win 5840
10:05:23.594578 IP (tos 0x0, ttl 64, id 46554, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x69d8), 1979873578:1979874114(536) ack 2260258133 win 5840
10:05:23.594579 IP (tos 0x0, ttl 64, id 20130, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xefc6 (correct), 2260258133:2260258133(0) ack 1979855890 win 65535
10:05:23.594581 IP (tos 0x0, ttl 64, id 46555, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x206c), 1979874114:1979875186(1072) ack 2260258133 win 5840
10:05:23.594623 IP (tos 0x0, ttl 64, id 20133, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe336 (correct), 2260258133:2260258133(0) ack 1979859106 win 65535
10:05:23.594626 IP (tos 0x0, ttl 64, id 46561, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xb6bf), 1979877330:1979878402(1072) ack 2260258133 win 5840
10:05:23.594628 IP (tos 0x0, ttl 64, id 20134, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe11e (correct), 2260258133:2260258133(0) ack 1979859642 win 65535
10:05:23.594631 IP (tos 0x0, ttl 64, id 46563, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x3264), 1979878402:1979878938(536) ack 2260258133 win 5840
10:05:23.594632 IP (tos 0x0, ttl 64, id 20135, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xdf06 (correct), 2260258133:2260258133(0) ack 1979860178 win 65535
10:05:23.594635 IP (tos 0x0, ttl 64, id 20136, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xdcee (correct), 2260258133:2260258133(0) ack 1979860714 win 65535
10:05:23.594639 IP (tos 0x0, ttl 64, id 20137, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xdad6 (correct), 2260258133:2260258133(0) ack 1979861250 win 65535
10:05:23.594672 IP (tos 0x0, ttl 64, id 20138, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd8be (correct), 2260258133:2260258133(0) ack 1979861786 win 65535
10:05:23.594675 IP (tos 0x0, ttl 64, id 46567, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x2b6f), 1979880546:1979881618(1072) ack 2260258133 win 5840
10:05:23.594678 IP (tos 0x0, ttl 64, id 20139, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd6a6 (correct), 2260258133:2260258133(0) ack 1979862322 win 65535
10:05:23.594680 IP (tos 0x0, ttl 64, id 46569, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x7579), 1979881618:1979882154(536) ack 2260258133 win 5840
10:05:23.594681 IP (tos 0x0, ttl 64, id 20140, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd48e (correct), 2260258133:2260258133(0) ack 1979862858 win 65535
10:05:23.594683 IP (tos 0x0, ttl 64, id 46570, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xa70b), 1979882154:1979882690(536) ack 2260258133 win 5840
10:05:23.594685 IP (tos 0x0, ttl 64, id 20141, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd276 (correct), 2260258133:2260258133(0) ack 1979863394 win 65535
10:05:23.594688 IP (tos 0x0, ttl 64, id 20142, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd05e (correct), 2260258133:2260258133(0) ack 1979863930 win 65535
10:05:23.594692 IP (tos 0x0, ttl 64, id 20143, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xce46 (correct), 2260258133:2260258133(0) ack 1979864466 win 65535
10:05:23.594773 IP (tos 0x0, ttl 64, id 20148, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc3ce (correct), 2260258133:2260258133(0) ack 1979867146 win 65535
10:05:23.594776 IP (tos 0x0, ttl 64, id 46578, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xa8f1), 1979886442:1979886978(536) ack 2260258133 win 5840
10:05:23.594778 IP (tos 0x0, ttl 64, id 20149, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc1b6 (correct), 2260258133:2260258133(0) ack 1979867682 win 65535
10:05:23.594780 IP (tos 0x0, ttl 64, id 46579, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xa1ee), 1979886978:1979887514(536) ack 2260258133 win 5840
10:05:23.594781 IP (tos 0x0, ttl 64, id 20150, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xbf9e (correct), 2260258133:2260258133(0) ack 1979868218 win 65535
10:05:23.594783 IP (tos 0x0, ttl 64, id 46580, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x3a3c), 1979887514:1979888050(536) ack 2260258133 win 5840
10:05:23.594784 IP (tos 0x0, ttl 64, id 20151, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xbd86 (correct), 2260258133:2260258133(0) ack 1979868754 win 65535
10:05:23.594786 IP (tos 0x0, ttl 64, id 46581, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xa327), 1979888050:1979888586(536) ack 2260258133 win 5840
10:05:23.594787 IP (tos 0x0, ttl 64, id 20152, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xbb6e (correct), 2260258133:2260258133(0) ack 1979869290 win 65535
10:05:23.594790 IP (tos 0x0, ttl 64, id 46582, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x5d36), 1979888586:1979889122(536) ack 2260258133 win 5840
10:05:23.594791 IP (tos 0x0, ttl 64, id 20153, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb956 (correct), 2260258133:2260258133(0) ack 1979869826 win 65535
10:05:23.594794 IP (tos 0x0, ttl 64, id 46583, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x251b), 1979889122:1979889658(536) ack 2260258133 win 5840
10:05:23.594795 IP (tos 0x0, ttl 64, id 20154, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb73e (correct), 2260258133:2260258133(0) ack 1979870362 win 65535
10:05:23.594800 IP (tos 0x0, ttl 64, id 20155, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb526 (correct), 2260258133:2260258133(0) ack 1979870898 win 65535
10:05:23.594872 IP (tos 0x0, ttl 64, id 20163, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa466 (correct), 2260258133:2260258133(0) ack 1979875186 win 65535
10:05:23.594876 IP (tos 0x0, ttl 64, id 46593, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x5709), 1979894482:1979895018(536) ack 2260258133 win 5840
10:05:23.594877 IP (tos 0x0, ttl 64, id 20164, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa24e (correct), 2260258133:2260258133(0) ack 1979875722 win 65535
10:05:23.594879 IP (tos 0x0, ttl 64, id 46594, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xf8b5), 1979895018:1979896090(1072) ack 2260258133 win 5840
10:05:23.594881 IP (tos 0x0, ttl 64, id 20165, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa036 (correct), 2260258133:2260258133(0) ack 1979876258 win 65535
10:05:23.594883 IP (tos 0x0, ttl 64, id 46596, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x556c), 1979896090:1979896626(536) ack 2260258133 win 5840
10:05:23.594885 IP (tos 0x0, ttl 64, id 20166, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9e1e (correct), 2260258133:2260258133(0) ack 1979876794 win 65535
10:05:23.594887 IP (tos 0x0, ttl 64, id 46597, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x2a3c), 1979896626:1979897162(536) ack 2260258133 win 5840
10:05:23.594888 IP (tos 0x0, ttl 64, id 20167, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9c06 (correct), 2260258133:2260258133(0) ack 1979877330 win 65535
10:05:23.594890 IP (tos 0x0, ttl 64, id 46598, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xac70), 1979897162:1979897698(536) ack 2260258133 win 5840
10:05:23.594892 IP (tos 0x0, ttl 64, id 20168, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x99ee (correct), 2260258133:2260258133(0) ack 1979877866 win 65535
10:05:23.594972 IP (tos 0x0, ttl 64, id 20177, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8716 (correct), 2260258133:2260258133(0) ack 1979882690 win 65535
10:05:23.594975 IP (tos 0x0, ttl 64, id 46608, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xa874), 1979902522:1979903058(536) ack 2260258133 win 5840
10:05:23.594977 IP (tos 0x0, ttl 64, id 20178, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x84fe (correct), 2260258133:2260258133(0) ack 1979883226 win 65535
10:05:23.594979 IP (tos 0x0, ttl 64, id 46609, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x89bb), 1979903058:1979903594(536) ack 2260258133 win 5840
10:05:23.594980 IP (tos 0x0, ttl 64, id 20179, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x82e6 (correct), 2260258133:2260258133(0) ack 1979883762 win 65535
10:05:23.594982 IP (tos 0x0, ttl 64, id 46610, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xc089), 1979903594:1979904130(536) ack 2260258133 win 5840
10:05:23.594983 IP (tos 0x0, ttl 64, id 20180, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x80ce (correct), 2260258133:2260258133(0) ack 1979884298 win 65535
10:05:23.594985 IP (tos 0x0, ttl 64, id 46611, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xac95), 1979904130:1979904666(536) ack 2260258133 win 5840
10:05:23.594986 IP (tos 0x0, ttl 64, id 20181, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7eb6 (correct), 2260258133:2260258133(0) ack 1979884834 win 65535
10:05:23.594988 IP (tos 0x0, ttl 64, id 46612, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xe0f2), 1979904666:1979905202(536) ack 2260258133 win 5840
10:05:23.594989 IP (tos 0x0, ttl 64, id 20182, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7c9e (correct), 2260258133:2260258133(0) ack 1979885370 win 65535
10:05:23.594992 IP (tos 0x0, ttl 64, id 46613, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x29de), 1979905202:1979905738(536) ack 2260258133 win 5840
10:05:23.594993 IP (tos 0x0, ttl 64, id 20183, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7a86 (correct), 2260258133:2260258133(0) ack 1979885906 win 65535
10:05:23.594994 IP (tos 0x0, ttl 64, id 46614, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: P, cksum 0x1855 (incorrect (-> 0xc40d), 1979905738:1979906274(536) ack 2260258133 win 5840
10:05:23.595072 IP (tos 0x0, ttl 64, id 20197, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5d36 (correct), 2260258133:2260258133(0) ack 1979893410 win 65535
10:05:23.595075 IP (tos 0x0, ttl 64, id 46629, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xdfe4), 1979913778:1979914314(536) ack 2260258133 win 5840
10:05:23.595076 IP (tos 0x0, ttl 64, id 20198, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5b1e (correct), 2260258133:2260258133(0) ack 1979893946 win 65535
10:05:23.595079 IP (tos 0x0, ttl 64, id 46630, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x6597), 1979914314:1979914850(536) ack 2260258133 win 5840
10:05:23.595080 IP (tos 0x0, ttl 64, id 20199, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5906 (correct), 2260258133:2260258133(0) ack 1979894482 win 65535
10:05:23.595082 IP (tos 0x0, ttl 64, id 46631, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x6740), 1979914850:1979915386(536) ack 2260258133 win 5840
10:05:23.595083 IP (tos 0x0, ttl 64, id 20200, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x56ee (correct), 2260258133:2260258133(0) ack 1979895018 win 65535
10:05:23.595085 IP (tos 0x0, ttl 64, id 46632, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x3dbb), 1979915386:1979915922(536) ack 2260258133 win 5840
10:05:23.595087 IP (tos 0x0, ttl 64, id 20201, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x54d6 (correct), 2260258133:2260258133(0) ack 1979895554 win 65535
10:05:23.595172 IP (tos 0x0, ttl 64, id 20211, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3fe6 (correct), 2260258133:2260258133(0) ack 1979900914 win 65535
10:05:23.595175 IP (tos 0x0, ttl 64, id 46643, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x1324), 1979921282:1979921818(536) ack 2260258133 win 5840
10:05:23.595176 IP (tos 0x0, ttl 64, id 20212, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3dce (correct), 2260258133:2260258133(0) ack 1979901450 win 65535
10:05:23.595178 IP (tos 0x0, ttl 64, id 46644, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xfa30), 1979921818:1979922354(536) ack 2260258133 win 5840
10:05:23.595179 IP (tos 0x0, ttl 64, id 20213, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3bb6 (correct), 2260258133:2260258133(0) ack 1979901986 win 65535
10:05:23.595182 IP (tos 0x0, ttl 64, id 46645, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xc91b), 1979922354:1979922890(536) ack 2260258133 win 5840
10:05:23.595183 IP (tos 0x0, ttl 64, id 20214, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x399e (correct), 2260258133:2260258133(0) ack 1979902522 win 65535
10:05:23.595185 IP (tos 0x0, ttl 64, id 46646, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x2721), 1979922890:1979923426(536) ack 2260258133 win 5840
10:05:23.595186 IP (tos 0x0, ttl 64, id 20215, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3786 (correct), 2260258133:2260258133(0) ack 1979903058 win 65535
10:05:23.595188 IP (tos 0x0, ttl 64, id 46647, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x0b03), 1979923426:1979923962(536) ack 2260258133 win 5840
10:05:23.595190 IP (tos 0x0, ttl 64, id 20216, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x356e (correct), 2260258133:2260258133(0) ack 1979903594 win 65535
10:05:23.595192 IP (tos 0x0, ttl 64, id 46648, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xdf6d), 1979923962:1979925034(1072) ack 2260258133 win 5840
10:05:23.595194 IP (tos 0x0, ttl 64, id 20217, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3356 (correct), 2260258133:2260258133(0) ack 1979904130 win 65535
10:05:23.595197 IP (tos 0x0, ttl 64, id 20218, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x313e (correct), 2260258133:2260258133(0) ack 1979904666 win 65535
10:05:23.595322 IP (tos 0x0, ttl 64, id 20236, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0b8e (correct), 2260258133:2260258133(0) ack 1979914314 win 65535
10:05:23.595325 IP (tos 0x0, ttl 64, id 46669, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xd48b), 1979935218:1979935754(536) ack 2260258133 win 5840
10:05:23.595326 IP (tos 0x0, ttl 64, id 20237, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0976 (correct), 2260258133:2260258133(0) ack 1979914850 win 65535
10:05:23.595328 IP (tos 0x0, ttl 64, id 46670, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xf8c9), 1979935754:1979936290(536) ack 2260258133 win 5840
10:05:23.595329 IP (tos 0x0, ttl 64, id 20238, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x075e (correct), 2260258133:2260258133(0) ack 1979915386 win 65535
10:05:23.595331 IP (tos 0x0, ttl 64, id 46671, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xa441), 1979936290:1979936826(536) ack 2260258133 win 5840
10:05:23.595332 IP (tos 0x0, ttl 64, id 20239, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0546 (correct), 2260258133:2260258133(0) ack 1979915922 win 65535
10:05:23.595334 IP (tos 0x0, ttl 64, id 46672, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x6bf7), 1979936826:1979937362(536) ack 2260258133 win 5840
10:05:23.595336 IP (tos 0x0, ttl 64, id 20240, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x032e (correct), 2260258133:2260258133(0) ack 1979916458 win 65535
10:05:23.595338 IP (tos 0x0, ttl 64, id 46673, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xd6c7), 1979937362:1979937898(536) ack 2260258133 win 5840
10:05:23.595339 IP (tos 0x0, ttl 64, id 20241, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0116 (correct), 2260258133:2260258133(0) ack 1979916994 win 65535
10:05:23.595341 IP (tos 0x0, ttl 64, id 46674, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x8dbd), 1979937898:1979938434(536) ack 2260258133 win 5840
10:05:23.595342 IP (tos 0x0, ttl 64, id 20242, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfefd (correct), 2260258133:2260258133(0) ack 1979917530 win 65535
10:05:23.595344 IP (tos 0x0, ttl 64, id 46675, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x6059), 1979938434:1979938970(536) ack 2260258133 win 5840
10:05:23.595348 IP (tos 0x0, ttl 64, id 20243, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfce5 (correct), 2260258133:2260258133(0) ack 1979918066 win 65535
10:05:23.595421 IP (tos 0x0, ttl 64, id 20259, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xdb65 (correct), 2260258133:2260258133(0) ack 1979926642 win 65535
10:05:23.595424 IP (tos 0x0, ttl 64, id 46693, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x9c32), 1979948082:1979948618(536) ack 2260258133 win 5840
10:05:23.595426 IP (tos 0x0, ttl 64, id 20260, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd94d (correct), 2260258133:2260258133(0) ack 1979927178 win 65535
10:05:23.595428 IP (tos 0x0, ttl 64, id 46694, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xe158), 1979948618:1979949154(536) ack 2260258133 win 5840
10:05:23.595429 IP (tos 0x0, ttl 64, id 20261, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd735 (correct), 2260258133:2260258133(0) ack 1979927714 win 65535
10:05:23.595432 IP (tos 0x0, ttl 64, id 20262, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd51d (correct), 2260258133:2260258133(0) ack 1979928250 win 65535
10:05:23.595522 IP (tos 0x0, ttl 64, id 20273, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xbe15 (correct), 2260258133:2260258133(0) ack 1979934146 win 65535
10:05:23.595525 IP (tos 0x0, ttl 64, id 46708, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x97a3), 1979956122:1979956658(536) ack 2260258133 win 5840
10:05:23.595527 IP (tos 0x0, ttl 64, id 20274, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xbbfd (correct), 2260258133:2260258133(0) ack 1979934682 win 65535
10:05:23.595529 IP (tos 0x0, ttl 64, id 46709, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xb57c), 1979956658:1979957194(536) ack 2260258133 win 5840
10:05:23.595530 IP (tos 0x0, ttl 64, id 20275, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb9e5 (correct), 2260258133:2260258133(0) ack 1979935218 win 65535
10:05:23.595532 IP (tos 0x0, ttl 64, id 46710, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x117e), 1979957194:1979957730(536) ack 2260258133 win 5840
10:05:23.595533 IP (tos 0x0, ttl 64, id 20276, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb7cd (correct), 2260258133:2260258133(0) ack 1979935754 win 65535
10:05:23.595535 IP (tos 0x0, ttl 64, id 46711, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x49fb), 1979957730:1979958266(536) ack 2260258133 win 5840
10:05:23.595536 IP (tos 0x0, ttl 64, id 20277, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb5b5 (correct), 2260258133:2260258133(0) ack 1979936290 win 65535
10:05:23.595538 IP (tos 0x0, ttl 64, id 46712, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x0f52), 1979958266:1979958802(536) ack 2260258133 win 5840
10:05:23.595539 IP (tos 0x0, ttl 64, id 20278, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb39d (correct), 2260258133:2260258133(0) ack 1979936826 win 65535
10:05:23.595541 IP (tos 0x0, ttl 64, id 46713, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x3b33), 1979958802:1979959338(536) ack 2260258133 win 5840
10:05:23.595542 IP (tos 0x0, ttl 64, id 20279, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb185 (correct), 2260258133:2260258133(0) ack 1979937362 win 65535
10:05:23.595544 IP (tos 0x0, ttl 64, id 46714, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xe889), 1979959338:1979959874(536) ack 2260258133 win 5840
10:05:23.595672 IP (tos 0x0, ttl 64, id 20304, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7d2d (correct), 2260258133:2260258133(0) ack 1979950762 win 65535
10:05:23.595675 IP (tos 0x0, ttl 64, id 46740, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xd20c), 1979973274:1979973810(536) ack 2260258133 win 5840
10:05:23.595676 IP (tos 0x0, ttl 64, id 20305, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7b15 (correct), 2260258133:2260258133(0) ack 1979951298 win 65535
10:05:23.595678 IP (tos 0x0, ttl 64, id 46741, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x66f2), 1979973810:1979974346(536) ack 2260258133 win 5840
10:05:23.595680 IP (tos 0x0, ttl 64, id 20306, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x78fd (correct), 2260258133:2260258133(0) ack 1979951834 win 65535
10:05:23.595681 IP (tos 0x0, ttl 64, id 46742, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x754d), 1979974346:1979974882(536) ack 2260258133 win 5840
10:05:23.595683 IP (tos 0x0, ttl 64, id 20307, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x76e5 (correct), 2260258133:2260258133(0) ack 1979952370 win 65535
10:05:23.595685 IP (tos 0x0, ttl 64, id 46743, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x51b5), 1979974882:1979975418(536) ack 2260258133 win 5840
10:05:23.595686 IP (tos 0x0, ttl 64, id 20308, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x74cd (correct), 2260258133:2260258133(0) ack 1979952906 win 65535
10:05:23.595688 IP (tos 0x0, ttl 64, id 46744, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x0fb0), 1979975418:1979975954(536) ack 2260258133 win 5840
10:05:23.595689 IP (tos 0x0, ttl 64, id 20309, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x72b5 (correct), 2260258133:2260258133(0) ack 1979953442 win 65535
10:05:23.595691 IP (tos 0x0, ttl 64, id 46745, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x672e), 1979975954:1979976490(536) ack 2260258133 win 5840
10:05:23.595692 IP (tos 0x0, ttl 64, id 20310, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x709d (correct), 2260258133:2260258133(0) ack 1979953978 win 65535
10:05:23.595694 IP (tos 0x0, ttl 64, id 46746, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x3fed), 1979976490:1979977026(536) ack 2260258133 win 5840
10:05:23.595771 IP (tos 0x0, ttl 64, id 20319, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5dc5 (correct), 2260258133:2260258133(0) ack 1979958802 win 65535
10:05:23.595774 IP (tos 0x0, ttl 64, id 46755, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xbf38), 1979981314:1979981850(536) ack 2260258133 win 5840
10:05:23.595776 IP (tos 0x0, ttl 64, id 20320, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5bad (correct), 2260258133:2260258133(0) ack 1979959338 win 65535
10:05:23.595778 IP (tos 0x0, ttl 64, id 46756, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x2a02), 1979981850:1979982922(1072) ack 2260258133 win 5840
10:05:23.595780 IP (tos 0x0, ttl 64, id 20321, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5995 (correct), 2260258133:2260258133(0) ack 1979959874 win 65535
10:05:23.595782 IP (tos 0x0, ttl 64, id 46758, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x491b), 1979982922:1979983458(536) ack 2260258133 win 5840
10:05:23.595783 IP (tos 0x0, ttl 64, id 20322, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x577d (correct), 2260258133:2260258133(0) ack 1979960410 win 65535
10:05:23.595785 IP (tos 0x0, ttl 64, id 46759, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xc55f), 1979983458:1979983994(536) ack 2260258133 win 5840
10:05:23.595786 IP (tos 0x0, ttl 64, id 20323, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5565 (correct), 2260258133:2260258133(0) ack 1979960946 win 65535
10:05:23.595788 IP (tos 0x0, ttl 64, id 46760, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x3150), 1979983994:1979984530(536) ack 2260258133 win 5840
10:05:23.595789 IP (tos 0x0, ttl 64, id 20324, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x534d (correct), 2260258133:2260258133(0) ack 1979961482 win 65535
10:05:23.595792 IP (tos 0x0, ttl 64, id 46761, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xe5d0), 1979984530:1979985066(536) ack 2260258133 win 5840
10:05:23.595792 IP (tos 0x0, ttl 64, id 20325, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5135 (correct), 2260258133:2260258133(0) ack 1979962018 win 65535
10:05:23.595795 IP (tos 0x0, ttl 64, id 20326, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4f1d (correct), 2260258133:2260258133(0) ack 1979962554 win 65535
10:05:23.595921 IP (tos 0x0, ttl 64, id 20352, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x18ad (correct), 2260258133:2260258133(0) ack 1979976490 win 65535
10:05:23.595925 IP (tos 0x0, ttl 64, id 46790, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xf4e9), 1980000074:1980000610(536) ack 2260258133 win 5840
10:05:23.595926 IP (tos 0x0, ttl 64, id 20353, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1695 (correct), 2260258133:2260258133(0) ack 1979977026 win 65535
10:05:23.595928 IP (tos 0x0, ttl 64, id 46791, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x67f3), 1980000610:1980001146(536) ack 2260258133 win 5840
10:05:23.595929 IP (tos 0x0, ttl 64, id 20354, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x147d (correct), 2260258133:2260258133(0) ack 1979977562 win 65535
10:05:23.595931 IP (tos 0x0, ttl 64, id 46792, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xa26b), 1980001146:1980001682(536) ack 2260258133 win 5840
10:05:23.595932 IP (tos 0x0, ttl 64, id 20355, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1265 (correct), 2260258133:2260258133(0) ack 1979978098 win 65535
10:05:23.595934 IP (tos 0x0, ttl 64, id 46793, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x5a2a), 1980001682:1980002218(536) ack 2260258133 win 5840
10:05:23.596020 IP (tos 0x0, ttl 64, id 20356, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x104d (correct), 2260258133:2260258133(0) ack 1979978634 win 65535
10:05:23.596023 IP (tos 0x0, ttl 64, id 46794, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x1d1d), 1980002218:1980002754(536) ack 2260258133 win 5840
10:05:23.596024 IP (tos 0x0, ttl 64, id 20357, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0e35 (correct), 2260258133:2260258133(0) ack 1979979170 win 65535
10:05:23.596027 IP (tos 0x0, ttl 64, id 46795, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x1d95), 1980002754:1980003290(536) ack 2260258133 win 5840
10:05:23.596028 IP (tos 0x0, ttl 64, id 20358, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0c1d (correct), 2260258133:2260258133(0) ack 1979979706 win 65535
10:05:23.596030 IP (tos 0x0, ttl 64, id 46796, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xf42a), 1980003290:1980003826(536) ack 2260258133 win 5840
10:05:23.596031 IP (tos 0x0, ttl 64, id 20359, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0a05 (correct), 2260258133:2260258133(0) ack 1979980242 win 65535
10:05:23.596033 IP (tos 0x0, ttl 64, id 46797, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xb9ca), 1980003826:1980004362(536) ack 2260258133 win 5840
10:05:23.596034 IP (tos 0x0, ttl 64, id 20360, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x07ed (correct), 2260258133:2260258133(0) ack 1979980778 win 65535
10:05:23.596036 IP (tos 0x0, ttl 64, id 46798, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xd6a9), 1980004362:1980004898(536) ack 2260258133 win 5840
10:05:23.596037 IP (tos 0x0, ttl 64, id 20361, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x05d5 (correct), 2260258133:2260258133(0) ack 1979981314 win 65535
10:05:23.596039 IP (tos 0x0, ttl 64, id 46799, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x2078), 1980004898:1980005434(536) ack 2260258133 win 5840
10:05:23.596040 IP (tos 0x0, ttl 64, id 20362, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x03bd (correct), 2260258133:2260258133(0) ack 1979981850 win 65535
10:05:23.596042 IP (tos 0x0, ttl 64, id 46800, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x8bd3), 1980005434:1980005970(536) ack 2260258133 win 5840
10:05:23.596043 IP (tos 0x0, ttl 64, id 20363, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x01a5 (correct), 2260258133:2260258133(0) ack 1979982386 win 65535
10:05:23.596045 IP (tos 0x0, ttl 64, id 46801, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x4d3a), 1980005970:1980006506(536) ack 2260258133 win 5840
10:05:23.596047 IP (tos 0x0, ttl 64, id 20364, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xff8c (correct), 2260258133:2260258133(0) ack 1979982922 win 65535
10:05:23.596048 IP (tos 0x0, ttl 64, id 46802, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x4531), 1980006506:1980007042(536) ack 2260258133 win 5840
10:05:23.596050 IP (tos 0x0, ttl 64, id 20365, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfd74 (correct), 2260258133:2260258133(0) ack 1979983458 win 65535
10:05:23.596053 IP (tos 0x0, ttl 64, id 46803, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x4bb3), 1980007042:1980007578(536) ack 2260258133 win 5840
10:05:23.596054 IP (tos 0x0, ttl 64, id 20366, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfb5c (correct), 2260258133:2260258133(0) ack 1979983994 win 65535
10:05:23.596055 IP (tos 0x0, ttl 64, id 46804, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x500e), 1980007578:1980008114(536) ack 2260258133 win 5840
10:05:23.596056 IP (tos 0x0, ttl 64, id 20367, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf944 (correct), 2260258133:2260258133(0) ack 1979984530 win 65535
10:05:23.596059 IP (tos 0x0, ttl 64, id 20368, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf72c (correct), 2260258133:2260258133(0) ack 1979985066 win 65535
10:05:23.596119 IP (tos 0x0, ttl 64, id 20383, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd7c4 (correct), 2260258133:2260258133(0) ack 1979993106 win 65535
10:05:23.596171 IP (tos 0x0, ttl 64, id 20390, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc91c (correct), 2260258133:2260258133(0) ack 1979996858 win 65535
10:05:23.596174 IP (tos 0x0, ttl 64, id 46829, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x6077), 1980020978:1980021514(536) ack 2260258133 win 5840
10:05:23.596175 IP (tos 0x0, ttl 64, id 20391, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc704 (correct), 2260258133:2260258133(0) ack 1979997394 win 65535
10:05:23.596177 IP (tos 0x0, ttl 64, id 46830, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x51e6), 1980021514:1980022050(536) ack 2260258133 win 5840
10:05:23.596178 IP (tos 0x0, ttl 64, id 20392, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc4ec (correct), 2260258133:2260258133(0) ack 1979997930 win 65535
10:05:23.596180 IP (tos 0x0, ttl 64, id 46831, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0xc561), 1980022050:1980022586(536) ack 2260258133 win 5840
10:05:23.596270 IP (tos 0x0, ttl 64, id 20406, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8c64 (correct), 2260258133:2260258133(0) ack 1980012402 win 65535
10:05:23.596273 IP (tos 0x0, ttl 64, id 46858, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: P, cksum 0x1855 (incorrect (-> 0x85df), 1980036522:1980037058(536) ack 2260258133 win 5840
10:05:23.596275 IP (tos 0x0, ttl 64, id 46859, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x6dc3), 1980037058:1980037594(536) ack 2260258133 win 5840
10:05:23.596276 IP (tos 0x0, ttl 64, id 20407, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8834 (correct), 2260258133:2260258133(0) ack 1980013474 win 65535
10:05:23.596280 IP (tos 0x0, ttl 64, id 20408, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8404 (correct), 2260258133:2260258133(0) ack 1980014546 win 65535
10:05:23.596285 IP (tos 0x0, ttl 64, id 20409, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7fd4 (correct), 2260258133:2260258133(0) ack 1980015618 win 65535
10:05:23.596289 IP (tos 0x0, ttl 64, id 20410, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7ba4 (correct), 2260258133:2260258133(0) ack 1980016690 win 65535
10:05:23.596370 IP (tos 0x0, ttl 64, id 20417, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5e54 (correct), 2260258133:2260258133(0) ack 1980024194 win 65535
10:05:23.596374 IP (tos 0x0, ttl 64, id 46880, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x57d6), 1980048314:1980049386(1072) ack 2260258133 win 5840
10:05:23.596375 IP (tos 0x0, ttl 64, id 20418, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5a24 (correct), 2260258133:2260258133(0) ack 1980025266 win 65535
10:05:23.596378 IP (tos 0x0, ttl 64, id 46882, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x623a), 1980049386:1980050458(1072) ack 2260258133 win 5840
10:05:23.596379 IP (tos 0x0, ttl 64, id 20419, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x55f4 (correct), 2260258133:2260258133(0) ack 1980026338 win 65535
10:05:23.596381 IP (tos 0x0, ttl 64, id 46884, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x1968), 1980050458:1980051530(1072) ack 2260258133 win 5840
10:05:23.596383 IP (tos 0x0, ttl 64, id 20420, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x51c4 (correct), 2260258133:2260258133(0) ack 1980027410 win 65535
10:05:23.596385 IP (tos 0x0, ttl 64, id 46886, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xc14a), 1980051530:1980052602(1072) ack 2260258133 win 5840
10:05:23.596387 IP (tos 0x0, ttl 64, id 20421, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4d94 (correct), 2260258133:2260258133(0) ack 1980028482 win 65535
10:05:23.596967 IP (tos 0x0, ttl 64, id 20422, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4964 (correct), 2260258133:2260258133(0) ack 1980029554 win 65535
10:05:23.596971 IP (tos 0x0, ttl 64, id 46890, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x840c), 1980053674:1980054746(1072) ack 2260258133 win 5840
10:05:23.596973 IP (tos 0x0, ttl 64, id 20423, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4534 (correct), 2260258133:2260258133(0) ack 1980030626 win 65535
10:05:23.596975 IP (tos 0x0, ttl 64, id 46892, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x08ba), 1980054746:1980055818(1072) ack 2260258133 win 5840
10:05:23.596976 IP (tos 0x0, ttl 64, id 20424, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4104 (correct), 2260258133:2260258133(0) ack 1980031698 win 65535
10:05:23.596979 IP (tos 0x0, ttl 64, id 46894, offset 0, flags [DF], proto TCP (6), length 1648) dione.40344 > phoenix.distcc: ., cksum 0x1c85 (incorrect (-> 0x8154), 1980055818:1980057426(1608) ack 2260258133 win 5840
10:05:23.597019 IP (tos 0x0, ttl 64, id 20425, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3cd4 (correct), 2260258133:2260258133(0) ack 1980032770 win 65535
10:05:23.597022 IP (tos 0x0, ttl 64, id 46897, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xcb5d), 1980057426:1980058498(1072) ack 2260258133 win 5840
10:05:23.597023 IP (tos 0x0, ttl 64, id 20426, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x38a4 (correct), 2260258133:2260258133(0) ack 1980033842 win 65535
10:05:23.597026 IP (tos 0x0, ttl 64, id 46899, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x33dc), 1980058498:1980059570(1072) ack 2260258133 win 5840
10:05:23.597028 IP (tos 0x0, ttl 64, id 20427, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3474 (correct), 2260258133:2260258133(0) ack 1980034914 win 65535
10:05:23.597030 IP (tos 0x0, ttl 64, id 46901, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xf8b2), 1980059570:1980060642(1072) ack 2260258133 win 5840
10:05:23.597032 IP (tos 0x0, ttl 64, id 20428, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3044 (correct), 2260258133:2260258133(0) ack 1980035986 win 65535
10:05:23.597034 IP (tos 0x0, ttl 64, id 46903, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x1d20), 1980060642:1980061714(1072) ack 2260258133 win 5840
10:05:23.597036 IP (tos 0x0, ttl 64, id 20429, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2c14 (correct), 2260258133:2260258133(0) ack 1980037058 win 65535
10:05:23.597039 IP (tos 0x0, ttl 64, id 46905, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xdc53), 1980061714:1980062786(1072) ack 2260258133 win 5840
10:05:23.597040 IP (tos 0x0, ttl 64, id 20430, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x27e4 (correct), 2260258133:2260258133(0) ack 1980038130 win 65535
10:05:23.597043 IP (tos 0x0, ttl 64, id 46907, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x3785), 1980062786:1980063858(1072) ack 2260258133 win 5840
10:05:23.597044 IP (tos 0x0, ttl 64, id 20431, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x23b4 (correct), 2260258133:2260258133(0) ack 1980039202 win 65535
10:05:23.597047 IP (tos 0x0, ttl 64, id 46909, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xa5b8), 1980063858:1980064930(1072) ack 2260258133 win 5840
10:05:23.597049 IP (tos 0x0, ttl 64, id 20432, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1f84 (correct), 2260258133:2260258133(0) ack 1980040274 win 65535
10:05:23.597051 IP (tos 0x0, ttl 64, id 46911, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x4b61), 1980064930:1980066002(1072) ack 2260258133 win 5840
10:05:23.597053 IP (tos 0x0, ttl 64, id 20433, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1b54 (correct), 2260258133:2260258133(0) ack 1980041346 win 65535
10:05:23.597055 IP (tos 0x0, ttl 64, id 46913, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xb61b), 1980066002:1980067074(1072) ack 2260258133 win 5840
10:05:23.597057 IP (tos 0x0, ttl 64, id 20434, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1724 (correct), 2260258133:2260258133(0) ack 1980042418 win 65535
10:05:23.597059 IP (tos 0x0, ttl 64, id 46915, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xabf9), 1980067074:1980068146(1072) ack 2260258133 win 5840
10:05:23.597061 IP (tos 0x0, ttl 64, id 20435, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x12f4 (correct), 2260258133:2260258133(0) ack 1980043490 win 65535
10:05:23.597063 IP (tos 0x0, ttl 64, id 46917, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x2116), 1980068146:1980069218(1072) ack 2260258133 win 5840
10:05:23.597065 IP (tos 0x0, ttl 64, id 20436, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0ec4 (correct), 2260258133:2260258133(0) ack 1980044562 win 65535
10:05:23.597067 IP (tos 0x0, ttl 64, id 46919, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x5c77), 1980069218:1980069754(536) ack 2260258133 win 5840
10:05:23.597068 IP (tos 0x0, ttl 64, id 46920, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: ., cksum 0x1855 (incorrect (-> 0x8107), 1980069754:1980070290(536) ack 2260258133 win 5840
10:05:23.597070 IP (tos 0x0, ttl 64, id 20437, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0a94 (correct), 2260258133:2260258133(0) ack 1980045634 win 65535
10:05:23.597072 IP (tos 0x0, ttl 64, id 46921, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x1c56), 1980070290:1980071362(1072) ack 2260258133 win 5840
10:05:23.597074 IP (tos 0x0, ttl 64, id 20438, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0664 (correct), 2260258133:2260258133(0) ack 1980046706 win 65535
10:05:23.597076 IP (tos 0x0, ttl 64, id 46923, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x571c), 1980071362:1980072434(1072) ack 2260258133 win 5840
10:05:23.597078 IP (tos 0x0, ttl 64, id 20439, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0234 (correct), 2260258133:2260258133(0) ack 1980047778 win 65535
10:05:23.597080 IP (tos 0x0, ttl 64, id 46925, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x312a), 1980072434:1980073506(1072) ack 2260258133 win 5840
10:05:23.597081 IP (tos 0x0, ttl 64, id 20440, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfe03 (correct), 2260258133:2260258133(0) ack 1980048850 win 65535
10:05:23.597084 IP (tos 0x0, ttl 64, id 46927, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x7272), 1980073506:1980074578(1072) ack 2260258133 win 5840
10:05:23.597086 IP (tos 0x0, ttl 64, id 20441, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf9d3 (correct), 2260258133:2260258133(0) ack 1980049922 win 65535
10:05:23.597089 IP (tos 0x0, ttl 64, id 46929, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x9aa9), 1980074578:1980075650(1072) ack 2260258133 win 5840
10:05:23.597092 IP (tos 0x0, ttl 64, id 20442, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf5a3 (correct), 2260258133:2260258133(0) ack 1980050994 win 65535
10:05:23.597095 IP (tos 0x0, ttl 64, id 46931, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x3ee6), 1980075650:1980076722(1072) ack 2260258133 win 5840
10:05:23.597118 IP (tos 0x0, ttl 64, id 20443, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf173 (correct), 2260258133:2260258133(0) ack 1980052066 win 65535
10:05:23.597121 IP (tos 0x0, ttl 64, id 46933, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xe496), 1980076722:1980077794(1072) ack 2260258133 win 5840
10:05:23.597124 IP (tos 0x0, ttl 64, id 20444, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xed43 (correct), 2260258133:2260258133(0) ack 1980053138 win 65535
10:05:23.597126 IP (tos 0x0, ttl 64, id 46935, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xaea4), 1980077794:1980078866(1072) ack 2260258133 win 5840
10:05:23.597128 IP (tos 0x0, ttl 64, id 20445, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe913 (correct), 2260258133:2260258133(0) ack 1980054210 win 65535
10:05:23.597130 IP (tos 0x0, ttl 64, id 46937, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xf86a), 1980078866:1980079938(1072) ack 2260258133 win 5840
10:05:23.597132 IP (tos 0x0, ttl 64, id 20446, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe4e3 (correct), 2260258133:2260258133(0) ack 1980055282 win 65535
10:05:23.597134 IP (tos 0x0, ttl 64, id 46939, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0x68f9), 1980079938:1980081010(1072) ack 2260258133 win 5840
10:05:23.597136 IP (tos 0x0, ttl 64, id 20447, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe0b3 (correct), 2260258133:2260258133(0) ack 1980056354 win 65535
10:05:23.597138 IP (tos 0x0, ttl 64, id 46941, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xb1a1), 1980081010:1980082082(1072) ack 2260258133 win 5840
10:05:23.597140 IP (tos 0x0, ttl 64, id 20448, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xdc83 (correct), 2260258133:2260258133(0) ack 1980057426 win 65535
10:05:23.597142 IP (tos 0x0, ttl 64, id 46943, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xbc8a), 1980082082:1980083154(1072) ack 2260258133 win 5840
10:05:23.597144 IP (tos 0x0, ttl 64, id 20449, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd853 (correct), 2260258133:2260258133(0) ack 1980058498 win 65535
10:05:23.597146 IP (tos 0x0, ttl 64, id 46945, offset 0, flags [DF], proto TCP (6), length 1112) dione.40344 > phoenix.distcc: ., cksum 0x1a6d (incorrect (-> 0xc6cf), 1980083154:1980084226(1072) ack 2260258133 win 5840
10:05:23.597148 IP (tos 0x0, ttl 64, id 20450, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd423 (correct), 2260258133:2260258133(0) ack 1980059570 win 65535
10:05:23.597150 IP (tos 0x0, ttl 64, id 46947, offset 0, flags [DF], proto TCP (6), length 1648) dione.40344 > phoenix.distcc: ., cksum 0x1c85 (incorrect (-> 0x5cfb), 1980084226:1980085834(1608) ack 2260258133 win 5840
10:05:23.597151 IP (tos 0x0, ttl 64, id 20451, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xcff3 (correct), 2260258133:2260258133(0) ack 1980060642 win 65535
10:05:23.597153 IP (tos 0x0, ttl 64, id 46950, offset 0, flags [DF], proto TCP (6), length 351) dione.40344 > phoenix.distcc: P, cksum 0x1774 (incorrect (-> 0xe29c), 1980085834:1980086145(311) ack 2260258133 win 5840
10:05:23.597167 IP (tos 0x0, ttl 64, id 20452, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xcbc3 (correct), 2260258133:2260258133(0) ack 1980061714 win 65535
10:05:23.597169 IP (tos 0x0, ttl 64, id 20453, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc793 (correct), 2260258133:2260258133(0) ack 1980062786 win 65535
10:05:23.597219 IP (tos 0x0, ttl 64, id 20454, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xc363 (correct), 2260258133:2260258133(0) ack 1980063858 win 65535
10:05:23.597222 IP (tos 0x0, ttl 64, id 20455, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xbf33 (correct), 2260258133:2260258133(0) ack 1980064930 win 65535
10:05:23.597223 IP (tos 0x0, ttl 64, id 20456, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xbb03 (correct), 2260258133:2260258133(0) ack 1980066002 win 65535
10:05:23.597225 IP (tos 0x0, ttl 64, id 20457, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb6d3 (correct), 2260258133:2260258133(0) ack 1980067074 win 65535
10:05:23.597226 IP (tos 0x0, ttl 64, id 20458, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb2a3 (correct), 2260258133:2260258133(0) ack 1980068146 win 65535
10:05:23.597268 IP (tos 0x0, ttl 64, id 20459, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xae73 (correct), 2260258133:2260258133(0) ack 1980069218 win 65535
10:05:23.597270 IP (tos 0x0, ttl 64, id 20460, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xaa43 (correct), 2260258133:2260258133(0) ack 1980070290 win 65535
10:05:23.597272 IP (tos 0x0, ttl 64, id 20461, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa613 (correct), 2260258133:2260258133(0) ack 1980071362 win 65535
10:05:23.597318 IP (tos 0x0, ttl 64, id 20462, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa1e3 (correct), 2260258133:2260258133(0) ack 1980072434 win 65535
10:05:23.597320 IP (tos 0x0, ttl 64, id 20463, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9db3 (correct), 2260258133:2260258133(0) ack 1980073506 win 65535
10:05:23.597321 IP (tos 0x0, ttl 64, id 20464, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9983 (correct), 2260258133:2260258133(0) ack 1980074578 win 65535
10:05:23.597367 IP (tos 0x0, ttl 64, id 20465, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9553 (correct), 2260258133:2260258133(0) ack 1980075650 win 65535
10:05:23.597369 IP (tos 0x0, ttl 64, id 20466, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9123 (correct), 2260258133:2260258133(0) ack 1980076722 win 65535
10:05:23.597371 IP (tos 0x0, ttl 64, id 20467, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8cf3 (correct), 2260258133:2260258133(0) ack 1980077794 win 65535
10:05:23.597372 IP (tos 0x0, ttl 64, id 20468, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x88c3 (correct), 2260258133:2260258133(0) ack 1980078866 win 65535
10:05:23.597418 IP (tos 0x0, ttl 64, id 20469, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8493 (correct), 2260258133:2260258133(0) ack 1980079938 win 65535
10:05:23.597420 IP (tos 0x0, ttl 64, id 20470, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8063 (correct), 2260258133:2260258133(0) ack 1980081010 win 65535
10:05:23.597421 IP (tos 0x0, ttl 64, id 20471, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7c33 (correct), 2260258133:2260258133(0) ack 1980082082 win 65535
10:05:23.597468 IP (tos 0x0, ttl 64, id 20472, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7803 (correct), 2260258133:2260258133(0) ack 1980083154 win 65535
10:05:23.597470 IP (tos 0x0, ttl 64, id 20473, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x73d3 (correct), 2260258133:2260258133(0) ack 1980084226 win 65535
10:05:23.597471 IP (tos 0x0, ttl 64, id 20474, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6fa3 (correct), 2260258133:2260258133(0) ack 1980085298 win 65535
10:05:23.597473 IP (tos 0x0, ttl 64, id 20475, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6c54 (correct), 2260258133:2260258133(0) ack 1980086145 win 65535
10:05:23.998379 IP (tos 0x0, ttl 64, id 20476, offset 0, flags [DF], proto TCP (6), length 1500) phoenix.distcc > dione.40344: ., cksum 0xdb6a (correct), 2260258133:2260259593(1460) ack 1980086145 win 65535
10:05:23.998388 IP (tos 0x0, ttl 64, id 46951, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0x4468 (correct), 1980086145:1980086145(0) ack 2260259593 win 8760
10:05:23.998391 IP (tos 0x0, ttl 64, id 20477, offset 0, flags [DF], proto TCP (6), length 1500) phoenix.distcc > dione.40344: ., cksum 0xc6e2 (correct), 2260259593:2260261053(1460) ack 1980086145 win 65535
10:05:23.998394 IP (tos 0x0, ttl 64, id 46952, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0x334c (correct), 1980086145:1980086145(0) ack 2260261053 win 11680
10:05:23.998477 IP (tos 0x0, ttl 64, id 20478, offset 0, flags [DF], proto TCP (6), length 1500) phoenix.distcc > dione.40344: ., cksum 0x52a0 (correct), 2260261053:2260262513(1460) ack 1980086145 win 65535
10:05:23.998484 IP (tos 0x0, ttl 64, id 46953, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0x2230 (correct), 1980086145:1980086145(0) ack 2260262513 win 14600
10:05:23.998486 IP (tos 0x0, ttl 64, id 20479, offset 0, flags [DF], proto TCP (6), length 1500) phoenix.distcc > dione.40344: ., cksum 0x577f (correct), 2260262513:2260263973(1460) ack 1980086145 win 65535
10:05:23.998489 IP (tos 0x0, ttl 64, id 46954, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0x1114 (correct), 1980086145:1980086145(0) ack 2260263973 win 17520
10:05:23.998528 IP (tos 0x0, ttl 64, id 20480, offset 0, flags [DF], proto TCP (6), length 1500) phoenix.distcc > dione.40344: ., cksum 0x3212 (correct), 2260263973:2260265433(1460) ack 1980086145 win 65535
10:05:23.998532 IP (tos 0x0, ttl 64, id 46955, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0xfff7 (correct), 1980086145:1980086145(0) ack 2260265433 win 20440
10:05:23.998534 IP (tos 0x0, ttl 64, id 20481, offset 0, flags [DF], proto TCP (6), length 1500) phoenix.distcc > dione.40344: ., cksum 0x0f43 (correct), 2260265433:2260266893(1460) ack 1980086145 win 65535
10:05:23.998537 IP (tos 0x0, ttl 64, id 46956, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0xeedb (correct), 1980086145:1980086145(0) ack 2260266893 win 23360
10:05:23.998578 IP (tos 0x0, ttl 64, id 20482, offset 0, flags [DF], proto TCP (6), length 1500) phoenix.distcc > dione.40344: ., cksum 0xb97b (correct), 2260266893:2260268353(1460) ack 1980086145 win 65535
10:05:23.998582 IP (tos 0x0, ttl 64, id 46957, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0xddbf (correct), 1980086145:1980086145(0) ack 2260268353 win 26280
10:05:23.998586 IP (tos 0x0, ttl 64, id 20483, offset 0, flags [DF], proto TCP (6), length 1500) phoenix.distcc > dione.40344: P, cksum 0x0297 (correct), 2260268353:2260269813(1460) ack 1980086145 win 65535
10:05:23.998588 IP (tos 0x0, ttl 64, id 46958, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0xcca3 (correct), 1980086145:1980086145(0) ack 2260269813 win 29200
10:05:23.998590 IP (tos 0x0, ttl 64, id 20484, offset 0, flags [DF], proto TCP (6), length 924) phoenix.distcc > dione.40344: P, cksum 0x67c5 (correct), 2260269813:2260270697(884) ack 1980086145 win 65535
10:05:23.998599 IP (tos 0x0, ttl 64, id 46959, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0xbdc7 (correct), 1980086145:1980086145(0) ack 2260270697 win 32120
10:05:23.998645 IP (tos 0x0, ttl 64, id 46960, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: F, cksum 0xbdc6 (correct), 1980086145:1980086145(0) ack 2260270697 win 32120
10:05:23.999025 IP (tos 0x0, ttl 64, id 20485, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: F, cksum 0x3b3e (correct), 2260270697:2260270697(0) ack 1980086146 win 65535
10:05:23.999030 IP (tos 0x0, ttl 64, id 46961, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0xbdc5 (correct), 1980086146:1980086146(0) ack 2260270698 win 32120

[traced on the server, phoenix]

10:03:24.304962 IP (tos 0x0, ttl 64, id 46098, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979565914:1979566450(536) ack 2260258133 win 5840
10:03:24.304989 IP (tos 0x0, ttl 64, id 19850, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5a6b (correct), 2260258133:2260258133(0) ack 1979566450 win 65535
10:03:24.305063 IP (tos 0x0, ttl 64, id 46099, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979631449:1979631985(536) ack 2260258133 win 5840
10:03:24.305076 IP (tos 0x0, ttl 64, id 19851, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5a6b (correct), 2260258133:2260258133(0) ack 1979566450 win 65535
10:05:24.324738 IP (tos 0x0, ttl 64, id 46100, offset 0, flags [DF], proto TCP (6), length 183) dione.40344 > phoenix.distcc: . 1979566450:1979566593(143) ack 2260258133 win 5840
10:05:24.324789 IP (tos 0x0, ttl 64, id 19852, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x59dc (correct), 2260258133:2260258133(0) ack 1979566593 win 65535
10:05:24.324910 IP (tos 0x0, ttl 64, id 46101, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979566593:1979567129(536) ack 2260258133 win 5840
10:05:24.324918 IP (tos 0x0, ttl 64, id 46102, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979567129:1979567665(536) ack 2260258133 win 5840
10:05:24.325121 IP (tos 0x0, ttl 64, id 19853, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5a6b (correct), 2260258133:2260258133(0) ack 1979631985 win 65535
10:05:24.325131 IP (tos 0x0, ttl 64, id 19854, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5a6b (correct), 2260258133:2260258133(0) ack 1979631985 win 65535
10:05:24.325282 IP (tos 0x0, ttl 64, id 46103, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979631985:1979632521(536) ack 2260258133 win 5840
10:05:24.325291 IP (tos 0x0, ttl 64, id 19855, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5853 (correct), 2260258133:2260258133(0) ack 1979632521 win 65535
10:05:24.325293 IP (tos 0x0, ttl 64, id 46104, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979632521:1979633057(536) ack 2260258133 win 5840
10:05:24.325300 IP (tos 0x0, ttl 64, id 19856, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x563b (correct), 2260258133:2260258133(0) ack 1979633057 win 65535
10:05:24.325301 IP (tos 0x0, ttl 64, id 46105, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979633057:1979633593(536) ack 2260258133 win 5840
10:05:24.325307 IP (tos 0x0, ttl 64, id 19857, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5423 (correct), 2260258133:2260258133(0) ack 1979633593 win 65535
10:05:24.325308 IP (tos 0x0, ttl 64, id 46106, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979633593:1979634129(536) ack 2260258133 win 5840
10:05:24.325315 IP (tos 0x0, ttl 64, id 19858, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x520b (correct), 2260258133:2260258133(0) ack 1979634129 win 65535
10:05:24.325386 IP (tos 0x0, ttl 64, id 46107, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979634129:1979634665(536) ack 2260258133 win 5840
10:05:24.325398 IP (tos 0x0, ttl 64, id 19859, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4ff3 (correct), 2260258133:2260258133(0) ack 1979634665 win 65535
10:05:24.325399 IP (tos 0x0, ttl 64, id 46108, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979634665:1979635201(536) ack 2260258133 win 5840
10:05:24.325407 IP (tos 0x0, ttl 64, id 19860, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4ddb (correct), 2260258133:2260258133(0) ack 1979635201 win 65535
10:05:24.325409 IP (tos 0x0, ttl 64, id 46109, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979635201:1979635737(536) ack 2260258133 win 5840
10:05:24.325415 IP (tos 0x0, ttl 64, id 19861, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4bc3 (correct), 2260258133:2260258133(0) ack 1979635737 win 65535
10:05:24.325422 IP (tos 0x0, ttl 64, id 46110, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979635737:1979636273(536) ack 2260258133 win 5840
10:05:24.325428 IP (tos 0x0, ttl 64, id 19862, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x49ab (correct), 2260258133:2260258133(0) ack 1979636273 win 65535
10:05:24.325429 IP (tos 0x0, ttl 64, id 46111, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979636273:1979636809(536) ack 2260258133 win 5840
10:05:24.325434 IP (tos 0x0, ttl 64, id 19863, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4793 (correct), 2260258133:2260258133(0) ack 1979636809 win 65535
10:05:24.325435 IP (tos 0x0, ttl 64, id 46112, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979636809:1979637345(536) ack 2260258133 win 5840
10:05:24.325437 IP (tos 0x0, ttl 64, id 46113, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979637345:1979637881(536) ack 2260258133 win 5840
10:05:24.325444 IP (tos 0x0, ttl 64, id 19864, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x457b (correct), 2260258133:2260258133(0) ack 1979637345 win 65535
10:05:24.325449 IP (tos 0x0, ttl 64, id 19865, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4363 (correct), 2260258133:2260258133(0) ack 1979637881 win 65535
10:05:24.325491 IP (tos 0x0, ttl 64, id 46114, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979637881:1979638417(536) ack 2260258133 win 5840
10:05:24.325498 IP (tos 0x0, ttl 64, id 46115, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979638417:1979638953(536) ack 2260258133 win 5840
10:05:24.325502 IP (tos 0x0, ttl 64, id 19866, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x414b (correct), 2260258133:2260258133(0) ack 1979638417 win 65535
10:05:24.325506 IP (tos 0x0, ttl 64, id 46116, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979638953:1979639489(536) ack 2260258133 win 5840
10:05:24.325508 IP (tos 0x0, ttl 64, id 19867, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3f33 (correct), 2260258133:2260258133(0) ack 1979638953 win 65535
10:05:24.325517 IP (tos 0x0, ttl 64, id 19868, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3d1b (correct), 2260258133:2260258133(0) ack 1979639489 win 65535
10:05:24.325519 IP (tos 0x0, ttl 64, id 46117, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979639489:1979640025(536) ack 2260258133 win 5840
10:05:24.325525 IP (tos 0x0, ttl 64, id 19869, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3b03 (correct), 2260258133:2260258133(0) ack 1979640025 win 65535
10:05:24.325526 IP (tos 0x0, ttl 64, id 46118, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979640025:1979640561(536) ack 2260258133 win 5840
10:05:24.325531 IP (tos 0x0, ttl 64, id 19870, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x38eb (correct), 2260258133:2260258133(0) ack 1979640561 win 65535
10:05:24.325532 IP (tos 0x0, ttl 64, id 46119, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979640561:1979641097(536) ack 2260258133 win 5840
10:05:24.325540 IP (tos 0x0, ttl 64, id 19871, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x36d3 (correct), 2260258133:2260258133(0) ack 1979641097 win 65535
10:05:24.325548 IP (tos 0x0, ttl 64, id 46120, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979641097:1979641633(536) ack 2260258133 win 5840
10:05:24.325554 IP (tos 0x0, ttl 64, id 46121, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979641633:1979642169(536) ack 2260258133 win 5840
10:05:24.325559 IP (tos 0x0, ttl 64, id 19872, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x34bb (correct), 2260258133:2260258133(0) ack 1979641633 win 65535
10:05:24.325560 IP (tos 0x0, ttl 64, id 46122, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979642169:1979642705(536) ack 2260258133 win 5840
10:05:24.325563 IP (tos 0x0, ttl 64, id 46123, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979642705:1979643241(536) ack 2260258133 win 5840
10:05:24.325564 IP (tos 0x0, ttl 64, id 19873, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x32a3 (correct), 2260258133:2260258133(0) ack 1979642169 win 65535
10:05:24.325570 IP (tos 0x0, ttl 64, id 19874, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x308b (correct), 2260258133:2260258133(0) ack 1979642705 win 65535
10:05:24.325574 IP (tos 0x0, ttl 64, id 19875, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2e73 (correct), 2260258133:2260258133(0) ack 1979643241 win 65535
10:05:24.325577 IP (tos 0x0, ttl 64, id 46124, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979643241:1979643777(536) ack 2260258133 win 5840
10:05:24.325585 IP (tos 0x0, ttl 64, id 19876, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2c5b (correct), 2260258133:2260258133(0) ack 1979643777 win 65535
10:05:24.325587 IP (tos 0x0, ttl 64, id 46125, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979643777:1979644313(536) ack 2260258133 win 5840
10:05:24.325591 IP (tos 0x0, ttl 64, id 46126, offset 0, flags [DF], proto TCP (6), length 433) dione.40344 > phoenix.distcc: . 1979644313:1979644706(393) ack 2260258133 win 5840
10:05:24.325592 IP (tos 0x0, ttl 64, id 19877, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2a43 (correct), 2260258133:2260258133(0) ack 1979644313 win 65535
10:05:24.325593 IP (tos 0x0, ttl 64, id 46127, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979644706:1979645242(536) ack 2260258133 win 5840
10:05:24.325599 IP (tos 0x0, ttl 64, id 19878, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x28ba (correct), 2260258133:2260258133(0) ack 1979644706 win 65535
10:05:24.325603 IP (tos 0x0, ttl 64, id 19879, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x26a2 (correct), 2260258133:2260258133(0) ack 1979645242 win 65535
10:05:24.325607 IP (tos 0x0, ttl 64, id 46128, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979645242:1979645778(536) ack 2260258133 win 5840
10:05:24.325615 IP (tos 0x0, ttl 64, id 19880, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x248a (correct), 2260258133:2260258133(0) ack 1979645778 win 65535
10:05:24.325617 IP (tos 0x0, ttl 64, id 46129, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979645778:1979646314(536) ack 2260258133 win 5840
10:05:24.325619 IP (tos 0x0, ttl 64, id 46130, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979646314:1979646850(536) ack 2260258133 win 5840
10:05:24.325622 IP (tos 0x0, ttl 64, id 46131, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979646850:1979647386(536) ack 2260258133 win 5840
10:05:24.325627 IP (tos 0x0, ttl 64, id 19881, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2272 (correct), 2260258133:2260258133(0) ack 1979646314 win 65535
10:05:24.325630 IP (tos 0x0, ttl 64, id 46132, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979647386:1979647922(536) ack 2260258133 win 5840
10:05:24.325632 IP (tos 0x0, ttl 64, id 19882, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x205a (correct), 2260258133:2260258133(0) ack 1979646850 win 65535
10:05:24.325637 IP (tos 0x0, ttl 64, id 19883, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1e42 (correct), 2260258133:2260258133(0) ack 1979647386 win 65535
10:05:24.325635 IP (tos 0x0, ttl 64, id 46133, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979647922:1979648458(536) ack 2260258133 win 5840
10:05:24.325641 IP (tos 0x0, ttl 64, id 19884, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1c2a (correct), 2260258133:2260258133(0) ack 1979647922 win 65535
10:05:24.325647 IP (tos 0x0, ttl 64, id 19885, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1a12 (correct), 2260258133:2260258133(0) ack 1979648458 win 65535
10:05:24.325654 IP (tos 0x0, ttl 64, id 46134, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979648458:1979648994(536) ack 2260258133 win 5840
10:05:24.325660 IP (tos 0x0, ttl 64, id 19886, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x17fa (correct), 2260258133:2260258133(0) ack 1979648994 win 65535
10:05:24.325661 IP (tos 0x0, ttl 64, id 46135, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979648994:1979649530(536) ack 2260258133 win 5840
10:05:24.325666 IP (tos 0x0, ttl 64, id 19887, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x15e2 (correct), 2260258133:2260258133(0) ack 1979649530 win 65535
10:05:24.325668 IP (tos 0x0, ttl 64, id 46136, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979649530:1979650066(536) ack 2260258133 win 5840
10:05:24.325671 IP (tos 0x0, ttl 64, id 46137, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979650066:1979650602(536) ack 2260258133 win 5840
10:05:24.325676 IP (tos 0x0, ttl 64, id 19888, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x13ca (correct), 2260258133:2260258133(0) ack 1979650066 win 65535
10:05:24.325680 IP (tos 0x0, ttl 64, id 46138, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979650602:1979651138(536) ack 2260258133 win 5840
10:05:24.325681 IP (tos 0x0, ttl 64, id 19889, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x11b2 (correct), 2260258133:2260258133(0) ack 1979650602 win 65535
10:05:24.325690 IP (tos 0x0, ttl 64, id 19890, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0f9a (correct), 2260258133:2260258133(0) ack 1979651138 win 65535
10:05:24.325692 IP (tos 0x0, ttl 64, id 46139, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979651138:1979651674(536) ack 2260258133 win 5840
10:05:24.325698 IP (tos 0x0, ttl 64, id 19891, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0d82 (correct), 2260258133:2260258133(0) ack 1979651674 win 65535
10:05:24.325700 IP (tos 0x0, ttl 64, id 46140, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979651674:1979652210(536) ack 2260258133 win 5840
10:05:24.325702 IP (tos 0x0, ttl 64, id 46141, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979652210:1979652746(536) ack 2260258133 win 5840
10:05:24.325706 IP (tos 0x0, ttl 64, id 46142, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979652746:1979653282(536) ack 2260258133 win 5840
10:05:24.325706 IP (tos 0x0, ttl 64, id 19892, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0b6a (correct), 2260258133:2260258133(0) ack 1979652210 win 65535
10:05:24.325711 IP (tos 0x0, ttl 64, id 19893, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0952 (correct), 2260258133:2260258133(0) ack 1979652746 win 65535
10:05:24.325714 IP (tos 0x0, ttl 64, id 19894, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x073a (correct), 2260258133:2260258133(0) ack 1979653282 win 65535
10:05:24.325722 IP (tos 0x0, ttl 64, id 46143, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979653282:1979653818(536) ack 2260258133 win 5840
10:05:24.325728 IP (tos 0x0, ttl 64, id 19895, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0522 (correct), 2260258133:2260258133(0) ack 1979653818 win 65535
10:05:24.325730 IP (tos 0x0, ttl 64, id 46144, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979653818:1979654354(536) ack 2260258133 win 5840
10:05:24.325734 IP (tos 0x0, ttl 64, id 46145, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979654354:1979654890(536) ack 2260258133 win 5840
10:05:24.325736 IP (tos 0x0, ttl 64, id 46146, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979654890:1979655426(536) ack 2260258133 win 5840
10:05:24.325737 IP (tos 0x0, ttl 64, id 19896, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x030a (correct), 2260258133:2260258133(0) ack 1979654354 win 65535
10:05:24.325742 IP (tos 0x0, ttl 64, id 19897, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x00f2 (correct), 2260258133:2260258133(0) ack 1979654890 win 65535
10:05:24.325745 IP (tos 0x0, ttl 64, id 46147, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979655426:1979655962(536) ack 2260258133 win 5840
10:05:24.325746 IP (tos 0x0, ttl 64, id 19898, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfed9 (correct), 2260258133:2260258133(0) ack 1979655426 win 65535
10:05:24.325756 IP (tos 0x0, ttl 64, id 19899, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfcc1 (correct), 2260258133:2260258133(0) ack 1979655962 win 65535
10:05:24.325758 IP (tos 0x0, ttl 64, id 46148, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979655962:1979656498(536) ack 2260258133 win 5840
10:05:24.325762 IP (tos 0x0, ttl 64, id 46149, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979656498:1979657034(536) ack 2260258133 win 5840
10:05:24.325764 IP (tos 0x0, ttl 64, id 46150, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979657034:1979657570(536) ack 2260258133 win 5840
10:05:24.325765 IP (tos 0x0, ttl 64, id 19900, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfaa9 (correct), 2260258133:2260258133(0) ack 1979656498 win 65535
10:05:24.325770 IP (tos 0x0, ttl 64, id 19901, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf891 (correct), 2260258133:2260258133(0) ack 1979657034 win 65535
10:05:24.325775 IP (tos 0x0, ttl 64, id 19902, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf679 (correct), 2260258133:2260258133(0) ack 1979657570 win 65535
10:05:24.325781 IP (tos 0x0, ttl 64, id 46151, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979657570:1979658106(536) ack 2260258133 win 5840
10:05:24.325787 IP (tos 0x0, ttl 64, id 19903, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf461 (correct), 2260258133:2260258133(0) ack 1979658106 win 65535
10:05:24.325789 IP (tos 0x0, ttl 64, id 46152, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979658106:1979658642(536) ack 2260258133 win 5840
10:05:24.325791 IP (tos 0x0, ttl 64, id 46153, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979658642:1979659178(536) ack 2260258133 win 5840
10:05:24.325794 IP (tos 0x0, ttl 64, id 46154, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979659178:1979659714(536) ack 2260258133 win 5840
10:05:24.325795 IP (tos 0x0, ttl 64, id 19904, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf249 (correct), 2260258133:2260258133(0) ack 1979658642 win 65535
10:05:24.325796 IP (tos 0x0, ttl 64, id 46155, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979659714:1979660250(536) ack 2260258133 win 5840
10:05:24.325800 IP (tos 0x0, ttl 64, id 19905, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf031 (correct), 2260258133:2260258133(0) ack 1979659178 win 65535
10:05:24.325806 IP (tos 0x0, ttl 64, id 19906, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xee19 (correct), 2260258133:2260258133(0) ack 1979659714 win 65535
10:05:24.325811 IP (tos 0x0, ttl 64, id 19907, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xec01 (correct), 2260258133:2260258133(0) ack 1979660250 win 65535
10:05:24.325814 IP (tos 0x0, ttl 64, id 46156, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979660250:1979660786(536) ack 2260258133 win 5840
10:05:24.325823 IP (tos 0x0, ttl 64, id 19908, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe9e9 (correct), 2260258133:2260258133(0) ack 1979660786 win 65535
10:05:24.325824 IP (tos 0x0, ttl 64, id 46157, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979660786:1979661322(536) ack 2260258133 win 5840
10:05:24.325830 IP (tos 0x0, ttl 64, id 19909, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe7d1 (correct), 2260258133:2260258133(0) ack 1979661322 win 65535
10:05:24.325831 IP (tos 0x0, ttl 64, id 46158, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979661322:1979661858(536) ack 2260258133 win 5840
10:05:24.325833 IP (tos 0x0, ttl 64, id 46159, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979661858:1979662394(536) ack 2260258133 win 5840
10:05:24.325837 IP (tos 0x0, ttl 64, id 46160, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979662394:1979662930(536) ack 2260258133 win 5840
10:05:24.325838 IP (tos 0x0, ttl 64, id 19910, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe5b9 (correct), 2260258133:2260258133(0) ack 1979661858 win 65535
10:05:24.325839 IP (tos 0x0, ttl 64, id 46161, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979662930:1979663466(536) ack 2260258133 win 5840
10:05:24.325841 IP (tos 0x0, ttl 64, id 46162, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979663466:1979664002(536) ack 2260258133 win 5840
10:05:24.325844 IP (tos 0x0, ttl 64, id 19911, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe3a1 (correct), 2260258133:2260258133(0) ack 1979662394 win 65535
10:05:24.325845 IP (tos 0x0, ttl 64, id 46163, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979664002:1979664538(536) ack 2260258133 win 5840
10:05:24.325847 IP (tos 0x0, ttl 64, id 46164, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979664538:1979665074(536) ack 2260258133 win 5840
10:05:24.325850 IP (tos 0x0, ttl 64, id 19912, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe189 (correct), 2260258133:2260258133(0) ack 1979662930 win 65535
10:05:24.326731 IP (tos 0x0, ttl 64, id 46217, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979692946:1979693482(536) ack 2260258133 win 5840
10:05:24.326739 IP (tos 0x0, ttl 64, id 46218, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979693482:1979694018(536) ack 2260258133 win 5840
10:05:24.326741 IP (tos 0x0, ttl 64, id 46219, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979694018:1979694554(536) ack 2260258133 win 5840
10:05:24.326743 IP (tos 0x0, ttl 64, id 46220, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979694554:1979695090(536) ack 2260258133 win 5840
10:05:24.326745 IP (tos 0x0, ttl 64, id 46221, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979695090:1979695626(536) ack 2260258133 win 5840
10:05:24.326746 IP (tos 0x0, ttl 64, id 19969, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6a31 (correct), 2260258133:2260258133(0) ack 1979693482 win 65535
10:05:24.326746 IP (tos 0x0, ttl 64, id 46222, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979695626:1979696162(536) ack 2260258133 win 5840
10:05:24.326749 IP (tos 0x0, ttl 64, id 46223, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979696162:1979696698(536) ack 2260258133 win 5840
10:05:24.326751 IP (tos 0x0, ttl 64, id 19970, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6819 (correct), 2260258133:2260258133(0) ack 1979694018 win 65535
10:05:24.326753 IP (tos 0x0, ttl 64, id 46224, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979696698:1979697234(536) ack 2260258133 win 5840
10:05:24.326756 IP (tos 0x0, ttl 64, id 46225, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979697234:1979697770(536) ack 2260258133 win 5840
10:05:24.326757 IP (tos 0x0, ttl 64, id 19971, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6601 (correct), 2260258133:2260258133(0) ack 1979694554 win 65535
10:05:24.326760 IP (tos 0x0, ttl 64, id 46226, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979697770:1979698306(536) ack 2260258133 win 5840
10:05:24.326763 IP (tos 0x0, ttl 64, id 19972, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x63e9 (correct), 2260258133:2260258133(0) ack 1979695090 win 65535
10:05:24.326764 IP (tos 0x0, ttl 64, id 46227, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979698306:1979698842(536) ack 2260258133 win 5840
10:05:24.326767 IP (tos 0x0, ttl 64, id 46228, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979698842:1979699378(536) ack 2260258133 win 5840
10:05:24.326768 IP (tos 0x0, ttl 64, id 19973, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x61d1 (correct), 2260258133:2260258133(0) ack 1979695626 win 65535
10:05:24.326771 IP (tos 0x0, ttl 64, id 46229, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979699378:1979699914(536) ack 2260258133 win 5840
10:05:24.326772 IP (tos 0x0, ttl 64, id 19974, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5fb9 (correct), 2260258133:2260258133(0) ack 1979696162 win 65535
10:05:24.326775 IP (tos 0x0, ttl 64, id 46230, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979699914:1979700450(536) ack 2260258133 win 5840
10:05:24.326778 IP (tos 0x0, ttl 64, id 19975, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5da1 (correct), 2260258133:2260258133(0) ack 1979696698 win 65535
10:05:24.326780 IP (tos 0x0, ttl 64, id 46231, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979700450:1979700986(536) ack 2260258133 win 5840
10:05:24.326783 IP (tos 0x0, ttl 64, id 19976, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5b89 (correct), 2260258133:2260258133(0) ack 1979697234 win 65535
10:05:24.326783 IP (tos 0x0, ttl 64, id 46232, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979700986:1979701522(536) ack 2260258133 win 5840
10:05:24.326787 IP (tos 0x0, ttl 64, id 46233, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979701522:1979702058(536) ack 2260258133 win 5840
10:05:24.326789 IP (tos 0x0, ttl 64, id 19977, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5971 (correct), 2260258133:2260258133(0) ack 1979697770 win 65535
10:05:24.326791 IP (tos 0x0, ttl 64, id 46234, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979702058:1979702594(536) ack 2260258133 win 5840
10:05:24.326793 IP (tos 0x0, ttl 64, id 19978, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5759 (correct), 2260258133:2260258133(0) ack 1979698306 win 65535
10:05:24.326795 IP (tos 0x0, ttl 64, id 46235, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979702594:1979703130(536) ack 2260258133 win 5840
10:05:24.326798 IP (tos 0x0, ttl 64, id 19979, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5541 (correct), 2260258133:2260258133(0) ack 1979698842 win 65535
10:05:24.326798 IP (tos 0x0, ttl 64, id 46236, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979703130:1979703666(536) ack 2260258133 win 5840
10:05:24.326802 IP (tos 0x0, ttl 64, id 46237, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979703666:1979704202(536) ack 2260258133 win 5840
10:05:24.326803 IP (tos 0x0, ttl 64, id 19980, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5329 (correct), 2260258133:2260258133(0) ack 1979699378 win 65535
10:05:24.326805 IP (tos 0x0, ttl 64, id 46238, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979704202:1979704738(536) ack 2260258133 win 5840
10:05:24.326808 IP (tos 0x0, ttl 64, id 19981, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5111 (correct), 2260258133:2260258133(0) ack 1979699914 win 65535
10:05:24.326810 IP (tos 0x0, ttl 64, id 46239, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979704738:1979705274(536) ack 2260258133 win 5840
10:05:24.326813 IP (tos 0x0, ttl 64, id 19982, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4ef9 (correct), 2260258133:2260258133(0) ack 1979700450 win 65535
10:05:24.326815 IP (tos 0x0, ttl 64, id 46240, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979705274:1979705810(536) ack 2260258133 win 5840
10:05:24.326818 IP (tos 0x0, ttl 64, id 19983, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4ce1 (correct), 2260258133:2260258133(0) ack 1979700986 win 65535
10:05:24.326817 IP (tos 0x0, ttl 64, id 46241, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979705810:1979706346(536) ack 2260258133 win 5840
10:05:24.326822 IP (tos 0x0, ttl 64, id 46242, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979706346:1979706882(536) ack 2260258133 win 5840
10:05:24.326823 IP (tos 0x0, ttl 64, id 19984, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4ac9 (correct), 2260258133:2260258133(0) ack 1979701522 win 65535
10:05:24.326826 IP (tos 0x0, ttl 64, id 46243, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979706882:1979707418(536) ack 2260258133 win 5840
10:05:24.326828 IP (tos 0x0, ttl 64, id 19985, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x48b1 (correct), 2260258133:2260258133(0) ack 1979702058 win 65535
10:05:24.326831 IP (tos 0x0, ttl 64, id 46244, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979707418:1979707954(536) ack 2260258133 win 5840
10:05:24.326833 IP (tos 0x0, ttl 64, id 19986, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4699 (correct), 2260258133:2260258133(0) ack 1979702594 win 65535
10:05:24.326836 IP (tos 0x0, ttl 64, id 46245, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979707954:1979708490(536) ack 2260258133 win 5840
10:05:24.326838 IP (tos 0x0, ttl 64, id 19987, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4481 (correct), 2260258133:2260258133(0) ack 1979703130 win 65535
10:05:24.326842 IP (tos 0x0, ttl 64, id 46246, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979708490:1979709026(536) ack 2260258133 win 5840
10:05:24.326844 IP (tos 0x0, ttl 64, id 19988, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4269 (correct), 2260258133:2260258133(0) ack 1979703666 win 65535
10:05:24.326847 IP (tos 0x0, ttl 64, id 46247, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979709026:1979709562(536) ack 2260258133 win 5840
10:05:24.326851 IP (tos 0x0, ttl 64, id 46248, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: P 1979709562:1979710098(536) ack 2260258133 win 5840
10:05:24.326852 IP (tos 0x0, ttl 64, id 19989, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3e39 (correct), 2260258133:2260258133(0) ack 1979704738 win 65535
10:05:24.326853 IP (tos 0x0, ttl 64, id 46249, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979710098:1979710634(536) ack 2260258133 win 5840
10:05:24.326856 IP (tos 0x0, ttl 64, id 46250, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979710634:1979711170(536) ack 2260258133 win 5840
10:05:24.326858 IP (tos 0x0, ttl 64, id 19990, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3a09 (correct), 2260258133:2260258133(0) ack 1979705810 win 65535
10:05:24.326860 IP (tos 0x0, ttl 64, id 46251, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979711170:1979711706(536) ack 2260258133 win 5840
10:05:24.326864 IP (tos 0x0, ttl 64, id 19991, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x35d9 (correct), 2260258133:2260258133(0) ack 1979706882 win 65535
10:05:24.326865 IP (tos 0x0, ttl 64, id 46252, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979711706:1979712242(536) ack 2260258133 win 5840
10:05:24.326868 IP (tos 0x0, ttl 64, id 46253, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979712242:1979712778(536) ack 2260258133 win 5840
10:05:24.326871 IP (tos 0x0, ttl 64, id 19992, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x31a9 (correct), 2260258133:2260258133(0) ack 1979707954 win 65535
10:05:24.326872 IP (tos 0x0, ttl 64, id 46254, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979712778:1979713314(536) ack 2260258133 win 5840
10:05:24.326875 IP (tos 0x0, ttl 64, id 46255, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979713314:1979713850(536) ack 2260258133 win 5840
10:05:24.326877 IP (tos 0x0, ttl 64, id 19993, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2d79 (correct), 2260258133:2260258133(0) ack 1979709026 win 65535
10:05:24.326880 IP (tos 0x0, ttl 64, id 46256, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979713850:1979714386(536) ack 2260258133 win 5840
10:05:24.326884 IP (tos 0x0, ttl 64, id 19994, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2949 (correct), 2260258133:2260258133(0) ack 1979710098 win 65535
10:05:24.326885 IP (tos 0x0, ttl 64, id 46257, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979714386:1979714922(536) ack 2260258133 win 5840
10:05:24.326887 IP (tos 0x0, ttl 64, id 46258, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979714922:1979715458(536) ack 2260258133 win 5840
10:05:24.326890 IP (tos 0x0, ttl 64, id 19995, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2519 (correct), 2260258133:2260258133(0) ack 1979711170 win 65535
10:05:24.326891 IP (tos 0x0, ttl 64, id 46259, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979715458:1979715994(536) ack 2260258133 win 5840
10:05:24.326894 IP (tos 0x0, ttl 64, id 46260, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979715994:1979716530(536) ack 2260258133 win 5840
10:05:24.326896 IP (tos 0x0, ttl 64, id 19996, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x20e9 (correct), 2260258133:2260258133(0) ack 1979712242 win 65535
10:05:24.326898 IP (tos 0x0, ttl 64, id 46261, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979716530:1979717066(536) ack 2260258133 win 5840
10:05:24.326903 IP (tos 0x0, ttl 64, id 19997, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1cb9 (correct), 2260258133:2260258133(0) ack 1979713314 win 65535
10:05:24.326909 IP (tos 0x0, ttl 64, id 19998, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1889 (correct), 2260258133:2260258133(0) ack 1979714386 win 65535
10:05:24.326914 IP (tos 0x0, ttl 64, id 19999, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1459 (correct), 2260258133:2260258133(0) ack 1979715458 win 65535
10:05:24.326919 IP (tos 0x0, ttl 64, id 20000, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1029 (correct), 2260258133:2260258133(0) ack 1979716530 win 65535
10:05:24.326921 IP (tos 0x0, ttl 64, id 46262, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979717066:1979717602(536) ack 2260258133 win 5840
10:05:24.326929 IP (tos 0x0, ttl 64, id 20001, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0bf9 (correct), 2260258133:2260258133(0) ack 1979717602 win 65535
10:05:24.326931 IP (tos 0x0, ttl 64, id 46263, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979717602:1979718138(536) ack 2260258133 win 5840
10:05:24.326933 IP (tos 0x0, ttl 64, id 46264, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979718138:1979718674(536) ack 2260258133 win 5840
10:05:24.326938 IP (tos 0x0, ttl 64, id 20002, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x07c9 (correct), 2260258133:2260258133(0) ack 1979718674 win 65535
10:05:24.326939 IP (tos 0x0, ttl 64, id 46265, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979718674:1979719210(536) ack 2260258133 win 5840
10:05:24.326941 IP (tos 0x0, ttl 64, id 46266, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979719210:1979719746(536) ack 2260258133 win 5840
10:05:24.326945 IP (tos 0x0, ttl 64, id 20003, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0399 (correct), 2260258133:2260258133(0) ack 1979719746 win 65535
10:05:24.326946 IP (tos 0x0, ttl 64, id 46267, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979719746:1979720282(536) ack 2260258133 win 5840
10:05:24.326948 IP (tos 0x0, ttl 64, id 46268, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979720282:1979720818(536) ack 2260258133 win 5840
10:05:24.326953 IP (tos 0x0, ttl 64, id 20004, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xff68 (correct), 2260258133:2260258133(0) ack 1979720818 win 65535
10:05:24.326954 IP (tos 0x0, ttl 64, id 46269, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979720818:1979721354(536) ack 2260258133 win 5840
10:05:24.326956 IP (tos 0x0, ttl 64, id 46270, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979721354:1979721890(536) ack 2260258133 win 5840
10:05:24.326960 IP (tos 0x0, ttl 64, id 20005, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfb38 (correct), 2260258133:2260258133(0) ack 1979721890 win 65535
10:05:24.326961 IP (tos 0x0, ttl 64, id 46271, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979721890:1979722426(536) ack 2260258133 win 5840
10:05:24.326990 IP (tos 0x0, ttl 64, id 46272, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979722426:1979722962(536) ack 2260258133 win 5840
10:05:24.326993 IP (tos 0x0, ttl 64, id 20006, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf708 (correct), 2260258133:2260258133(0) ack 1979722962 win 65535
10:05:24.327035 IP (tos 0x0, ttl 64, id 46281, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979727250:1979727786(536) ack 2260258133 win 5840
10:05:24.327076 IP (tos 0x0, ttl 64, id 46286, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979729930:1979730466(536) ack 2260258133 win 5840
10:05:24.327091 IP (tos 0x0, ttl 64, id 46288, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979731002:1979731538(536) ack 2260258133 win 5840
10:05:24.327151 IP (tos 0x0, ttl 64, id 46296, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979735290:1979735826(536) ack 2260258133 win 5840
10:05:24.327229 IP (tos 0x0, ttl 64, id 46306, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979740650:1979741186(536) ack 2260258133 win 5840
10:05:24.327306 IP (tos 0x0, ttl 64, id 20028, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9ae8 (correct), 2260258133:2260258133(0) ack 1979746546 win 65535
10:05:24.327337 IP (tos 0x0, ttl 64, id 46320, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979748154:1979748690(536) ack 2260258133 win 5840
10:05:24.327362 IP (tos 0x0, ttl 64, id 20032, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8a28 (correct), 2260258133:2260258133(0) ack 1979750834 win 65535
10:05:24.327375 IP (tos 0x0, ttl 64, id 20033, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x85f8 (correct), 2260258133:2260258133(0) ack 1979751906 win 65535
10:05:24.327386 IP (tos 0x0, ttl 64, id 20034, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x81c8 (correct), 2260258133:2260258133(0) ack 1979752978 win 65535
10:05:24.327410 IP (tos 0x0, ttl 64, id 20035, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7d98 (correct), 2260258133:2260258133(0) ack 1979754050 win 65535
10:05:24.327436 IP (tos 0x0, ttl 64, id 20037, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7538 (correct), 2260258133:2260258133(0) ack 1979756194 win 65535
10:05:24.327473 IP (tos 0x0, ttl 64, id 46339, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979758338:1979758874(536) ack 2260258133 win 5840
10:05:24.327497 IP (tos 0x0, ttl 64, id 20041, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6478 (correct), 2260258133:2260258133(0) ack 1979760482 win 65535
10:05:24.327517 IP (tos 0x0, ttl 64, id 20042, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x6048 (correct), 2260258133:2260258133(0) ack 1979761554 win 65535
10:05:24.327528 IP (tos 0x0, ttl 64, id 20043, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x5c18 (correct), 2260258133:2260258133(0) ack 1979762626 win 65535
10:05:24.327539 IP (tos 0x0, ttl 64, id 20044, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x57e8 (correct), 2260258133:2260258133(0) ack 1979763698 win 65535
10:05:24.327556 IP (tos 0x0, ttl 64, id 20045, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x53b8 (correct), 2260258133:2260258133(0) ack 1979764770 win 65535
10:05:24.327606 IP (tos 0x0, ttl 64, id 46357, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979767986:1979768522(536) ack 2260258133 win 5840
10:05:24.327649 IP (tos 0x0, ttl 64, id 20051, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3a98 (correct), 2260258133:2260258133(0) ack 1979771202 win 65535
10:05:24.327694 IP (tos 0x0, ttl 64, id 46369, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979774418:1979774954(536) ack 2260258133 win 5840
10:05:24.327754 IP (tos 0x0, ttl 64, id 20058, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1d48 (correct), 2260258133:2260258133(0) ack 1979778706 win 65535
10:05:24.327765 IP (tos 0x0, ttl 64, id 20059, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1918 (correct), 2260258133:2260258133(0) ack 1979779778 win 65535
10:05:24.327780 IP (tos 0x0, ttl 64, id 20060, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x14e8 (correct), 2260258133:2260258133(0) ack 1979780850 win 65535
10:05:24.327794 IP (tos 0x0, ttl 64, id 20061, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x10b8 (correct), 2260258133:2260258133(0) ack 1979781922 win 65535
10:05:24.327816 IP (tos 0x0, ttl 64, id 20062, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0c88 (correct), 2260258133:2260258133(0) ack 1979782994 win 65535
10:05:24.327842 IP (tos 0x0, ttl 64, id 20064, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0428 (correct), 2260258133:2260258133(0) ack 1979785138 win 65535
10:05:24.327863 IP (tos 0x0, ttl 64, id 20065, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfff7 (correct), 2260258133:2260258133(0) ack 1979786210 win 65535
10:05:24.327874 IP (tos 0x0, ttl 64, id 20066, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfbc7 (correct), 2260258133:2260258133(0) ack 1979787282 win 65535
10:05:24.327890 IP (tos 0x0, ttl 64, id 20067, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf797 (correct), 2260258133:2260258133(0) ack 1979788354 win 65535
10:05:24.327914 IP (tos 0x0, ttl 64, id 20068, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf367 (correct), 2260258133:2260258133(0) ack 1979789426 win 65535
10:05:24.327921 IP (tos 0x0, ttl 64, id 20069, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xef37 (correct), 2260258133:2260258133(0) ack 1979790498 win 65535
10:05:24.327934 IP (tos 0x0, ttl 64, id 20070, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xeb07 (correct), 2260258133:2260258133(0) ack 1979791570 win 65535
10:05:24.327947 IP (tos 0x0, ttl 64, id 20071, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe6d7 (correct), 2260258133:2260258133(0) ack 1979792642 win 65535
10:05:24.327972 IP (tos 0x0, ttl 64, id 20072, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe2a7 (correct), 2260258133:2260258133(0) ack 1979793714 win 65535
10:05:24.328005 IP (tos 0x0, ttl 64, id 46410, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979796394:1979796930(536) ack 2260258133 win 5840
10:05:24.328039 IP (tos 0x0, ttl 64, id 20077, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xcdb7 (correct), 2260258133:2260258133(0) ack 1979799074 win 65535
10:05:24.328086 IP (tos 0x0, ttl 64, id 46422, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979802826:1979803362(536) ack 2260258133 win 5840
10:05:24.328122 IP (tos 0x0, ttl 64, id 20083, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb497 (correct), 2260258133:2260258133(0) ack 1979805506 win 65535
10:05:24.328135 IP (tos 0x0, ttl 64, id 20084, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xb067 (correct), 2260258133:2260258133(0) ack 1979806578 win 65535
10:05:24.328151 IP (tos 0x0, ttl 64, id 20085, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xac37 (correct), 2260258133:2260258133(0) ack 1979807650 win 65535
10:05:24.328164 IP (tos 0x0, ttl 64, id 20086, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa807 (correct), 2260258133:2260258133(0) ack 1979808722 win 65535
10:05:24.328185 IP (tos 0x0, ttl 64, id 46434, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979809258:1979809794(536) ack 2260258133 win 5840
10:05:24.328197 IP (tos 0x0, ttl 64, id 20087, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa3d7 (correct), 2260258133:2260258133(0) ack 1979809794 win 65535
10:05:24.328204 IP (tos 0x0, ttl 64, id 20088, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9fa7 (correct), 2260258133:2260258133(0) ack 1979810866 win 65535
10:05:24.328248 IP (tos 0x0, ttl 64, id 46444, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979814618:1979815154(536) ack 2260258133 win 5840
10:05:24.328293 IP (tos 0x0, ttl 64, id 20094, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8687 (correct), 2260258133:2260258133(0) ack 1979817298 win 65535
10:05:24.328352 IP (tos 0x0, ttl 64, id 46458, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979822122:1979822658(536) ack 2260258133 win 5840
10:05:24.328396 IP (tos 0x0, ttl 64, id 46464, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979825338:1979825874(536) ack 2260258133 win 5840
10:05:24.328426 IP (tos 0x0, ttl 64, id 20103, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x60d7 (correct), 2260258133:2260258133(0) ack 1979826946 win 65535
10:05:24.328459 IP (tos 0x0, ttl 64, id 46472, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979829626:1979830162(536) ack 2260258133 win 5840
10:05:24.328524 IP (tos 0x0, ttl 64, id 20110, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4387 (correct), 2260258133:2260258133(0) ack 1979834450 win 65535
10:05:24.328535 IP (tos 0x0, ttl 64, id 46482, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979834986:1979835522(536) ack 2260258133 win 5840
10:05:24.328569 IP (tos 0x0, ttl 64, id 20113, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x36f7 (correct), 2260258133:2260258133(0) ack 1979837666 win 65535
10:05:24.328626 IP (tos 0x0, ttl 64, id 46494, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979841418:1979841954(536) ack 2260258133 win 5840
10:05:24.328684 IP (tos 0x0, ttl 64, id 20121, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1577 (correct), 2260258133:2260258133(0) ack 1979846242 win 65535
10:05:24.328710 IP (tos 0x0, ttl 64, id 46506, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979847850:1979848386(536) ack 2260258133 win 5840
10:05:24.328743 IP (tos 0x0, ttl 64, id 46510, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979849994:1979850530(536) ack 2260258133 win 5840
10:05:24.328755 IP (tos 0x0, ttl 64, id 20125, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x04b7 (correct), 2260258133:2260258133(0) ack 1979850530 win 65535
10:05:24.328836 IP (tos 0x0, ttl 64, id 46523, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979856962:1979857498(536) ack 2260258133 win 5840
10:05:24.328862 IP (tos 0x0, ttl 64, id 20133, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe336 (correct), 2260258133:2260258133(0) ack 1979859106 win 65535
10:05:24.328978 IP (tos 0x0, ttl 64, id 46541, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1979866610:1979867146(536) ack 2260258133 win 5840
10:05:24.329135 IP (tos 0x0, ttl 64, id 20168, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x99ee (correct), 2260258133:2260258133(0) ack 1979877866 win 65535
10:05:24.331208 IP (tos 0x0, ttl 64, id 46844, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980029018:1980029554(536) ack 2260258133 win 5840
10:05:24.331216 IP (tos 0x0, ttl 64, id 46845, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980029554:1980030090(536) ack 2260258133 win 5840
10:05:24.331218 IP (tos 0x0, ttl 64, id 46846, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980030090:1980030626(536) ack 2260258133 win 5840
10:05:24.331220 IP (tos 0x0, ttl 64, id 46847, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980030626:1980031162(536) ack 2260258133 win 5840
10:05:24.331222 IP (tos 0x0, ttl 64, id 46848, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980031162:1980031698(536) ack 2260258133 win 5840
10:05:24.331221 IP (tos 0x0, ttl 64, id 20422, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4964 (correct), 2260258133:2260258133(0) ack 1980029554 win 65535
10:05:24.331223 IP (tos 0x0, ttl 64, id 46849, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980031698:1980032234(536) ack 2260258133 win 5840
10:05:24.331225 IP (tos 0x0, ttl 64, id 46850, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980032234:1980032770(536) ack 2260258133 win 5840
10:05:24.331229 IP (tos 0x0, ttl 64, id 20423, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4534 (correct), 2260258133:2260258133(0) ack 1980030626 win 65535
10:05:24.331229 IP (tos 0x0, ttl 64, id 46851, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980032770:1980033306(536) ack 2260258133 win 5840
10:05:24.331232 IP (tos 0x0, ttl 64, id 46852, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980033306:1980033842(536) ack 2260258133 win 5840
10:05:24.331236 IP (tos 0x0, ttl 64, id 46853, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980033842:1980034378(536) ack 2260258133 win 5840
10:05:24.331236 IP (tos 0x0, ttl 64, id 20424, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x4104 (correct), 2260258133:2260258133(0) ack 1980031698 win 65535
10:05:24.331238 IP (tos 0x0, ttl 64, id 46854, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980034378:1980034914(536) ack 2260258133 win 5840
10:05:24.331240 IP (tos 0x0, ttl 64, id 46855, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980034914:1980035450(536) ack 2260258133 win 5840
10:05:24.331242 IP (tos 0x0, ttl 64, id 20425, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3cd4 (correct), 2260258133:2260258133(0) ack 1980032770 win 65535
10:05:24.331244 IP (tos 0x0, ttl 64, id 46856, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980035450:1980035986(536) ack 2260258133 win 5840
10:05:24.331248 IP (tos 0x0, ttl 64, id 20426, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x38a4 (correct), 2260258133:2260258133(0) ack 1980033842 win 65535
10:05:24.331249 IP (tos 0x0, ttl 64, id 46857, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980035986:1980036522(536) ack 2260258133 win 5840
10:05:24.331251 IP (tos 0x0, ttl 64, id 46858, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: P 1980036522:1980037058(536) ack 2260258133 win 5840
10:05:24.331254 IP (tos 0x0, ttl 64, id 20427, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3474 (correct), 2260258133:2260258133(0) ack 1980034914 win 65535
10:05:24.331255 IP (tos 0x0, ttl 64, id 46859, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980037058:1980037594(536) ack 2260258133 win 5840
10:05:24.331258 IP (tos 0x0, ttl 64, id 46860, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980037594:1980038130(536) ack 2260258133 win 5840
10:05:24.331262 IP (tos 0x0, ttl 64, id 46861, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980038130:1980038666(536) ack 2260258133 win 5840
10:05:24.331262 IP (tos 0x0, ttl 64, id 20428, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x3044 (correct), 2260258133:2260258133(0) ack 1980035986 win 65535
10:05:24.331264 IP (tos 0x0, ttl 64, id 46862, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980038666:1980039202(536) ack 2260258133 win 5840
10:05:24.331266 IP (tos 0x0, ttl 64, id 46863, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980039202:1980039738(536) ack 2260258133 win 5840
10:05:24.331268 IP (tos 0x0, ttl 64, id 20429, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x2c14 (correct), 2260258133:2260258133(0) ack 1980037058 win 65535
10:05:24.331270 IP (tos 0x0, ttl 64, id 46864, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980039738:1980040274(536) ack 2260258133 win 5840
10:05:24.331275 IP (tos 0x0, ttl 64, id 46865, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980040274:1980040810(536) ack 2260258133 win 5840
10:05:24.331274 IP (tos 0x0, ttl 64, id 20430, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x27e4 (correct), 2260258133:2260258133(0) ack 1980038130 win 65535
10:05:24.331277 IP (tos 0x0, ttl 64, id 46866, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980040810:1980041346(536) ack 2260258133 win 5840
10:05:24.331281 IP (tos 0x0, ttl 64, id 20431, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x23b4 (correct), 2260258133:2260258133(0) ack 1980039202 win 65535
10:05:24.331282 IP (tos 0x0, ttl 64, id 46867, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980041346:1980041882(536) ack 2260258133 win 5840
10:05:24.331284 IP (tos 0x0, ttl 64, id 46868, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980041882:1980042418(536) ack 2260258133 win 5840
10:05:24.331288 IP (tos 0x0, ttl 64, id 46869, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980042418:1980042954(536) ack 2260258133 win 5840
10:05:24.331288 IP (tos 0x0, ttl 64, id 20432, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1f84 (correct), 2260258133:2260258133(0) ack 1980040274 win 65535
10:05:24.331290 IP (tos 0x0, ttl 64, id 46870, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980042954:1980043490(536) ack 2260258133 win 5840
10:05:24.331295 IP (tos 0x0, ttl 64, id 46871, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980043490:1980044026(536) ack 2260258133 win 5840
10:05:24.331294 IP (tos 0x0, ttl 64, id 20433, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1b54 (correct), 2260258133:2260258133(0) ack 1980041346 win 65535
10:05:24.331297 IP (tos 0x0, ttl 64, id 46872, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980044026:1980044562(536) ack 2260258133 win 5840
10:05:24.331301 IP (tos 0x0, ttl 64, id 46873, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980044562:1980045098(536) ack 2260258133 win 5840
10:05:24.331301 IP (tos 0x0, ttl 64, id 20434, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x1724 (correct), 2260258133:2260258133(0) ack 1980042418 win 65535
10:05:24.331303 IP (tos 0x0, ttl 64, id 46874, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980045098:1980045634(536) ack 2260258133 win 5840
10:05:24.331308 IP (tos 0x0, ttl 64, id 20435, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x12f4 (correct), 2260258133:2260258133(0) ack 1980043490 win 65535
10:05:24.331305 IP (tos 0x0, ttl 64, id 46875, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980045634:1980046170(536) ack 2260258133 win 5840
10:05:24.331311 IP (tos 0x0, ttl 64, id 46876, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980046170:1980046706(536) ack 2260258133 win 5840
10:05:24.331314 IP (tos 0x0, ttl 64, id 20436, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0ec4 (correct), 2260258133:2260258133(0) ack 1980044562 win 65535
10:05:24.331315 IP (tos 0x0, ttl 64, id 46877, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980046706:1980047242(536) ack 2260258133 win 5840
10:05:24.331317 IP (tos 0x0, ttl 64, id 46878, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980047242:1980047778(536) ack 2260258133 win 5840
10:05:24.331319 IP (tos 0x0, ttl 64, id 46879, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980047778:1980048314(536) ack 2260258133 win 5840
10:05:24.331320 IP (tos 0x0, ttl 64, id 20437, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0a94 (correct), 2260258133:2260258133(0) ack 1980045634 win 65535
10:05:24.331323 IP (tos 0x0, ttl 64, id 46880, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980048314:1980048850(536) ack 2260258133 win 5840
10:05:24.331326 IP (tos 0x0, ttl 64, id 20438, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0664 (correct), 2260258133:2260258133(0) ack 1980046706 win 65535
10:05:24.331327 IP (tos 0x0, ttl 64, id 46881, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980048850:1980049386(536) ack 2260258133 win 5840
10:05:24.331330 IP (tos 0x0, ttl 64, id 46882, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980049386:1980049922(536) ack 2260258133 win 5840
10:05:24.331333 IP (tos 0x0, ttl 64, id 20439, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x0234 (correct), 2260258133:2260258133(0) ack 1980047778 win 65535
10:05:24.331334 IP (tos 0x0, ttl 64, id 46883, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980049922:1980050458(536) ack 2260258133 win 5840
10:05:24.331339 IP (tos 0x0, ttl 64, id 46884, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980050458:1980050994(536) ack 2260258133 win 5840
10:05:24.331340 IP (tos 0x0, ttl 64, id 20440, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xfe03 (correct), 2260258133:2260258133(0) ack 1980048850 win 65535
10:05:24.331341 IP (tos 0x0, ttl 64, id 46885, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980050994:1980051530(536) ack 2260258133 win 5840
10:05:24.331344 IP (tos 0x0, ttl 64, id 46886, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980051530:1980052066(536) ack 2260258133 win 5840
10:05:24.331346 IP (tos 0x0, ttl 64, id 20441, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf9d3 (correct), 2260258133:2260258133(0) ack 1980049922 win 65535
10:05:24.331348 IP (tos 0x0, ttl 64, id 46887, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980052066:1980052602(536) ack 2260258133 win 5840
10:05:24.331352 IP (tos 0x0, ttl 64, id 20442, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf5a3 (correct), 2260258133:2260258133(0) ack 1980050994 win 65535
10:05:24.331353 IP (tos 0x0, ttl 64, id 46888, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980052602:1980053138(536) ack 2260258133 win 5840
10:05:24.331355 IP (tos 0x0, ttl 64, id 46889, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980053138:1980053674(536) ack 2260258133 win 5840
10:05:24.331359 IP (tos 0x0, ttl 64, id 20443, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xf173 (correct), 2260258133:2260258133(0) ack 1980052066 win 65535
10:05:24.331359 IP (tos 0x0, ttl 64, id 46890, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980053674:1980054210(536) ack 2260258133 win 5840
10:05:24.331361 IP (tos 0x0, ttl 64, id 46891, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980054210:1980054746(536) ack 2260258133 win 5840
10:05:24.331365 IP (tos 0x0, ttl 64, id 20444, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xed43 (correct), 2260258133:2260258133(0) ack 1980053138 win 65535
10:05:24.331366 IP (tos 0x0, ttl 64, id 46892, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980054746:1980055282(536) ack 2260258133 win 5840
10:05:24.331368 IP (tos 0x0, ttl 64, id 46893, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980055282:1980055818(536) ack 2260258133 win 5840
10:05:24.331372 IP (tos 0x0, ttl 64, id 20445, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe913 (correct), 2260258133:2260258133(0) ack 1980054210 win 65535
10:05:24.331372 IP (tos 0x0, ttl 64, id 46894, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980055818:1980056354(536) ack 2260258133 win 5840
10:05:24.331375 IP (tos 0x0, ttl 64, id 46895, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980056354:1980056890(536) ack 2260258133 win 5840
10:05:24.331379 IP (tos 0x0, ttl 64, id 46896, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980056890:1980057426(536) ack 2260258133 win 5840
10:05:24.331379 IP (tos 0x0, ttl 64, id 20446, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe4e3 (correct), 2260258133:2260258133(0) ack 1980055282 win 65535
10:05:24.331381 IP (tos 0x0, ttl 64, id 46897, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980057426:1980057962(536) ack 2260258133 win 5840
10:05:24.331385 IP (tos 0x0, ttl 64, id 20447, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xe0b3 (correct), 2260258133:2260258133(0) ack 1980056354 win 65535
10:05:24.331386 IP (tos 0x0, ttl 64, id 46898, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980057962:1980058498(536) ack 2260258133 win 5840
10:05:24.331388 IP (tos 0x0, ttl 64, id 46899, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980058498:1980059034(536) ack 2260258133 win 5840
10:05:24.331390 IP (tos 0x0, ttl 64, id 46900, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980059034:1980059570(536) ack 2260258133 win 5840
10:05:24.331392 IP (tos 0x0, ttl 64, id 20448, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xdc83 (correct), 2260258133:2260258133(0) ack 1980057426 win 65535
10:05:24.331394 IP (tos 0x0, ttl 64, id 46901, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980059570:1980060106(536) ack 2260258133 win 5840
10:05:24.331399 IP (tos 0x0, ttl 64, id 20449, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd853 (correct), 2260258133:2260258133(0) ack 1980058498 win 65535
10:05:24.331405 IP (tos 0x0, ttl 64, id 20450, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xd423 (correct), 2260258133:2260258133(0) ack 1980059570 win 65535
10:05:24.331411 IP (tos 0x0, ttl 64, id 20451, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xcff3 (correct), 2260258133:2260258133(0) ack 1980060642 win 65535
10:05:24.331524 IP (tos 0x0, ttl 64, id 20460, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xaa43 (correct), 2260258133:2260258133(0) ack 1980070290 win 65535
10:05:24.331531 IP (tos 0x0, ttl 64, id 20461, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa613 (correct), 2260258133:2260258133(0) ack 1980071362 win 65535
10:05:24.331537 IP (tos 0x0, ttl 64, id 20462, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0xa1e3 (correct), 2260258133:2260258133(0) ack 1980072434 win 65535
10:05:24.331548 IP (tos 0x0, ttl 64, id 20463, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x9db3 (correct), 2260258133:2260258133(0) ack 1980073506 win 65535
10:05:24.331574 IP (tos 0x0, ttl 64, id 46929, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980074578:1980075114(536) ack 2260258133 win 5840
10:05:24.331586 IP (tos 0x0, ttl 64, id 46931, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980075650:1980076186(536) ack 2260258133 win 5840
10:05:24.331639 IP (tos 0x0, ttl 64, id 20469, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8493 (correct), 2260258133:2260258133(0) ack 1980079938 win 65535
10:05:24.331647 IP (tos 0x0, ttl 64, id 46939, offset 0, flags [DF], proto TCP (6), length 576) dione.40344 > phoenix.distcc: . 1980079938:1980080474(536) ack 2260258133 win 5840
10:05:24.331657 IP (tos 0x0, ttl 64, id 20470, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x8063 (correct), 2260258133:2260258133(0) ack 1980081010 win 65535
10:05:24.331678 IP (tos 0x0, ttl 64, id 20471, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7c33 (correct), 2260258133:2260258133(0) ack 1980082082 win 65535
10:05:24.331688 IP (tos 0x0, ttl 64, id 20472, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: ., cksum 0x7803 (correct), 2260258133:2260258133(0) ack 1980083154 win 65535
10:05:24.732609 IP (tos 0x0, ttl 64, id 20476, offset 0, flags [DF], proto TCP (6), length 2960) phoenix.distcc > dione.40344: . 2260258133:2260261053(2920) ack 1980086145 win 65535
10:05:24.732740 IP (tos 0x0, ttl 64, id 46951, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0x4468 (correct), 1980086145:1980086145(0) ack 2260259593 win 8760
10:05:24.732753 IP (tos 0x0, ttl 64, id 20478, offset 0, flags [DF], proto TCP (6), length 2960) phoenix.distcc > dione.40344: . 2260261053:2260263973(2920) ack 1980086145 win 65535
10:05:24.732756 IP (tos 0x0, ttl 64, id 46952, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0x334c (correct), 1980086145:1980086145(0) ack 2260261053 win 11680
10:05:24.732761 IP (tos 0x0, ttl 64, id 20480, offset 0, flags [DF], proto TCP (6), length 2960) phoenix.distcc > dione.40344: . 2260263973:2260266893(2920) ack 1980086145 win 65535
10:05:24.732835 IP (tos 0x0, ttl 64, id 46953, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0x2230 (correct), 1980086145:1980086145(0) ack 2260262513 win 14600
10:05:24.732841 IP (tos 0x0, ttl 64, id 20482, offset 0, flags [DF], proto TCP (6), length 2960) phoenix.distcc > dione.40344: P 2260266893:2260269813(2920) ack 1980086145 win 65535
10:05:24.732843 IP (tos 0x0, ttl 64, id 46954, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0x1114 (correct), 1980086145:1980086145(0) ack 2260263973 win 17520
10:05:24.732848 IP (tos 0x0, ttl 64, id 20484, offset 0, flags [DF], proto TCP (6), length 924) phoenix.distcc > dione.40344: P 2260269813:2260270697(884) ack 1980086145 win 65535
10:05:24.732885 IP (tos 0x0, ttl 64, id 46955, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0xfff7 (correct), 1980086145:1980086145(0) ack 2260265433 win 20440
10:05:24.732889 IP (tos 0x0, ttl 64, id 46956, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0xeedb (correct), 1980086145:1980086145(0) ack 2260266893 win 23360
10:05:24.732933 IP (tos 0x0, ttl 64, id 46957, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0xddbf (correct), 1980086145:1980086145(0) ack 2260268353 win 26280
10:05:24.732937 IP (tos 0x0, ttl 64, id 46958, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0xcca3 (correct), 1980086145:1980086145(0) ack 2260269813 win 29200
10:05:24.732952 IP (tos 0x0, ttl 64, id 46959, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0xbdc7 (correct), 1980086145:1980086145(0) ack 2260270697 win 32120
10:05:24.732996 IP (tos 0x0, ttl 64, id 46960, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: F, cksum 0xbdc6 (correct), 1980086145:1980086145(0) ack 2260270697 win 32120
10:05:24.733318 IP (tos 0x0, ttl 64, id 20485, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.40344: F, cksum 0x3b3e (correct), 2260270697:2260270697(0) ack 1980086146 win 65535
10:05:24.733389 IP (tos 0x0, ttl 64, id 46961, offset 0, flags [DF], proto TCP (6), length 40) dione.40344 > phoenix.distcc: ., cksum 0xbdc5 (correct), 1980086146:1980086146(0) ack 2260270698 win 32120

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  7:33                             ` Willy Tarreau
@ 2008-07-24  8:35                               ` Ingo Molnar
  0 siblings, 0 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-24  8:35 UTC (permalink / raw)
  To: Willy Tarreau
  Cc: David S. Miller, David Newall, Linus Torvalds, akpm, netdev,
	linux-kernel, Stefan Richter, Rafael J. Wysocki


* Willy Tarreau <w@1wt.eu> wrote:

> > 08:30:48.049354 IP (tos 0x0, ttl 64, id 27414, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
> > 08:30:48.049359 IP (tos 0x0, ttl 64, id 27415, offset 0, flags [DF], proto TCP (6), length 40) phoenix.distcc > dione.39201: ., cksum 0x80fe (correct), 2272574194:2272574194(0) ack 234561792 win 65535
> 
> And phoenix insists on getting what is missing from the window.
> 
> So dione is wrong here.

hm, but dione has been running the same 2.6.24.7-92.fc8 kernel for a 
long time:

/var/log/yum.log-20080528:May 27 23:44:36 Installed: kernel - 2.6.24.7-92.fc8.x86_64

and has 6 days uptime at the moment and no trouble communicating with 
any other buildbox - except the [only] one running latest -git.

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  8:27                               ` Ingo Molnar
@ 2008-07-24  8:36                                 ` David Miller
  0 siblings, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-24  8:36 UTC (permalink / raw)
  To: mingo
  Cc: herbert, w, davidn, torvalds, akpm, netdev, linux-kernel, stefanr, rjw

From: Ingo Molnar <mingo@elte.hu>
Date: Thu, 24 Jul 2008 10:27:30 +0200

> * Herbert Xu <herbert@gondor.apana.org.au> wrote:
> 
> > BTW any reason why you appear to have SACK off?
> 
> default distro setup, Fedora 9 and Fedora 8. No extra tweaking that i'm 
> aware of.

It's probably a side effect of their turning on syncookies in /etc/sysctl.conf :-/

I thought we added code that would allow enabling those options
even with syncookies enabled?  There is code in net/ipv4/syncookies.c
function cookie_check_timestamp() to handle this.

Of course this is a recent addition, so if either side doesn't
have that change.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  6:04                         ` [TCP bug, regression] " Ingo Molnar
  2008-07-24  6:32                           ` Ingo Molnar
@ 2008-07-24  9:05                           ` Herbert Xu
  2008-07-24  9:22                             ` David Miller
                                               ` (2 more replies)
  1 sibling, 3 replies; 201+ messages in thread
From: Herbert Xu @ 2008-07-24  9:05 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: w, davem, davidn, torvalds, akpm, netdev, linux-kernel, stefanr,
	rjw, ilpo.jarvinen

Ingo Molnar <mingo@elte.hu> wrote:
>
> the client (running 2.6.24) does periodic 120 seconds retransmits:
> 
> 07:40:48.255452 IP dione.39201 > phoenix.distcc: . 1608:2144(536) ack 1 win 584007:40:48.255547 IP phoenix.distcc > dione.39201: . ack 2144 win 65535
> 07:40:48.255564 IP dione.39201 > phoenix.distcc: . 67143:67679(536) ack 1 win 5840
> 07:40:48.255648 IP phoenix.distcc > dione.39201: . ack 2144 win 65535
> 07:42:48.255440 IP dione.39201 > phoenix.distcc: . 2144:2680(536) ack 1 win 5840
> 07:42:48.255559 IP phoenix.distcc > dione.39201: . ack 2680 win 65535
> 07:42:48.255570 IP dione.39201 > phoenix.distcc: . 67679:68215(536) ack 1 win 5840
> 07:42:48.255659 IP phoenix.distcc > dione.39201: . ack 2680 win 65535
> 07:44:48.255436 IP dione.39201 > phoenix.distcc: . 2680:3216(536) ack 1 win 584007:44:48.255570 IP phoenix.distcc > dione.39201: . ack 3216 win 65535
> 07:44:48.255585 IP dione.39201 > phoenix.distcc: . 68215:68751(536) ack 1 win 5840
> 07:44:48.255669 IP phoenix.distcc > dione.39201: . ack 3216 win 65535

OK, something's seriously screwed up on dione's kernel.  Could
you please disable syncookies (which should enable SACK for you)
and see if the problem goes away?

I think our Reno code may have been broken.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23 20:16                                                                             ` David Miller
  2008-07-23 20:43                                                                               ` Jarek Poplawski
@ 2008-07-24  9:10                                                                               ` Peter Zijlstra
  2008-07-24  9:20                                                                                 ` David Miller
  1 sibling, 1 reply; 201+ messages in thread
From: Peter Zijlstra @ 2008-07-24  9:10 UTC (permalink / raw)
  To: David Miller
  Cc: jarkao2, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo, Nick Piggin,
	Paul E McKenney

On Wed, 2008-07-23 at 13:16 -0700, David Miller wrote:
> From: Jarek Poplawski <jarkao2@gmail.com>
> Date: Wed, 23 Jul 2008 11:49:14 +0000
> 
> > On Wed, Jul 23, 2008 at 11:35:19AM +0000, Jarek Poplawski wrote:
> > > On Wed, Jul 23, 2008 at 12:58:16PM +0200, Peter Zijlstra wrote:
> > ...
> > > > 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's a new thing mainly for new hardware/drivers, and just after
> > > conversion (older drivers effectively use __netif_tx_lock()), so it'll
> > > probably stay for some time until something better is found. David,
> > > will tell the rest, I hope.
> > 
> > ...And, of course, these new drivers should also lock a single queue
> > where possible.
> 
> It isn't going away.
> 
> There will always be a need for a "stop all the TX queues" operation.

Ok, then how about something like this, the idea is to wrap the per tx
lock with a read lock of the device and let the netif_tx_lock() be the
write side, therefore excluding all device locks, but not incure the
cacheline bouncing on the read side by using per-cpu counters like rcu
does.

This of course requires that netif_tx_lock() is rare, otherwise stuff
will go bounce anyway...

Probably missed a few details,.. but I think the below ought to show the
idea...

struct tx_lock {
	int busy;
	spinlock_t lock;
	unsigned long *counters;
};


int tx_lock_init(struct tx_lock *txl)
{
	txl->busy = 0;
	spin_lock_init(&txl->lock);
	txl->counters = alloc_percpu(unsigned long);

	if (!txl->counters)
		return -ENOMEM;

	return 0;
}

void __netif_tx_lock(struct netdev_queue *txq, cpu)
{
	struct net_device *dev = txq->dev;

	if (rcu_dereference(dev->tx_lock.busy)) {
		spin_lock(&dev->tx_lock.lock);
		(*percpu_ptr(dev->tx_lock.counters, cpu))++;
		spin_unlock(&dev->tx_lock.lock);
	} else
		(*percpu_ptr(dev->tx_lock.counters, cpu))++;

	spin_lock(&txq->_xmit_lock);
	txq->xmit_lock_owner = cpu;
}

void __netif_tx_unlock(struct netdev_queue *txq)
{
	struct net_device *dev = txq->dev;

	(*percpu_ptr(dev->tx_lock.counters, txq->xmit_lock_owner))--;
	txq->xmit_lock_owner = -1;
	spin_unlock(&txq->xmit_lock);
}

unsigned long tx_lock_read_counters(struct tx_lock *txl)
{
	int i;
	unsigned long counter = 0;

	/* can use online - the inc/dec are matched per cpu */
	for_each_online_cpu(i)
		counter += *percpu_ptr(txl->counters, i);

	return counter;
}

void netif_tx_lock(struct net_device *dev)
{
	spin_lock(&dev->tx_lock.lock);
	rcu_assign_pointer(dev->tx_lock.busy, 1);

	while (tx_lock_read_counters(&dev->tx_lock)
		cpu_relax();
}

void netif_tx_unlock(struct net_device *dev)
{
	rcu_assign_pointer(dev->tx_lock.busy, 0);
	smp_wmb(); /* because rcu_assign_pointer is broken */
	spin_unlock(&dev->tx_lock.lock);
}


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-24  9:10                                                                               ` Peter Zijlstra
@ 2008-07-24  9:20                                                                                 ` David Miller
  2008-07-24  9:27                                                                                   ` Peter Zijlstra
  0 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-24  9:20 UTC (permalink / raw)
  To: peterz
  Cc: jarkao2, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo, nickpiggin, paulmck

From: Peter Zijlstra <peterz@infradead.org>
Date: Thu, 24 Jul 2008 11:10:48 +0200

> Ok, then how about something like this, the idea is to wrap the per tx
> lock with a read lock of the device and let the netif_tx_lock() be the
> write side, therefore excluding all device locks, but not incure the
> cacheline bouncing on the read side by using per-cpu counters like rcu
> does.
> 
> This of course requires that netif_tx_lock() is rare, otherwise stuff
> will go bounce anyway...
> 
> Probably missed a few details,.. but I think the below ought to show the
> idea...

Thanks for the effort, but I don't think we can seriously consider
this.

This lock is taken for every packet transmitted by the system, adding
another memory reference (the RCU deref) and a counter bump is just
not something we can just add to placate lockdep.  We going through
all of this effort to seperate the TX locking into individual
queues, it would be silly to go back and make it more expensive.

I have other ideas which I've expanded upon in other emails.  They
involve creating a netif_tx_freeze() interface and getting the drivers
to start using it.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  9:05                           ` Herbert Xu
@ 2008-07-24  9:22                             ` David Miller
  2008-07-24  9:34                               ` Ingo Molnar
  2008-07-24 13:01                               ` [TCP bug, regression] stuck distcc connections in latest -git Willy Tarreau
  2008-07-24  9:25                             ` Ingo Molnar
  2008-07-24  9:36                             ` Ilpo Järvinen
  2 siblings, 2 replies; 201+ messages in thread
From: David Miller @ 2008-07-24  9:22 UTC (permalink / raw)
  To: herbert
  Cc: mingo, w, davidn, torvalds, akpm, netdev, linux-kernel, stefanr,
	rjw, ilpo.jarvinen


BTW, if someone can contact the Fedora folks, specifically whoever
added that syncookies enable to /etc/sysctl.conf, and let them know
that they've set our TCP stack back by 10 years by disabling SACK
and timestamps, I'd really appreciate it.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  9:05                           ` Herbert Xu
  2008-07-24  9:22                             ` David Miller
@ 2008-07-24  9:25                             ` Ingo Molnar
  2008-07-24  9:29                               ` David Miller
  2008-07-24 11:12                               ` Herbert Xu
  2008-07-24  9:36                             ` Ilpo Järvinen
  2 siblings, 2 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-24  9:25 UTC (permalink / raw)
  To: Herbert Xu
  Cc: w, davem, davidn, torvalds, akpm, netdev, linux-kernel, stefanr,
	rjw, ilpo.jarvinen


* Herbert Xu <herbert@gondor.apana.org.au> wrote:

> Ingo Molnar <mingo@elte.hu> wrote:
> >
> > the client (running 2.6.24) does periodic 120 seconds retransmits:
> > 
> > 07:40:48.255452 IP dione.39201 > phoenix.distcc: . 1608:2144(536) ack 1 win 584007:40:48.255547 IP phoenix.distcc > dione.39201: . ack 2144 win 65535
> > 07:40:48.255564 IP dione.39201 > phoenix.distcc: . 67143:67679(536) ack 1 win 5840
> > 07:40:48.255648 IP phoenix.distcc > dione.39201: . ack 2144 win 65535
> > 07:42:48.255440 IP dione.39201 > phoenix.distcc: . 2144:2680(536) ack 1 win 5840
> > 07:42:48.255559 IP phoenix.distcc > dione.39201: . ack 2680 win 65535
> > 07:42:48.255570 IP dione.39201 > phoenix.distcc: . 67679:68215(536) ack 1 win 5840
> > 07:42:48.255659 IP phoenix.distcc > dione.39201: . ack 2680 win 65535
> > 07:44:48.255436 IP dione.39201 > phoenix.distcc: . 2680:3216(536) ack 1 win 584007:44:48.255570 IP phoenix.distcc > dione.39201: . ack 3216 win 65535
> > 07:44:48.255585 IP dione.39201 > phoenix.distcc: . 68215:68751(536) ack 1 win 5840
> > 07:44:48.255669 IP phoenix.distcc > dione.39201: . ack 3216 win 65535
> 
> OK, something's seriously screwed up on dione's kernel.  Could you 
> please disable syncookies (which should enable SACK for you) and see 
> if the problem goes away?
> 
> I think our Reno code may have been broken.

ok, i've booted the latest kernel on dione and the builds are running on 
it now. It's using these settings currently:

 # cat /proc/sys/net/ipv4/tcp_syncookies
 0
 # cat /proc/sys/net/ipv4/tcp_sack
 1

Just to make sure i have the right test-plan: assuming this 
suspected-good kernel is trouble-free for say 48 hours, i should be able 
to switch back to the suspected-broken variant, by doing:

   echo 1 > /proc/sys/net/ipv4/tcp_syncookies

without rebooting the kernel, right? And then if the bug comes back 
again we've nailed it down to the area you suspect, correct?

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-24  9:20                                                                                 ` David Miller
@ 2008-07-24  9:27                                                                                   ` Peter Zijlstra
  2008-07-24  9:32                                                                                     ` David Miller
  0 siblings, 1 reply; 201+ messages in thread
From: Peter Zijlstra @ 2008-07-24  9:27 UTC (permalink / raw)
  To: David Miller
  Cc: jarkao2, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo, nickpiggin, paulmck

On Thu, 2008-07-24 at 02:20 -0700, David Miller wrote:
> From: Peter Zijlstra <peterz@infradead.org>
> Date: Thu, 24 Jul 2008 11:10:48 +0200
> 
> > Ok, then how about something like this, the idea is to wrap the per tx
> > lock with a read lock of the device and let the netif_tx_lock() be the
> > write side, therefore excluding all device locks, but not incure the
> > cacheline bouncing on the read side by using per-cpu counters like rcu
> > does.
> > 
> > This of course requires that netif_tx_lock() is rare, otherwise stuff
> > will go bounce anyway...
> > 
> > Probably missed a few details,.. but I think the below ought to show the
> > idea...
> 
> Thanks for the effort, but I don't think we can seriously consider
> this.
> 
> This lock is taken for every packet transmitted by the system, adding
> another memory reference (the RCU deref) and a counter bump is just
> not something we can just add to placate lockdep.  We going through
> all of this effort to seperate the TX locking into individual
> queues, it would be silly to go back and make it more expensive.

Well, not only lockdep, taking a very large number of locks is expensive
as well.

> I have other ideas which I've expanded upon in other emails.  They
> involve creating a netif_tx_freeze() interface and getting the drivers
> to start using it.

OK, as long as we get there :-)


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  9:25                             ` Ingo Molnar
@ 2008-07-24  9:29                               ` David Miller
  2008-07-24 11:12                               ` Herbert Xu
  1 sibling, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-24  9:29 UTC (permalink / raw)
  To: mingo
  Cc: herbert, w, davidn, torvalds, akpm, netdev, linux-kernel,
	stefanr, rjw, ilpo.jarvinen

From: Ingo Molnar <mingo@elte.hu>
Date: Thu, 24 Jul 2008 11:25:18 +0200

> ok, i've booted the latest kernel on dione and the builds are running on 
> it now. It's using these settings currently:
> 
>  # cat /proc/sys/net/ipv4/tcp_syncookies
>  0
>  # cat /proc/sys/net/ipv4/tcp_sack
>  1
> 
> Just to make sure i have the right test-plan: assuming this 
> suspected-good kernel is trouble-free for say 48 hours, i should be able 
> to switch back to the suspected-broken variant, by doing:
> 
>    echo 1 > /proc/sys/net/ipv4/tcp_syncookies
> 
> without rebooting the kernel, right? And then if the bug comes back 
> again we've nailed it down to the area you suspect, correct?

You don't need the explicit tcp_sack=1, it's going to be '1' by
default.

Simply switching syncookies on and off will turn both SACK and
timestamps off when running the dist kernel.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-24  9:27                                                                                   ` Peter Zijlstra
@ 2008-07-24  9:32                                                                                     ` David Miller
  2008-07-24 10:08                                                                                       ` Peter Zijlstra
  0 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-24  9:32 UTC (permalink / raw)
  To: peterz
  Cc: jarkao2, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo, nickpiggin, paulmck

From: Peter Zijlstra <peterz@infradead.org>
Date: Thu, 24 Jul 2008 11:27:05 +0200

> Well, not only lockdep, taking a very large number of locks is expensive
> as well.

Right now it would be on the order of 16 or 32 for
real hardware.

Much less than the scheduler currently takes on some
of my systems, so currently you are the pot calling the
kettle black. :-)

USHORT_MAX is just the upper hard limit imposed by the
software interface merely as a side effect of storing
the queue number of the SKB as a u16.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  9:22                             ` David Miller
@ 2008-07-24  9:34                               ` Ingo Molnar
  2008-07-24 11:56                                 ` [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference Ingo Molnar
  2008-07-24 13:01                               ` [TCP bug, regression] stuck distcc connections in latest -git Willy Tarreau
  1 sibling, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-24  9:34 UTC (permalink / raw)
  To: David Miller
  Cc: herbert, w, davidn, torvalds, akpm, netdev, linux-kernel,
	stefanr, rjw, ilpo.jarvinen, Dave Jones


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

> BTW, if someone can contact the Fedora folks, specifically whoever 
> added that syncookies enable to /etc/sysctl.conf, and let them know 
> that they've set our TCP stack back by 10 years by disabling SACK and 
> timestamps, I'd really appreciate it.

Server box (F9) has:

 # Controls the use of TCP syncookies
 net.ipv4.tcp_syncookies = 1

 timestamp of /etc/sysctl.conf: 2008-05-15, installation default i think.

Other (F8) box has:

 # Controls the use of TCP syncookies
 net.ipv4.tcp_syncookies = 0

 timestamp of /etc/sysctl.conf: 2007-01-28, touched 1.5 years ago.

Have not checked the install defaults - if i touched them it was a long 
time ago.

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  9:05                           ` Herbert Xu
  2008-07-24  9:22                             ` David Miller
  2008-07-24  9:25                             ` Ingo Molnar
@ 2008-07-24  9:36                             ` Ilpo Järvinen
  2008-07-24 10:03                               ` Ilpo Järvinen
  2 siblings, 1 reply; 201+ messages in thread
From: Ilpo Järvinen @ 2008-07-24  9:36 UTC (permalink / raw)
  To: Herbert Xu
  Cc: Ingo Molnar, w, davem, davidn, torvalds, akpm, netdev,
	linux-kernel, stefanr, rjw, ilpo.jarvinen

On Thu, 24 Jul 2008, Herbert Xu wrote:

> Ingo Molnar <mingo@elte.hu> wrote:
> >
> > the client (running 2.6.24) does periodic 120 seconds retransmits:
> > 
> > 07:40:48.255452 IP dione.39201 > phoenix.distcc: . 1608:2144(536) ack 1 win 584007:40:48.255547 IP phoenix.distcc > dione.39201: . ack 2144 win 65535
> > 07:40:48.255564 IP dione.39201 > phoenix.distcc: . 67143:67679(536) ack 1 win 5840
> > 07:40:48.255648 IP phoenix.distcc > dione.39201: . ack 2144 win 65535
> > 07:42:48.255440 IP dione.39201 > phoenix.distcc: . 2144:2680(536) ack 1 win 5840
> > 07:42:48.255559 IP phoenix.distcc > dione.39201: . ack 2680 win 65535
> > 07:42:48.255570 IP dione.39201 > phoenix.distcc: . 67679:68215(536) ack 1 win 5840
> > 07:42:48.255659 IP phoenix.distcc > dione.39201: . ack 2680 win 65535
> > 07:44:48.255436 IP dione.39201 > phoenix.distcc: . 2680:3216(536) ack 1 win 584007:44:48.255570 IP phoenix.distcc > dione.39201: . ack 3216 win 65535
> > 07:44:48.255585 IP dione.39201 > phoenix.distcc: . 68215:68751(536) ack 1 win 5840
> > 07:44:48.255669 IP phoenix.distcc > dione.39201: . ack 3216 win 65535
>
> OK, something's seriously screwed up on dione's kernel.  Could
> you please disable syncookies (which should enable SACK for you)
> and see if the problem goes away?

This looks like the FRTO bugs we fixed in 2.6.25.7, afaik, 2.6.24.y wasn't 
anymore updated at that time so it's a bit obsolete...


-- 
 i.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  9:36                             ` Ilpo Järvinen
@ 2008-07-24 10:03                               ` Ilpo Järvinen
  0 siblings, 0 replies; 201+ messages in thread
From: Ilpo Järvinen @ 2008-07-24 10:03 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Herbert Xu, w, David Miller, davidn, torvalds, Andrew Morton,
	Netdev, LKML, stefanr, rjw

[-- Attachment #1: Type: TEXT/PLAIN, Size: 2182 bytes --]

On Thu, 24 Jul 2008, Ilpo Järvinen wrote:

> On Thu, 24 Jul 2008, Herbert Xu wrote:
> 
> > Ingo Molnar <mingo@elte.hu> wrote:
> > >
> > > the client (running 2.6.24) does periodic 120 seconds retransmits:
> > > 
> > > 07:40:48.255452 IP dione.39201 > phoenix.distcc: . 1608:2144(536) ack 1 win 584007:40:48.255547 IP phoenix.distcc > dione.39201: . ack 2144 win 65535
> > > 07:40:48.255564 IP dione.39201 > phoenix.distcc: . 67143:67679(536) ack 1 win 5840
> > > 07:40:48.255648 IP phoenix.distcc > dione.39201: . ack 2144 win 65535
> > > 07:42:48.255440 IP dione.39201 > phoenix.distcc: . 2144:2680(536) ack 1 win 5840
> > > 07:42:48.255559 IP phoenix.distcc > dione.39201: . ack 2680 win 65535
> > > 07:42:48.255570 IP dione.39201 > phoenix.distcc: . 67679:68215(536) ack 1 win 5840
> > > 07:42:48.255659 IP phoenix.distcc > dione.39201: . ack 2680 win 65535
> > > 07:44:48.255436 IP dione.39201 > phoenix.distcc: . 2680:3216(536) ack 1 win 584007:44:48.255570 IP phoenix.distcc > dione.39201: . ack 3216 win 65535
> > > 07:44:48.255585 IP dione.39201 > phoenix.distcc: . 68215:68751(536) ack 1 win 5840
> > > 07:44:48.255669 IP phoenix.distcc > dione.39201: . ack 3216 win 65535
> >
> > OK, something's seriously screwed up on dione's kernel.  Could
> > you please disable syncookies (which should enable SACK for you)
> > and see if the problem goes away?
> 
> This looks like the FRTO bugs we fixed in 2.6.25.7, afaik, 2.6.24.y wasn't 
> anymore updated at that time so it's a bit obsolete...

But there might be something very interesting on the opposite end change 
that is pointed out by this behavior, since one needs considerable amount 
of losses in the outstanding window to triggers long delays (the bug was 
that FRTO never fallback to go-back-n retransmissions, so one RTO was 
necessary per loss), like you found out there's slow progress made and the 
situation can resolve (by a big cumulative ACK once all losses are 
cleared). Would the receiver for some reason not accept the new data 
segment that FRTO sends after getting the ACK of the retransmissions,
the RTO loop would continue forever with FRTO bug (unless userland tears 
the connection down).


-- 
 i.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-24  9:32                                                                                     ` David Miller
@ 2008-07-24 10:08                                                                                       ` Peter Zijlstra
  2008-07-24 10:38                                                                                         ` Nick Piggin
  0 siblings, 1 reply; 201+ messages in thread
From: Peter Zijlstra @ 2008-07-24 10:08 UTC (permalink / raw)
  To: David Miller
  Cc: jarkao2, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo, nickpiggin, paulmck

On Thu, 2008-07-24 at 02:32 -0700, David Miller wrote:
> From: Peter Zijlstra <peterz@infradead.org>
> Date: Thu, 24 Jul 2008 11:27:05 +0200
> 
> > Well, not only lockdep, taking a very large number of locks is expensive
> > as well.
> 
> Right now it would be on the order of 16 or 32 for
> real hardware.
> 
> Much less than the scheduler currently takes on some
> of my systems, so currently you are the pot calling the
> kettle black. :-)

One nit, and then I'll let this issue rest :-)

The scheduler has a long lock dependancy chain (nr_cpu_ids rq locks),
but it never takes all of them at the same time. Any one code path will
at most hold two rq locks.




^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-24 10:08                                                                                       ` Peter Zijlstra
@ 2008-07-24 10:38                                                                                         ` Nick Piggin
  2008-07-24 10:55                                                                                           ` Miklos Szeredi
                                                                                                             ` (2 more replies)
  0 siblings, 3 replies; 201+ messages in thread
From: Nick Piggin @ 2008-07-24 10:38 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: David Miller, jarkao2, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo, paulmck

On Thursday 24 July 2008 20:08, Peter Zijlstra wrote:
> On Thu, 2008-07-24 at 02:32 -0700, David Miller wrote:
> > From: Peter Zijlstra <peterz@infradead.org>
> > Date: Thu, 24 Jul 2008 11:27:05 +0200
> >
> > > Well, not only lockdep, taking a very large number of locks is
> > > expensive as well.
> >
> > Right now it would be on the order of 16 or 32 for
> > real hardware.
> >
> > Much less than the scheduler currently takes on some
> > of my systems, so currently you are the pot calling the
> > kettle black. :-)
>
> One nit, and then I'll let this issue rest :-)
>
> The scheduler has a long lock dependancy chain (nr_cpu_ids rq locks),
> but it never takes all of them at the same time. Any one code path will
> at most hold two rq locks.

Aside from lockdep, is there a particular problem with taking 64k locks
at once? (in a very slow path, of course) I don't think it causes a
problem with preempt_count, does it cause issues with -rt kernel?

Hey, something kind of cool (and OT) I've just thought of that we can
do with ticket locks is to take tickets for 2 (or 64K) nested locks,
and then wait for them both (all), so the cost is N*lock + longest spin,
rather than N*lock + N*avg spin.

That would mean even at the worst case of a huge amount of contention
on all 64K locks, it should only take a couple of ms to take all of
them (assuming max spin time isn't ridiculous).

Probably not the kind of feature we want to expose widely, but for
really special things like the scheduler, it might be a neat hack to
save a few cycles ;) Traditional implementations would just have
#define spin_lock_async	      spin_lock
#define spin_lock_async_wait  do {} while (0)

Sorry it's offtopic, but if I didn't post it, I'd forget to. Might be
a fun quick hack for someone.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-24 10:38                                                                                         ` Nick Piggin
@ 2008-07-24 10:55                                                                                           ` Miklos Szeredi
  2008-07-24 11:06                                                                                             ` Nick Piggin
  2008-07-24 10:59                                                                                           ` Peter Zijlstra
  2008-08-01 21:10                                                                                           ` Paul E. McKenney
  2 siblings, 1 reply; 201+ messages in thread
From: Miklos Szeredi @ 2008-07-24 10:55 UTC (permalink / raw)
  To: nickpiggin
  Cc: peterz, davem, jarkao2, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo, paulmck

On Thu, 24 Jul 2008, Nick Piggin wrote:
> Hey, something kind of cool (and OT) I've just thought of that we can
> do with ticket locks is to take tickets for 2 (or 64K) nested locks,
> and then wait for them both (all), so the cost is N*lock + longest spin,
> rather than N*lock + N*avg spin.

Isn't this deadlocky?

E.g. one task takes ticket x=1, then other task comes in and takes x=2
and y=1, then first task takes y=2.  Then neither can actually
complete both locks.

Miklos

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-24 10:38                                                                                         ` Nick Piggin
  2008-07-24 10:55                                                                                           ` Miklos Szeredi
@ 2008-07-24 10:59                                                                                           ` Peter Zijlstra
  2008-08-01 21:10                                                                                           ` Paul E. McKenney
  2 siblings, 0 replies; 201+ messages in thread
From: Peter Zijlstra @ 2008-07-24 10:59 UTC (permalink / raw)
  To: Nick Piggin
  Cc: David Miller, jarkao2, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo, paulmck,
	Thomas Gleixner

On Thu, 2008-07-24 at 20:38 +1000, Nick Piggin wrote:
> On Thursday 24 July 2008 20:08, Peter Zijlstra wrote:
> > On Thu, 2008-07-24 at 02:32 -0700, David Miller wrote:
> > > From: Peter Zijlstra <peterz@infradead.org>
> > > Date: Thu, 24 Jul 2008 11:27:05 +0200
> > >
> > > > Well, not only lockdep, taking a very large number of locks is
> > > > expensive as well.
> > >
> > > Right now it would be on the order of 16 or 32 for
> > > real hardware.
> > >
> > > Much less than the scheduler currently takes on some
> > > of my systems, so currently you are the pot calling the
> > > kettle black. :-)
> >
> > One nit, and then I'll let this issue rest :-)
> >
> > The scheduler has a long lock dependancy chain (nr_cpu_ids rq locks),
> > but it never takes all of them at the same time. Any one code path will
> > at most hold two rq locks.
> 
> Aside from lockdep, is there a particular problem with taking 64k locks
> at once? (in a very slow path, of course) I don't think it causes a
> problem with preempt_count, does it cause issues with -rt kernel?

PI-chains might explode I guess, Thomas?

Besides that, I just have this voice in my head telling me that
minimizing the number of locks held is a good thing.

> Hey, something kind of cool (and OT) I've just thought of that we can
> do with ticket locks is to take tickets for 2 (or 64K) nested locks,
> and then wait for them both (all), so the cost is N*lock + longest spin,
> rather than N*lock + N*avg spin.
> 
> That would mean even at the worst case of a huge amount of contention
> on all 64K locks, it should only take a couple of ms to take all of
> them (assuming max spin time isn't ridiculous).
> 
> Probably not the kind of feature we want to expose widely, but for
> really special things like the scheduler, it might be a neat hack to
> save a few cycles ;) Traditional implementations would just have
> #define spin_lock_async	      spin_lock
> #define spin_lock_async_wait  do {} while (0)
> 
> Sorry it's offtopic, but if I didn't post it, I'd forget to. Might be
> a fun quick hack for someone.

It might just be worth it for double_rq_lock() - if you can sort out the
deadlock potential Miklos just raised ;-)


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-24 10:55                                                                                           ` Miklos Szeredi
@ 2008-07-24 11:06                                                                                             ` Nick Piggin
  2008-08-01 21:10                                                                                               ` Paul E. McKenney
  0 siblings, 1 reply; 201+ messages in thread
From: Nick Piggin @ 2008-07-24 11:06 UTC (permalink / raw)
  To: Miklos Szeredi
  Cc: peterz, davem, jarkao2, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo, paulmck

On Thursday 24 July 2008 20:55, Miklos Szeredi wrote:
> On Thu, 24 Jul 2008, Nick Piggin wrote:
> > Hey, something kind of cool (and OT) I've just thought of that we can
> > do with ticket locks is to take tickets for 2 (or 64K) nested locks,
> > and then wait for them both (all), so the cost is N*lock + longest spin,
> > rather than N*lock + N*avg spin.
>
> Isn't this deadlocky?
>
> E.g. one task takes ticket x=1, then other task comes in and takes x=2
> and y=1, then first task takes y=2.  Then neither can actually
> complete both locks.

Oh duh of course you still need mutual exclusion from the first lock
to order the subsequent :P

So yeah it only works for N > 2 locks, and you have to spin_lock the
first one... so unsuitable for scheduler.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  9:25                             ` Ingo Molnar
  2008-07-24  9:29                               ` David Miller
@ 2008-07-24 11:12                               ` Herbert Xu
  1 sibling, 0 replies; 201+ messages in thread
From: Herbert Xu @ 2008-07-24 11:12 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: w, davem, davidn, torvalds, akpm, netdev, linux-kernel, stefanr,
	rjw, ilpo.jarvinen

On Thu, Jul 24, 2008 at 11:25:18AM +0200, Ingo Molnar wrote:
>
> without rebooting the kernel, right? And then if the bug comes back 
> again we've nailed it down to the area you suspect, correct?

Yes, except that you'll have to reestablish those connections
to make the new setting take effect.  In either case please
verify with tcpdump to make sure that both sides are proposing
sack at the start of the connection.  Alternatively see whether
sacks are generated in case of packet loss.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 201+ messages in thread

* [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24  9:34                               ` Ingo Molnar
@ 2008-07-24 11:56                                 ` Ingo Molnar
  2008-07-24 11:59                                   ` Ingo Molnar
  0 siblings, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-24 11:56 UTC (permalink / raw)
  To: David Miller
  Cc: herbert, w, davidn, torvalds, akpm, netdev, linux-kernel,
	stefanr, rjw, ilpo.jarvinen, Dave Jones


here's a new type of crash a -tip testbox triggered today:

BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
IP: [<0000000000000000>] 0x0
PGD 0 
Oops: 0010 [1] PREEMPT 
CPU 0 
Pid: 5331, comm: ssh Not tainted 2.6.26 #21613
RIP: 0010:[<0000000000000000>]  [<0000000000000000>] 0x0
RSP: 0018:ffff88003b959a70  EFLAGS: 00010217
RAX: ffff88003b9ba91c RBX: ffff88003b9baac0 RCX: 0000000000000002
RDX: ffff88003b9baac0 RSI: 0000000000000014 RDI: ffff88003b9ba3d8
RBP: ffff88003b959a98 R08: ffff88003e434130 R09: ffff88003b9598b8
R10: 0000000000002000 R11: 00000000d85507ac R12: ffff88003b9ba3d8
R13: 0000000000000002 R14: ffff88003e06a020 R15: 0000000000000000
FS:  00007fb2b7806780(0000) GS:ffffffff80c1c180(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000000 CR3: 000000003b9e8000 CR4: 00000000000006a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process ssh (pid: 5331, threadinfo ffff88003b958000, task ffff88003b99a000)
Stack:  ffffffff80777f25 ffff88003b959a98 ffffffff80c24170 ffff88003b959b28
 0000000000000004 ffff88003b959ae8 ffffffff80733107 ffff88003b959ab8
 ffff88003b9ba3d8 ffffffff80c1ed60 0000000000000004 ffff88003b9ba3d8
Call Trace:
 [<ffffffff80777f25>] ? ipv4_confirm+0x8d/0x122
 [<ffffffff80733107>] nf_iterate+0x43/0xa5
 [<ffffffff8074bbb2>] ? ip_finish_output+0x0/0x62
 [<ffffffff807331cd>] nf_hook_slow+0x64/0xcb
 [<ffffffff8074bbb2>] ? ip_finish_output+0x0/0x62
 [<ffffffff8074b63b>] nf_hook_thresh+0x1e/0x20
 [<ffffffff8074bd44>] ip_output+0xb3/0xc9
 [<ffffffff8074a27e>] dst_output+0xb/0xd
 [<ffffffff8074b6ef>] ip_local_out+0x1e/0x22
 [<ffffffff8074c75c>] ip_queue_xmit+0x2a6/0x321
 [<ffffffff80241961>] ? sub_preempt_count+0x2d/0x40
 [<ffffffff8028f239>] ? slob_alloc+0x11b/0x248
 [<ffffffff8075b85a>] tcp_transmit_skb+0x5ec/0x61b
 [<ffffffff807122b6>] ? kmalloc+0xc/0xe
 [<ffffffff8075d7ae>] tcp_connect+0x2a4/0x344
 [<ffffffff80760cf1>] tcp_v4_connect+0x3cd/0x425
 [<ffffffff8076bc7d>] inet_stream_connect+0x9a/0x24d
 [<ffffffff80292988>] ? fget_light+0x38/0x85
 [<ffffffff8070c60c>] sys_connect+0x68/0x8b
 [<ffffffff8025dfab>] ? up_read+0x9/0xb
 [<ffffffff8023727c>] ? do_page_fault+0x55f/0x92f
 [<ffffffff8022479a>] system_call_fastpath+0x16/0x1b

with this config:

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

i'll try a bisection.

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 11:56                                 ` [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference Ingo Molnar
@ 2008-07-24 11:59                                   ` Ingo Molnar
  2008-07-24 12:03                                     ` Patrick McHardy
  2008-07-24 14:23                                     ` Ingo Molnar
  0 siblings, 2 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-24 11:59 UTC (permalink / raw)
  To: David Miller
  Cc: herbert, w, davidn, torvalds, akpm, netdev, linux-kernel,
	stefanr, rjw, ilpo.jarvinen, Dave Jones


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

> here's a new type of crash a -tip testbox triggered today:
> 
> BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
> IP: [<0000000000000000>] 0x0
> PGD 0 
> Oops: 0010 [1] PREEMPT 
> CPU 0 
> Pid: 5331, comm: ssh Not tainted 2.6.26 #21613
> RIP: 0010:[<0000000000000000>]  [<0000000000000000>] 0x0
> RSP: 0018:ffff88003b959a70  EFLAGS: 00010217
> RAX: ffff88003b9ba91c RBX: ffff88003b9baac0 RCX: 0000000000000002
> RDX: ffff88003b9baac0 RSI: 0000000000000014 RDI: ffff88003b9ba3d8
> RBP: ffff88003b959a98 R08: ffff88003e434130 R09: ffff88003b9598b8
> R10: 0000000000002000 R11: 00000000d85507ac R12: ffff88003b9ba3d8
> R13: 0000000000000002 R14: ffff88003e06a020 R15: 0000000000000000
> FS:  00007fb2b7806780(0000) GS:ffffffff80c1c180(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> CR2: 0000000000000000 CR3: 000000003b9e8000 CR4: 00000000000006a0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> Process ssh (pid: 5331, threadinfo ffff88003b958000, task ffff88003b99a000)
> Stack:  ffffffff80777f25 ffff88003b959a98 ffffffff80c24170 ffff88003b959b28
>  0000000000000004 ffff88003b959ae8 ffffffff80733107 ffff88003b959ab8
>  ffff88003b9ba3d8 ffffffff80c1ed60 0000000000000004 ffff88003b9ba3d8
> Call Trace:
>  [<ffffffff80777f25>] ? ipv4_confirm+0x8d/0x122
>  [<ffffffff80733107>] nf_iterate+0x43/0xa5
>  [<ffffffff8074bbb2>] ? ip_finish_output+0x0/0x62
>  [<ffffffff807331cd>] nf_hook_slow+0x64/0xcb
>  [<ffffffff8074bbb2>] ? ip_finish_output+0x0/0x62
>  [<ffffffff8074b63b>] nf_hook_thresh+0x1e/0x20
>  [<ffffffff8074bd44>] ip_output+0xb3/0xc9
>  [<ffffffff8074a27e>] dst_output+0xb/0xd
>  [<ffffffff8074b6ef>] ip_local_out+0x1e/0x22
>  [<ffffffff8074c75c>] ip_queue_xmit+0x2a6/0x321
>  [<ffffffff80241961>] ? sub_preempt_count+0x2d/0x40
>  [<ffffffff8028f239>] ? slob_alloc+0x11b/0x248
>  [<ffffffff8075b85a>] tcp_transmit_skb+0x5ec/0x61b
>  [<ffffffff807122b6>] ? kmalloc+0xc/0xe
>  [<ffffffff8075d7ae>] tcp_connect+0x2a4/0x344
>  [<ffffffff80760cf1>] tcp_v4_connect+0x3cd/0x425
>  [<ffffffff8076bc7d>] inet_stream_connect+0x9a/0x24d
>  [<ffffffff80292988>] ? fget_light+0x38/0x85
>  [<ffffffff8070c60c>] sys_connect+0x68/0x8b
>  [<ffffffff8025dfab>] ? up_read+0x9/0xb
>  [<ffffffff8023727c>] ? do_page_fault+0x55f/0x92f
>  [<ffffffff8022479a>] system_call_fastpath+0x16/0x1b

here's the full bootlog:

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

kernel is latest -git, v2.6.26-6371-g338b9bb.

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 11:59                                   ` Ingo Molnar
@ 2008-07-24 12:03                                     ` Patrick McHardy
  2008-07-24 12:22                                       ` Herbert Xu
  2008-07-24 12:44                                       ` Pekka Enberg
  2008-07-24 14:23                                     ` Ingo Molnar
  1 sibling, 2 replies; 201+ messages in thread
From: Patrick McHardy @ 2008-07-24 12:03 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: David Miller, herbert, w, davidn, torvalds, akpm, netdev,
	linux-kernel, stefanr, rjw, ilpo.jarvinen, Dave Jones

Ingo Molnar wrote:
> * Ingo Molnar <mingo@elte.hu> wrote:
> 
>> here's a new type of crash a -tip testbox triggered today:
>>
>> BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
>> IP: [<0000000000000000>] 0x0
>> PGD 0 
>> Oops: 0010 [1] PREEMPT 
>> CPU 0 
>> Pid: 5331, comm: ssh Not tainted 2.6.26 #21613
>> RIP: 0010:[<0000000000000000>]  [<0000000000000000>] 0x0
>> RSP: 0018:ffff88003b959a70  EFLAGS: 00010217
>> RAX: ffff88003b9ba91c RBX: ffff88003b9baac0 RCX: 0000000000000002
>> RDX: ffff88003b9baac0 RSI: 0000000000000014 RDI: ffff88003b9ba3d8
>> RBP: ffff88003b959a98 R08: ffff88003e434130 R09: ffff88003b9598b8
>> R10: 0000000000002000 R11: 00000000d85507ac R12: ffff88003b9ba3d8
>> R13: 0000000000000002 R14: ffff88003e06a020 R15: 0000000000000000
>> FS:  00007fb2b7806780(0000) GS:ffffffff80c1c180(0000) knlGS:0000000000000000
>> CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
>> CR2: 0000000000000000 CR3: 000000003b9e8000 CR4: 00000000000006a0
>> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
>> Process ssh (pid: 5331, threadinfo ffff88003b958000, task ffff88003b99a000)
>> Stack:  ffffffff80777f25 ffff88003b959a98 ffffffff80c24170 ffff88003b959b28
>>  0000000000000004 ffff88003b959ae8 ffffffff80733107 ffff88003b959ab8
>>  ffff88003b9ba3d8 ffffffff80c1ed60 0000000000000004 ffff88003b9ba3d8
>> Call Trace:
>>  [<ffffffff80777f25>] ? ipv4_confirm+0x8d/0x122
>>  [<ffffffff80733107>] nf_iterate+0x43/0xa5

Does reverting 31d8519c fix this?

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 12:03                                     ` Patrick McHardy
@ 2008-07-24 12:22                                       ` Herbert Xu
  2008-07-24 12:40                                         ` Pekka Enberg
  2008-07-24 12:44                                       ` Pekka Enberg
  1 sibling, 1 reply; 201+ messages in thread
From: Herbert Xu @ 2008-07-24 12:22 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: Ingo Molnar, David Miller, w, davidn, torvalds, akpm, netdev,
	linux-kernel, stefanr, rjw, ilpo.jarvinen, Dave Jones,
	Pekka Enberg

On Thu, Jul 24, 2008 at 02:03:50PM +0200, Patrick McHardy wrote:
>
> Does reverting 31d8519c fix this?

Regardless of whether this is the problem, banning ksize because
it can be abused is like banning cars because they can kill people.

For example, Ethernet skbs are 1500 bytes long, so using ksize
we could potentially use the left-over memory for temporary storage.
Without it all this memory goes to waste.  On a machine that's
doing a lot of networking this could save a signifcant amount
of memory.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 12:22                                       ` Herbert Xu
@ 2008-07-24 12:40                                         ` Pekka Enberg
  2008-07-24 12:50                                           ` Herbert Xu
  0 siblings, 1 reply; 201+ messages in thread
From: Pekka Enberg @ 2008-07-24 12:40 UTC (permalink / raw)
  To: Herbert Xu
  Cc: Patrick McHardy, Ingo Molnar, David Miller, w, davidn, torvalds,
	akpm, netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen,
	Dave Jones, Matt Mackall, Christoph Lameter

Hi Herbert,

On Thu, Jul 24, 2008 at 02:03:50PM +0200, Patrick McHardy wrote:
>> Does reverting 31d8519c fix this?

On Thu, Jul 24, 2008 at 3:22 PM, Herbert Xu <herbert@gondor.apana.org.au> wrote:
> Regardless of whether this is the problem, banning ksize because
> it can be abused is like banning cars because they can kill people.
>
> For example, Ethernet skbs are 1500 bytes long, so using ksize
> we could potentially use the left-over memory for temporary storage.

Using ksize() for skbs will crash your kernel for some configurations
because calling that function for memory allocated with
kmem_cache_alloc() is not supported by all the allocators (well,
SLOB).

                                      Pekka

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 12:03                                     ` Patrick McHardy
  2008-07-24 12:22                                       ` Herbert Xu
@ 2008-07-24 12:44                                       ` Pekka Enberg
  2008-07-24 12:49                                         ` Patrick McHardy
  1 sibling, 1 reply; 201+ messages in thread
From: Pekka Enberg @ 2008-07-24 12:44 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: Ingo Molnar, David Miller, herbert, w, davidn, torvalds, akpm,
	netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen, Dave Jones

On Thu, Jul 24, 2008 at 3:03 PM, Patrick McHardy <kaber@trash.net> wrote:
> Ingo Molnar wrote:
>>
>> * Ingo Molnar <mingo@elte.hu> wrote:
>>
>>> here's a new type of crash a -tip testbox triggered today:
>>>
>>> BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
>>> IP: [<0000000000000000>] 0x0
>>> PGD 0 Oops: 0010 [1] PREEMPT CPU 0 Pid: 5331, comm: ssh Not tainted
>>> 2.6.26 #21613
>>> RIP: 0010:[<0000000000000000>]  [<0000000000000000>] 0x0
>>> RSP: 0018:ffff88003b959a70  EFLAGS: 00010217
>>> RAX: ffff88003b9ba91c RBX: ffff88003b9baac0 RCX: 0000000000000002
>>> RDX: ffff88003b9baac0 RSI: 0000000000000014 RDI: ffff88003b9ba3d8
>>> RBP: ffff88003b959a98 R08: ffff88003e434130 R09: ffff88003b9598b8
>>> R10: 0000000000002000 R11: 00000000d85507ac R12: ffff88003b9ba3d8
>>> R13: 0000000000000002 R14: ffff88003e06a020 R15: 0000000000000000
>>> FS:  00007fb2b7806780(0000) GS:ffffffff80c1c180(0000)
>>> knlGS:0000000000000000
>>> CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
>>> CR2: 0000000000000000 CR3: 000000003b9e8000 CR4: 00000000000006a0
>>> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>>> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
>>> Process ssh (pid: 5331, threadinfo ffff88003b958000, task
>>> ffff88003b99a000)
>>> Stack:  ffffffff80777f25 ffff88003b959a98 ffffffff80c24170
>>> ffff88003b959b28
>>>  0000000000000004 ffff88003b959ae8 ffffffff80733107 ffff88003b959ab8
>>>  ffff88003b9ba3d8 ffffffff80c1ed60 0000000000000004 ffff88003b9ba3d8
>>> Call Trace:
>>>  [<ffffffff80777f25>] ? ipv4_confirm+0x8d/0x122
>>>  [<ffffffff80733107>] nf_iterate+0x43/0xa5
>
> Does reverting 31d8519c fix this?

Hmm, why do you think it's related? It looks like elem->hook() is a
NULL pointer but my patch shouldn't make any difference here...

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 12:44                                       ` Pekka Enberg
@ 2008-07-24 12:49                                         ` Patrick McHardy
  2008-07-24 13:23                                           ` Pekka Enberg
  2008-07-24 21:13                                           ` Linus Torvalds
  0 siblings, 2 replies; 201+ messages in thread
From: Patrick McHardy @ 2008-07-24 12:49 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Ingo Molnar, David Miller, herbert, w, davidn, torvalds, akpm,
	netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen, Dave Jones

[-- Attachment #1: Type: text/plain, Size: 1335 bytes --]

Pekka Enberg wrote:
> On Thu, Jul 24, 2008 at 3:03 PM, Patrick McHardy <kaber@trash.net> wrote:
>> Ingo Molnar wrote:
>>> * Ingo Molnar <mingo@elte.hu> wrote:
>>>
>>>> here's a new type of crash a -tip testbox triggered today:
>>>>
>>>> BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
>>>> IP: [<0000000000000000>] 0x0
>>>> ...
>>>> Call Trace:
>>>>  [<ffffffff80777f25>] ? ipv4_confirm+0x8d/0x122
>>>>  [<ffffffff80733107>] nf_iterate+0x43/0xa5
>> Does reverting 31d8519c fix this?
> 
> Hmm, why do you think it's related? It looks like elem->hook() is a
> NULL pointer but my patch shouldn't make any difference here...

No, its already in ipv4_confirm, so its most likely helper->help()
thats NULL, which is contained in an extension.

The reason why I think its this patch is (quoting from an old
email that I never got a response to):

---
Your patch introduced a use-after-free and double-free.
krealloc() frees the old pointer, but it is still used
for the ->move operations, then freed again.

To fix this I think we need a __krealloc() that doesn't
free the old memory, especially since it must not be
freed immediately because it may still be used in a RCU
read side (see the last part in the patch attached to
this mail (based on a kernel without your patch)).
---

I've attached that patch again.

[-- Attachment #2: 01.diff --]
[-- Type: text/x-diff, Size: 3306 bytes --]

netfilter: nf_nat: fix RCU races

Fix three ct_extend/NAT extension related races:

- When cleaning up the extension area and removing it from the bysource hash,
  the nat->ct pointer must not be set to NULL since it may still be used in
  a RCU read side

- When replacing a NAT extension area in the bysource hash, the nat->ct
  pointer must be assigned before performing the replacement

- When reallocating extension storage in ct_extend, the old memory must
  not be freed immediately since it may still be used by a RCU read side

Possibly fixes https://bugzilla.redhat.com/show_bug.cgi?id=449315
and/or http://bugzilla.kernel.org/show_bug.cgi?id=10875

Signed-off-by: Patrick McHardy <kaber@trash.net>

---
commit 8d4c178a5e17c19cf7a781b0e5e416c4e22b1ff2
tree 2c4651788906d120cb7636006e2178dbd7a283c4
parent ec0a196626bd12e0ba108d7daa6d95a4fb25c2c5
author Patrick McHardy <kaber@trash.net> Sat, 14 Jun 2008 12:42:45 +0200
committer Patrick McHardy <kaber@trash.net> Sat, 14 Jun 2008 12:42:45 +0200

 include/net/netfilter/nf_conntrack_extend.h |    1 +
 net/ipv4/netfilter/nf_nat_core.c            |    3 +--
 net/netfilter/nf_conntrack_extend.c         |    9 ++++++++-
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/include/net/netfilter/nf_conntrack_extend.h b/include/net/netfilter/nf_conntrack_extend.h
index f736e84..f80c0ed 100644
--- a/include/net/netfilter/nf_conntrack_extend.h
+++ b/include/net/netfilter/nf_conntrack_extend.h
@@ -15,6 +15,7 @@ enum nf_ct_ext_id
 
 /* Extensions: optional stuff which isn't permanently in struct. */
 struct nf_ct_ext {
+	struct rcu_head rcu;
 	u8 offset[NF_CT_EXT_NUM];
 	u8 len;
 	char data[0];
diff --git a/net/ipv4/netfilter/nf_nat_core.c b/net/ipv4/netfilter/nf_nat_core.c
index 0457859..d2a887f 100644
--- a/net/ipv4/netfilter/nf_nat_core.c
+++ b/net/ipv4/netfilter/nf_nat_core.c
@@ -556,7 +556,6 @@ static void nf_nat_cleanup_conntrack(struct nf_conn *ct)
 
 	spin_lock_bh(&nf_nat_lock);
 	hlist_del_rcu(&nat->bysource);
-	nat->ct = NULL;
 	spin_unlock_bh(&nf_nat_lock);
 }
 
@@ -570,8 +569,8 @@ static void nf_nat_move_storage(void *new, void *old)
 		return;
 
 	spin_lock_bh(&nf_nat_lock);
-	hlist_replace_rcu(&old_nat->bysource, &new_nat->bysource);
 	new_nat->ct = ct;
+	hlist_replace_rcu(&old_nat->bysource, &new_nat->bysource);
 	spin_unlock_bh(&nf_nat_lock);
 }
 
diff --git a/net/netfilter/nf_conntrack_extend.c b/net/netfilter/nf_conntrack_extend.c
index bcc19fa..8a3f8b3 100644
--- a/net/netfilter/nf_conntrack_extend.c
+++ b/net/netfilter/nf_conntrack_extend.c
@@ -59,12 +59,19 @@ nf_ct_ext_create(struct nf_ct_ext **ext, enum nf_ct_ext_id id, gfp_t gfp)
 	if (!*ext)
 		return NULL;
 
+	INIT_RCU_HEAD(&(*ext)->rcu);
 	(*ext)->offset[id] = off;
 	(*ext)->len = len;
 
 	return (void *)(*ext) + off;
 }
 
+static void __nf_ct_ext_free_rcu(struct rcu_head *head)
+{
+	struct nf_ct_ext *ext = container_of(head, struct nf_ct_ext, rcu);
+	kfree(ext);
+}
+
 void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp)
 {
 	struct nf_ct_ext *new;
@@ -106,7 +113,7 @@ void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp)
 					(void *)ct->ext + ct->ext->offset[i]);
 			rcu_read_unlock();
 		}
-		kfree(ct->ext);
+		call_rcu(&ct->ext->rcu, __nf_ct_ext_free_rcu);
 		ct->ext = new;
 	}
 

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 12:40                                         ` Pekka Enberg
@ 2008-07-24 12:50                                           ` Herbert Xu
  2008-07-24 12:56                                             ` Nick Piggin
  2008-07-24 13:11                                             ` Matt Mackall
  0 siblings, 2 replies; 201+ messages in thread
From: Herbert Xu @ 2008-07-24 12:50 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Patrick McHardy, Ingo Molnar, David Miller, w, davidn, torvalds,
	akpm, netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen,
	Dave Jones, Matt Mackall, Christoph Lameter

On Thu, Jul 24, 2008 at 03:40:40PM +0300, Pekka Enberg wrote:
>
> Using ksize() for skbs will crash your kernel for some configurations
> because calling that function for memory allocated with
> kmem_cache_alloc() is not supported by all the allocators (well,
> SLOB).

So how about fixing the interface so that it can return an error
to indicate that the allocator doesn't support it? You're taking
away an entire interface just because an underlying implementation
that's used by a very small proportion of users doesn't do the
right thing.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 12:50                                           ` Herbert Xu
@ 2008-07-24 12:56                                             ` Nick Piggin
  2008-07-24 13:04                                               ` Herbert Xu
  2008-07-24 13:11                                             ` Matt Mackall
  1 sibling, 1 reply; 201+ messages in thread
From: Nick Piggin @ 2008-07-24 12:56 UTC (permalink / raw)
  To: Herbert Xu
  Cc: Pekka Enberg, Patrick McHardy, Ingo Molnar, David Miller, w,
	davidn, torvalds, akpm, netdev, linux-kernel, stefanr, rjw,
	ilpo.jarvinen, Dave Jones, Matt Mackall, Christoph Lameter

On Thursday 24 July 2008 22:50, Herbert Xu wrote:
> On Thu, Jul 24, 2008 at 03:40:40PM +0300, Pekka Enberg wrote:
> > Using ksize() for skbs will crash your kernel for some configurations
> > because calling that function for memory allocated with
> > kmem_cache_alloc() is not supported by all the allocators (well,
> > SLOB).
>
> So how about fixing the interface so that it can return an error
> to indicate that the allocator doesn't support it? You're taking
> away an entire interface just because an underlying implementation
> that's used by a very small proportion of users doesn't do the
> right thing.

You could easily add some function which returns a constant error for
SLOB and ksize for others, because slob typically contains very little
slack space (unless explicit alignment is asked for).

OTOH, skb allocation uses kmalloc don't they? So you could still use
SLOB ksize for that I guess.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [TCP bug, regression] stuck distcc connections in latest -git
  2008-07-24  9:22                             ` David Miller
  2008-07-24  9:34                               ` Ingo Molnar
@ 2008-07-24 13:01                               ` Willy Tarreau
  1 sibling, 0 replies; 201+ messages in thread
From: Willy Tarreau @ 2008-07-24 13:01 UTC (permalink / raw)
  To: David Miller
  Cc: herbert, mingo, davidn, torvalds, akpm, netdev, linux-kernel,
	stefanr, rjw, ilpo.jarvinen

On Thu, Jul 24, 2008 at 02:22:59AM -0700, David Miller wrote:
> 
> BTW, if someone can contact the Fedora folks, specifically whoever
> added that syncookies enable to /etc/sysctl.conf, and let them know
> that they've set our TCP stack back by 10 years by disabling SACK
> and timestamps, I'd really appreciate it.

But syn cookies should not trigger unless the syn backlog is full, right ?
Anyway, it would also explain why Ingo's running no default MSS (though
it should be correctly negociated by syn cookies).

willy


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 12:56                                             ` Nick Piggin
@ 2008-07-24 13:04                                               ` Herbert Xu
  2008-07-24 13:13                                                 ` Nick Piggin
  0 siblings, 1 reply; 201+ messages in thread
From: Herbert Xu @ 2008-07-24 13:04 UTC (permalink / raw)
  To: Nick Piggin
  Cc: Pekka Enberg, Patrick McHardy, Ingo Molnar, David Miller, w,
	davidn, torvalds, akpm, netdev, linux-kernel, stefanr, rjw,
	ilpo.jarvinen, Dave Jones, Matt Mackall, Christoph Lameter

On Thu, Jul 24, 2008 at 10:56:08PM +1000, Nick Piggin wrote:
>
> OTOH, skb allocation uses kmalloc don't they? So you could still use
> SLOB ksize for that I guess.

Yes I was referring to the data portion which is kmalloc'ed.
That is also why I'm interested in ksize because a priori we
don't know exactly how big it's going to be.  However, we do
know that statistically 1500 will dominate.

I'm not interested in ksize for kmem_cache at all.  So in fact
we could have something simpler that's based on kmalloc's rounding
algorithm instead.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 12:50                                           ` Herbert Xu
  2008-07-24 12:56                                             ` Nick Piggin
@ 2008-07-24 13:11                                             ` Matt Mackall
  2008-07-24 14:37                                               ` Herbert Xu
  1 sibling, 1 reply; 201+ messages in thread
From: Matt Mackall @ 2008-07-24 13:11 UTC (permalink / raw)
  To: Herbert Xu
  Cc: Pekka Enberg, Patrick McHardy, Ingo Molnar, David Miller, w,
	davidn, torvalds, akpm, netdev, linux-kernel, stefanr, rjw,
	ilpo.jarvinen, Dave Jones, Christoph Lameter


On Thu, 2008-07-24 at 20:50 +0800, Herbert Xu wrote:
> On Thu, Jul 24, 2008 at 03:40:40PM +0300, Pekka Enberg wrote:
> >
> > Using ksize() for skbs will crash your kernel for some configurations
> > because calling that function for memory allocated with
> > kmem_cache_alloc() is not supported by all the allocators (well,
> > SLOB).
> 
> So how about fixing the interface so that it can return an error
> to indicate that the allocator doesn't support it?

You don't honestly expect people to correctly code to such a standard,
do you? People will assume that ksize never fails, they will be wrong,
and computers will die.

>  You're taking
> away an entire interface just because an underlying implementation
> that's used by a very small proportion of users doesn't do the
> right thing.

Umm, no. There were very few users to being with, so it was actually a
fairly large proportion. And that suggested the interface was a bad
idea.

-- 
Mathematics is the supreme nostalgia of our time.


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 13:04                                               ` Herbert Xu
@ 2008-07-24 13:13                                                 ` Nick Piggin
  2008-07-24 13:32                                                   ` Pekka Enberg
  0 siblings, 1 reply; 201+ messages in thread
From: Nick Piggin @ 2008-07-24 13:13 UTC (permalink / raw)
  To: Herbert Xu
  Cc: Pekka Enberg, Patrick McHardy, Ingo Molnar, David Miller, w,
	davidn, torvalds, akpm, netdev, linux-kernel, stefanr, rjw,
	ilpo.jarvinen, Dave Jones, Matt Mackall, Christoph Lameter

On Thursday 24 July 2008 23:04, Herbert Xu wrote:
> On Thu, Jul 24, 2008 at 10:56:08PM +1000, Nick Piggin wrote:
> > OTOH, skb allocation uses kmalloc don't they? So you could still use
> > SLOB ksize for that I guess.
>
> Yes I was referring to the data portion which is kmalloc'ed.
> That is also why I'm interested in ksize because a priori we
> don't know exactly how big it's going to be.  However, we do
> know that statistically 1500 will dominate.
>
> I'm not interested in ksize for kmem_cache at all.  So in fact
> we could have something simpler that's based on kmalloc's rounding
> algorithm instead.

Yes you could definitely have a function that returns allocated
bytes for a given kmalloc size. Should be about as fast or faster
than extracting the size from the kaddr...


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 12:49                                         ` Patrick McHardy
@ 2008-07-24 13:23                                           ` Pekka Enberg
  2008-07-24 13:31                                             ` Patrick McHardy
  2008-07-24 21:13                                           ` Linus Torvalds
  1 sibling, 1 reply; 201+ messages in thread
From: Pekka Enberg @ 2008-07-24 13:23 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: Ingo Molnar, David Miller, herbert, w, davidn, torvalds, akpm,
	netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen, Dave Jones

On Thu, 2008-07-24 at 14:49 +0200, Patrick McHardy wrote:
> Pekka Enberg wrote:
> > On Thu, Jul 24, 2008 at 3:03 PM, Patrick McHardy <kaber@trash.net> wrote:
> >> Ingo Molnar wrote:
> >>> * Ingo Molnar <mingo@elte.hu> wrote:
> >>>
> >>>> here's a new type of crash a -tip testbox triggered today:
> >>>>
> >>>> BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
> >>>> IP: [<0000000000000000>] 0x0
> >>>> ...
> >>>> Call Trace:
> >>>>  [<ffffffff80777f25>] ? ipv4_confirm+0x8d/0x122
> >>>>  [<ffffffff80733107>] nf_iterate+0x43/0xa5
> >> Does reverting 31d8519c fix this?
> > 
> > Hmm, why do you think it's related? It looks like elem->hook() is a
> > NULL pointer but my patch shouldn't make any difference here...
> 
> No, its already in ipv4_confirm, so its most likely helper->help()
> thats NULL, which is contained in an extension.
> 
> The reason why I think its this patch is (quoting from an old
> email that I never got a response to):

Oh, I'm really sorry about that.

> ---
> Your patch introduced a use-after-free and double-free.
> krealloc() frees the old pointer, but it is still used
> for the ->move operations, then freed again.
> 
> To fix this I think we need a __krealloc() that doesn't
> free the old memory, especially since it must not be
> freed immediately because it may still be used in a RCU
> read side (see the last part in the patch attached to
> this mail (based on a kernel without your patch)).

Agreed. Something like this, perhaps?

[PATCH] netfilter: fix double-free and use-after free

As suggested by Patrick McHardy, introduce a __krealloc() that doesn't
free the original buffer to fix a double-free and use-after-free bug
introduced by me in netfilter that uses RCU.

Reported-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
---

diff --git a/include/linux/slab.h b/include/linux/slab.h
index 9aa90a6..be6f1d4 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -96,6 +96,7 @@ int kmem_ptr_validate(struct kmem_cache *cachep, const void *ptr);
 /*
  * Common kmalloc functions provided by all allocators
  */
+void * __must_check __krealloc(const void *, size_t, gfp_t);
 void * __must_check krealloc(const void *, size_t, gfp_t);
 void kfree(const void *);
 size_t ksize(const void *);
diff --git a/mm/util.c b/mm/util.c
index 8f18683..6ef9e99 100644
--- a/mm/util.c
+++ b/mm/util.c
@@ -68,25 +68,22 @@ void *kmemdup(const void *src, size_t len, gfp_t gfp)
 EXPORT_SYMBOL(kmemdup);
 
 /**
- * krealloc - reallocate memory. The contents will remain unchanged.
+ * __krealloc - like krealloc() but don't free @p.
  * @p: object to reallocate memory for.
  * @new_size: how many bytes of memory are required.
  * @flags: the type of memory to allocate.
  *
- * The contents of the object pointed to are preserved up to the
- * lesser of the new and old sizes.  If @p is %NULL, krealloc()
- * behaves exactly like kmalloc().  If @size is 0 and @p is not a
- * %NULL pointer, the object pointed to is freed.
+ * This function is like krealloc() except it never frees the originally
+ * allocated buffer. Use this if you don't want to free the buffer immediately
+ * like, for example, with RCU.
  */
-void *krealloc(const void *p, size_t new_size, gfp_t flags)
+void *__krealloc(const void *p, size_t new_size, gfp_t flags)
 {
 	void *ret;
 	size_t ks = 0;
 
-	if (unlikely(!new_size)) {
-		kfree(p);
+	if (unlikely(!new_size))
 		return ZERO_SIZE_PTR;
-	}
 
 	if (p)
 		ks = ksize(p);
@@ -95,10 +92,37 @@ void *krealloc(const void *p, size_t new_size, gfp_t flags)
 		return (void *)p;
 
 	ret = kmalloc_track_caller(new_size, flags);
-	if (ret && p) {
+	if (ret && p)
 		memcpy(ret, p, ks);
+
+	return ret;
+}
+EXPORT_SYMBOL(__krealloc);
+
+/**
+ * krealloc - reallocate memory. The contents will remain unchanged.
+ * @p: object to reallocate memory for.
+ * @new_size: how many bytes of memory are required.
+ * @flags: the type of memory to allocate.
+ *
+ * The contents of the object pointed to are preserved up to the
+ * lesser of the new and old sizes.  If @p is %NULL, krealloc()
+ * behaves exactly like kmalloc().  If @size is 0 and @p is not a
+ * %NULL pointer, the object pointed to is freed.
+ */
+void *krealloc(const void *p, size_t new_size, gfp_t flags)
+{
+	void *ret;
+
+	if (unlikely(!new_size)) {
 		kfree(p);
+		return ZERO_SIZE_PTR;
 	}
+
+	ret = __krealloc(p, new_size, flags);
+	if (ret && p != ret)
+		kfree(p);
+
 	return ret;
 }
 EXPORT_SYMBOL(krealloc);
diff --git a/net/netfilter/nf_conntrack_extend.c b/net/netfilter/nf_conntrack_extend.c
index 3469bc7..c956ef7 100644
--- a/net/netfilter/nf_conntrack_extend.c
+++ b/net/netfilter/nf_conntrack_extend.c
@@ -95,7 +95,7 @@ void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp)
 	newlen = newoff + t->len;
 	rcu_read_unlock();
 
-	new = krealloc(ct->ext, newlen, gfp);
+	new = __krealloc(ct->ext, newlen, gfp);
 	if (!new)
 		return NULL;
 




^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 13:23                                           ` Pekka Enberg
@ 2008-07-24 13:31                                             ` Patrick McHardy
  2008-07-24 13:34                                               ` Pekka Enberg
  0 siblings, 1 reply; 201+ messages in thread
From: Patrick McHardy @ 2008-07-24 13:31 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Ingo Molnar, David Miller, herbert, w, davidn, torvalds, akpm,
	netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen, Dave Jones

Pekka Enberg wrote:
> On Thu, 2008-07-24 at 14:49 +0200, Patrick McHardy wrote:
>> Pekka Enberg wrote:
>>> Hmm, why do you think it's related? It looks like elem->hook() is a
>>> NULL pointer but my patch shouldn't make any difference here...
>> No, its already in ipv4_confirm, so its most likely helper->help()
>> thats NULL, which is contained in an extension.
>>
>> The reason why I think its this patch is (quoting from an old
>> email that I never got a response to):
> 
> Oh, I'm really sorry about that.

No problem :)

>> ---
>> Your patch introduced a use-after-free and double-free.
>> krealloc() frees the old pointer, but it is still used
>> for the ->move operations, then freed again.
>>
>> To fix this I think we need a __krealloc() that doesn't
>> free the old memory, especially since it must not be
>> freed immediately because it may still be used in a RCU
>> read side (see the last part in the patch attached to
>> this mail (based on a kernel without your patch)).
> 
> Agreed. Something like this, perhaps?
> 
> [PATCH] netfilter: fix double-free and use-after free
> 
> As suggested by Patrick McHardy, introduce a __krealloc() that doesn't
> free the original buffer to fix a double-free and use-after-free bug
> introduced by me in netfilter that uses RCU.
> 
> Reported-by: Patrick McHardy <kaber@trash.net>
> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>

Looks good to me, thanks.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 13:13                                                 ` Nick Piggin
@ 2008-07-24 13:32                                                   ` Pekka Enberg
  2008-07-24 19:21                                                     ` Matt Mackall
  0 siblings, 1 reply; 201+ messages in thread
From: Pekka Enberg @ 2008-07-24 13:32 UTC (permalink / raw)
  To: Nick Piggin
  Cc: Herbert Xu, Patrick McHardy, Ingo Molnar, David Miller, w,
	davidn, torvalds, akpm, netdev, linux-kernel, stefanr, rjw,
	ilpo.jarvinen, Dave Jones, Matt Mackall, Christoph Lameter

On Thu, Jul 24, 2008 at 10:56:08PM +1000, Nick Piggin wrote:
> > > OTOH, skb allocation uses kmalloc don't they? So you could still use
> > > SLOB ksize for that I guess.

On Thursday 24 July 2008 23:04, Herbert Xu wrote:
> > Yes I was referring to the data portion which is kmalloc'ed.
> > That is also why I'm interested in ksize because a priori we
> > don't know exactly how big it's going to be.  However, we do
> > know that statistically 1500 will dominate.
> >
> > I'm not interested in ksize for kmem_cache at all.  So in fact
> > we could have something simpler that's based on kmalloc's rounding
> > algorithm instead.

On Thu, 2008-07-24 at 23:13 +1000, Nick Piggin wrote:
> Yes you could definitely have a function that returns allocated
> bytes for a given kmalloc size. Should be about as fast or faster
> than extracting the size from the kaddr...

Yup, makes sense.


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 13:31                                             ` Patrick McHardy
@ 2008-07-24 13:34                                               ` Pekka Enberg
  2008-07-24 18:51                                                 ` Andrew Morton
  0 siblings, 1 reply; 201+ messages in thread
From: Pekka Enberg @ 2008-07-24 13:34 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: Ingo Molnar, David Miller, herbert, w, davidn, torvalds, akpm,
	netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen, Dave Jones

On Thu, 2008-07-24 at 15:31 +0200, Patrick McHardy wrote:
> Pekka Enberg wrote:
> > On Thu, 2008-07-24 at 14:49 +0200, Patrick McHardy wrote:
> >> Pekka Enberg wrote:
> >>> Hmm, why do you think it's related? It looks like elem->hook() is a
> >>> NULL pointer but my patch shouldn't make any difference here...
> >> No, its already in ipv4_confirm, so its most likely helper->help()
> >> thats NULL, which is contained in an extension.
> >>
> >> The reason why I think its this patch is (quoting from an old
> >> email that I never got a response to):
> > 
> > Oh, I'm really sorry about that.
> 
> No problem :)
> 
> >> ---
> >> Your patch introduced a use-after-free and double-free.
> >> krealloc() frees the old pointer, but it is still used
> >> for the ->move operations, then freed again.
> >>
> >> To fix this I think we need a __krealloc() that doesn't
> >> free the old memory, especially since it must not be
> >> freed immediately because it may still be used in a RCU
> >> read side (see the last part in the patch attached to
> >> this mail (based on a kernel without your patch)).
> > 
> > Agreed. Something like this, perhaps?
> > 
> > [PATCH] netfilter: fix double-free and use-after free
> > 
> > As suggested by Patrick McHardy, introduce a __krealloc() that doesn't
> > free the original buffer to fix a double-free and use-after-free bug
> > introduced by me in netfilter that uses RCU.
> > 
> > Reported-by: Patrick McHardy <kaber@trash.net>
> > Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
> 
> Looks good to me, thanks.

Ingo, can you please test this? Andrew, I'm at OLS so can you pick up
the patch in your tree?


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 11:59                                   ` Ingo Molnar
  2008-07-24 12:03                                     ` Patrick McHardy
@ 2008-07-24 14:23                                     ` Ingo Molnar
  2008-07-24 15:23                                       ` Patrick McHardy
  1 sibling, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-24 14:23 UTC (permalink / raw)
  To: David Miller
  Cc: herbert, w, davidn, torvalds, akpm, netdev, linux-kernel,
	stefanr, rjw, ilpo.jarvinen, Dave Jones, Krzysztof Piotr Oledzki,
	Patrick McHardy


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

> here's the full bootlog:
> 
>  http://redhat.com/~mingo/misc/crash-Thu_Jul_24_13_23_34_CEST_2008.log
> 
> kernel is latest -git, v2.6.26-6371-g338b9bb.

FYI, this was the most complex bisection i have ever done under Linux.

Firstly, automated bisection honed in on an already known bad commit, so 
i had to do another, manual bisection.

There i hit four other regression and i had to work them around at 
multiple bisection points to be able to bisect this regression. I also 
had to do a "nested" sub-bisection to fix one of the bisection points.

In case someone else has to bisect in the future in this region as well, 
here is the list:

1) I hit the mac802 hwsim NULL dereference bootup crash and 
   cherry-picked its fix, 3a33cc108d1. Alas, that didnt work - so i 
   tweaked the .config. (hoping that it would not change the crash 
   pattern - fortunately it didnt)

2) build failure:

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

   had to do a secondary, nested bisection to figure out that the 
   build at this commit point was broken by 175f9c1bba9b ("net_sched: 
   Add size table for qdiscs") and reverted it.

3) on bisection point 11ea859d64b i got a hard lockup:

   BUG: NMI Watchdog detected LOCKUP on CPU0, ip ffffffff8028ef43, registers:

   Call Trace:
    [<ffffffff8028f3c6>] slob_alloc+0x9c/0x248
    [<ffffffff8028f59d>] kmem_cache_alloc_node+0x2b/0x5e
    [<ffffffff80292e42>] get_empty_filp+0x4f/0xee
    [<ffffffff8029c635>] __path_lookup_intent_open+0x2f/0x9f
    [<ffffffff8029c719>] path_lookup_open+0xc/0xe
    [<ffffffff8029c7c8>] do_filp_open+0xad/0x7e7
    [<ffffffff80272bec>] ? trace_preempt_on+0x9/0xb
    [<ffffffff802419d9>] ? sub_preempt_count+0x2d/0x40
    [<ffffffff802903ca>] ? get_unused_fd_flags+0x110/0x128
    [<ffffffff80290433>] do_sys_open+0x51/0xd8
    [<ffffffff802904e3>] sys_open+0x1b/0x1d
    [<ffffffff802247aa>] system_call_after_swapgs+0x9a/0x9f

   This might or might not be the same regression so i picked another 
   bisection point from the middle of the range, 11ea859d64b.

4) On one of the last bisection points (c3ee841) i hit this KVM 
   regression:

      arch/x86/kvm/built-in.o:(.text.fixup+0x1): relocation truncated to fit: R_X86_64_32 against `.text'

   i cherry-picked the fix 33a37eb411d.

Thus in this second bisection i arrived to:

| ae6134bdf3197206fba95563d755d2fa50d90ddd is first bad commit
| commit ae6134bdf3197206fba95563d755d2fa50d90ddd
| Author: Micah Dowty <micah@navi.cx>
| Date:   Mon Jul 21 09:59:09 2008 -0700
|
|    hdlcdrv: Fix CRC calculation.

Ok: recent change, networking related, i had this driver enabled, looks 
plausible. Here's the bisection log:

 # bad:  [338b9bb2] Merge branch 'x86/auditsc' of git://git.kernel.org
 # good: [bce7f795] Linux 2.6.26
 # good: [bce7f795] Linux 2.6.26
 # good: [bce7f795] Linux 2.6.26
 # good: [43146521] Merge branch 'release-2.6.27' of git://git.kernel.
 # good: [906f25b3] Revert "net_sched: Add size table for qdiscs"
 # good: [72a73693] Merge branch 'x86/for-linus' of git://git.kernel.o
 # bad:  [0988c371] Merge branch 'x86-fixes-for-linus' of git://git.ke
 # bad:  [a6e2ba82] block: make /proc/diskstats only build if CONFIG_P
 # bad:  [e89970a5] Merge git://git.kernel.org/pub/scm/linux/kernel/gi
 # bad:  [ae6134bd] hdlcdrv: Fix CRC calculation.
 # good: [c3ee841b] pkt_sched: Remove unused variable skb in dev_deact
 # good: [867d79f4] net: In __netif_schedule() use WARN_ON instead of
 # good: [d3678b4b] Revert "pkt_sched: Make default qdisc nonshared-mu

[ and this bisection found a small Git buglet as well: it shows a
  small git-bisect buglet. (Those three 2.6.26 log entries are there
  because git-bisect failed to check out the target bisection point two
  times due to untracked files.) ]

So i reverted "hdlcdrv: Fix CRC calculation." (ae6134bdf) ...

... but got the same crash again. So either the crash is not 
deterministic or one of the bisection points had to be wrong. (which, 
given the multitude of other regressions, is really not a surprise)

Then i tried both suggested fix patches Patrick sent me (a suggested 
revert and an netfilter/RCU use-after-free fix), but none of them solved 
the crash.

So i looked at the failed bisection log again, and noticed that the 
'bad' commit ae6134bdf is just next to a string of netfilter commits:

 5547cd0: netfilter: nf_conntrack_sctp: fix sparse warnings
 c71529e: netfilter: nf_nat_sip: c= is optional for session
 db1a75b: netfilter: xt_TCPMSS: collapse tcpmss_reverse_mtu{4,6} into one function
 72961ec: netfilter: nfnetlink_log: send complete hardware header
 280763c: netfilter: xt_time: fix time's time_mt()'s use of do_div()
 5840157: netfilter: accounting rework: ct_extend + 64bit counters (v4)
 07a7c10: netlink: add NLA_PUT_BE64 macro
 0dbff68: netfilter: nf_nat_core: eliminate useless find_appropriate_src for IP_N
 ae6134b: hdlcdrv: Fix CRC calculation.

... and the crash was in netfilter after all.

So i cornered the bug by checking:

   5547cd0   => crash
   ae6134bdf => good

... and starting off that point again, with the third bisection.

Thus i finally arrived to:

 # good: [ae6134bd] hdlcdrv: Fix CRC calculation.
 # bad:  [5547cd0d] netfilter: nf_conntrack_sctp: fix sparse warnings
 # bad:  [280763c6] netfilter: xt_time: fix time's time_mt()'s use of
 # good: [07a7c10b] netlink: add NLA_PUT_BE64 macro
 # bad:  [58401573] netfilter: accounting rework: ct_extend + 64bit co

| 584015727a3b88b46602b20077b46cd04f8b4ab3 is first bad commit
| commit 584015727a3b88b46602b20077b46cd04f8b4ab3
| Author: Krzysztof Piotr Oledzki <ole@ans.pl>
| AuthorDate: Mon Jul 21 10:01:34 2008 -0700
| Commit:     David S. Miller <davem@davemloft.net>
| CommitDate: Mon Jul 21 10:10:58 2008 -0700
|
|    netfilter: accounting rework: ct_extend + 64bit counters (v4)
[...]
|     Signed-off-by: Krzysztof Piotr Oledzki <ole@ans.pl>
|     Signed-off-by: Patrick McHardy <kaber@trash.net>
|     Signed-off-by: David S. Miller <davem@davemloft.net>

Which i double-checked by reverting that commit from -git as well and 
that solved the crash. Find the tested reverter patch below.

	Ingo

----------------------->
commit 548d9ef5fc65d921d20528de7b4d50e6cf0a1a15
Author: Ingo Molnar <mingo@elte.hu>
Date:   Thu Jul 24 15:16:22 2008 +0200

    Revert "netfilter: accounting rework: ct_extend + 64bit counters (v4)"
    
    This reverts commit 584015727a3b88b46602b20077b46cd04f8b4ab3.

    Signed-off-by: Ingo Molnar <mingo@elte.hu>

---
 Documentation/feature-removal-schedule.txt         |   10 --
 Documentation/kernel-parameters.txt                |    7 --
 include/linux/netfilter/nf_conntrack_common.h      |    8 ++-
 include/linux/netfilter/nfnetlink_conntrack.h      |    8 +-
 include/net/netfilter/nf_conntrack.h               |    6 +
 include/net/netfilter/nf_conntrack_acct.h          |   51 ----------
 include/net/netfilter/nf_conntrack_extend.h        |    2 -
 .../netfilter/nf_conntrack_l3proto_ipv4_compat.c   |   18 +++-
 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_standalone.c            |   18 +++-
 net/netfilter/xt_connbytes.c                       |    8 +-
 15 files changed, 86 insertions(+), 248 deletions(-)

diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 9f73587..86334b6 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -336,13 +336,3 @@ When:	After the only user (hal) has seen a release with the patches
 Why:	Over 1K .text/.data size reduction, data is available in other
 	ways (ioctls)
 Who:	Johannes Berg <johannes@sipsolutions.net>
-
----------------------------
-
-What: CONFIG_NF_CT_ACCT
-When: 2.6.29
-Why:  Accounting can now be enabled/disabled without kernel recompilation.
-      Currently used only to set a default value for a feature that is also
-      controlled by a kernel/module/sysfs/sysctl parameter.
-Who:  Krzysztof Piotr Oledzki <ole@ans.pl>
-
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 931f960..1d7e6b0 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1279,13 +1279,6 @@ and is between 256 and 4096 characters. It is defined in the file
 			This usage is only documented in each driver source
 			file if at all.
 
-	nf_conntrack.acct=
-			[NETFILTER] Enable connection tracking flow accounting
-			0 to disable accounting
-			1 to enable accounting
-			Default value depends on CONFIG_NF_CT_ACCT that is
-			going to be removed in 2.6.29.
-
 	nfsaddrs=	[NFS]
 			See Documentation/filesystems/nfsroot.txt.
 
diff --git a/include/linux/netfilter/nf_conntrack_common.h b/include/linux/netfilter/nf_conntrack_common.h
index 885cbe2..bad1eb7 100644
--- a/include/linux/netfilter/nf_conntrack_common.h
+++ b/include/linux/netfilter/nf_conntrack_common.h
@@ -122,7 +122,7 @@ enum ip_conntrack_events
 	IPCT_NATINFO_BIT = 10,
 	IPCT_NATINFO = (1 << IPCT_NATINFO_BIT),
 
-	/* Counter highest bit has been set, unused */
+	/* Counter highest bit has been set */
 	IPCT_COUNTER_FILLING_BIT = 11,
 	IPCT_COUNTER_FILLING = (1 << IPCT_COUNTER_FILLING_BIT),
 
@@ -145,6 +145,12 @@ enum ip_conntrack_expect_events {
 };
 
 #ifdef __KERNEL__
+struct ip_conntrack_counter
+{
+	u_int32_t packets;
+	u_int32_t bytes;
+};
+
 struct ip_conntrack_stat
 {
 	unsigned int searched;
diff --git a/include/linux/netfilter/nfnetlink_conntrack.h b/include/linux/netfilter/nfnetlink_conntrack.h
index c19595c..759bc04 100644
--- a/include/linux/netfilter/nfnetlink_conntrack.h
+++ b/include/linux/netfilter/nfnetlink_conntrack.h
@@ -115,10 +115,10 @@ enum ctattr_protoinfo_sctp {
 
 enum ctattr_counters {
 	CTA_COUNTERS_UNSPEC,
-	CTA_COUNTERS_PACKETS,		/* 64bit counters */
-	CTA_COUNTERS_BYTES,		/* 64bit counters */
-	CTA_COUNTERS32_PACKETS,		/* old 32bit counters, unused */
-	CTA_COUNTERS32_BYTES,		/* old 32bit counters, unused */
+	CTA_COUNTERS_PACKETS,		/* old 64bit counters */
+	CTA_COUNTERS_BYTES,		/* old 64bit counters */
+	CTA_COUNTERS32_PACKETS,
+	CTA_COUNTERS32_BYTES,
 	__CTA_COUNTERS_MAX
 };
 #define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1)
diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h
index 0741ad5..8f5b757 100644
--- a/include/net/netfilter/nf_conntrack.h
+++ b/include/net/netfilter/nf_conntrack.h
@@ -88,6 +88,7 @@ struct nf_conn_help {
 	u8 expecting[NF_CT_MAX_EXPECT_CLASSES];
 };
 
+
 #include <net/netfilter/ipv4/nf_conntrack_ipv4.h>
 #include <net/netfilter/ipv6/nf_conntrack_ipv6.h>
 
@@ -110,6 +111,11 @@ struct nf_conn
 	/* Timer function; drops refcnt when it goes off. */
 	struct timer_list timeout;
 
+#ifdef CONFIG_NF_CT_ACCT
+	/* Accounting Information (same cache line as other written members) */
+	struct ip_conntrack_counter counters[IP_CT_DIR_MAX];
+#endif
+
 #if defined(CONFIG_NF_CONNTRACK_MARK)
 	u_int32_t mark;
 #endif
diff --git a/include/net/netfilter/nf_conntrack_acct.h b/include/net/netfilter/nf_conntrack_acct.h
deleted file mode 100644
index 5d5ae55..0000000
--- a/include/net/netfilter/nf_conntrack_acct.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * (C) 2008 Krzysztof Piotr Oledzki <ole@ans.pl>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#ifndef _NF_CONNTRACK_ACCT_H
-#define _NF_CONNTRACK_ACCT_H
-#include <linux/netfilter/nf_conntrack_common.h>
-#include <linux/netfilter/nf_conntrack_tuple_common.h>
-#include <net/netfilter/nf_conntrack.h>
-#include <net/netfilter/nf_conntrack_extend.h>
-
-struct nf_conn_counter {
-	u_int64_t packets;
-	u_int64_t bytes;
-};
-
-extern int nf_ct_acct;
-
-static inline
-struct nf_conn_counter *nf_conn_acct_find(const struct nf_conn *ct)
-{
-	return nf_ct_ext_find(ct, NF_CT_EXT_ACCT);
-}
-
-static inline
-struct nf_conn_counter *nf_ct_acct_ext_add(struct nf_conn *ct, gfp_t gfp)
-{
-	struct nf_conn_counter *acct;
-
-	if (!nf_ct_acct)
-		return NULL;
-
-	acct = nf_ct_ext_add(ct, NF_CT_EXT_ACCT, gfp);
-	if (!acct)
-		pr_debug("failed to add accounting extension area");
-
-
-	return acct;
-};
-
-extern unsigned int
-seq_print_acct(struct seq_file *s, const struct nf_conn *ct, int dir);
-
-extern int nf_conntrack_acct_init(void);
-extern void nf_conntrack_acct_fini(void);
-
-#endif /* _NF_CONNTRACK_ACCT_H */
diff --git a/include/net/netfilter/nf_conntrack_extend.h b/include/net/netfilter/nf_conntrack_extend.h
index da8ee52..f80c0ed 100644
--- a/include/net/netfilter/nf_conntrack_extend.h
+++ b/include/net/netfilter/nf_conntrack_extend.h
@@ -7,13 +7,11 @@ enum nf_ct_ext_id
 {
 	NF_CT_EXT_HELPER,
 	NF_CT_EXT_NAT,
-	NF_CT_EXT_ACCT,
 	NF_CT_EXT_NUM,
 };
 
 #define NF_CT_EXT_HELPER_TYPE struct nf_conn_help
 #define NF_CT_EXT_NAT_TYPE struct nf_conn_nat
-#define NF_CT_EXT_ACCT_TYPE struct nf_conn_counter
 
 /* Extensions: optional stuff which isn't permanently in struct. */
 struct nf_ct_ext {
diff --git a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c
index 3a02072..40a46d4 100644
--- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c
+++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c
@@ -18,7 +18,19 @@
 #include <net/netfilter/nf_conntrack_l3proto.h>
 #include <net/netfilter/nf_conntrack_l4proto.h>
 #include <net/netfilter/nf_conntrack_expect.h>
-#include <net/netfilter/nf_conntrack_acct.h>
+
+#ifdef CONFIG_NF_CT_ACCT
+static unsigned int
+seq_print_counters(struct seq_file *s,
+		   const struct ip_conntrack_counter *counter)
+{
+	return seq_printf(s, "packets=%llu bytes=%llu ",
+			  (unsigned long long)counter->packets,
+			  (unsigned long long)counter->bytes);
+}
+#else
+#define seq_print_counters(x, y)	0
+#endif
 
 struct ct_iter_state {
 	unsigned int bucket;
@@ -115,7 +127,7 @@ static int ct_seq_show(struct seq_file *s, void *v)
 			l3proto, l4proto))
 		return -ENOSPC;
 
-	if (seq_print_acct(s, ct, IP_CT_DIR_ORIGINAL))
+	if (seq_print_counters(s, &ct->counters[IP_CT_DIR_ORIGINAL]))
 		return -ENOSPC;
 
 	if (!(test_bit(IPS_SEEN_REPLY_BIT, &ct->status)))
@@ -126,7 +138,7 @@ static int ct_seq_show(struct seq_file *s, void *v)
 			l3proto, l4proto))
 		return -ENOSPC;
 
-	if (seq_print_acct(s, ct, IP_CT_DIR_REPLY))
+	if (seq_print_counters(s, &ct->counters[IP_CT_DIR_REPLY]))
 		return -ENOSPC;
 
 	if (test_bit(IPS_ASSURED_BIT, &ct->status))
diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
index ee898e7..316c7af 100644
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
@@ -49,15 +49,6 @@ config NF_CT_ACCT
 	  Those counters can be used for flow-based accounting or the
 	  `connbytes' match.
 
-	  Please note that currently this option only sets a default state.
-	  You may change it at boot time with nf_conntrack.acct=0/1 kernel
-	  paramater or by loading the nf_conntrack module with acct=0/1.
-
-	  You may also disable/enable it on a running system with:
-	   sysctl net.netfilter.nf_conntrack_acct=0/1
-
-	  This option will be removed in 2.6.29.
-
 	  If unsure, say `N'.
 
 config NF_CONNTRACK_MARK
diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
index 3bd2cc5..5c4b183 100644
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
@@ -1,6 +1,6 @@
 netfilter-objs := core.o nf_log.o nf_queue.o nf_sockopt.o
 
-nf_conntrack-y	:= nf_conntrack_core.o nf_conntrack_standalone.o nf_conntrack_expect.o nf_conntrack_helper.o nf_conntrack_proto.o nf_conntrack_l3proto_generic.o nf_conntrack_proto_generic.o nf_conntrack_proto_tcp.o nf_conntrack_proto_udp.o nf_conntrack_extend.o nf_conntrack_acct.o
+nf_conntrack-y	:= nf_conntrack_core.o nf_conntrack_standalone.o nf_conntrack_expect.o nf_conntrack_helper.o nf_conntrack_proto.o nf_conntrack_l3proto_generic.o nf_conntrack_proto_generic.o nf_conntrack_proto_tcp.o nf_conntrack_proto_udp.o nf_conntrack_extend.o
 nf_conntrack-$(CONFIG_NF_CONNTRACK_EVENTS) += nf_conntrack_ecache.o
 
 obj-$(CONFIG_NETFILTER) = netfilter.o
diff --git a/net/netfilter/nf_conntrack_acct.c b/net/netfilter/nf_conntrack_acct.c
deleted file mode 100644
index 59bd8b9..0000000
--- a/net/netfilter/nf_conntrack_acct.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Accouting handling for netfilter. */
-
-/*
- * (C) 2008 Krzysztof Piotr Oledzki <ole@ans.pl>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/netfilter.h>
-#include <linux/kernel.h>
-#include <linux/moduleparam.h>
-
-#include <net/netfilter/nf_conntrack.h>
-#include <net/netfilter/nf_conntrack_extend.h>
-#include <net/netfilter/nf_conntrack_acct.h>
-
-#ifdef CONFIG_NF_CT_ACCT
-#define NF_CT_ACCT_DEFAULT 1
-#else
-#define NF_CT_ACCT_DEFAULT 0
-#endif
-
-int nf_ct_acct __read_mostly = NF_CT_ACCT_DEFAULT;
-EXPORT_SYMBOL_GPL(nf_ct_acct);
-
-module_param_named(acct, nf_ct_acct, bool, 0644);
-MODULE_PARM_DESC(acct, "Enable connection tracking flow accounting.");
-
-#ifdef CONFIG_SYSCTL
-static struct ctl_table_header *acct_sysctl_header;
-static struct ctl_table acct_sysctl_table[] = {
-	{
-		.ctl_name	= CTL_UNNUMBERED,
-		.procname	= "nf_conntrack_acct",
-		.data		= &nf_ct_acct,
-		.maxlen		= sizeof(unsigned int),
-		.mode		= 0644,
-		.proc_handler	= &proc_dointvec,
-	},
-	{}
-};
-#endif /* CONFIG_SYSCTL */
-
-unsigned int
-seq_print_acct(struct seq_file *s, const struct nf_conn *ct, int dir)
-{
-	struct nf_conn_counter *acct;
-
-	acct = nf_conn_acct_find(ct);
-	if (!acct)
-		return 0;
-
-	return seq_printf(s, "packets=%llu bytes=%llu ",
-			  (unsigned long long)acct[dir].packets,
-			  (unsigned long long)acct[dir].bytes);
-};
-EXPORT_SYMBOL_GPL(seq_print_acct);
-
-static struct nf_ct_ext_type acct_extend __read_mostly = {
-	.len	= sizeof(struct nf_conn_counter[IP_CT_DIR_MAX]),
-	.align	= __alignof__(struct nf_conn_counter[IP_CT_DIR_MAX]),
-	.id	= NF_CT_EXT_ACCT,
-};
-
-int nf_conntrack_acct_init(void)
-{
-	int ret;
-
-#ifdef CONFIG_NF_CT_ACCT
-	printk(KERN_WARNING "CONFIG_NF_CT_ACCT is deprecated and will be removed soon. Plase use\n");
-	printk(KERN_WARNING "nf_conntrack.acct=1 kernel paramater, acct=1 nf_conntrack module option or\n");
-	printk(KERN_WARNING "sysctl net.netfilter.nf_conntrack_acct=1 to enable it.\n");
-#endif
-
-	ret = nf_ct_extend_register(&acct_extend);
-	if (ret < 0) {
-		printk(KERN_ERR "nf_conntrack_acct: Unable to register extension\n");
-		return ret;
-	}
-
-#ifdef CONFIG_SYSCTL
-	acct_sysctl_header = register_sysctl_paths(nf_net_netfilter_sysctl_path,
-				acct_sysctl_table);
-
-	if (!acct_sysctl_header) {
-		nf_ct_extend_unregister(&acct_extend);
-
-		printk(KERN_ERR "nf_conntrack_acct: can't register to sysctl.\n");
-		return -ENOMEM;
-	}
-#endif
-
-	return 0;
-}
-
-void nf_conntrack_acct_fini(void)
-{
-#ifdef CONFIG_SYSCTL
-	unregister_sysctl_table(acct_sysctl_header);
-#endif
-	nf_ct_extend_unregister(&acct_extend);
-}
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index c519d09..28d03e6 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -37,7 +37,6 @@
 #include <net/netfilter/nf_conntrack_helper.h>
 #include <net/netfilter/nf_conntrack_core.h>
 #include <net/netfilter/nf_conntrack_extend.h>
-#include <net/netfilter/nf_conntrack_acct.h>
 
 #define NF_CONNTRACK_VERSION	"0.5.0"
 
@@ -556,8 +555,6 @@ init_conntrack(const struct nf_conntrack_tuple *tuple,
 		return NULL;
 	}
 
-	nf_ct_acct_ext_add(ct, GFP_ATOMIC);
-
 	spin_lock_bh(&nf_conntrack_lock);
 	exp = nf_ct_find_expectation(tuple);
 	if (exp) {
@@ -831,16 +828,17 @@ void __nf_ct_refresh_acct(struct nf_conn *ct,
 	}
 
 acct:
+#ifdef CONFIG_NF_CT_ACCT
 	if (do_acct) {
-		struct nf_conn_counter *acct;
+		ct->counters[CTINFO2DIR(ctinfo)].packets++;
+		ct->counters[CTINFO2DIR(ctinfo)].bytes +=
+			skb->len - skb_network_offset(skb);
 
-		acct = nf_conn_acct_find(ct);
-		if (acct) {
-			acct[CTINFO2DIR(ctinfo)].packets++;
-			acct[CTINFO2DIR(ctinfo)].bytes +=
-				skb->len - skb_network_offset(skb);
-		}
+		if ((ct->counters[CTINFO2DIR(ctinfo)].packets & 0x80000000)
+		    || (ct->counters[CTINFO2DIR(ctinfo)].bytes & 0x80000000))
+			event |= IPCT_COUNTER_FILLING;
 	}
+#endif
 
 	spin_unlock_bh(&nf_conntrack_lock);
 
@@ -855,19 +853,15 @@ bool __nf_ct_kill_acct(struct nf_conn *ct,
 		       const struct sk_buff *skb,
 		       int do_acct)
 {
+#ifdef CONFIG_NF_CT_ACCT
 	if (do_acct) {
-		struct nf_conn_counter *acct;
-
 		spin_lock_bh(&nf_conntrack_lock);
-		acct = nf_conn_acct_find(ct);
-		if (acct) {
-			acct[CTINFO2DIR(ctinfo)].packets++;
-			acct[CTINFO2DIR(ctinfo)].bytes +=
-				skb->len - skb_network_offset(skb);
-		}
+		ct->counters[CTINFO2DIR(ctinfo)].packets++;
+		ct->counters[CTINFO2DIR(ctinfo)].bytes +=
+			skb->len - skb_network_offset(skb);
 		spin_unlock_bh(&nf_conntrack_lock);
 	}
-
+#endif
 	if (del_timer(&ct->timeout)) {
 		ct->timeout.function((unsigned long)ct);
 		return true;
@@ -1035,7 +1029,6 @@ void nf_conntrack_cleanup(void)
 	nf_conntrack_proto_fini();
 	nf_conntrack_helper_fini();
 	nf_conntrack_expect_fini();
-	nf_conntrack_acct_fini();
 }
 
 struct hlist_head *nf_ct_alloc_hashtable(unsigned int *sizep, int *vmalloced)
@@ -1175,10 +1168,6 @@ int __init nf_conntrack_init(void)
 	if (ret < 0)
 		goto out_fini_expect;
 
-	ret = nf_conntrack_acct_init();
-	if (ret < 0)
-		goto out_fini_helper;
-
 	/* For use by REJECT target */
 	rcu_assign_pointer(ip_ct_attach, nf_conntrack_attach);
 	rcu_assign_pointer(nf_ct_destroy, destroy_conntrack);
@@ -1191,8 +1180,6 @@ int __init nf_conntrack_init(void)
 
 	return ret;
 
-out_fini_helper:
-	nf_conntrack_helper_fini();
 out_fini_expect:
 	nf_conntrack_expect_fini();
 out_fini_proto:
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
index 105a616..95a7967 100644
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
@@ -37,7 +37,6 @@
 #include <net/netfilter/nf_conntrack_l3proto.h>
 #include <net/netfilter/nf_conntrack_l4proto.h>
 #include <net/netfilter/nf_conntrack_tuple.h>
-#include <net/netfilter/nf_conntrack_acct.h>
 #ifdef CONFIG_NF_NAT_NEEDED
 #include <net/netfilter/nf_nat_core.h>
 #include <net/netfilter/nf_nat_protocol.h>
@@ -207,26 +206,22 @@ nla_put_failure:
 	return -1;
 }
 
+#ifdef CONFIG_NF_CT_ACCT
 static int
 ctnetlink_dump_counters(struct sk_buff *skb, const struct nf_conn *ct,
 			enum ip_conntrack_dir dir)
 {
 	enum ctattr_type type = dir ? CTA_COUNTERS_REPLY: CTA_COUNTERS_ORIG;
 	struct nlattr *nest_count;
-	const struct nf_conn_counter *acct;
-
-	acct = nf_conn_acct_find(ct);
-	if (!acct)
-		return 0;
 
 	nest_count = nla_nest_start(skb, type | NLA_F_NESTED);
 	if (!nest_count)
 		goto nla_put_failure;
 
-	NLA_PUT_BE64(skb, CTA_COUNTERS_PACKETS,
-		     cpu_to_be64(acct[dir].packets));
-	NLA_PUT_BE64(skb, CTA_COUNTERS_BYTES,
-		     cpu_to_be64(acct[dir].bytes));
+	NLA_PUT_BE32(skb, CTA_COUNTERS32_PACKETS,
+		     htonl(ct->counters[dir].packets));
+	NLA_PUT_BE32(skb, CTA_COUNTERS32_BYTES,
+		     htonl(ct->counters[dir].bytes));
 
 	nla_nest_end(skb, nest_count);
 
@@ -235,6 +230,9 @@ ctnetlink_dump_counters(struct sk_buff *skb, const struct nf_conn *ct,
 nla_put_failure:
 	return -1;
 }
+#else
+#define ctnetlink_dump_counters(a, b, c) (0)
+#endif
 
 #ifdef CONFIG_NF_CONNTRACK_MARK
 static inline int
@@ -503,6 +501,11 @@ static int ctnetlink_conntrack_event(struct notifier_block *this,
 			goto nla_put_failure;
 #endif
 
+		if (events & IPCT_COUNTER_FILLING &&
+		    (ctnetlink_dump_counters(skb, ct, IP_CT_DIR_ORIGINAL) < 0 ||
+		     ctnetlink_dump_counters(skb, ct, IP_CT_DIR_REPLY) < 0))
+			goto nla_put_failure;
+
 		if (events & IPCT_RELATED &&
 		    ctnetlink_dump_master(skb, ct) < 0)
 			goto nla_put_failure;
@@ -573,15 +576,11 @@ restart:
 				cb->args[1] = (unsigned long)ct;
 				goto out;
 			}
-
+#ifdef CONFIG_NF_CT_ACCT
 			if (NFNL_MSG_TYPE(cb->nlh->nlmsg_type) ==
-						IPCTNL_MSG_CT_GET_CTRZERO) {
-				struct nf_conn_counter *acct;
-
-				acct = nf_conn_acct_find(ct);
-				if (acct)
-					memset(acct, 0, sizeof(struct nf_conn_counter[IP_CT_DIR_MAX]));
-			}
+						IPCTNL_MSG_CT_GET_CTRZERO)
+				memset(&ct->counters, 0, sizeof(ct->counters));
+#endif
 		}
 		if (cb->args[1]) {
 			cb->args[1] = 0;
@@ -833,9 +832,14 @@ ctnetlink_get_conntrack(struct sock *ctnl, struct sk_buff *skb,
 	u_int8_t u3 = nfmsg->nfgen_family;
 	int err = 0;
 
-	if (nlh->nlmsg_flags & NLM_F_DUMP)
+	if (nlh->nlmsg_flags & NLM_F_DUMP) {
+#ifndef CONFIG_NF_CT_ACCT
+		if (NFNL_MSG_TYPE(nlh->nlmsg_type) == IPCTNL_MSG_CT_GET_CTRZERO)
+			return -ENOTSUPP;
+#endif
 		return netlink_dump_start(ctnl, skb, nlh, ctnetlink_dump_table,
 					  ctnetlink_done);
+	}
 
 	if (cda[CTA_TUPLE_ORIG])
 		err = ctnetlink_parse_tuple(cda, &tuple, CTA_TUPLE_ORIG, u3);
@@ -1148,8 +1152,6 @@ ctnetlink_create_conntrack(struct nlattr *cda[],
 			goto err;
 	}
 
-	nf_ct_acct_ext_add(ct, GFP_KERNEL);
-
 #if defined(CONFIG_NF_CONNTRACK_MARK)
 	if (cda[CTA_MARK])
 		ct->mark = ntohl(nla_get_be32(cda[CTA_MARK]));
diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
index 869ef93..46ea542 100644
--- a/net/netfilter/nf_conntrack_standalone.c
+++ b/net/netfilter/nf_conntrack_standalone.c
@@ -25,7 +25,6 @@
 #include <net/netfilter/nf_conntrack_l4proto.h>
 #include <net/netfilter/nf_conntrack_expect.h>
 #include <net/netfilter/nf_conntrack_helper.h>
-#include <net/netfilter/nf_conntrack_acct.h>
 
 MODULE_LICENSE("GPL");
 
@@ -39,6 +38,19 @@ print_tuple(struct seq_file *s, const struct nf_conntrack_tuple *tuple,
 }
 EXPORT_SYMBOL_GPL(print_tuple);
 
+#ifdef CONFIG_NF_CT_ACCT
+static unsigned int
+seq_print_counters(struct seq_file *s,
+		   const struct ip_conntrack_counter *counter)
+{
+	return seq_printf(s, "packets=%llu bytes=%llu ",
+			  (unsigned long long)counter->packets,
+			  (unsigned long long)counter->bytes);
+}
+#else
+#define seq_print_counters(x, y)	0
+#endif
+
 struct ct_iter_state {
 	unsigned int bucket;
 };
@@ -134,7 +146,7 @@ static int ct_seq_show(struct seq_file *s, void *v)
 			l3proto, l4proto))
 		return -ENOSPC;
 
-	if (seq_print_acct(s, ct, IP_CT_DIR_ORIGINAL))
+	if (seq_print_counters(s, &ct->counters[IP_CT_DIR_ORIGINAL]))
 		return -ENOSPC;
 
 	if (!(test_bit(IPS_SEEN_REPLY_BIT, &ct->status)))
@@ -145,7 +157,7 @@ static int ct_seq_show(struct seq_file *s, void *v)
 			l3proto, l4proto))
 		return -ENOSPC;
 
-	if (seq_print_acct(s, ct, IP_CT_DIR_REPLY))
+	if (seq_print_counters(s, &ct->counters[IP_CT_DIR_REPLY]))
 		return -ENOSPC;
 
 	if (test_bit(IPS_ASSURED_BIT, &ct->status))
diff --git a/net/netfilter/xt_connbytes.c b/net/netfilter/xt_connbytes.c
index 3e39c4f..d7e8983 100644
--- a/net/netfilter/xt_connbytes.c
+++ b/net/netfilter/xt_connbytes.c
@@ -8,7 +8,6 @@
 #include <linux/netfilter/x_tables.h>
 #include <linux/netfilter/xt_connbytes.h>
 #include <net/netfilter/nf_conntrack.h>
-#include <net/netfilter/nf_conntrack_acct.h>
 
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Harald Welte <laforge@netfilter.org>");
@@ -28,15 +27,12 @@ connbytes_mt(const struct sk_buff *skb, const struct net_device *in,
 	u_int64_t what = 0;	/* initialize to make gcc happy */
 	u_int64_t bytes = 0;
 	u_int64_t pkts = 0;
-	const struct nf_conn_counter *counters;
+	const struct ip_conntrack_counter *counters;
 
 	ct = nf_ct_get(skb, &ctinfo);
 	if (!ct)
 		return false;
-
-	counters = nf_conn_acct_find(ct);
-	if (!counters)
-		return false;
+	counters = ct->counters;
 
 	switch (sinfo->what) {
 	case XT_CONNBYTES_PKTS:

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 13:11                                             ` Matt Mackall
@ 2008-07-24 14:37                                               ` Herbert Xu
  2008-07-24 17:47                                                 ` Matt Mackall
  0 siblings, 1 reply; 201+ messages in thread
From: Herbert Xu @ 2008-07-24 14:37 UTC (permalink / raw)
  To: Matt Mackall
  Cc: Pekka Enberg, Patrick McHardy, Ingo Molnar, David Miller, w,
	davidn, torvalds, akpm, netdev, linux-kernel, stefanr, rjw,
	ilpo.jarvinen, Dave Jones, Christoph Lameter

On Thu, Jul 24, 2008 at 08:11:49AM -0500, Matt Mackall wrote:
>
> You don't honestly expect people to correctly code to such a standard,
> do you? People will assume that ksize never fails, they will be wrong,
> and computers will die.

If we follow this argument then most of our interfaces would be
broken.

> >  You're taking
> > away an entire interface just because an underlying implementation
> > that's used by a very small proportion of users doesn't do the
> > right thing.
> 
> Umm, no. There were very few users to being with, so it was actually a
> fairly large proportion. And that suggested the interface was a bad
> idea.

Huh? I'm talking about users of the kernel.  A very small proportion
of those use SLOB.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 14:23                                     ` Ingo Molnar
@ 2008-07-24 15:23                                       ` Patrick McHardy
  2008-07-24 15:32                                         ` Ingo Molnar
  0 siblings, 1 reply; 201+ messages in thread
From: Patrick McHardy @ 2008-07-24 15:23 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: David Miller, herbert, w, davidn, torvalds, akpm, netdev,
	linux-kernel, stefanr, rjw, ilpo.jarvinen, Dave Jones,
	Krzysztof Piotr Oledzki

Ingo Molnar wrote:
> Then i tried both suggested fix patches Patrick sent me (a suggested 
> revert and an netfilter/RCU use-after-free fix), but none of them solved 
> the crash.

Just to make sure - the "netfilter/RCU use-after-free fix" was the
patch from Pekka?

> Thus i finally arrived to:
> 
>  # good: [ae6134bd] hdlcdrv: Fix CRC calculation.
>  # bad:  [5547cd0d] netfilter: nf_conntrack_sctp: fix sparse warnings
>  # bad:  [280763c6] netfilter: xt_time: fix time's time_mt()'s use of
>  # good: [07a7c10b] netlink: add NLA_PUT_BE64 macro
>  # bad:  [58401573] netfilter: accounting rework: ct_extend + 64bit co
> 
> | 584015727a3b88b46602b20077b46cd04f8b4ab3 is first bad commit
> | commit 584015727a3b88b46602b20077b46cd04f8b4ab3
> | Author: Krzysztof Piotr Oledzki <ole@ans.pl>
> | AuthorDate: Mon Jul 21 10:01:34 2008 -0700
> | Commit:     David S. Miller <davem@davemloft.net>
> | CommitDate: Mon Jul 21 10:10:58 2008 -0700
> |
> |    netfilter: accounting rework: ct_extend + 64bit counters (v4)
> [...]
> |     Signed-off-by: Krzysztof Piotr Oledzki <ole@ans.pl>
> |     Signed-off-by: Patrick McHardy <kaber@trash.net>
> |     Signed-off-by: David S. Miller <davem@davemloft.net>
> 
> Which i double-checked by reverting that commit from -git as well and 
> that solved the crash. Find the tested reverter patch below.

Thats odd. I don't think anything is wrong with that patch
itself, its more likely that its triggering a bug in
ct_extend. You config has a few helper enabled (FTP, H.323,
TFTP) and the crash is when trying to call the helper functions.
Did you actually have traffic of one of these protocols?


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 15:23                                       ` Patrick McHardy
@ 2008-07-24 15:32                                         ` Ingo Molnar
  2008-07-24 15:34                                           ` Patrick McHardy
  2008-07-24 18:00                                           ` Krzysztof Oledzki
  0 siblings, 2 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-24 15:32 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: David Miller, herbert, w, davidn, torvalds, akpm, netdev,
	linux-kernel, stefanr, rjw, ilpo.jarvinen, Dave Jones,
	Krzysztof Piotr Oledzki


* Patrick McHardy <kaber@trash.net> wrote:

> Ingo Molnar wrote:
>> Then i tried both suggested fix patches Patrick sent me (a suggested  
>> revert and an netfilter/RCU use-after-free fix), but none of them 
>> solved the crash.
>
> Just to make sure - the "netfilter/RCU use-after-free fix" was the
> patch from Pekka?

yes. You can see it in tip/out-of-tree:

   http://people.redhat.com/mingo/tip.git/README

>> Thus i finally arrived to:
>>
>>  # good: [ae6134bd] hdlcdrv: Fix CRC calculation.
>>  # bad:  [5547cd0d] netfilter: nf_conntrack_sctp: fix sparse warnings
>>  # bad:  [280763c6] netfilter: xt_time: fix time's time_mt()'s use of
>>  # good: [07a7c10b] netlink: add NLA_PUT_BE64 macro
>>  # bad:  [58401573] netfilter: accounting rework: ct_extend + 64bit co
>>
>> | 584015727a3b88b46602b20077b46cd04f8b4ab3 is first bad commit
>> | commit 584015727a3b88b46602b20077b46cd04f8b4ab3
>> | Author: Krzysztof Piotr Oledzki <ole@ans.pl>
>> | AuthorDate: Mon Jul 21 10:01:34 2008 -0700
>> | Commit:     David S. Miller <davem@davemloft.net>
>> | CommitDate: Mon Jul 21 10:10:58 2008 -0700
>> |
>> |    netfilter: accounting rework: ct_extend + 64bit counters (v4)
>> [...]
>> |     Signed-off-by: Krzysztof Piotr Oledzki <ole@ans.pl>
>> |     Signed-off-by: Patrick McHardy <kaber@trash.net>
>> |     Signed-off-by: David S. Miller <davem@davemloft.net>
>>
>> Which i double-checked by reverting that commit from -git as well and  
>> that solved the crash. Find the tested reverter patch below.
>
> Thats odd. I don't think anything is wrong with that patch itself, its 
> more likely that its triggering a bug in ct_extend. You config has a 
> few helper enabled (FTP, H.323, TFTP) and the crash is when trying to 
> call the helper functions. Did you actually have traffic of one of 
> these protocols?

no, that's not likely - it's a default distro bootup.

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 15:32                                         ` Ingo Molnar
@ 2008-07-24 15:34                                           ` Patrick McHardy
  2008-07-24 18:00                                           ` Krzysztof Oledzki
  1 sibling, 0 replies; 201+ messages in thread
From: Patrick McHardy @ 2008-07-24 15:34 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: David Miller, herbert, w, davidn, torvalds, akpm, netdev,
	linux-kernel, stefanr, rjw, ilpo.jarvinen, Dave Jones,
	Krzysztof Piotr Oledzki

Ingo Molnar wrote:
> * Patrick McHardy <kaber@trash.net> wrote:
> 
>>> |    netfilter: accounting rework: ct_extend + 64bit counters (v4)
>>> [...]
>>> |     Signed-off-by: Krzysztof Piotr Oledzki <ole@ans.pl>
>>> |     Signed-off-by: Patrick McHardy <kaber@trash.net>
>>> |     Signed-off-by: David S. Miller <davem@davemloft.net>
>>>
>>> Which i double-checked by reverting that commit from -git as well and  
>>> that solved the crash. Find the tested reverter patch below.
>> Thats odd. I don't think anything is wrong with that patch itself, its 
>> more likely that its triggering a bug in ct_extend. You config has a 
>> few helper enabled (FTP, H.323, TFTP) and the crash is when trying to 
>> call the helper functions. Did you actually have traffic of one of 
>> these protocols?
> 
> no, that's not likely - it's a default distro bootup.

OK thanks. I'll look into it.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 14:37                                               ` Herbert Xu
@ 2008-07-24 17:47                                                 ` Matt Mackall
  2008-07-25  1:39                                                   ` Herbert Xu
  0 siblings, 1 reply; 201+ messages in thread
From: Matt Mackall @ 2008-07-24 17:47 UTC (permalink / raw)
  To: Herbert Xu
  Cc: Pekka Enberg, Patrick McHardy, Ingo Molnar, David Miller, w,
	davidn, torvalds, akpm, netdev, linux-kernel, stefanr, rjw,
	ilpo.jarvinen, Dave Jones, Christoph Lameter


On Thu, 2008-07-24 at 22:37 +0800, Herbert Xu wrote:
> On Thu, Jul 24, 2008 at 08:11:49AM -0500, Matt Mackall wrote:
> >
> > You don't honestly expect people to correctly code to such a standard,
> > do you? People will assume that ksize never fails, they will be wrong,
> > and computers will die.
> 
> If we follow this argument then most of our interfaces would be
> broken.

Let's try this again: did you know that ksize could fail depending on
kernel configuration? Most of us would answer no. That suggests the API
is bad. This ranks 12 on Rusty's spectrum of user-friendly APIs:

http://ozlabs.org/~rusty/ols-2003-keynote/img51.html

> > >  You're taking
> > > away an entire interface just because an underlying implementation
> > > that's used by a very small proportion of users doesn't do the
> > > right thing.
> > 
> > Umm, no. There were very few users to being with, so it was actually a
> > fairly large proportion. And that suggested the interface was a bad
> > idea.
> 
> Huh? I'm talking about users of the kernel.  A very small proportion
> of those use SLOB.

Ahh. I see what you're saying. You may be right about that, or you may
be wrong: I don't know which of the millions of mass market embedded
Linux devices out there are using it.

And of course I argue that SLOB did do the right thing, which was only
allowing ksize on kmalloced objects. It's an accident of implementation
that kmalloc and kmem_cache_alloc use the same underlying allocator. It
has not been true at all points in the past, it's not true for some
users in the present, and it may not be true for most users in the
future. Thus, it's a bad idea to try to use ksize on something that
wasn't kmalloced.

If you have an argument for reintroducing ksize based on an actual use
case, let's please move on to (or back to) it so that we can have some
substance to this discussion.

-- 
Mathematics is the supreme nostalgia of our time.


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 15:32                                         ` Ingo Molnar
  2008-07-24 15:34                                           ` Patrick McHardy
@ 2008-07-24 18:00                                           ` Krzysztof Oledzki
  1 sibling, 0 replies; 201+ messages in thread
From: Krzysztof Oledzki @ 2008-07-24 18:00 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Patrick McHardy, David Miller, herbert, w, davidn, torvalds,
	akpm, netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen,
	Dave Jones

[-- Attachment #1: Type: TEXT/PLAIN, Size: 2208 bytes --]



On Thu, 24 Jul 2008, Ingo Molnar wrote:

>
> * Patrick McHardy <kaber@trash.net> wrote:
>
>> Ingo Molnar wrote:
>>> Then i tried both suggested fix patches Patrick sent me (a suggested
>>> revert and an netfilter/RCU use-after-free fix), but none of them
>>> solved the crash.
>>
>> Just to make sure - the "netfilter/RCU use-after-free fix" was the
>> patch from Pekka?
>
> yes. You can see it in tip/out-of-tree:
>
>   http://people.redhat.com/mingo/tip.git/README
>
>>> Thus i finally arrived to:
>>>
>>>  # good: [ae6134bd] hdlcdrv: Fix CRC calculation.
>>>  # bad:  [5547cd0d] netfilter: nf_conntrack_sctp: fix sparse warnings
>>>  # bad:  [280763c6] netfilter: xt_time: fix time's time_mt()'s use of
>>>  # good: [07a7c10b] netlink: add NLA_PUT_BE64 macro
>>>  # bad:  [58401573] netfilter: accounting rework: ct_extend + 64bit co
>>>
>>> | 584015727a3b88b46602b20077b46cd04f8b4ab3 is first bad commit
>>> | commit 584015727a3b88b46602b20077b46cd04f8b4ab3
>>> | Author: Krzysztof Piotr Oledzki <ole@ans.pl>
>>> | AuthorDate: Mon Jul 21 10:01:34 2008 -0700
>>> | Commit:     David S. Miller <davem@davemloft.net>
>>> | CommitDate: Mon Jul 21 10:10:58 2008 -0700
>>> |
>>> |    netfilter: accounting rework: ct_extend + 64bit counters (v4)
>>> [...]
>>> |     Signed-off-by: Krzysztof Piotr Oledzki <ole@ans.pl>
>>> |     Signed-off-by: Patrick McHardy <kaber@trash.net>
>>> |     Signed-off-by: David S. Miller <davem@davemloft.net>
>>>
>>> Which i double-checked by reverting that commit from -git as well and
>>> that solved the crash. Find the tested reverter patch below.
>>
>> Thats odd. I don't think anything is wrong with that patch itself, its
>> more likely that its triggering a bug in ct_extend. You config has a
>> few helper enabled (FTP, H.323, TFTP) and the crash is when trying to
>> call the helper functions. Did you actually have traffic of one of
>> these protocols?
>
> no, that's not likely - it's a default distro bootup.

The commit makes ct_extend area to be used *very* frequently. Could you 
try to boot your kernel with nf_conntrack.acct=0 to disable accounting?
Does it help?

Best regards,

 				Krzysztof Olędzki

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 13:34                                               ` Pekka Enberg
@ 2008-07-24 18:51                                                 ` Andrew Morton
  2008-07-24 18:55                                                   ` Pekka Enberg
                                                                     ` (2 more replies)
  0 siblings, 3 replies; 201+ messages in thread
From: Andrew Morton @ 2008-07-24 18:51 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Patrick McHardy, Ingo Molnar, David Miller, herbert, w, davidn,
	torvalds, netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen,
	Dave Jones

On Thu, 24 Jul 2008 16:34:36 +0300 Pekka Enberg <penberg@cs.helsinki.fi> wrote:

> > >> Your patch introduced a use-after-free and double-free.
> > >> krealloc() frees the old pointer, but it is still used
> > >> for the ->move operations, then freed again.
> > >>
> > >> To fix this I think we need a __krealloc() that doesn't
> > >> free the old memory, especially since it must not be
> > >> freed immediately because it may still be used in a RCU
> > >> read side (see the last part in the patch attached to
> > >> this mail (based on a kernel without your patch)).
> > > 
> > > Agreed. Something like this, perhaps?
> > > 
> > > [PATCH] netfilter: fix double-free and use-after free
> > > 
> > > As suggested by Patrick McHardy, introduce a __krealloc() that doesn't
> > > free the original buffer to fix a double-free and use-after-free bug
> > > introduced by me in netfilter that uses RCU.
> > > 
> > > Reported-by: Patrick McHardy <kaber@trash.net>
> > > Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
> > 
> > Looks good to me, thanks.
> 
> Ingo, can you please test this? Andrew, I'm at OLS so can you pick up
> the patch in your tree?

Sure.  Or Patrick can do so and it can be merged via the net tree.

Ingo, did this patch actually fix something over there?

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 18:51                                                 ` Andrew Morton
@ 2008-07-24 18:55                                                   ` Pekka Enberg
  2008-07-24 20:58                                                     ` David Miller
  2008-07-25  8:02                                                     ` Dieter Ries
  2008-07-24 19:35                                                   ` Ingo Molnar
  2008-07-26 13:43                                                   ` Patrick McHardy
  2 siblings, 2 replies; 201+ messages in thread
From: Pekka Enberg @ 2008-07-24 18:55 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Patrick McHardy, Ingo Molnar, David Miller, herbert, w, davidn,
	torvalds, netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen,
	Dave Jones, clip2, vegard.nossum

On Thu, 2008-07-24 at 11:51 -0700, Andrew Morton wrote:
> On Thu, 24 Jul 2008 16:34:36 +0300 Pekka Enberg <penberg@cs.helsinki.fi> wrote:
> 
> > > >> Your patch introduced a use-after-free and double-free.
> > > >> krealloc() frees the old pointer, but it is still used
> > > >> for the ->move operations, then freed again.
> > > >>
> > > >> To fix this I think we need a __krealloc() that doesn't
> > > >> free the old memory, especially since it must not be
> > > >> freed immediately because it may still be used in a RCU
> > > >> read side (see the last part in the patch attached to
> > > >> this mail (based on a kernel without your patch)).
> > > > 
> > > > Agreed. Something like this, perhaps?
> > > > 
> > > > [PATCH] netfilter: fix double-free and use-after free
> > > > 
> > > > As suggested by Patrick McHardy, introduce a __krealloc() that doesn't
> > > > free the original buffer to fix a double-free and use-after-free bug
> > > > introduced by me in netfilter that uses RCU.
> > > > 
> > > > Reported-by: Patrick McHardy <kaber@trash.net>
> > > > Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
> > > 
> > > Looks good to me, thanks.
> > 
> > Ingo, can you please test this? Andrew, I'm at OLS so can you pick up
> > the patch in your tree?
> 
> Sure.  Or Patrick can do so and it can be merged via the net tree.
> 
> Ingo, did this patch actually fix something over there?

Apparently it didn't but it did fix Dieter's problem:

http://lkml.org/lkml/2008/7/24/337

Dieter, can we add a Tested-by tag from you to this patch?


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 13:32                                                   ` Pekka Enberg
@ 2008-07-24 19:21                                                     ` Matt Mackall
  2008-07-25  9:09                                                       ` Nick Piggin
  0 siblings, 1 reply; 201+ messages in thread
From: Matt Mackall @ 2008-07-24 19:21 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Nick Piggin, Herbert Xu, Patrick McHardy, Ingo Molnar,
	David Miller, w, davidn, torvalds, akpm, netdev, linux-kernel,
	stefanr, rjw, ilpo.jarvinen, Dave Jones, Christoph Lameter


On Thu, 2008-07-24 at 16:32 +0300, Pekka Enberg wrote:
> On Thu, Jul 24, 2008 at 10:56:08PM +1000, Nick Piggin wrote:
> > > > OTOH, skb allocation uses kmalloc don't they? So you could still use
> > > > SLOB ksize for that I guess.
> 
> On Thursday 24 July 2008 23:04, Herbert Xu wrote:
> > > Yes I was referring to the data portion which is kmalloc'ed.
> > > That is also why I'm interested in ksize because a priori we
> > > don't know exactly how big it's going to be.  However, we do
> > > know that statistically 1500 will dominate.
> > >
> > > I'm not interested in ksize for kmem_cache at all.  So in fact
> > > we could have something simpler that's based on kmalloc's rounding
> > > algorithm instead.
> 
> On Thu, 2008-07-24 at 23:13 +1000, Nick Piggin wrote:
> > Yes you could definitely have a function that returns allocated
> > bytes for a given kmalloc size. Should be about as fast or faster
> > than extracting the size from the kaddr...
> 
> Yup, makes sense.

On the other hand, I can imagine useful allocator changes where this
would not be a constant of requested size. For instance, imagine we had
a classless bucket allocator, but with a heuristic to try a larger
bucket when it wasn't cheap/possible to allocate a right-sized object
(because of memory pressure, etc.) and larger ones were available.
This sort of thing is a pretty small change for SLAB/SLUB.

-- 
Mathematics is the supreme nostalgia of our time.


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 18:51                                                 ` Andrew Morton
  2008-07-24 18:55                                                   ` Pekka Enberg
@ 2008-07-24 19:35                                                   ` Ingo Molnar
  2008-07-26 16:09                                                     ` Patrick McHardy
  2008-07-26 13:43                                                   ` Patrick McHardy
  2 siblings, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-24 19:35 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Pekka Enberg, Patrick McHardy, David Miller, herbert, w, davidn,
	torvalds, netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen,
	Dave Jones

* Andrew Morton <akpm@linux-foundation.org> wrote:

> On Thu, 24 Jul 2008 16:34:36 +0300 Pekka Enberg <penberg@cs.helsinki.fi> wrote:
> 
> > > >> Your patch introduced a use-after-free and double-free.
> > > >> krealloc() frees the old pointer, but it is still used
> > > >> for the ->move operations, then freed again.
> > > >>
> > > >> To fix this I think we need a __krealloc() that doesn't
> > > >> free the old memory, especially since it must not be
> > > >> freed immediately because it may still be used in a RCU
> > > >> read side (see the last part in the patch attached to
> > > >> this mail (based on a kernel without your patch)).
> > > > 
> > > > Agreed. Something like this, perhaps?
> > > > 
> > > > [PATCH] netfilter: fix double-free and use-after free
> > > > 
> > > > As suggested by Patrick McHardy, introduce a __krealloc() that doesn't
> > > > free the original buffer to fix a double-free and use-after-free bug
> > > > introduced by me in netfilter that uses RCU.
> > > > 
> > > > Reported-by: Patrick McHardy <kaber@trash.net>
> > > > Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
> > > 
> > > Looks good to me, thanks.
> > 
> > Ingo, can you please test this? Andrew, I'm at OLS so can you pick up
> > the patch in your tree?
> 
> Sure.  Or Patrick can do so and it can be merged via the net tree.
> 
> Ingo, did this patch actually fix something over there?

not that i know of. I'll do some re-tests tomorrow to make sure.

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 18:55                                                   ` Pekka Enberg
@ 2008-07-24 20:58                                                     ` David Miller
  2008-07-25  8:02                                                     ` Dieter Ries
  1 sibling, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-24 20:58 UTC (permalink / raw)
  To: penberg
  Cc: akpm, kaber, mingo, herbert, w, davidn, torvalds, netdev,
	linux-kernel, stefanr, rjw, ilpo.jarvinen, davej, clip2,
	vegard.nossum

From: Pekka Enberg <penberg@cs.helsinki.fi>
Date: Thu, 24 Jul 2008 21:55:44 +0300

> On Thu, 2008-07-24 at 11:51 -0700, Andrew Morton wrote:
> > Sure.  Or Patrick can do so and it can be merged via the net tree.
> > 
> > Ingo, did this patch actually fix something over there?
> 
> Apparently it didn't but it did fix Dieter's problem:
> 
> http://lkml.org/lkml/2008/7/24/337
> 
> Dieter, can we add a Tested-by tag from you to this patch?

Patrick will toss it my way, and it'll get integrated
via net-2.6 as a result.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 12:49                                         ` Patrick McHardy
  2008-07-24 13:23                                           ` Pekka Enberg
@ 2008-07-24 21:13                                           ` Linus Torvalds
  2008-07-24 22:09                                             ` David Miller
                                                               ` (2 more replies)
  1 sibling, 3 replies; 201+ messages in thread
From: Linus Torvalds @ 2008-07-24 21:13 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: Pekka Enberg, Ingo Molnar, David Miller, herbert, w, davidn,
	akpm, netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen,
	Dave Jones



On Thu, 24 Jul 2008, Patrick McHardy wrote:
> 
> To fix this I think we need a __krealloc() that doesn't
> free the old memory, especially since it must not be
> freed immediately because it may still be used in a RCU
> read side (see the last part in the patch attached to
> this mail (based on a kernel without your patch)).

Hmm. Don't you need to fix some of the ordering of the initialization too?

If there are possible readers that happen in parallel with changing this 
thing, don't you need to protect the update of "ext->len" against the 
actual changes? And the readers should probably have a read barrier 
between checking "len" and actually looking at the values? Finally, why do 
the "ct->ext" dereference thing, when we know it has to be equal to "new"?

ie something like this on the writing side (in _addition_ to both the 
patches already seen), but I didn't do the reading side (ie there are no 
"smp_rmb()"'s on the reading side)

And no, I don't know the code, so I don't know who/what can read those 
things with RCU, so maybe there is some reason why the actual data doesn't 
need protecting. But I somehow doubt it.

		Linus

---
 net/netfilter/nf_conntrack_extend.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/net/netfilter/nf_conntrack_extend.c b/net/netfilter/nf_conntrack_extend.c
index 3469bc7..135e095 100644
--- a/net/netfilter/nf_conntrack_extend.c
+++ b/net/netfilter/nf_conntrack_extend.c
@@ -115,10 +115,11 @@ void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp)
 		ct->ext = new;
 	}
 
-	ct->ext->offset[id] = newoff;
-	ct->ext->len = newlen;
-	memset((void *)ct->ext + newoff, 0, newlen - newoff);
-	return (void *)ct->ext + newoff;
+	new->offset[id] = newoff;
+	memset((void *)new + newoff, 0, newlen - newoff);
+	smp_wmb();
+	new->len = newlen;
+	return (void *)new + newoff;
 }
 EXPORT_SYMBOL(__nf_ct_ext_add);
 

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 21:13                                           ` Linus Torvalds
@ 2008-07-24 22:09                                             ` David Miller
  2008-07-26 13:47                                             ` Patrick McHardy
  2008-08-01 21:10                                             ` Paul E. McKenney
  2 siblings, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-24 22:09 UTC (permalink / raw)
  To: torvalds
  Cc: kaber, penberg, mingo, herbert, w, davidn, akpm, netdev,
	linux-kernel, stefanr, rjw, ilpo.jarvinen, davej

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Thu, 24 Jul 2008 14:13:42 -0700 (PDT)

> Finally, why do the "ct->ext" dereference thing, when we know it has
> to be equal to "new"?

Actually in the old code this precondition didn't hold, which explains
how it is.

The old code looked like:

	if (newlen >= ksize(ct->ext)) {
		new = kmalloc(newlen, gfp);
		if (!new)
			return NULL;
 ...
		ct->ext = new;
	}

	ct->ext->offset[id] = newoff;
	ct->ext->len = newlen;
	memset((void *)ct->ext + newoff, 0, newlen - newoff);
	return (void *)ct->ext + newoff;

and in that context 'new' is only assigned in the "newlen >=" guarded
code block.

Anyways, it does seem that we should indeed only update the
new larger length only after we've initialized the contents.

Note that we could make krealloc() and friends clear out the trailing
bits of the new buffer, and therefore the caller wouldn't even need to
be mindful of such things.

I don't know if that's desirable in general, probably it isn't.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 17:47                                                 ` Matt Mackall
@ 2008-07-25  1:39                                                   ` Herbert Xu
  2008-07-25  2:59                                                     ` Matt Mackall
  0 siblings, 1 reply; 201+ messages in thread
From: Herbert Xu @ 2008-07-25  1:39 UTC (permalink / raw)
  To: Matt Mackall
  Cc: Pekka Enberg, Patrick McHardy, Ingo Molnar, David Miller, w,
	davidn, torvalds, akpm, netdev, linux-kernel, stefanr, rjw,
	ilpo.jarvinen, Dave Jones, Christoph Lameter

On Thu, Jul 24, 2008 at 12:47:19PM -0500, Matt Mackall wrote:
>
> Let's try this again: did you know that ksize could fail depending on
> kernel configuration? Most of us would answer no. That suggests the API
> is bad. This ranks 12 on Rusty's spectrum of user-friendly APIs:

I think you misunderstood my argument.  I never suggested changing
the existing ksize interface to return an error onto unsuspecting
users.  I suggested creating a new interface that is explicitly
designed to return an error if the underlying implementation
is unable to support this.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-25  1:39                                                   ` Herbert Xu
@ 2008-07-25  2:59                                                     ` Matt Mackall
  0 siblings, 0 replies; 201+ messages in thread
From: Matt Mackall @ 2008-07-25  2:59 UTC (permalink / raw)
  To: Herbert Xu
  Cc: Pekka Enberg, Patrick McHardy, Ingo Molnar, David Miller, w,
	davidn, torvalds, akpm, netdev, linux-kernel, stefanr, rjw,
	ilpo.jarvinen, Dave Jones, Christoph Lameter


On Fri, 2008-07-25 at 09:39 +0800, Herbert Xu wrote:
> On Thu, Jul 24, 2008 at 12:47:19PM -0500, Matt Mackall wrote:
> >
> > Let's try this again: did you know that ksize could fail depending on
> > kernel configuration? Most of us would answer no. That suggests the API
> > is bad. This ranks 12 on Rusty's spectrum of user-friendly APIs:
> 
> I think you misunderstood my argument.  I never suggested changing
> the existing ksize interface to return an error onto unsuspecting
> users.  I suggested creating a new interface that is explicitly
> designed to return an error if the underlying implementation
> is unable to support this.

I think that could probably be made to work. Perhaps something like:

size_t kmalloc_extra(void *); /* how many extra bytes in this kmalloc?
*/

Which, if it didn't work, could return a nice safe 0. We could argue
about signedness a bit, but I think this would always be safe.

This will also work with all our current kmalloc implementations. The
trouble was calling ksize() on kmem_cache_alloc objects, which happens
to work with SLAB and SLOB.

-- 
Mathematics is the supreme nostalgia of our time.


^ permalink raw reply	[flat|nested] 201+ messages in thread

* [lockdep warning] AOE / networking: aoenet_xmit: noop_qdisc.q.lock, INFO: inconsistent lock state at 0000000000000370
  2008-07-21 20:46                         ` David Miller
  2008-07-21 20:51                           ` Patrick McHardy
@ 2008-07-25  6:20                           ` Ingo Molnar
  2008-07-25  6:25                             ` David Miller
  1 sibling, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-25  6:20 UTC (permalink / raw)
  To: David Miller
  Cc: netdev, linux-kernel, Ed L. Cashin, Jens Axboe, Mike Miller,
	Peter Zijlstra, Rafael J. Wysocki


not sure whether it got reported already, but -tip testing triggered 
this new ATA over Ethernet lockdep warning on latest -git:

=================================
[ INFO: inconsistent lock state ]
2.6.26-tip-00346-gb4d3941-dirty #13925
---------------------------------
inconsistent {softirq-on-W} -> {in-softirq-W} usage.
swapper/0 [HC0[0]:SC1[2]:HE1:SE0] takes:
 (noop_qdisc.q.lock){-+..}, at: [<ffffffff80880ba8>] dev_queue_xmit+0xd8/0x520
{softirq-on-W} state was registered at:
  [<ffffffff80266517>] __lock_acquire+0x3a7/0x10e0
  [<ffffffff802672a7>] lock_acquire+0x57/0x80
  [<ffffffff80a080da>] _spin_lock+0x2a/0x40
  [<ffffffff808a141f>] shutdown_scheduler_queue+0x3f/0x60
  [<ffffffff808a1481>] dev_shutdown+0x41/0x90
  [<ffffffff8087e9da>] rollback_registered+0x6a/0x100
  [<ffffffff8087ea92>] unregister_netdevice+0x22/0x80
  [<ffffffff80999bcc>] ieee80211_register_hw+0x2ec/0x3b0
  [<ffffffff80eb0dbc>] init_mac80211_hwsim+0x1bc/0x370
  [<ffffffff80209045>] do_one_initcall+0x45/0x180
  [<ffffffff80e7fb75>] kernel_init+0x1d5/0x2f0
  [<ffffffff8020d599>] child_rip+0xa/0x11
  [<ffffffffffffffff>] 0xffffffffffffffff
irq event stamp: 326488
hardirqs last  enabled at (326488): [<ffffffff80265cbd>] trace_hardirqs_on+0xd/0x10
hardirqs last disabled at (326487): [<ffffffff802642ed>] trace_hardirqs_off+0xd/0x10
softirqs last  enabled at (326450): [<ffffffff80248462>] __do_softirq+0x102/0x120
softirqs last disabled at (326461): [<ffffffff8020d86c>] call_softirq+0x1c/0x30

other info that might help us debug this:
1 lock held by swapper/0:
 #0:  (rcu_read_lock){..--}, at: [<ffffffff80880b2b>] dev_queue_xmit+0x5b/0x520

stack backtrace:
Pid: 0, comm: swapper Not tainted 2.6.26-tip-00346-gb4d3941-dirty #13925

Call Trace:
 <IRQ>  [<ffffffff80264c6b>] print_usage_bug+0x18b/0x190
 [<ffffffff80265a67>] mark_lock+0x517/0x570
 [<ffffffff802664ce>] __lock_acquire+0x35e/0x10e0
 [<ffffffff80265c5b>] ? trace_hardirqs_on_caller+0x7b/0xd0
 [<ffffffff802672a7>] lock_acquire+0x57/0x80
 [<ffffffff80880ba8>] ? dev_queue_xmit+0xd8/0x520
 [<ffffffff80a080da>] _spin_lock+0x2a/0x40
 [<ffffffff80880b2b>] ? dev_queue_xmit+0x5b/0x520
 [<ffffffff80880ba8>] dev_queue_xmit+0xd8/0x520
 [<ffffffff807aba2f>] aoenet_xmit+0x2f/0x40
 [<ffffffff807a9cd0>] aoecmd_cfg+0x140/0x170
 [<ffffffff807ab890>] ? discover_timer+0x0/0x110
 [<ffffffff807ab92a>] discover_timer+0x9a/0x110
 [<ffffffff8024bf3b>] run_timer_softirq+0x20b/0x250
 [<ffffffff802483f4>] __do_softirq+0x94/0x120
 [<ffffffff80260e6d>] ? clockevents_program_event+0x5d/0x90
 [<ffffffff8020d86c>] call_softirq+0x1c/0x30
 [<ffffffff8021018a>] do_softirq+0x6a/0xa0
 [<ffffffff80248349>] irq_exit+0x99/0xb0
 [<ffffffff80220842>] smp_apic_timer_interrupt+0x92/0xd0
 [<ffffffff8020d34b>] apic_timer_interrupt+0x6b/0x70
 <EOI>  [<ffffffff80214afc>] ? mwait_idle+0x4c/0x60
 [<ffffffff80214af3>] ? mwait_idle+0x43/0x60
 [<ffffffff8020af51>] ? cpu_idle+0xa1/0x110
 [<ffffffff80a00990>] ? start_secondary+0x150/0x1a0

with this config:

  http://redhat.com/~mingo/misc/log-Fri_Jul_25_06_07_52_CEST_2008.bad

full bootlog:

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

i suspect this too is about the changed locking dependencies.

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [lockdep warning] AOE / networking: aoenet_xmit: noop_qdisc.q.lock, INFO: inconsistent lock state at 0000000000000370
  2008-07-25  6:20                           ` [lockdep warning] AOE / networking: aoenet_xmit: noop_qdisc.q.lock, INFO: inconsistent lock state at 0000000000000370 Ingo Molnar
@ 2008-07-25  6:25                             ` David Miller
  2008-07-25  7:26                               ` Ingo Molnar
  0 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-25  6:25 UTC (permalink / raw)
  To: mingo
  Cc: netdev, linux-kernel, ecashin, axboe, mike.miller, a.p.zijlstra, rjw

From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 25 Jul 2008 08:20:09 +0200

> not sure whether it got reported already, but -tip testing triggered 
> this new ATA over Ethernet lockdep warning on latest -git:

Thanks for the report, does this fix it?

diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 4ac7e3a..43abd4d 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -736,9 +736,9 @@ static void shutdown_scheduler_queue(struct net_device *dev,
 		dev_queue->qdisc = qdisc_default;
 		dev_queue->qdisc_sleeping = qdisc_default;
 
-		spin_lock(root_lock);
+		spin_lock_bh(root_lock);
 		qdisc_destroy(qdisc);
-		spin_unlock(root_lock);
+		spin_unlock_bh(root_lock);
 	}
 }
 

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: [lockdep warning] AOE / networking: aoenet_xmit: noop_qdisc.q.lock, INFO: inconsistent lock state at 0000000000000370
  2008-07-25  6:25                             ` David Miller
@ 2008-07-25  7:26                               ` Ingo Molnar
  2008-07-25  8:23                                 ` David Miller
  0 siblings, 1 reply; 201+ messages in thread
From: Ingo Molnar @ 2008-07-25  7:26 UTC (permalink / raw)
  To: David Miller
  Cc: netdev, linux-kernel, ecashin, axboe, mike.miller, a.p.zijlstra, rjw


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

> From: Ingo Molnar <mingo@elte.hu>
> Date: Fri, 25 Jul 2008 08:20:09 +0200
> 
> > not sure whether it got reported already, but -tip testing triggered 
> > this new ATA over Ethernet lockdep warning on latest -git:
> 
> Thanks for the report, does this fix it?

i've tested it and the warning went away - thanks David!

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

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 18:55                                                   ` Pekka Enberg
  2008-07-24 20:58                                                     ` David Miller
@ 2008-07-25  8:02                                                     ` Dieter Ries
  2008-07-25 10:41                                                       ` Pekka Enberg
  1 sibling, 1 reply; 201+ messages in thread
From: Dieter Ries @ 2008-07-25  8:02 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Andrew Morton, Patrick McHardy, Ingo Molnar, David Miller,
	herbert, w, davidn, torvalds, netdev, linux-kernel, stefanr, rjw,
	ilpo.jarvinen, Dave Jones, vegard.nossum

Pekka Enberg schrieb:
> On Thu, 2008-07-24 at 11:51 -0700, Andrew Morton wrote:
>> On Thu, 24 Jul 2008 16:34:36 +0300 Pekka Enberg <penberg@cs.helsinki.fi> wrote:
>>
>>>>>> Your patch introduced a use-after-free and double-free.
>>>>>> krealloc() frees the old pointer, but it is still used
>>>>>> for the ->move operations, then freed again.
>>>>>>
>>>>>> To fix this I think we need a __krealloc() that doesn't
>>>>>> free the old memory, especially since it must not be
>>>>>> freed immediately because it may still be used in a RCU
>>>>>> read side (see the last part in the patch attached to
>>>>>> this mail (based on a kernel without your patch)).
>>>>> Agreed. Something like this, perhaps?
>>>>>
>>>>> [PATCH] netfilter: fix double-free and use-after free
>>>>>
>>>>> As suggested by Patrick McHardy, introduce a __krealloc() that doesn't
>>>>> free the original buffer to fix a double-free and use-after-free bug
>>>>> introduced by me in netfilter that uses RCU.
>>>>>
>>>>> Reported-by: Patrick McHardy <kaber@trash.net>
>>>>> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
>>>> Looks good to me, thanks.
>>> Ingo, can you please test this? Andrew, I'm at OLS so can you pick up
>>> the patch in your tree?
>> Sure.  Or Patrick can do so and it can be merged via the net tree.
>>
>> Ingo, did this patch actually fix something over there?
> 
> Apparently it didn't but it did fix Dieter's problem:
> 
> http://lkml.org/lkml/2008/7/24/337
> 
> Dieter, can we add a Tested-by tag from you to this patch?
> 

Yes, it definitely fixed my issue and I have not encountered 
                            further problems with the patch. The machine 
is running fine with it.

Do I have to explicitly add my
Tested-by: Dieter Ries <clip2@gmx.de>
tag somewhere (if yes, where?) or is this enough for you?


cu
Dieter

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [lockdep warning] AOE / networking: aoenet_xmit: noop_qdisc.q.lock, INFO: inconsistent lock state at 0000000000000370
  2008-07-25  7:26                               ` Ingo Molnar
@ 2008-07-25  8:23                                 ` David Miller
  0 siblings, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-25  8:23 UTC (permalink / raw)
  To: mingo
  Cc: netdev, linux-kernel, ecashin, axboe, mike.miller, a.p.zijlstra, rjw

From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 25 Jul 2008 09:26:24 +0200

> 
> * David Miller <davem@davemloft.net> wrote:
> 
> > From: Ingo Molnar <mingo@elte.hu>
> > Date: Fri, 25 Jul 2008 08:20:09 +0200
> > 
> > > not sure whether it got reported already, but -tip testing triggered 
> > > this new ATA over Ethernet lockdep warning on latest -git:
> > 
> > Thanks for the report, does this fix it?
> 
> i've tested it and the warning went away - thanks David!
> 
> Tested-by: Ingo Molnar <mingo@elte.hu>

Thanks for testing.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 19:21                                                     ` Matt Mackall
@ 2008-07-25  9:09                                                       ` Nick Piggin
  0 siblings, 0 replies; 201+ messages in thread
From: Nick Piggin @ 2008-07-25  9:09 UTC (permalink / raw)
  To: Matt Mackall
  Cc: Pekka Enberg, Herbert Xu, Patrick McHardy, Ingo Molnar,
	David Miller, w, davidn, torvalds, akpm, netdev, linux-kernel,
	stefanr, rjw, ilpo.jarvinen, Dave Jones, Christoph Lameter

On Friday 25 July 2008 05:21, Matt Mackall wrote:
> On Thu, 2008-07-24 at 16:32 +0300, Pekka Enberg wrote:
> > On Thu, Jul 24, 2008 at 10:56:08PM +1000, Nick Piggin wrote:
> > > > > OTOH, skb allocation uses kmalloc don't they? So you could still
> > > > > use SLOB ksize for that I guess.
> >
> > On Thursday 24 July 2008 23:04, Herbert Xu wrote:
> > > > Yes I was referring to the data portion which is kmalloc'ed.
> > > > That is also why I'm interested in ksize because a priori we
> > > > don't know exactly how big it's going to be.  However, we do
> > > > know that statistically 1500 will dominate.
> > > >
> > > > I'm not interested in ksize for kmem_cache at all.  So in fact
> > > > we could have something simpler that's based on kmalloc's rounding
> > > > algorithm instead.
> >
> > On Thu, 2008-07-24 at 23:13 +1000, Nick Piggin wrote:
> > > Yes you could definitely have a function that returns allocated
> > > bytes for a given kmalloc size. Should be about as fast or faster
> > > than extracting the size from the kaddr...
> >
> > Yup, makes sense.
>
> On the other hand, I can imagine useful allocator changes where this
> would not be a constant of requested size. For instance, imagine we had
> a classless bucket allocator, but with a heuristic to try a larger
> bucket when it wasn't cheap/possible to allocate a right-sized object
> (because of memory pressure, etc.) and larger ones were available.
> This sort of thing is a pretty small change for SLAB/SLUB.

If that comes up, you could make the API take the pointer as well,
then just filter out the new argument in allocators that don't use
it.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-25  8:02                                                     ` Dieter Ries
@ 2008-07-25 10:41                                                       ` Pekka Enberg
  0 siblings, 0 replies; 201+ messages in thread
From: Pekka Enberg @ 2008-07-25 10:41 UTC (permalink / raw)
  To: Dieter Ries
  Cc: Andrew Morton, Patrick McHardy, Ingo Molnar, David Miller,
	herbert, w, davidn, torvalds, netdev, linux-kernel, stefanr, rjw,
	ilpo.jarvinen, Dave Jones, vegard.nossum

On Fri, 2008-07-25 at 10:02 +0200, Dieter Ries wrote:
> Pekka Enberg schrieb:
> > On Thu, 2008-07-24 at 11:51 -0700, Andrew Morton wrote:
> >> On Thu, 24 Jul 2008 16:34:36 +0300 Pekka Enberg <penberg@cs.helsinki.fi> wrote:
> >>
> >>>>>> Your patch introduced a use-after-free and double-free.
> >>>>>> krealloc() frees the old pointer, but it is still used
> >>>>>> for the ->move operations, then freed again.
> >>>>>>
> >>>>>> To fix this I think we need a __krealloc() that doesn't
> >>>>>> free the old memory, especially since it must not be
> >>>>>> freed immediately because it may still be used in a RCU
> >>>>>> read side (see the last part in the patch attached to
> >>>>>> this mail (based on a kernel without your patch)).
> >>>>> Agreed. Something like this, perhaps?
> >>>>>
> >>>>> [PATCH] netfilter: fix double-free and use-after free
> >>>>>
> >>>>> As suggested by Patrick McHardy, introduce a __krealloc() that doesn't
> >>>>> free the original buffer to fix a double-free and use-after-free bug
> >>>>> introduced by me in netfilter that uses RCU.
> >>>>>
> >>>>> Reported-by: Patrick McHardy <kaber@trash.net>
> >>>>> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
> >>>> Looks good to me, thanks.
> >>> Ingo, can you please test this? Andrew, I'm at OLS so can you pick up
> >>> the patch in your tree?
> >> Sure.  Or Patrick can do so and it can be merged via the net tree.
> >>
> >> Ingo, did this patch actually fix something over there?
> > 
> > Apparently it didn't but it did fix Dieter's problem:
> > 
> > http://lkml.org/lkml/2008/7/24/337
> > 
> > Dieter, can we add a Tested-by tag from you to this patch?
> > 
> 
> Yes, it definitely fixed my issue and I have not encountered 
>                             further problems with the patch. The machine 
> is running fine with it.
> 
> Do I have to explicitly add my
> Tested-by: Dieter Ries <clip2@gmx.de>
> tag somewhere (if yes, where?) or is this enough for you?

No, that's fine. The people who are merging the patch can pick it up.
Thanks a lot for your help!

		Pekka


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-23 20:14                                                                         ` David Miller
  2008-07-24  7:00                                                                           ` Peter Zijlstra
@ 2008-07-25 17:04                                                                           ` Ingo Oeser
  2008-07-25 18:36                                                                             ` Jarek Poplawski
  1 sibling, 1 reply; 201+ messages in thread
From: Ingo Oeser @ 2008-07-25 17:04 UTC (permalink / raw)
  To: David Miller
  Cc: peterz, jarkao2, Larry.Finger, kaber, torvalds, akpm, netdev,
	linux-kernel, linux-wireless, mingo

Hi David,

David Miller schrieb:
> From: Peter Zijlstra <peterz@infradead.org>
> Date: Wed, 23 Jul 2008 12:58:16 +0200
> 
> > 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's staying.
> 
> It's trying to block all potential calls into the ->hard_start_xmit()
> method of the driver, and the only reliable way to do that is to take
> all the TX queue locks.  And in one form or another, we're going to
> have this "grab/release all the TX queue locks" construct.
> 
> I find it interesting that this cannot be simply described to lockdep
> :-)

I'm sure as hell, I miss sth. but can't it be done by this pseudo-code:

netif_tx_lock(device)
{
	mutex_lock(device->queue_entry_mutex);
	foreach_queue_entries(queue, device->queues)
	{
		spin_lock(queue->tx_lock);
		set_noop_tx_handler(queue);
		spin_unlock(queue->tx_lock);
	}
	mutex_unlock(device->queue_entry_mutex);
}

netif_tx_unlock(device)
{
	mutex_lock(device->queue_entry_mutex);
	foreach_queue_entries(queue, device->queues)
	{
		spin_lock(queue->tx_lock);
		set_useful_tx_handler(queue);
		spin_unlock(queue->tx_lock);
	}
	mutex_unlock(device->queue_entry_mutex);
}

Then protect use of the queues by queue->tx_lock in transmit path.
The first setup of the queue doesn't need to be protected, since no-one
knows the device. The final cleanup of the device doesn't need to be
protected either, because netif_tx_lock() and netif_tx_unlock() should
not be called after entering the final cleanup.

Some VM locking works this way...


Best Regards

Ingo Oeser

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-25 17:04                                                                           ` Ingo Oeser
@ 2008-07-25 18:36                                                                             ` Jarek Poplawski
  2008-07-25 19:16                                                                               ` Johannes Berg
  0 siblings, 1 reply; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-25 18:36 UTC (permalink / raw)
  To: Ingo Oeser
  Cc: David Miller, peterz, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

On Fri, Jul 25, 2008 at 07:04:36PM +0200, Ingo Oeser wrote:
...
> I'm sure as hell, I miss sth. but can't it be done by this pseudo-code:

...And I really doubt it can't be done like this.

Jarek P.

> 
> netif_tx_lock(device)
> {
> 	mutex_lock(device->queue_entry_mutex);
> 	foreach_queue_entries(queue, device->queues)
> 	{
> 		spin_lock(queue->tx_lock);
> 		set_noop_tx_handler(queue);
> 		spin_unlock(queue->tx_lock);
> 	}
> 	mutex_unlock(device->queue_entry_mutex);
> }
> 
> netif_tx_unlock(device)
> {
> 	mutex_lock(device->queue_entry_mutex);
> 	foreach_queue_entries(queue, device->queues)
> 	{
> 		spin_lock(queue->tx_lock);
> 		set_useful_tx_handler(queue);
> 		spin_unlock(queue->tx_lock);
> 	}
> 	mutex_unlock(device->queue_entry_mutex);
> }
> 
> Then protect use of the queues by queue->tx_lock in transmit path.
> The first setup of the queue doesn't need to be protected, since no-one
> knows the device. The final cleanup of the device doesn't need to be
> protected either, because netif_tx_lock() and netif_tx_unlock() should
> not be called after entering the final cleanup.
> 
> Some VM locking works this way...
> 
> 
> Best Regards
> 
> Ingo Oeser

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-25 18:36                                                                             ` Jarek Poplawski
@ 2008-07-25 19:16                                                                               ` Johannes Berg
  2008-07-25 19:34                                                                                 ` Jarek Poplawski
  0 siblings, 1 reply; 201+ messages in thread
From: Johannes Berg @ 2008-07-25 19:16 UTC (permalink / raw)
  To: Jarek Poplawski
  Cc: Ingo Oeser, David Miller, peterz, Larry.Finger, kaber, torvalds,
	akpm, netdev, linux-kernel, linux-wireless, mingo

[-- Attachment #1: Type: text/plain, Size: 651 bytes --]

On Fri, 2008-07-25 at 20:36 +0200, Jarek Poplawski wrote:
> On Fri, Jul 25, 2008 at 07:04:36PM +0200, Ingo Oeser wrote:
> ...
> > I'm sure as hell, I miss sth. but can't it be done by this pseudo-code:
> 
> ...And I really doubt it can't be done like this.

Umm, of course it cannot, because then we'd have to take the mutex in
the TX path, which we cannot. We cannot have another lock in the TX
path, what's so hard to understand about? We need to be able to lock all
queues to lock out multiple tx paths at once in some (really) slow paths
but not have any extra lock overhead for the tx path, especially not a
single lock.

johannes

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-25 19:16                                                                               ` Johannes Berg
@ 2008-07-25 19:34                                                                                 ` Jarek Poplawski
  2008-07-25 19:36                                                                                   ` Johannes Berg
  0 siblings, 1 reply; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-25 19:34 UTC (permalink / raw)
  To: Johannes Berg
  Cc: Ingo Oeser, David Miller, peterz, Larry.Finger, kaber, torvalds,
	akpm, netdev, linux-kernel, linux-wireless, mingo

On Fri, Jul 25, 2008 at 09:16:24PM +0200, Johannes Berg wrote:
> On Fri, 2008-07-25 at 20:36 +0200, Jarek Poplawski wrote:
> > On Fri, Jul 25, 2008 at 07:04:36PM +0200, Ingo Oeser wrote:
> > ...
> > > I'm sure as hell, I miss sth. but can't it be done by this pseudo-code:
> > 
> > ...And I really doubt it can't be done like this.
> 
> Umm, of course it cannot, because then we'd have to take the mutex in
> the TX path, which we cannot. We cannot have another lock in the TX
> path, what's so hard to understand about? We need to be able to lock all
> queues to lock out multiple tx paths at once in some (really) slow paths
> but not have any extra lock overhead for the tx path, especially not a
> single lock.

But this mutex doesn't have to be mutex. And it's not for the tx path,
only for "service" just like netif_tx_lock(). The fast path needs only
queue->tx_lock.

Jarek P.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-25 19:34                                                                                 ` Jarek Poplawski
@ 2008-07-25 19:36                                                                                   ` Johannes Berg
  2008-07-25 20:01                                                                                     ` Jarek Poplawski
  0 siblings, 1 reply; 201+ messages in thread
From: Johannes Berg @ 2008-07-25 19:36 UTC (permalink / raw)
  To: Jarek Poplawski
  Cc: Ingo Oeser, David Miller, peterz, Larry.Finger, kaber, torvalds,
	akpm, netdev, linux-kernel, linux-wireless, mingo

[-- Attachment #1: Type: text/plain, Size: 707 bytes --]

On Fri, 2008-07-25 at 21:34 +0200, Jarek Poplawski wrote:

> > Umm, of course it cannot, because then we'd have to take the mutex in
> > the TX path, which we cannot. We cannot have another lock in the TX
> > path, what's so hard to understand about? We need to be able to lock all
> > queues to lock out multiple tx paths at once in some (really) slow paths
> > but not have any extra lock overhead for the tx path, especially not a
> > single lock.
> 
> But this mutex doesn't have to be mutex. And it's not for the tx path,
> only for "service" just like netif_tx_lock(). The fast path needs only
> queue->tx_lock.

No, we need to be able to lock out multiple TX paths at once.

johannes

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-25 19:36                                                                                   ` Johannes Berg
@ 2008-07-25 20:01                                                                                     ` Jarek Poplawski
  2008-07-26  9:18                                                                                       ` David Miller
  0 siblings, 1 reply; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-25 20:01 UTC (permalink / raw)
  To: Johannes Berg
  Cc: Ingo Oeser, David Miller, peterz, Larry.Finger, kaber, torvalds,
	akpm, netdev, linux-kernel, linux-wireless, mingo

On Fri, Jul 25, 2008 at 09:36:15PM +0200, Johannes Berg wrote:
> On Fri, 2008-07-25 at 21:34 +0200, Jarek Poplawski wrote:
> 
> > > Umm, of course it cannot, because then we'd have to take the mutex in
> > > the TX path, which we cannot. We cannot have another lock in the TX
> > > path, what's so hard to understand about? We need to be able to lock all
> > > queues to lock out multiple tx paths at once in some (really) slow paths
> > > but not have any extra lock overhead for the tx path, especially not a
> > > single lock.
> > 
> > But this mutex doesn't have to be mutex. And it's not for the tx path,
> > only for "service" just like netif_tx_lock(). The fast path needs only
> > queue->tx_lock.
> 
> No, we need to be able to lock out multiple TX paths at once.

IMHO, it can do the same. We could e.g. insert a locked spinlock into
this noop_tx_handler(), to give everyone some waiting.

Jarek P.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-25 20:01                                                                                     ` Jarek Poplawski
@ 2008-07-26  9:18                                                                                       ` David Miller
  2008-07-26 10:53                                                                                         ` Jarek Poplawski
  2008-07-26 13:18                                                                                         ` Jarek Poplawski
  0 siblings, 2 replies; 201+ messages in thread
From: David Miller @ 2008-07-26  9:18 UTC (permalink / raw)
  To: jarkao2
  Cc: johannes, netdev, peterz, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

From: Jarek Poplawski <jarkao2@gmail.com>
Date: Fri, 25 Jul 2008 22:01:37 +0200

> On Fri, Jul 25, 2008 at 09:36:15PM +0200, Johannes Berg wrote:
> > On Fri, 2008-07-25 at 21:34 +0200, Jarek Poplawski wrote:
> > 
> > No, we need to be able to lock out multiple TX paths at once.
> 
> IMHO, it can do the same. We could e.g. insert a locked spinlock into
> this noop_tx_handler(), to give everyone some waiting.

I think there might be an easier way, but we may have
to modify the state bits a little.

Every call into ->hard_start_xmit() is made like this:

1. lock TX queue
2. check TX queue stopped
3. call ->hard_start_xmit() if not stopped

This means that we can in fact do something like:

	unsigned int i;

	for (i = 0; i < dev->num_tx_queues; i++) {
		struct netdev_queue *txq;

		txq = netdev_get_tx_queue(dev, i);
		spin_lock_bh(&txq->_xmit_lock);
		netif_tx_freeze_queue(txq);
		spin_unlock_bh(&txq->_xmit_lock);
	}

netif_tx_freeze_queue() just sets a new bit we add.

Then we go to the ->hard_start_xmit() call sites and check this new
"frozen" bit as well as the existing "stopped" bit.

When we unfreeze each queue later, we see if it is stopped, and if not
we schedule it's qdisc for packet processing.

A patch below shows how the guarding would work.  It doesn't implement
the actual freeze/unfreeze.

We need to use a side-state bit to do this because we don't
want this operation to get all mixed up with the queue waking
operations that the driver TX reclaim code will be doing
asynchronously.

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index b4d056c..cba98fb 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -440,6 +440,7 @@ static inline void napi_synchronize(const struct napi_struct *n)
 enum netdev_queue_state_t
 {
 	__QUEUE_STATE_XOFF,
+	__QUEUE_STATE_FROZEN,
 };
 
 struct netdev_queue {
@@ -1099,6 +1100,11 @@ static inline int netif_queue_stopped(const struct net_device *dev)
 	return netif_tx_queue_stopped(netdev_get_tx_queue(dev, 0));
 }
 
+static inline int netif_tx_queue_frozen(const struct netdev_queue *dev_queue)
+{
+	return test_bit(__QUEUE_STATE_FROZEN, &dev_queue->state);
+}
+
 /**
  *	netif_running - test if up
  *	@dev: network device
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index c127208..6c7af39 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -70,6 +70,7 @@ static void queue_process(struct work_struct *work)
 		local_irq_save(flags);
 		__netif_tx_lock(txq, smp_processor_id());
 		if (netif_tx_queue_stopped(txq) ||
+		    netif_tx_queue_frozen(txq) ||
 		    dev->hard_start_xmit(skb, dev) != NETDEV_TX_OK) {
 			skb_queue_head(&npinfo->txq, skb);
 			__netif_tx_unlock(txq);
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index c7d484f..3284605 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -3305,6 +3305,7 @@ static __inline__ void pktgen_xmit(struct pktgen_dev *pkt_dev)
 
 	txq = netdev_get_tx_queue(odev, queue_map);
 	if (netif_tx_queue_stopped(txq) ||
+	    netif_tx_queue_frozen(txq) ||
 	    need_resched()) {
 		idle_start = getCurUs();
 
@@ -3320,7 +3321,8 @@ static __inline__ void pktgen_xmit(struct pktgen_dev *pkt_dev)
 
 		pkt_dev->idle_acc += getCurUs() - idle_start;
 
-		if (netif_tx_queue_stopped(txq)) {
+		if (netif_tx_queue_stopped(txq) ||
+		    netif_tx_queue_frozen(txq)) {
 			pkt_dev->next_tx_us = getCurUs();	/* TODO */
 			pkt_dev->next_tx_ns = 0;
 			goto out;	/* Try the next interface */
@@ -3352,7 +3354,8 @@ static __inline__ void pktgen_xmit(struct pktgen_dev *pkt_dev)
 	txq = netdev_get_tx_queue(odev, queue_map);
 
 	__netif_tx_lock_bh(txq);
-	if (!netif_tx_queue_stopped(txq)) {
+	if (!netif_tx_queue_stopped(txq) &&
+	    !netif_tx_queue_frozen(txq)) {
 
 		atomic_inc(&(pkt_dev->skb->users));
 	      retry_now:
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index fd2a6ca..f17551a 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -135,7 +135,8 @@ static inline int qdisc_restart(struct Qdisc *q)
 	txq = netdev_get_tx_queue(dev, skb_get_queue_mapping(skb));
 
 	HARD_TX_LOCK(dev, txq, smp_processor_id());
-	if (!netif_subqueue_stopped(dev, skb))
+	if (!netif_tx_queue_stopped(txq) &&
+	    !netif_tx_queue_frozen(txq))
 		ret = dev_hard_start_xmit(skb, dev, txq);
 	HARD_TX_UNLOCK(dev, txq);
 
@@ -162,7 +163,8 @@ static inline int qdisc_restart(struct Qdisc *q)
 		break;
 	}
 
-	if (ret && netif_tx_queue_stopped(txq))
+	if (ret && (netif_tx_queue_stopped(txq) ||
+		    netif_tx_queue_frozen(txq)))
 		ret = 0;
 
 	return ret;

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-26  9:18                                                                                       ` David Miller
@ 2008-07-26 10:53                                                                                         ` Jarek Poplawski
  2008-07-26 13:18                                                                                         ` Jarek Poplawski
  1 sibling, 0 replies; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-26 10:53 UTC (permalink / raw)
  To: David Miller
  Cc: johannes, netdev, peterz, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

On Sat, Jul 26, 2008 at 02:18:46AM -0700, David Miller wrote:
> From: Jarek Poplawski <jarkao2@gmail.com>
> Date: Fri, 25 Jul 2008 22:01:37 +0200
> 
> > On Fri, Jul 25, 2008 at 09:36:15PM +0200, Johannes Berg wrote:
> > > On Fri, 2008-07-25 at 21:34 +0200, Jarek Poplawski wrote:
> > > 
> > > No, we need to be able to lock out multiple TX paths at once.
> > 
> > IMHO, it can do the same. We could e.g. insert a locked spinlock into
> > this noop_tx_handler(), to give everyone some waiting.
> 
> I think there might be an easier way, but we may have
> to modify the state bits a little.

Yes, this looks definitely easier, but here is this one little bit
more, plus additional code to handle this in various places. Ingo's
proposal needs a (one?!) bit more thinking in one place, but it
shouldn't add even a bit to tx path (and it looks really cool!). Of
course, it could be re-considered in some other time too.

BTW, it seems with "Ingo's method" this netif_queue_stopped() check
could be removed too - the change of handlers could be done with
single qdiscs as well.

Jarek P.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-26  9:18                                                                                       ` David Miller
  2008-07-26 10:53                                                                                         ` Jarek Poplawski
@ 2008-07-26 13:18                                                                                         ` Jarek Poplawski
  2008-07-27  0:34                                                                                           ` David Miller
  1 sibling, 1 reply; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-26 13:18 UTC (permalink / raw)
  To: David Miller
  Cc: johannes, netdev, peterz, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

On Sat, Jul 26, 2008 at 02:18:46AM -0700, David Miller wrote:
...
> I think there might be an easier way, but we may have
> to modify the state bits a little.
> 
> Every call into ->hard_start_xmit() is made like this:
> 
> 1. lock TX queue
> 2. check TX queue stopped
> 3. call ->hard_start_xmit() if not stopped
> 
> This means that we can in fact do something like:
> 
> 	unsigned int i;
> 
> 	for (i = 0; i < dev->num_tx_queues; i++) {
> 		struct netdev_queue *txq;
> 
> 		txq = netdev_get_tx_queue(dev, i);
> 		spin_lock_bh(&txq->_xmit_lock);
> 		netif_tx_freeze_queue(txq);
> 		spin_unlock_bh(&txq->_xmit_lock);
> 	}
> 
> netif_tx_freeze_queue() just sets a new bit we add.
> 
> Then we go to the ->hard_start_xmit() call sites and check this new
> "frozen" bit as well as the existing "stopped" bit.
> 
> When we unfreeze each queue later, we see if it is stopped, and if not
> we schedule it's qdisc for packet processing.

I guess some additional synchronization will be added yet to prevent
parallel freeze and especially unfreeze.

Jarek P.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 18:51                                                 ` Andrew Morton
  2008-07-24 18:55                                                   ` Pekka Enberg
  2008-07-24 19:35                                                   ` Ingo Molnar
@ 2008-07-26 13:43                                                   ` Patrick McHardy
  2 siblings, 0 replies; 201+ messages in thread
From: Patrick McHardy @ 2008-07-26 13:43 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Pekka Enberg, Ingo Molnar, David Miller, herbert, w, davidn,
	torvalds, netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen,
	Dave Jones

Andrew Morton wrote:
> On Thu, 24 Jul 2008 16:34:36 +0300 Pekka Enberg <penberg@cs.helsinki.fi> wrote:
> 
>>>> [PATCH] netfilter: fix double-free and use-after free
>>>>
>> Ingo, can you please test this? Andrew, I'm at OLS so can you pick up
>> the patch in your tree?
> 
> Sure.  Or Patrick can do so and it can be merged via the net tree.

I've picked it up and will merge it via Dave.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 21:13                                           ` Linus Torvalds
  2008-07-24 22:09                                             ` David Miller
@ 2008-07-26 13:47                                             ` Patrick McHardy
  2008-08-01 21:10                                             ` Paul E. McKenney
  2 siblings, 0 replies; 201+ messages in thread
From: Patrick McHardy @ 2008-07-26 13:47 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Pekka Enberg, Ingo Molnar, David Miller, herbert, w, davidn,
	akpm, netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen,
	Dave Jones

Linus Torvalds wrote:
> 
> On Thu, 24 Jul 2008, Patrick McHardy wrote:
>> To fix this I think we need a __krealloc() that doesn't
>> free the old memory, especially since it must not be
>> freed immediately because it may still be used in a RCU
>> read side (see the last part in the patch attached to
>> this mail (based on a kernel without your patch)).
> 
> Hmm. Don't you need to fix some of the ordering of the initialization too?
> 
> If there are possible readers that happen in parallel with changing this 
> thing, don't you need to protect the update of "ext->len" against the 
> actual changes? And the readers should probably have a read barrier 
> between checking "len" and actually looking at the values?

Extensions can only be added while the conntrack is "unconfirmed",
meaning its not in the hash tables yet and the reference is exclusive.
The reason why we need RCU at all is that the extension areas
might already visible and contained in RCU protected lists.

> Finally, why do 
> the "ct->ext" dereference thing, when we know it has to be equal to "new"?

Thats a relict of the old code, which allocated "new" conditionally.
I've taken that part from your patch without the smb_wmb(), which
shouldn't be necessary.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 19:35                                                   ` Ingo Molnar
@ 2008-07-26 16:09                                                     ` Patrick McHardy
  2008-07-26 17:34                                                       ` Ingo Molnar
  0 siblings, 1 reply; 201+ messages in thread
From: Patrick McHardy @ 2008-07-26 16:09 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Andrew Morton, Pekka Enberg, David Miller, herbert, w, davidn,
	torvalds, netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen,
	Dave Jones

Ingo Molnar wrote:
> * Andrew Morton <akpm@linux-foundation.org> wrote:
> 
>> Ingo, did this patch actually fix something over there?
> 
> not that i know of. I'll do some re-tests tomorrow to make sure.

I managed to reproduce the bug you reported, but it reliably
goes away if I add Pekka's patch. Did you get a chance to
retest already?



^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-26 16:09                                                     ` Patrick McHardy
@ 2008-07-26 17:34                                                       ` Ingo Molnar
  0 siblings, 0 replies; 201+ messages in thread
From: Ingo Molnar @ 2008-07-26 17:34 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: Andrew Morton, Pekka Enberg, David Miller, herbert, w, davidn,
	torvalds, netdev, linux-kernel, stefanr, rjw, ilpo.jarvinen,
	Dave Jones


* Patrick McHardy <kaber@trash.net> wrote:

> Ingo Molnar wrote:
>> * Andrew Morton <akpm@linux-foundation.org> wrote:
>>
>>> Ingo, did this patch actually fix something over there?
>>
>> not that i know of. I'll do some re-tests tomorrow to make sure.
>
> I managed to reproduce the bug you reported, but it reliably goes away 
> if I add Pekka's patch. Did you get a chance to retest already?

not yet - please consider it fixed, i'll let you know if something 
similar to that occurs.

	Ingo

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-26 13:18                                                                                         ` Jarek Poplawski
@ 2008-07-27  0:34                                                                                           ` David Miller
  2008-07-27 20:37                                                                                             ` Jarek Poplawski
  0 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-07-27  0:34 UTC (permalink / raw)
  To: jarkao2
  Cc: johannes, netdev, peterz, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

From: Jarek Poplawski <jarkao2@gmail.com>
Date: Sat, 26 Jul 2008 15:18:38 +0200

> I guess some additional synchronization will be added yet to prevent
> parallel freeze and especially unfreeze.

Yes, that could be a problem.  Using test_and_set_bit() can
guard the freezing sequence itself, but it won't handle
letting two threads of control freeze and unfreeze safely
without a reference count.

We want this thing to be able to be used flexbly, which means
we can't just assume that this is a short code sequence and
the unfreeze will come quickly.  That pretty much rules
out using a new lock around the operation or anything
like that.

So I guess we could replace the state bit with a reference
count.  It doesn't even need to be atomic since it is set
and tested under dev_queue->_xmit_lock


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-27  0:34                                                                                           ` David Miller
@ 2008-07-27 20:37                                                                                             ` Jarek Poplawski
  2008-07-31 12:29                                                                                               ` David Miller
  0 siblings, 1 reply; 201+ messages in thread
From: Jarek Poplawski @ 2008-07-27 20:37 UTC (permalink / raw)
  To: David Miller
  Cc: johannes, netdev, peterz, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

On Sat, Jul 26, 2008 at 05:34:34PM -0700, David Miller wrote:
> From: Jarek Poplawski <jarkao2@gmail.com>
> Date: Sat, 26 Jul 2008 15:18:38 +0200
> 
> > I guess some additional synchronization will be added yet to prevent
> > parallel freeze and especially unfreeze.
> 
> Yes, that could be a problem.  Using test_and_set_bit() can
> guard the freezing sequence itself, but it won't handle
> letting two threads of control freeze and unfreeze safely
> without a reference count.
> 
> We want this thing to be able to be used flexbly, which means
> we can't just assume that this is a short code sequence and
> the unfreeze will come quickly.  That pretty much rules
> out using a new lock around the operation or anything
> like that.
> 
> So I guess we could replace the state bit with a reference
> count.  It doesn't even need to be atomic since it is set
> and tested under dev_queue->_xmit_lock
 
Looks like enough to me. (Probably it could even share space with
the state.)

Jarek P.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-27 20:37                                                                                             ` Jarek Poplawski
@ 2008-07-31 12:29                                                                                               ` David Miller
  2008-07-31 12:38                                                                                                 ` Nick Piggin
                                                                                                                   ` (2 more replies)
  0 siblings, 3 replies; 201+ messages in thread
From: David Miller @ 2008-07-31 12:29 UTC (permalink / raw)
  To: jarkao2
  Cc: johannes, netdev, peterz, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

From: Jarek Poplawski <jarkao2@gmail.com>
Date: Sun, 27 Jul 2008 22:37:57 +0200

> Looks like enough to me. (Probably it could even share space with
> the state.)

So I made some progress on this, three things:

1) I remember why I choose a to use a bit in my design, it's so that
   it does not increase the costs of the checks in the fast paths.
   test_bit(X) && test_bit(Y) can be combined into a single test by
   the compiler.

2) We can't use the reference counting scheme, because we don't want
   to let a second cpu into these protected code paths just because
   another is in the middle of using a freeze too.

3) So we can simply put a top-level TX spinlock around these things.

Therefore all the hot paths:

a) grab _xmit_lock
b) check XOFF and FROZEN
c) only call ->hard_start_xmit() if both bits are clear

netif_tx_lock() does:

1) grab netdev->tx_global_lock
2) for_each_tx_queue() {
	lock(txq);
	set_bit(FROZEN);
	unlock(txq);
   }

and unlock does:

1) for_each_tx_queue() {
	clear_bit(FROZEN);
	if (!test_bit(XOFF))
		__netif_schedule();
   }
2) release netdev->tx_global_lock

And this seems to satisfy all the constraints which are:

1) Must act like a lock and protect execution of the code path
   which occurs inside of "netif_tx_{lock,unlock}()"

2) Must ensure no cpus are executing inside of ->hard_start_xmit()
   after netif_tx_lock() returns.

3) Must not try to grab all the TX queue locks at once.

This top-level tx_global_lock also simplifies the freezing, as
it makes sure only one cpu is initiating or finishing a freeze
at any given time.

I've also adjusted code that really and truly only wanted to
lock one queue at a time, which in particular was IFB and the
teql scheduler.

It's late here, but I'll start testing the following patch on my
multiqueue capable cards after some sleep.

diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c
index 0960e69..e4fbefc 100644
--- a/drivers/net/ifb.c
+++ b/drivers/net/ifb.c
@@ -69,18 +69,20 @@ static void ri_tasklet(unsigned long dev)
 	struct net_device *_dev = (struct net_device *)dev;
 	struct ifb_private *dp = netdev_priv(_dev);
 	struct net_device_stats *stats = &_dev->stats;
+	struct netdev_queue *txq;
 	struct sk_buff *skb;
 
+	txq = netdev_get_tx_queue(_dev, 0);
 	dp->st_task_enter++;
 	if ((skb = skb_peek(&dp->tq)) == NULL) {
 		dp->st_txq_refl_try++;
-		if (netif_tx_trylock(_dev)) {
+		if (__netif_tx_trylock(txq)) {
 			dp->st_rxq_enter++;
 			while ((skb = skb_dequeue(&dp->rq)) != NULL) {
 				skb_queue_tail(&dp->tq, skb);
 				dp->st_rx2tx_tran++;
 			}
-			netif_tx_unlock(_dev);
+			__netif_tx_unlock(txq);
 		} else {
 			/* reschedule */
 			dp->st_rxq_notenter++;
@@ -115,7 +117,7 @@ static void ri_tasklet(unsigned long dev)
 			BUG();
 	}
 
-	if (netif_tx_trylock(_dev)) {
+	if (__netif_tx_trylock(txq)) {
 		dp->st_rxq_check++;
 		if ((skb = skb_peek(&dp->rq)) == NULL) {
 			dp->tasklet_pending = 0;
@@ -123,10 +125,10 @@ static void ri_tasklet(unsigned long dev)
 				netif_wake_queue(_dev);
 		} else {
 			dp->st_rxq_rsch++;
-			netif_tx_unlock(_dev);
+			__netif_tx_unlock(txq);
 			goto resched;
 		}
-		netif_tx_unlock(_dev);
+		__netif_tx_unlock(txq);
 	} else {
 resched:
 		dp->tasklet_pending = 1;
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index b4d056c..ee583f6 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -440,6 +440,7 @@ static inline void napi_synchronize(const struct napi_struct *n)
 enum netdev_queue_state_t
 {
 	__QUEUE_STATE_XOFF,
+	__QUEUE_STATE_FROZEN,
 };
 
 struct netdev_queue {
@@ -636,7 +637,7 @@ struct net_device
 	unsigned int		real_num_tx_queues;
 
 	unsigned long		tx_queue_len;	/* Max frames per queue allowed */
-
+	spinlock_t		tx_global_lock;
 /*
  * One part is mostly used on xmit path (device)
  */
@@ -1099,6 +1100,11 @@ static inline int netif_queue_stopped(const struct net_device *dev)
 	return netif_tx_queue_stopped(netdev_get_tx_queue(dev, 0));
 }
 
+static inline int netif_tx_queue_frozen(const struct netdev_queue *dev_queue)
+{
+	return test_bit(__QUEUE_STATE_FROZEN, &dev_queue->state);
+}
+
 /**
  *	netif_running - test if up
  *	@dev: network device
@@ -1475,6 +1481,26 @@ static inline void __netif_tx_lock_bh(struct netdev_queue *txq)
 	txq->xmit_lock_owner = smp_processor_id();
 }
 
+static inline int __netif_tx_trylock(struct netdev_queue *txq)
+{
+	int ok = spin_trylock(&txq->_xmit_lock);
+	if (likely(ok))
+		txq->xmit_lock_owner = smp_processor_id();
+	return ok;
+}
+
+static inline void __netif_tx_unlock(struct netdev_queue *txq)
+{
+	txq->xmit_lock_owner = -1;
+	spin_unlock(&txq->_xmit_lock);
+}
+
+static inline void __netif_tx_unlock_bh(struct netdev_queue *txq)
+{
+	txq->xmit_lock_owner = -1;
+	spin_unlock_bh(&txq->_xmit_lock);
+}
+
 /**
  *	netif_tx_lock - grab network device transmit lock
  *	@dev: network device
@@ -1484,12 +1510,23 @@ static inline void __netif_tx_lock_bh(struct netdev_queue *txq)
  */
 static inline void netif_tx_lock(struct net_device *dev)
 {
-	int cpu = smp_processor_id();
 	unsigned int i;
+	int cpu;
 
+	spin_lock(&dev->tx_global_lock);
+	cpu = smp_processor_id();
 	for (i = 0; i < dev->num_tx_queues; i++) {
 		struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
+
+		/* We are the only thread of execution doing a
+		 * freeze, but we have to grab the _xmit_lock in
+		 * order to synchronize with threads which are in
+		 * the ->hard_start_xmit() handler and already
+		 * checked the frozen bit.
+		 */
 		__netif_tx_lock(txq, cpu);
+		set_bit(__QUEUE_STATE_FROZEN, &txq->state);
+		__netif_tx_unlock(txq);
 	}
 }
 
@@ -1499,40 +1536,22 @@ static inline void netif_tx_lock_bh(struct net_device *dev)
 	netif_tx_lock(dev);
 }
 
-static inline int __netif_tx_trylock(struct netdev_queue *txq)
-{
-	int ok = spin_trylock(&txq->_xmit_lock);
-	if (likely(ok))
-		txq->xmit_lock_owner = smp_processor_id();
-	return ok;
-}
-
-static inline int netif_tx_trylock(struct net_device *dev)
-{
-	return __netif_tx_trylock(netdev_get_tx_queue(dev, 0));
-}
-
-static inline void __netif_tx_unlock(struct netdev_queue *txq)
-{
-	txq->xmit_lock_owner = -1;
-	spin_unlock(&txq->_xmit_lock);
-}
-
-static inline void __netif_tx_unlock_bh(struct netdev_queue *txq)
-{
-	txq->xmit_lock_owner = -1;
-	spin_unlock_bh(&txq->_xmit_lock);
-}
-
 static inline void netif_tx_unlock(struct net_device *dev)
 {
 	unsigned int i;
 
 	for (i = 0; i < dev->num_tx_queues; i++) {
 		struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
-		__netif_tx_unlock(txq);
-	}
 
+		/* No need to grab the _xmit_lock here.  If the
+		 * queue is not stopped for another reason, we
+		 * force a schedule.
+		 */
+		clear_bit(__QUEUE_STATE_FROZEN, &txq->state);
+		if (!test_bit(__QUEUE_STATE_XOFF, &txq->state))
+			__netif_schedule(txq->qdisc);
+	}
+	spin_unlock(&dev->tx_global_lock);
 }
 
 static inline void netif_tx_unlock_bh(struct net_device *dev)
@@ -1556,13 +1575,18 @@ static inline void netif_tx_unlock_bh(struct net_device *dev)
 static inline void netif_tx_disable(struct net_device *dev)
 {
 	unsigned int i;
+	int cpu;
 
-	netif_tx_lock_bh(dev);
+	local_bh_disable();
+	cpu = smp_processor_id();
 	for (i = 0; i < dev->num_tx_queues; i++) {
 		struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
+
+		__netif_tx_lock(txq, cpu);
 		netif_tx_stop_queue(txq);
+		__netif_tx_unlock(txq);
 	}
-	netif_tx_unlock_bh(dev);
+	local_bh_enable();
 }
 
 static inline void netif_addr_lock(struct net_device *dev)
diff --git a/net/core/dev.c b/net/core/dev.c
index 63d6bcd..69320a5 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4200,6 +4200,7 @@ static void netdev_init_queues(struct net_device *dev)
 {
 	netdev_init_one_queue(dev, &dev->rx_queue, NULL);
 	netdev_for_each_tx_queue(dev, netdev_init_one_queue, NULL);
+	spin_lock_init(&dev->tx_global_lock);
 }
 
 /**
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index c127208..6c7af39 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -70,6 +70,7 @@ static void queue_process(struct work_struct *work)
 		local_irq_save(flags);
 		__netif_tx_lock(txq, smp_processor_id());
 		if (netif_tx_queue_stopped(txq) ||
+		    netif_tx_queue_frozen(txq) ||
 		    dev->hard_start_xmit(skb, dev) != NETDEV_TX_OK) {
 			skb_queue_head(&npinfo->txq, skb);
 			__netif_tx_unlock(txq);
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index c7d484f..3284605 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -3305,6 +3305,7 @@ static __inline__ void pktgen_xmit(struct pktgen_dev *pkt_dev)
 
 	txq = netdev_get_tx_queue(odev, queue_map);
 	if (netif_tx_queue_stopped(txq) ||
+	    netif_tx_queue_frozen(txq) ||
 	    need_resched()) {
 		idle_start = getCurUs();
 
@@ -3320,7 +3321,8 @@ static __inline__ void pktgen_xmit(struct pktgen_dev *pkt_dev)
 
 		pkt_dev->idle_acc += getCurUs() - idle_start;
 
-		if (netif_tx_queue_stopped(txq)) {
+		if (netif_tx_queue_stopped(txq) ||
+		    netif_tx_queue_frozen(txq)) {
 			pkt_dev->next_tx_us = getCurUs();	/* TODO */
 			pkt_dev->next_tx_ns = 0;
 			goto out;	/* Try the next interface */
@@ -3352,7 +3354,8 @@ static __inline__ void pktgen_xmit(struct pktgen_dev *pkt_dev)
 	txq = netdev_get_tx_queue(odev, queue_map);
 
 	__netif_tx_lock_bh(txq);
-	if (!netif_tx_queue_stopped(txq)) {
+	if (!netif_tx_queue_stopped(txq) &&
+	    !netif_tx_queue_frozen(txq)) {
 
 		atomic_inc(&(pkt_dev->skb->users));
 	      retry_now:
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 345838a..9c9cd4d 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -135,7 +135,8 @@ static inline int qdisc_restart(struct Qdisc *q)
 	txq = netdev_get_tx_queue(dev, skb_get_queue_mapping(skb));
 
 	HARD_TX_LOCK(dev, txq, smp_processor_id());
-	if (!netif_subqueue_stopped(dev, skb))
+	if (!netif_tx_queue_stopped(txq) &&
+	    !netif_tx_queue_frozen(txq))
 		ret = dev_hard_start_xmit(skb, dev, txq);
 	HARD_TX_UNLOCK(dev, txq);
 
@@ -162,7 +163,8 @@ static inline int qdisc_restart(struct Qdisc *q)
 		break;
 	}
 
-	if (ret && netif_tx_queue_stopped(txq))
+	if (ret && (netif_tx_queue_stopped(txq) ||
+		    netif_tx_queue_frozen(txq)))
 		ret = 0;
 
 	return ret;
diff --git a/net/sched/sch_teql.c b/net/sched/sch_teql.c
index 5372236..2c35c67 100644
--- a/net/sched/sch_teql.c
+++ b/net/sched/sch_teql.c
@@ -305,10 +305,11 @@ restart:
 
 		switch (teql_resolve(skb, skb_res, slave)) {
 		case 0:
-			if (netif_tx_trylock(slave)) {
-				if (!__netif_subqueue_stopped(slave, subq) &&
+			if (__netif_tx_trylock(slave_txq)) {
+				if (!netif_tx_queue_stopped(slave_txq) &&
+				    !netif_tx_queue_frozen(slave_txq) &&
 				    slave->hard_start_xmit(skb, slave) == 0) {
-					netif_tx_unlock(slave);
+					__netif_tx_unlock(slave_txq);
 					master->slaves = NEXT_SLAVE(q);
 					netif_wake_queue(dev);
 					master->stats.tx_packets++;
@@ -316,7 +317,7 @@ restart:
 						qdisc_pkt_len(skb);
 					return 0;
 				}
-				netif_tx_unlock(slave);
+				__netif_tx_unlock(slave_txq);
 			}
 			if (netif_queue_stopped(dev))
 				busy = 1;

^ permalink raw reply related	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-31 12:29                                                                                               ` David Miller
@ 2008-07-31 12:38                                                                                                 ` Nick Piggin
  2008-07-31 12:44                                                                                                   ` David Miller
  2008-08-01  4:27                                                                                                 ` David Miller
  2008-08-01  6:48                                                                                                 ` Jarek Poplawski
  2 siblings, 1 reply; 201+ messages in thread
From: Nick Piggin @ 2008-07-31 12:38 UTC (permalink / raw)
  To: David Miller
  Cc: jarkao2, johannes, netdev, peterz, Larry.Finger, kaber, torvalds,
	akpm, netdev, linux-kernel, linux-wireless, mingo

On Thursday 31 July 2008 22:29, David Miller wrote:
> From: Jarek Poplawski <jarkao2@gmail.com>
> Date: Sun, 27 Jul 2008 22:37:57 +0200
>
> > Looks like enough to me. (Probably it could even share space with
> > the state.)
>
> So I made some progress on this, three things:
>
> 1) I remember why I choose a to use a bit in my design, it's so that
>    it does not increase the costs of the checks in the fast paths.
>    test_bit(X) && test_bit(Y) can be combined into a single test by
>    the compiler.

Except for the braindead volatile that gets stuck on the bitops pointer.

Last time I complained about this, a lot of noise was made and I think
Linus wanted it to stay around so we could pass volatile pointers to
bitops & co without warnings. I say we should just remove the volatile
and kill any callers that might warn...

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-31 12:38                                                                                                 ` Nick Piggin
@ 2008-07-31 12:44                                                                                                   ` David Miller
  0 siblings, 0 replies; 201+ messages in thread
From: David Miller @ 2008-07-31 12:44 UTC (permalink / raw)
  To: nickpiggin
  Cc: jarkao2, johannes, netdev, peterz, Larry.Finger, kaber, torvalds,
	akpm, netdev, linux-kernel, linux-wireless, mingo

From: Nick Piggin <nickpiggin@yahoo.com.au>
Date: Thu, 31 Jul 2008 22:38:19 +1000

> Except for the braindead volatile that gets stuck on the bitops pointer.
> 
> Last time I complained about this, a lot of noise was made and I think
> Linus wanted it to stay around so we could pass volatile pointers to
> bitops & co without warnings. I say we should just remove the volatile
> and kill any callers that might warn...

Ho hum... :)

Another way to approach that, and keep the volatile, is to have
a "test_flags()" interface that takes the bit mask of values
you want to test for cases where you know it is a single word
flags value.

The downside is that this kind of interface is easy to use
incorrectly especially when accesses to the same flags use
bot test_bit() and test_flags().

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-31 12:29                                                                                               ` David Miller
  2008-07-31 12:38                                                                                                 ` Nick Piggin
@ 2008-08-01  4:27                                                                                                 ` David Miller
  2008-08-01  7:09                                                                                                   ` Peter Zijlstra
  2008-08-01  6:48                                                                                                 ` Jarek Poplawski
  2 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-08-01  4:27 UTC (permalink / raw)
  To: jarkao2
  Cc: johannes, netdev, peterz, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

From: David Miller <davem@davemloft.net>
Date: Thu, 31 Jul 2008 05:29:32 -0700 (PDT)

> It's late here, but I'll start testing the following patch on my
> multiqueue capable cards after some sleep.

As a quick followup, I tested this on a machine where I had
a multiqueue interface and could reproduce the lockdep warnings,
and the patch makes them go away.

So I've pushed the patch into net-2.6 and will send it to Linus.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-31 12:29                                                                                               ` David Miller
  2008-07-31 12:38                                                                                                 ` Nick Piggin
  2008-08-01  4:27                                                                                                 ` David Miller
@ 2008-08-01  6:48                                                                                                 ` Jarek Poplawski
  2008-08-01  7:00                                                                                                   ` David Miller
  2008-08-01  7:01                                                                                                   ` Jarek Poplawski
  2 siblings, 2 replies; 201+ messages in thread
From: Jarek Poplawski @ 2008-08-01  6:48 UTC (permalink / raw)
  To: David Miller
  Cc: johannes, netdev, peterz, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

On Thu, Jul 31, 2008 at 05:29:32AM -0700, David Miller wrote:
> From: Jarek Poplawski <jarkao2@gmail.com>
> Date: Sun, 27 Jul 2008 22:37:57 +0200
> 
> > Looks like enough to me. (Probably it could even share space with
> > the state.)

Alas I've some doubts here...

...
>  static inline void netif_tx_unlock(struct net_device *dev)
>  {
>  	unsigned int i;
>  
>  	for (i = 0; i < dev->num_tx_queues; i++) {
>  		struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
> -		__netif_tx_unlock(txq);
> -	}
>  
> +		/* No need to grab the _xmit_lock here.  If the
> +		 * queue is not stopped for another reason, we
> +		 * force a schedule.
> +		 */
> +		clear_bit(__QUEUE_STATE_FROZEN, &txq->state);

The comments in asm-x86/bitops.h to set_bit/clear_bit are rather queer
about reordering on non x86: isn't eg. smp_mb_before_clear_bit()
useful  here?

> +		if (!test_bit(__QUEUE_STATE_XOFF, &txq->state))
> +			__netif_schedule(txq->qdisc);
> +	}
> +	spin_unlock(&dev->tx_global_lock);
>  }
...

> diff --git a/net/core/dev.c b/net/core/dev.c
> index 63d6bcd..69320a5 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -4200,6 +4200,7 @@ static void netdev_init_queues(struct net_device *dev)
>  {
>  	netdev_init_one_queue(dev, &dev->rx_queue, NULL);
>  	netdev_for_each_tx_queue(dev, netdev_init_one_queue, NULL);
> +	spin_lock_init(&dev->tx_global_lock);

This will probably need some lockdep annotations similar to
_xmit_lock.

> diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
> index 345838a..9c9cd4d 100644
> --- a/net/sched/sch_generic.c
> +++ b/net/sched/sch_generic.c
> @@ -135,7 +135,8 @@ static inline int qdisc_restart(struct Qdisc *q)
>  	txq = netdev_get_tx_queue(dev, skb_get_queue_mapping(skb));
>  
>  	HARD_TX_LOCK(dev, txq, smp_processor_id());
> -	if (!netif_subqueue_stopped(dev, skb))
> +	if (!netif_tx_queue_stopped(txq) &&
> +	    !netif_tx_queue_frozen(txq))
>  		ret = dev_hard_start_xmit(skb, dev, txq);
>  	HARD_TX_UNLOCK(dev, txq);

This thing is the most doubtful to me: before this patch callers would
wait on this lock. Now they take the lock without problems, check the
flags, and let to take this lock again, doing some re-queing in the
meantime.

So, it seems HARD_TX_LOCK should rather do some busy looping now with
a trylock, and re-checking the _FROZEN flag. Maybe even this should
be done in __netif_tx_lock(). On the other hand, this shouldn't block
too much the owner of tx_global_lock() with taking such a lock.

Jarek P.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-08-01  6:48                                                                                                 ` Jarek Poplawski
@ 2008-08-01  7:00                                                                                                   ` David Miller
  2008-08-01  7:01                                                                                                   ` Jarek Poplawski
  1 sibling, 0 replies; 201+ messages in thread
From: David Miller @ 2008-08-01  7:00 UTC (permalink / raw)
  To: jarkao2
  Cc: johannes, netdev, peterz, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

From: Jarek Poplawski <jarkao2@gmail.com>
Date: Fri, 1 Aug 2008 06:48:10 +0000

> On Thu, Jul 31, 2008 at 05:29:32AM -0700, David Miller wrote:
> > +		/* No need to grab the _xmit_lock here.  If the
> > +		 * queue is not stopped for another reason, we
> > +		 * force a schedule.
> > +		 */
> > +		clear_bit(__QUEUE_STATE_FROZEN, &txq->state);
> 
> The comments in asm-x86/bitops.h to set_bit/clear_bit are rather queer
> about reordering on non x86: isn't eg. smp_mb_before_clear_bit()
> useful  here?

It doesn't matter, we need no synchronization here at all.

We unconditionally perform a __netif_schedule(), and that
will run the TX queue on the local cpu.  We will take the
_xmit_lock at least once time if in fact the queue was not
stopped before the first froze it.

> > diff --git a/net/core/dev.c b/net/core/dev.c
> > index 63d6bcd..69320a5 100644
> > --- a/net/core/dev.c
> > +++ b/net/core/dev.c
> > @@ -4200,6 +4200,7 @@ static void netdev_init_queues(struct net_device *dev)
> >  {
> >  	netdev_init_one_queue(dev, &dev->rx_queue, NULL);
> >  	netdev_for_each_tx_queue(dev, netdev_init_one_queue, NULL);
> > +	spin_lock_init(&dev->tx_global_lock);
> 
> This will probably need some lockdep annotations similar to
> _xmit_lock.

I highly doubt it.  It will never be taken nested with another
device's instance.

It is only ->hard_start_xmit() leading to another ->hard_start_xmit()
where this can currently happen, but tx_global_lock will not be used
in such paths.

> > @@ -135,7 +135,8 @@ static inline int qdisc_restart(struct Qdisc *q)
> >  	txq = netdev_get_tx_queue(dev, skb_get_queue_mapping(skb));
> >  
> >  	HARD_TX_LOCK(dev, txq, smp_processor_id());
> > -	if (!netif_subqueue_stopped(dev, skb))
> > +	if (!netif_tx_queue_stopped(txq) &&
> > +	    !netif_tx_queue_frozen(txq))
> >  		ret = dev_hard_start_xmit(skb, dev, txq);
> >  	HARD_TX_UNLOCK(dev, txq);
> 
> This thing is the most doubtful to me: before this patch callers would
> wait on this lock. Now they take the lock without problems, check the
> flags, and let to take this lock again, doing some re-queing in the
> meantime.
>
> So, it seems HARD_TX_LOCK should rather do some busy looping now with
> a trylock, and re-checking the _FROZEN flag. Maybe even this should
> be done in __netif_tx_lock(). On the other hand, this shouldn't block
> too much the owner of tx_global_lock() with taking such a lock.

'ret' will be NETDEV_TX_BUSY in such a case (finding the queue
frozen), which will cause the while() loop in __qdisc_run() to
terminate.

The freezer will unconditionally schedule a new __qdisc_run()
when it unfreezes the queue.

Sure it's possible for some cpus to bang in and out of there
a few times, but that's completely harmless.  And it can only
happen a few times since this freeze state is only held across
a critical section.


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-08-01  7:01                                                                                                   ` Jarek Poplawski
@ 2008-08-01  7:01                                                                                                     ` David Miller
  2008-08-01  7:41                                                                                                       ` Jarek Poplawski
  0 siblings, 1 reply; 201+ messages in thread
From: David Miller @ 2008-08-01  7:01 UTC (permalink / raw)
  To: jarkao2
  Cc: johannes, netdev, peterz, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

From: Jarek Poplawski <jarkao2@gmail.com>
Date: Fri, 1 Aug 2008 07:01:50 +0000

> On Fri, Aug 01, 2008 at 06:48:10AM +0000, Jarek Poplawski wrote:
> > On Thu, Jul 31, 2008 at 05:29:32AM -0700, David Miller wrote:
> ...
> > > diff --git a/net/core/dev.c b/net/core/dev.c
> > > index 63d6bcd..69320a5 100644
> > > --- a/net/core/dev.c
> > > +++ b/net/core/dev.c
> > > @@ -4200,6 +4200,7 @@ static void netdev_init_queues(struct net_device *dev)
> > >  {
> > >  	netdev_init_one_queue(dev, &dev->rx_queue, NULL);
> > >  	netdev_for_each_tx_queue(dev, netdev_init_one_queue, NULL);
> > > +	spin_lock_init(&dev->tx_global_lock);
> > 
> > This will probably need some lockdep annotations similar to
> > _xmit_lock.
> 
> ...BTW, we probably could also consider some optimization here: the
> xmit_lock of the first queue could be treated as special, and only
> the owner could do such a freezing. This would save changes of
> functionality to non mq devices. On the other hand, it would need
> remembering about this special treatment (so, eg. a separate lockdep
> initialization than all the others).

I think special casing the zero's queue's lock is a bad idea.
Having a real top-level synchronizer is a powerful tool and
we could use it for other things.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-08-01  6:48                                                                                                 ` Jarek Poplawski
  2008-08-01  7:00                                                                                                   ` David Miller
@ 2008-08-01  7:01                                                                                                   ` Jarek Poplawski
  2008-08-01  7:01                                                                                                     ` David Miller
  1 sibling, 1 reply; 201+ messages in thread
From: Jarek Poplawski @ 2008-08-01  7:01 UTC (permalink / raw)
  To: David Miller
  Cc: johannes, netdev, peterz, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

On Fri, Aug 01, 2008 at 06:48:10AM +0000, Jarek Poplawski wrote:
> On Thu, Jul 31, 2008 at 05:29:32AM -0700, David Miller wrote:
...
> > diff --git a/net/core/dev.c b/net/core/dev.c
> > index 63d6bcd..69320a5 100644
> > --- a/net/core/dev.c
> > +++ b/net/core/dev.c
> > @@ -4200,6 +4200,7 @@ static void netdev_init_queues(struct net_device *dev)
> >  {
> >  	netdev_init_one_queue(dev, &dev->rx_queue, NULL);
> >  	netdev_for_each_tx_queue(dev, netdev_init_one_queue, NULL);
> > +	spin_lock_init(&dev->tx_global_lock);
> 
> This will probably need some lockdep annotations similar to
> _xmit_lock.

...BTW, we probably could also consider some optimization here: the
xmit_lock of the first queue could be treated as special, and only
the owner could do such a freezing. This would save changes of
functionality to non mq devices. On the other hand, it would need
remembering about this special treatment (so, eg. a separate lockdep
initialization than all the others).

Jarek P.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-08-01  4:27                                                                                                 ` David Miller
@ 2008-08-01  7:09                                                                                                   ` Peter Zijlstra
  0 siblings, 0 replies; 201+ messages in thread
From: Peter Zijlstra @ 2008-08-01  7:09 UTC (permalink / raw)
  To: David Miller
  Cc: jarkao2, johannes, netdev, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

On Thu, 2008-07-31 at 21:27 -0700, David Miller wrote:
> From: David Miller <davem@davemloft.net>
> Date: Thu, 31 Jul 2008 05:29:32 -0700 (PDT)
> 
> > It's late here, but I'll start testing the following patch on my
> > multiqueue capable cards after some sleep.
> 
> As a quick followup, I tested this on a machine where I had
> a multiqueue interface and could reproduce the lockdep warnings,
> and the patch makes them go away.
> 
> So I've pushed the patch into net-2.6 and will send it to Linus.

Thanks david!


^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-08-01  7:01                                                                                                     ` David Miller
@ 2008-08-01  7:41                                                                                                       ` Jarek Poplawski
  0 siblings, 0 replies; 201+ messages in thread
From: Jarek Poplawski @ 2008-08-01  7:41 UTC (permalink / raw)
  To: David Miller
  Cc: johannes, netdev, peterz, Larry.Finger, kaber, torvalds, akpm,
	netdev, linux-kernel, linux-wireless, mingo

On Fri, Aug 01, 2008 at 12:01:46AM -0700, David Miller wrote:
> From: Jarek Poplawski <jarkao2@gmail.com>
> Date: Fri, 1 Aug 2008 07:01:50 +0000
> 
> > On Fri, Aug 01, 2008 at 06:48:10AM +0000, Jarek Poplawski wrote:
> > > On Thu, Jul 31, 2008 at 05:29:32AM -0700, David Miller wrote:
> > ...
> > > > diff --git a/net/core/dev.c b/net/core/dev.c
> > > > index 63d6bcd..69320a5 100644
> > > > --- a/net/core/dev.c
> > > > +++ b/net/core/dev.c
> > > > @@ -4200,6 +4200,7 @@ static void netdev_init_queues(struct net_device *dev)
> > > >  {
> > > >  	netdev_init_one_queue(dev, &dev->rx_queue, NULL);
> > > >  	netdev_for_each_tx_queue(dev, netdev_init_one_queue, NULL);
> > > > +	spin_lock_init(&dev->tx_global_lock);
> > > 
> > > This will probably need some lockdep annotations similar to
> > > _xmit_lock.
> > 
> > ...BTW, we probably could also consider some optimization here: the
> > xmit_lock of the first queue could be treated as special, and only
> > the owner could do such a freezing. This would save changes of
> > functionality to non mq devices. On the other hand, it would need
> > remembering about this special treatment (so, eg. a separate lockdep
> > initialization than all the others).
> 
> I think special casing the zero's queue's lock is a bad idea.
> Having a real top-level synchronizer is a powerful tool and
> we could use it for other things.

Sure, if there is really no problem with lockdep here, there is no
need for this at all.

Thanks for the explanations,
Jarek P.

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-24 10:38                                                                                         ` Nick Piggin
  2008-07-24 10:55                                                                                           ` Miklos Szeredi
  2008-07-24 10:59                                                                                           ` Peter Zijlstra
@ 2008-08-01 21:10                                                                                           ` Paul E. McKenney
  2 siblings, 0 replies; 201+ messages in thread
From: Paul E. McKenney @ 2008-08-01 21:10 UTC (permalink / raw)
  To: Nick Piggin
  Cc: Peter Zijlstra, David Miller, jarkao2, Larry.Finger, kaber,
	torvalds, akpm, netdev, linux-kernel, linux-wireless, mingo

On Thu, Jul 24, 2008 at 08:38:35PM +1000, Nick Piggin wrote:
> On Thursday 24 July 2008 20:08, Peter Zijlstra wrote:
> > On Thu, 2008-07-24 at 02:32 -0700, David Miller wrote:
> > > From: Peter Zijlstra <peterz@infradead.org>
> > > Date: Thu, 24 Jul 2008 11:27:05 +0200
> > >
> > > > Well, not only lockdep, taking a very large number of locks is
> > > > expensive as well.
> > >
> > > Right now it would be on the order of 16 or 32 for
> > > real hardware.
> > >
> > > Much less than the scheduler currently takes on some
> > > of my systems, so currently you are the pot calling the
> > > kettle black. :-)
> >
> > One nit, and then I'll let this issue rest :-)
> >
> > The scheduler has a long lock dependancy chain (nr_cpu_ids rq locks),
> > but it never takes all of them at the same time. Any one code path will
> > at most hold two rq locks.
> 
> Aside from lockdep, is there a particular problem with taking 64k locks
> at once? (in a very slow path, of course) I don't think it causes a
> problem with preempt_count, does it cause issues with -rt kernel?
> 
> Hey, something kind of cool (and OT) I've just thought of that we can
> do with ticket locks is to take tickets for 2 (or 64K) nested locks,
> and then wait for them both (all), so the cost is N*lock + longest spin,
> rather than N*lock + N*avg spin.
> 
> That would mean even at the worst case of a huge amount of contention
> on all 64K locks, it should only take a couple of ms to take all of
> them (assuming max spin time isn't ridiculous).
> 
> Probably not the kind of feature we want to expose widely, but for
> really special things like the scheduler, it might be a neat hack to
> save a few cycles ;) Traditional implementations would just have
> #define spin_lock_async	      spin_lock
> #define spin_lock_async_wait  do {} while (0)
> 
> Sorry it's offtopic, but if I didn't post it, I'd forget to. Might be
> a fun quick hack for someone.

FWIW, I did something similar in a previous life for the write-side of
a brlock-like locking mechanism.  This was especially helpful if the
read-side critical sections were long.

							Thanx, Paul

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()
  2008-07-24 11:06                                                                                             ` Nick Piggin
@ 2008-08-01 21:10                                                                                               ` Paul E. McKenney
  0 siblings, 0 replies; 201+ messages in thread
From: Paul E. McKenney @ 2008-08-01 21:10 UTC (permalink / raw)
  To: Nick Piggin
  Cc: Miklos Szeredi, peterz, davem, jarkao2, Larry.Finger, kaber,
	torvalds, akpm, netdev, linux-kernel, linux-wireless, mingo

On Thu, Jul 24, 2008 at 09:06:51PM +1000, Nick Piggin wrote:
> On Thursday 24 July 2008 20:55, Miklos Szeredi wrote:
> > On Thu, 24 Jul 2008, Nick Piggin wrote:
> > > Hey, something kind of cool (and OT) I've just thought of that we can
> > > do with ticket locks is to take tickets for 2 (or 64K) nested locks,
> > > and then wait for them both (all), so the cost is N*lock + longest spin,
> > > rather than N*lock + N*avg spin.
> >
> > Isn't this deadlocky?
> >
> > E.g. one task takes ticket x=1, then other task comes in and takes x=2
> > and y=1, then first task takes y=2.  Then neither can actually
> > complete both locks.
> 
> Oh duh of course you still need mutual exclusion from the first lock
> to order the subsequent :P
> 
> So yeah it only works for N > 2 locks, and you have to spin_lock the
> first one... so unsuitable for scheduler.

Or sort the locks by address or some such.

							Thanx, Paul

^ permalink raw reply	[flat|nested] 201+ messages in thread

* Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
  2008-07-24 21:13                                           ` Linus Torvalds
  2008-07-24 22:09                                             ` David Miller
  2008-07-26 13:47                                             ` Patrick McHardy
@ 2008-08-01 21:10                                             ` Paul E. McKenney
  2 siblings, 0 replies; 201+ messages in thread
From: Paul E. McKenney @ 2008-08-01 21:10 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Patrick McHardy, Pekka Enberg, Ingo Molnar, David Miller,
	herbert, w, davidn, akpm, netdev, linux-kernel, stefanr, rjw,
	ilpo.jarvinen, Dave Jones

On Thu, Jul 24, 2008 at 02:13:42PM -0700, Linus Torvalds wrote:
> 
> 
> On Thu, 24 Jul 2008, Patrick McHardy wrote:
> > 
> > To fix this I think we need a __krealloc() that doesn't
> > free the old memory, especially since it must not be
> > freed immediately because it may still be used in a RCU
> > read side (see the last part in the patch attached to
> > this mail (based on a kernel without your patch)).
> 
> Hmm. Don't you need to fix some of the ordering of the initialization too?
> 
> If there are possible readers that happen in parallel with changing this 
> thing, don't you need to protect the update of "ext->len" against the 
> actual changes? And the readers should probably have a read barrier 
> between checking "len" and actually looking at the values? Finally, why do 
> the "ct->ext" dereference thing, when we know it has to be equal to "new"?
> 
> ie something like this on the writing side (in _addition_ to both the 
> patches already seen), but I didn't do the reading side (ie there are no 
> "smp_rmb()"'s on the reading side)
> 
> And no, I don't know the code, so I don't know who/what can read those 
> things with RCU, so maybe there is some reason why the actual data doesn't 
> need protecting. But I somehow doubt it.

There certainly needs to be an rcu_assign_pointer() or a smp_wmb()
in there somewhere -- whenever it is that the new structure becomes
accessible to RCU readers.  I looked around a bit, but couldn't tell
when this stuff becomes accessible to readers...

							Thanx, Paul

> 		Linus
> 
> ---
>  net/netfilter/nf_conntrack_extend.c |    9 +++++----
>  1 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/net/netfilter/nf_conntrack_extend.c b/net/netfilter/nf_conntrack_extend.c
> index 3469bc7..135e095 100644
> --- a/net/netfilter/nf_conntrack_extend.c
> +++ b/net/netfilter/nf_conntrack_extend.c
> @@ -115,10 +115,11 @@ void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp)
>  		ct->ext = new;
>  	}
> 
> -	ct->ext->offset[id] = newoff;
> -	ct->ext->len = newlen;
> -	memset((void *)ct->ext + newoff, 0, newlen - newoff);
> -	return (void *)ct->ext + newoff;
> +	new->offset[id] = newoff;
> +	memset((void *)new + newoff, 0, newlen - newoff);
> +	smp_wmb();
> +	new->len = newlen;
> +	return (void *)new + newoff;
>  }
>  EXPORT_SYMBOL(__nf_ct_ext_add);
> 
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 201+ messages in thread

end of thread, other threads:[~2008-08-01 21:19 UTC | newest]

Thread overview: 201+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-07-20 17:44 [GIT]: Networking David Miller
2008-07-21  0:54 ` Linus Torvalds
2008-07-21  1:03   ` David Miller
2008-07-21  1:09     ` Alexey Dobriyan
2008-07-21  1:14       ` David Miller
2008-07-21  1:22         ` Alexey Dobriyan
2008-07-21  2:40         ` Alexey Dobriyan
2008-07-21  2:48           ` David Miller
2008-07-21  5:11             ` David Miller
2008-07-21  9:48               ` Alexander Beregalov
2008-07-21 10:16                 ` Ben Hutchings
2008-07-21 15:35                   ` David Miller
2008-07-21 16:04                     ` Alexander Beregalov
2008-07-21 11:57               ` Alexey Dobriyan
2008-07-21 15:27                 ` David Miller
2008-07-21 16:49               ` Linus Torvalds
2008-07-21 16:53                 ` David Miller
2008-07-21  1:20     ` Patrick McHardy
2008-07-21 11:28       ` Stefan Richter
2008-07-21 11:45       ` James Morris
2008-07-21 12:05         ` Patrick McHardy
2008-07-21 17:28           ` David Miller
2008-07-21 17:40             ` Linus Torvalds
2008-07-21 20:33               ` Patrick McHardy
2008-07-23 23:42                 ` David Miller
2008-07-21  1:07   ` Linus Torvalds
2008-07-21  1:17     ` David Miller
2008-07-21  8:36 ` iwlwifi: fix build bug in "iwlwifi: fix LED stall" Ingo Molnar
2008-07-21 10:02   ` Winkler, Tomas
2008-07-21 10:53     ` Ingo Molnar
2008-07-21 12:12   ` [PATCH] iwlwifi: RS small compile warnings without CONFIG_IWLWIFI_DEBUG Tomas Winkler
2008-07-21 12:12     ` [PATCH] iwlwifi: " Tomas Winkler
2008-07-21 12:12       ` [PATCH] iwlwifi: compilation error when CONFIG_IWLWIFI_DEBUG is not set Tomas Winkler
2008-07-21 13:30 ` [crash, bisected] Kernel BUG at ffffffff8079afb1 (__netif_schedule()) Ingo Molnar
2008-07-21 13:45   ` [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000370 Ingo Molnar
2008-07-21 14:30     ` Ingo Molnar
2008-07-21 15:04       ` Ingo Molnar
2008-07-21 15:24         ` David Miller
2008-07-21 18:18           ` Ian Schram
2008-07-21 19:06             ` Ingo Molnar
2008-07-21 19:13               ` Larry Finger
2008-07-21 19:34                 ` Ingo Molnar
2008-07-21 19:43                   ` Larry Finger
2008-07-21 19:47                     ` Linus Torvalds
2008-07-21 20:15                       ` David Miller
2008-07-21 20:28                       ` Larry Finger
2008-07-21 20:21                     ` David Miller
2008-07-21 20:38                       ` Larry Finger
2008-07-21 20:46                         ` David Miller
2008-07-21 20:51                           ` Patrick McHardy
2008-07-21 21:01                             ` David Miller
2008-07-21 21:06                               ` Patrick McHardy
2008-07-21 21:35                                 ` Patrick McHardy
2008-07-21 21:42                                   ` Patrick McHardy
2008-07-21 21:51                                   ` Larry Finger
2008-07-21 22:04                                     ` Patrick McHardy
2008-07-21 22:40                                       ` Larry Finger
2008-07-21 23:15                                         ` David Miller
2008-07-22  6:34                                           ` Larry Finger
2008-07-22 10:51                                             ` Jarek Poplawski
2008-07-22 11:32                                             ` David Miller
2008-07-22 12:52                                               ` Larry Finger
2008-07-22 20:43                                                 ` David Miller
2008-07-22 13:02                                               ` Larry Finger
2008-07-22 14:53                                                 ` Patrick McHardy
2008-07-22 21:17                                                   ` David Miller
2008-07-22 16:39                                                 ` Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98() Larry Finger
2008-07-22 17:20                                                   ` Patrick McHardy
2008-07-22 18:39                                                     ` Larry Finger
2008-07-22 18:44                                                       ` Patrick McHardy
2008-07-22 19:30                                                         ` Larry Finger
2008-07-22 23:04                                                       ` David Miller
2008-07-23  6:20                                                         ` Jarek Poplawski
2008-07-23  7:59                                                           ` David Miller
2008-07-23  8:54                                                             ` Jarek Poplawski
2008-07-23  9:03                                                               ` Peter Zijlstra
2008-07-23  9:35                                                                 ` Jarek Poplawski
2008-07-23  9:50                                                                   ` Peter Zijlstra
2008-07-23 10:13                                                                     ` Jarek Poplawski
2008-07-23 10:58                                                                       ` Peter Zijlstra
2008-07-23 11:35                                                                         ` Jarek Poplawski
2008-07-23 11:49                                                                           ` Jarek Poplawski
2008-07-23 20:16                                                                             ` David Miller
2008-07-23 20:43                                                                               ` Jarek Poplawski
2008-07-23 20:55                                                                                 ` David Miller
2008-07-24  9:10                                                                               ` Peter Zijlstra
2008-07-24  9:20                                                                                 ` David Miller
2008-07-24  9:27                                                                                   ` Peter Zijlstra
2008-07-24  9:32                                                                                     ` David Miller
2008-07-24 10:08                                                                                       ` Peter Zijlstra
2008-07-24 10:38                                                                                         ` Nick Piggin
2008-07-24 10:55                                                                                           ` Miklos Szeredi
2008-07-24 11:06                                                                                             ` Nick Piggin
2008-08-01 21:10                                                                                               ` Paul E. McKenney
2008-07-24 10:59                                                                                           ` Peter Zijlstra
2008-08-01 21:10                                                                                           ` Paul E. McKenney
2008-07-23 20:14                                                                         ` David Miller
2008-07-24  7:00                                                                           ` Peter Zijlstra
2008-07-25 17:04                                                                           ` Ingo Oeser
2008-07-25 18:36                                                                             ` Jarek Poplawski
2008-07-25 19:16                                                                               ` Johannes Berg
2008-07-25 19:34                                                                                 ` Jarek Poplawski
2008-07-25 19:36                                                                                   ` Johannes Berg
2008-07-25 20:01                                                                                     ` Jarek Poplawski
2008-07-26  9:18                                                                                       ` David Miller
2008-07-26 10:53                                                                                         ` Jarek Poplawski
2008-07-26 13:18                                                                                         ` Jarek Poplawski
2008-07-27  0:34                                                                                           ` David Miller
2008-07-27 20:37                                                                                             ` Jarek Poplawski
2008-07-31 12:29                                                                                               ` David Miller
2008-07-31 12:38                                                                                                 ` Nick Piggin
2008-07-31 12:44                                                                                                   ` David Miller
2008-08-01  4:27                                                                                                 ` David Miller
2008-08-01  7:09                                                                                                   ` Peter Zijlstra
2008-08-01  6:48                                                                                                 ` Jarek Poplawski
2008-08-01  7:00                                                                                                   ` David Miller
2008-08-01  7:01                                                                                                   ` Jarek Poplawski
2008-08-01  7:01                                                                                                     ` David Miller
2008-08-01  7:41                                                                                                       ` Jarek Poplawski
2008-07-25  6:20                           ` [lockdep warning] AOE / networking: aoenet_xmit: noop_qdisc.q.lock, INFO: inconsistent lock state at 0000000000000370 Ingo Molnar
2008-07-25  6:25                             ` David Miller
2008-07-25  7:26                               ` Ingo Molnar
2008-07-25  8:23                                 ` David Miller
2008-07-21 15:10       ` [crash] BUG: unable to handle kernel NULL pointer dereference " David Miller
2008-07-21 18:23     ` [crash] kernel BUG at net/core/dev.c:1328! Ingo Molnar
2008-07-21 18:35       ` Linus Torvalds
2008-07-21 18:46         ` Ingo Molnar
2008-07-21 19:30           ` Ingo Molnar
2008-07-22 11:21           ` [TCP bug] stuck distcc connections in latest -git Ingo Molnar
2008-07-22 13:45             ` David Newall
2008-07-22 13:57               ` Ingo Molnar
2008-07-22 14:54                 ` David Newall
2008-07-22 15:34                   ` Ingo Molnar
2008-07-22 21:12                     ` Willy Tarreau
2008-07-23  8:26                       ` Ingo Molnar
2008-07-24  6:04                         ` [TCP bug, regression] " Ingo Molnar
2008-07-24  6:32                           ` Ingo Molnar
2008-07-24  7:33                             ` Willy Tarreau
2008-07-24  8:35                               ` Ingo Molnar
2008-07-24  7:53                             ` Herbert Xu
2008-07-24  8:24                               ` Willy Tarreau
2008-07-24  8:27                               ` Ingo Molnar
2008-07-24  8:36                                 ` David Miller
2008-07-24  9:05                           ` Herbert Xu
2008-07-24  9:22                             ` David Miller
2008-07-24  9:34                               ` Ingo Molnar
2008-07-24 11:56                                 ` [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference Ingo Molnar
2008-07-24 11:59                                   ` Ingo Molnar
2008-07-24 12:03                                     ` Patrick McHardy
2008-07-24 12:22                                       ` Herbert Xu
2008-07-24 12:40                                         ` Pekka Enberg
2008-07-24 12:50                                           ` Herbert Xu
2008-07-24 12:56                                             ` Nick Piggin
2008-07-24 13:04                                               ` Herbert Xu
2008-07-24 13:13                                                 ` Nick Piggin
2008-07-24 13:32                                                   ` Pekka Enberg
2008-07-24 19:21                                                     ` Matt Mackall
2008-07-25  9:09                                                       ` Nick Piggin
2008-07-24 13:11                                             ` Matt Mackall
2008-07-24 14:37                                               ` Herbert Xu
2008-07-24 17:47                                                 ` Matt Mackall
2008-07-25  1:39                                                   ` Herbert Xu
2008-07-25  2:59                                                     ` Matt Mackall
2008-07-24 12:44                                       ` Pekka Enberg
2008-07-24 12:49                                         ` Patrick McHardy
2008-07-24 13:23                                           ` Pekka Enberg
2008-07-24 13:31                                             ` Patrick McHardy
2008-07-24 13:34                                               ` Pekka Enberg
2008-07-24 18:51                                                 ` Andrew Morton
2008-07-24 18:55                                                   ` Pekka Enberg
2008-07-24 20:58                                                     ` David Miller
2008-07-25  8:02                                                     ` Dieter Ries
2008-07-25 10:41                                                       ` Pekka Enberg
2008-07-24 19:35                                                   ` Ingo Molnar
2008-07-26 16:09                                                     ` Patrick McHardy
2008-07-26 17:34                                                       ` Ingo Molnar
2008-07-26 13:43                                                   ` Patrick McHardy
2008-07-24 21:13                                           ` Linus Torvalds
2008-07-24 22:09                                             ` David Miller
2008-07-26 13:47                                             ` Patrick McHardy
2008-08-01 21:10                                             ` Paul E. McKenney
2008-07-24 14:23                                     ` Ingo Molnar
2008-07-24 15:23                                       ` Patrick McHardy
2008-07-24 15:32                                         ` Ingo Molnar
2008-07-24 15:34                                           ` Patrick McHardy
2008-07-24 18:00                                           ` Krzysztof Oledzki
2008-07-24 13:01                               ` [TCP bug, regression] stuck distcc connections in latest -git Willy Tarreau
2008-07-24  9:25                             ` Ingo Molnar
2008-07-24  9:29                               ` David Miller
2008-07-24 11:12                               ` Herbert Xu
2008-07-24  9:36                             ` Ilpo Järvinen
2008-07-24 10:03                               ` Ilpo Järvinen
2008-07-21 19:00         ` [crash] kernel BUG at net/core/dev.c:1328! David Miller
2008-07-21 19:20           ` Stefan Richter
2008-07-21 20:11             ` David Miller
2008-07-21 21:26               ` Stefan Richter
2008-07-21 19:44           ` Ingo Molnar
2008-07-21 20:20             ` David Miller
2008-07-21 15:07   ` [crash, bisected] Kernel BUG at ffffffff8079afb1 (__netif_schedule()) David Miller
2008-07-21 13:50 ` [GIT]: Networking Ingo Molnar
2008-07-21 14:15   ` Stefan Richter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).