1. 16 Jun, 2012 2 commits
  2. 15 Jun, 2012 24 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c83119a9
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar.
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/smp: Fix topology checks on AMD MCM CPUs
        x86/mm: Fix some kernel-doc warnings
        x86, um: Correct syscall table type attributes breaking gcc 4.8
      c83119a9
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ed21a66c
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar.
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        watchdog: Quiet down the boot messages
        perf/x86: Fix broken LBR fixup code
        tracing: Have tracing_off() actually turn tracing off
      ed21a66c
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a95f9b6e
      Linus Torvalds authored
      Pull core updates (RCU and locking) from Ingo Molnar:
       "Most of the diffstat comes from the RCU slow boot regression fixes,
        but there's also a debuggability improvements/fixes."
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        memblock: Document memblock_is_region_{memory,reserved}()
        rcu: Precompute RCU_FAST_NO_HZ timer offsets
        rcu: Move RCU_FAST_NO_HZ per-CPU variables to rcu_dynticks structure
        rcu: Update RCU_FAST_NO_HZ tracing for lazy callbacks
        rcu: RCU_FAST_NO_HZ detection of callback adoption
        spinlock: Indicate that a lockup is only suspected
        kdump: Execute kmsg_dump(KMSG_DUMP_PANIC) after smp_send_stop()
        panic: Make panic_on_oops configurable
      a95f9b6e
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · a41b0e71
      Linus Torvalds authored
      Pull target updates from Nicholas Bellinger:
       "This series contains post merge qla_target.c / tcm_qla2xxx bugfixes
        from the past weeks, including the patch to allow target-core to use
        an optional session shutdown callback to help address an active I/O
        shutdown bug in tcm_qla2xxx code (Joern).
      
        Also included is a target regression bugfix releated to explict ALUA
        target port group CDB emulation that is CC'ed to stable (Roland)."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        qla2xxx: Remove version.h header file inclusion
        tcm_qla2xxx: Handle malformed wwn strings properly
        tcm_qla2xxx: tcm_qla2xxx_handle_tmr() can be static
        qla2xxx: Don't leak commands we give up on in qlt_do_work()
        qla2xxx: Don't crash if we can't find cmd for failed CTIO
        tcm_qla2xxx: Don't insert nacls without sessions into the btree
        target: Return error to initiator if SET TARGET PORT GROUPS emulation fails
        tcm_qla2xxx: Clear session s_id + loop_id earlier during shutdown
        tcm_qla2xxx: Convert to TFO->put_session() usage
        target: Add TFO->put_session() caller for HW fabric session shutdown
      a41b0e71
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 718f58ad
      Linus Torvalds authored
      Pull btrfs update from Chris Mason:
       "The dates look like I had to rebase this morning because there was a
        compiler warning for a printk arg that I had missed earlier.
      
        These are all fixes, including one to prevent using stale pointers for
        device names, and lots of fixes around transaction abort cleanups
        (Josef, Liu Bo).
      
        Jan Schmidt also sent in a number of fixes for the new reference
        number tracking code.
      
        Liu Bo beat me to updating the MAINTAINERS file.  Since he thought to
        also fix the git url, I kept his commit."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (24 commits)
        Btrfs: update MAINTAINERS info for BTRFS FILE SYSTEM
        Btrfs: destroy the items of the delayed inodes in error handling routine
        Btrfs: make sure that we've made everything in pinned tree clean
        Btrfs: avoid memory leak of extent state in error handling routine
        Btrfs: do not resize a seeding device
        Btrfs: fix missing inherited flag in rename
        Btrfs: fix incompat flags setting
        Btrfs: fix defrag regression
        Btrfs: call filemap_fdatawrite twice for compression
        Btrfs: keep inode pinned when compressing writes
        Btrfs: implement ->show_devname
        Btrfs: use rcu to protect device->name
        Btrfs: unlock everything properly in the error case for nocow
        Btrfs: fix btrfs_destroy_marked_extents
        Btrfs: abort the transaction if the commit fails
        Btrfs: wake up transaction waiters when aborting a transaction
        Btrfs: fix locking in btrfs_destroy_delayed_refs
        Btrfs: pass locked_page into extent_clear_unlock_delalloc if theres an error
        Btrfs: fix race in tree mod log addition
        Btrfs: add btrfs_next_old_leaf
        ...
      718f58ad
    • Liu Bo's avatar
      Btrfs: update MAINTAINERS info for BTRFS FILE SYSTEM · 9c106405
      Liu Bo authored
      Update to the latest btrfs's maintainer mail and git repo.
      Signed-off-by: default avatarLiu Bo <liubo2009@cn.fujitsu.com>
      Signed-off-by: default avatarChris Mason <chris.mason@fusionio.com>
      9c106405
    • Miao Xie's avatar
      Btrfs: destroy the items of the delayed inodes in error handling routine · 67cde344
      Miao Xie authored
      the items of the delayed inodes were forgotten to be freed, this patch
      fixes it.
      Signed-off-by: default avatarMiao Xie <miaox@cn.fujitsu.com>
      Signed-off-by: default avatarChris Mason <chris.mason@fusionio.com>
      67cde344
    • Liu Bo's avatar
      Btrfs: make sure that we've made everything in pinned tree clean · ed0eaa14
      Liu Bo authored
      Since we have two trees for recording pinned extents, we need to go through
      both of them to make sure that we've done everything clean.
      Signed-off-by: default avatarLiu Bo <liubo2009@cn.fujitsu.com>
      Signed-off-by: default avatarChris Mason <chris.mason@fusionio.com>
      ed0eaa14
    • Liu Bo's avatar
      Btrfs: avoid memory leak of extent state in error handling routine · 6e841e32
      Liu Bo authored
      We've forgotten to clear extent states in pinned tree, which will results in
      space counter mismatch and memory leak:
      
      WARNING: at fs/btrfs/extent-tree.c:7537 btrfs_free_block_groups+0x1f3/0x2e0 [btrfs]()
      ...
      space_info 2 has 8380416 free, is not full
      space_info total=12582912, used=4096, pinned=4096, reserved=0, may_use=0, readonly=4194304
      btrfs state leak: start 29364224 end 29376511 state 1 in tree ffff880075f20090 refs 1
      ...
      Signed-off-by: default avatarLiu Bo <liubo2009@cn.fujitsu.com>
      Signed-off-by: default avatarChris Mason <chris.mason@fusionio.com>
      6e841e32
    • Liu Bo's avatar
      Btrfs: do not resize a seeding device · 4e42ae1b
      Liu Bo authored
      Seeding devices are not supposed to change any more.
      Signed-off-by: default avatarLiu Bo <liubo2009@cn.fujitsu.com>
      Signed-off-by: default avatarChris Mason <chris.mason@fusionio.com>
      4e42ae1b
    • Liu Bo's avatar
      Btrfs: fix missing inherited flag in rename · bc178237
      Liu Bo authored
      When we move a file into a directory with compression flag, we need to
      inherite BTRFS_INODE_COMPRESS and clear BTRFS_INODE_NOCOMPRESS as well.
      But if we move a file into a directory without compression flag, we need
      to clear both of them.
      
      It is the way how our setflags deals with compression flag, so keep
      the same behaviour here.
      Signed-off-by: default avatarLiu Bo <liubo2009@cn.fujitsu.com>
      Signed-off-by: default avatarChris Mason <chris.mason@fusionio.com>
      bc178237
    • Chris Mason's avatar
    • Li Zefan's avatar
      Btrfs: fix incompat flags setting · 69e380d1
      Li Zefan authored
      It's a bug, but it happens to work, as BTRFS_COMPRESS_LZO == 2, which
      has only one bit set.
      Signed-off-by: default avatarLi Zefan <lizefan@huawei.com>
      69e380d1
    • Li Zefan's avatar
      Btrfs: fix defrag regression · 6c282eb4
      Li Zefan authored
      If a file has 3 small extents:
      
      | ext1 | ext2 | ext3 |
      
      Running "btrfs fi defrag" will only defrag the last two extents, if those
      extent mappings hasn't been read into memory from disk.
      
      This bug was introduced by commit 17ce6ef8
      ("Btrfs: add a check to decide if we should defrag the range")
      
      The cause is, that commit looked into previous and next extents using
      lookup_extent_mapping() only.
      
      While at it, remove the code that checks the previous extent, since
      it's sufficient to check the next extent.
      Signed-off-by: default avatarLi Zefan <lizefan@huawei.com>
      6c282eb4
    • Josef Bacik's avatar
      Btrfs: call filemap_fdatawrite twice for compression · 7ddf5a42
      Josef Bacik authored
      I removed this in an earlier commit and I was wrong.  Because compression
      can return from filemap_fdatawrite() without having actually set any of it's
      pages as writeback() it can make filemap_fdatawait() do essentially nothing,
      and then we won't find any ordered extents because they may not have been
      created yet.  So not only does this make fsync() completely useless, but it
      will also screw up if you truncate on a non-page aligned offset since we
      zero out the end and then wait on ordered extents and then call drop caches.
      We can drop the cache before the io completes and then we try to unpin the
      extent we just wrote we won't find it and everything goes sideways.  So fix
      this by putting it back and put a giant comment there to keep me from trying
      to remove it in the future.  Thanks,
      Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
      7ddf5a42
    • Josef Bacik's avatar
      Btrfs: keep inode pinned when compressing writes · 8180ef88
      Josef Bacik authored
      A user reported lots of problems using compression on the new code and it
      turns out part of the problem was that igrab() was failing when we added a
      new ordered extent.  This is because when writing out an inode under
      compression we immediately return without actually doing anything to the
      pages, and then in another thread at some point down the line actually do
      the ordered dance.  The problem is between the point that we start writeback
      and we actually add the ordered extent we could be trying to reclaim the
      inode, which makes igrab() return NULL.  So we need to do an igrab() when we
      create the async extent and then drop it when we are done with it.  This
      makes sure we stay pinned in memory until the ordered extent can get a
      reference on it and we are good to go.  With this patch we no longer panic
      in btrfs_finish_ordered_io().  Thanks,
      Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
      8180ef88
    • Josef Bacik's avatar
      Btrfs: implement ->show_devname · 9c5085c1
      Josef Bacik authored
      Because btrfs can remove the device that was mounted we need to have a
      ->show_devname so that in this case we can print out some other device in
      the file system to /proc/mount.  So if there are multiple devices in a btrfs
      file system we will just print the device with the lowest devid that we can
      find.  This will make everything consistent and deal with device removal
      properly.  The drawback is if you mount with a device that is higher than
      the lowest devicd it won't show up as the mounted device in /proc/mounts,
      but this is a small price to pay. This was inspired by Miao Xie's patch.
      Thanks,
      Reviewed-by: default avatarMiao Xie <miaox@cn.fujitsu.com>
      Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
      9c5085c1
    • Josef Bacik's avatar
      Btrfs: use rcu to protect device->name · 606686ee
      Josef Bacik authored
      Al pointed out that we can just toss out the old name on a device and add a
      new one arbitrarily, so anybody who uses device->name in printk could
      possibly use free'd memory.  Instead of adding locking around all of this he
      suggested doing it with RCU, so I've introduced a struct rcu_string that
      does just that and have gone through and protected all accesses to
      device->name that aren't under the uuid_mutex with rcu_read_lock().  This
      protects us and I will use it for dealing with removing the device that we
      used to mount the file system in a later patch.  Thanks,
      Reviewed-by: default avatarDavid Sterba <dsterba@suse.cz>
      Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
      606686ee
    • Josef Bacik's avatar
      Btrfs: unlock everything properly in the error case for nocow · 17ca04af
      Josef Bacik authored
      I was getting hung on umount when a transaction was aborted because a range
      of one of the free space inodes was still locked.  This is because the nocow
      stuff doesn't unlock anything on error.  This fixed the problem and I
      verified that is what was happening.  Thanks,
      Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
      17ca04af
    • Josef Bacik's avatar
      Btrfs: fix btrfs_destroy_marked_extents · ee670f0a
      Josef Bacik authored
      So we're forcing the eb's to have their ref count set to 1 so invalidatepage
      works but this breaks lots of things, for example root nodes, and is just
      plain wrong, we don't need to just evict all of this stuff.  Also drop the
      invalidatepage altogether and add a page_cache_release().  With this patch
      we no longer hang when trying to access the root nodes after an aborted
      transaction and we no longer leak memory.  Thanks,
      Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
      ee670f0a
    • Josef Bacik's avatar
      Btrfs: abort the transaction if the commit fails · 7b8b92af
      Josef Bacik authored
      If a transaction commit fails we don't abort it so we don't set an error on
      the file system.  This patch fixes that by actually calling the abort stuff
      and then adding a check for a fs error in the transaction start stuff to
      make sure it is caught properly.  Thanks,
      Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
      7b8b92af
    • Josef Bacik's avatar
      Btrfs: wake up transaction waiters when aborting a transaction · d7096fc3
      Josef Bacik authored
      I was getting lots of hung tasks and a NULL pointer dereference because we
      are not cleaning up the transaction properly when it aborts.  First we need
      to reset the running_transaction to NULL so we don't get a bad dereference
      for any start_transaction callers after this.  Also we cannot rely on
      waitqueue_active() since it's just a list_empty(), so just call wake_up()
      directly since that will do the barrier for us and such.  Thanks,
      Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
      d7096fc3
    • Josef Bacik's avatar
      Btrfs: fix locking in btrfs_destroy_delayed_refs · b939d1ab
      Josef Bacik authored
      The transaction abort stuff was throwing warnings from the list debugging
      code because we do a list_del_init outside of the delayed_refs spin lock.
      The delayed refs locking makes baby Jesus cry so it's not hard to get wrong,
      but we need to take the ref head mutex to make sure it's not being processed
      currently, and so if it is we need to drop the spin lock and then take and
      drop the mutex and do the search again.  If we can take the mutex then we
      can safely remove the head from the list and carry on.  Now when the
      transaction aborts I don't get the list debugging warnings.  Thanks,
      Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
      b939d1ab
    • Josef Bacik's avatar
      Btrfs: pass locked_page into extent_clear_unlock_delalloc if theres an error · beb42dd7
      Josef Bacik authored
      While doing my enospc work I got a transaction abortion that resulted in a
      panic when we tried to unlock_page() an already unlocked page.  This is
      because we aren't calling extent_clear_unlock_delalloc with the locked page
      so it was unlocking all the pages in the range.  This is wrong since
      __extent_writepage expects to have the page locked still unless we return
      *page_started as 1.  This should keep us from panicing.  Thanks,
      Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
      beb42dd7
  3. 14 Jun, 2012 10 commits
    • Jan Schmidt's avatar
      Btrfs: fix race in tree mod log addition · 3310c36e
      Jan Schmidt authored
      When adding to the tree modification log, we grab two locks at different
      stages. We must not drop the outer lock until we're done with section
      protected by the inner lock. This moves the unlock call for the outer lock
      to the appropriate position.
      Signed-off-by: default avatarJan Schmidt <list.btrfs@jan-o-sch.net>
      3310c36e
    • Jan Schmidt's avatar
      Btrfs: add btrfs_next_old_leaf · 3d7806ec
      Jan Schmidt authored
      To make sense of the tree mod log, the backref walker not only needs
      btrfs_search_old_slot, but it also called btrfs_next_leaf, which in turn was
      calling btrfs_search_slot. This obviously didn't give the correct result.
      
      This commit adds btrfs_next_old_leaf, a drop-in replacement for
      btrfs_next_leaf with a time_seq parameter. If it is zero, it behaves exactly
      like btrfs_next_leaf. If it is non-zero, it will use btrfs_search_old_slot
      with this time_seq parameter.
      Signed-off-by: default avatarJan Schmidt <list.btrfs@jan-o-sch.net>
      3d7806ec
    • Jan Schmidt's avatar
      Btrfs: fix return value for __tree_mod_log_oldest_root · a95236d9
      Jan Schmidt authored
      In __tree_mod_log_oldest_root() we must return the found operation even if
      it's not a ROOT_REPLACE operation. Otherwise, the caller assumes that there
      are no operations to be rewinded and returns immediately.
      
      The code in the caller is modified to improve readability.
      Signed-off-by: default avatarJan Schmidt <list.btrfs@jan-o-sch.net>
      a95236d9
    • Jan Schmidt's avatar
      Btrfs: use btrfs_read_lock_root_node in get_old_root · 8ba97a15
      Jan Schmidt authored
      get_old_root could race with root node updates because we weren't locking
      the node early enough. Use btrfs_read_lock_root_node to grab the root locked
      in the very beginning and release the lock as soon as possible (just like
      btrfs_search_slot does).
      Signed-off-by: default avatarJan Schmidt <list.btrfs@jan-o-sch.net>
      8ba97a15
    • Jan Schmidt's avatar
      Btrfs: remove obsolete btrfs_next_leaf call from __resolve_indirect_ref · f617e2fd
      Jan Schmidt authored
      When resolving indirect refs, we used to call btrfs_next_leaf in case we
      didn't find an exact match. While we should find exact matches most of the
      time, in case we don't, we must continue searching. Treating those matches
      differently depending on the level we're searching doesn't make sense.
      
      Even worse, we might end up searching for a key larger than the largest, in
      which case there is no next_leaf and subsequent jobs would fail. This commit
      drops the bogous lines.
      Signed-off-by: default avatarJan Schmidt <list.btrfs@jan-o-sch.net>
      f617e2fd
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/virt/kvm/kvm · 424d54d2
      Linus Torvalds authored
      Pull kvm fix from Marcelo Tosatti:
       "Fix a spurious warning on CPU offline path"
      
      * git://git.kernel.org/pub/scm/virt/kvm/kvm:
        x86: kvmclock: remove check_and_clear_guest_paused warning
      424d54d2
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-fixes-for-v3.5' of... · 09531359
      Linus Torvalds authored
      Merge tag 'pinctrl-fixes-for-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
      
      Pull pinctrl fixes from Linus Walleij:
       - section markup fixes
       - clk_prepare() fix to conform to the clk API
       - memory leaks
       - incorrect debug messages
       - bad errorpaths
       - typos
      
      * tag 'pinctrl-fixes-for-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: pinctrl-mxs: set platform driver data to NULL at errpath and at unregister
        pinctrl: pinctrl-mxs: Take care of frees if the kzalloc fails
        pinctrl: pinctrl-imx: fix incorrect debug message of maps
        pinctrl: pinctrl-imx: free if of_get_parent fails to get the parent node
        pinctrl: pinctrl-imx: free allocated pinctrl_map structure only once and use kernel facilities for IMX_PMX_DUMP
        pinctrl: nomadik: fix up typo
        pinctrl: nomadik: add clk_prepare() call
        pinctrl: fix a minor harmless typo
        pinctrl: sirf: mark of_device_id match table as __devinitconst
      09531359
    • Linus Torvalds's avatar
      Merge tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · b532ff20
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
      
       - Fix a regression of USB-audio PCM assignment since 3.4
       - A few VGA-switcheroo-related fixes for proper HDMI audio enablement
       - Fixed the missing initializations of HD-audio verbs, which may have
         resulted in various breakage
       - Some driver-specific ASoC updates
       - A few fixes for the dynamic PCM code
       - The addition of pinctrl support for the i.MX audmux which didn't make
         it into -rc1 due to cross tree dependency issues
       - A few minor fixes in compress API codes
      
      * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Don't forget to call init verbs added by fixup list
        ALSA: HDA: Pin fixup for Zotac Z68 motherboard
        ALSA: compress_core: cleanup pointers on stop
        ALSA: compress_core: don't wake up on pause
        ALSA: hda - Fix detection of Creative SoundCore3D controllers
        vga_switcheroo: Enable/disable audio clients at the right time
        ALSA: hda - HDMI Audio init all connectors when VGA-switcheroo is off
        vga_switcheroo: Fix error without CONFIG_VGA_SWITCHEROO
        ALSA: hda - Fix uninitialized HDMI controllers with VGA-switcheroo
        vga_switcheroo: Add a helper function to get the client state
        ALSA: usb-audio: Fix substream assignments
        ASoC: tegra: add MODULE_DEVICE_TABLE to tegra30_ahub
        ASoC: wm2000: Always use a 4s timeout for the firmware
        ASoC: dapm: Fix input list to use source widgets
        ASoC: dpcm: Fix dpcm_get_be() to check that DAI is BE
        ASoC: wm8994: Apply volume updates with clocks enabled
        ASoC: wm8994: Ensure all AIFnCLK events are run from the _late variants
        ASoC: imx-audmux: add pinctrl support
        ASoC: dapm: Fix connected widget capture path query.
      b532ff20
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · fea7c783
      Linus Torvalds authored
      Pull networking fixes from David S. Miller:
      
      This has the fix for the wireless issues I ran into the other week as
      well as:
      
       1) Fix CAN c_can driver transmit handling resulting in BUG check
          triggers, from AnilKumar Ch.
      
       2) Fix packet drop monitor sleeping in atomic context, from Eric
          Dumazet.
      
       3) Fix mv643xx_eth driver build regression, from Andrew Lunn.
      
       4) Inetpeer freeing needs an RCU grace period in order to avoid races
          during tree invalidation.  From Eric Dumazet.
      
       5) Fix endianness bugs in xt_HMARK netfilter module, from Hans
          Schillstrom.
      
       6) Add proper module refcounting to l2tp_eth to avoid crash on module
          unload, from Eric Dumazet.
      
       7) Fix truncation of neighbour entry dumps due to logic errors in
          neigh_dump_info() and friends, from Eric Dumazet.
      
       8) The conversion of fib6_age() to dst_neigh_lookup() accidently
          reversed the logic of a flags test, fix from Thomas Graf.
      
       9) Fix checksum configuration in newer sky2 chips, from Stephen
          Hemminger.
      
      10) Revert BQL support in NIU driver, doesn't work.
      
      11) l2tp_ip_sendmsg() illegally uses a route without a proper reference.
          From Eric Dumazet.
      
      12) be2net driver references an SKB after it's potentially been freed,
          also from Eric Dumazet.
      
      13) Fix RCU stalls in dummy net driver init.  Also from Eric Dumazet.
      
      14) lpc_eth has several bugs in it's transmit engine leading to packet
          leaks and improper queue wakes, from Eric Dumazet.
      
      15) Apply short DMA workaround to more tg3 chips, from Matt Carlson.
      
      16) Add tilegx network driver.
      
      17) Bonding queue mapping for a packet can get corrupted, fix from Eric
          Dumazet.
      
      18) Fix bug in netpoll_send_udp() SKB management that can leave garbage
          in the payload in certain situations.  From Eric Dumazet.
      
      19) bnx2x driver interprets chip RX checksum offload incorrectly in
          encapsulation situations.  Fix from Eric Dumazet.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (75 commits)
        bnx2x: fix checksum validation
        netpoll: fix netpoll_send_udp() bugs
        bonding: Fix corrupted queue_mapping
        bonding:record primary when modify it via sysfs
        tilegx network driver: initial support
        tg3: Apply short DMA frag workaround to 5906
        net: stmmac: Fix clock en-/disable calls
        lpc_eth: fix tx completion
        lpc_eth: add missing ndo_change_mtu()
        dummy: fix rcu_sched self-detected stalls
        net: Reorder initialization in ip_route_output to fix gcc warning
        virtio-net: fix a race on 32bit arches
        r8169: avoid NAPI scheduling delay.
        net: Make linux/tcp.h C++ friendly (trivial)
        netdev: fix drivers/net/phy/ kernel-doc warnings
        net/core: fix kernel-doc warnings
        be2net: fix a race in be_xmit()
        l2tp: fix a race in l2tp_ip_sendmsg()
        mac80211: add back channel change flag
        NFC: Fix possible NULL ptr deref when getting the name of a socket
        ...
      fea7c783
    • Don Zickus's avatar
      watchdog: Quiet down the boot messages · a7027046
      Don Zickus authored
      A bunch of bugzillas have complained how noisy the nmi_watchdog
      is during boot-up especially with its expected failure cases
      (like virt and bios resource contention).
      
      This is my attempt to quiet them down and keep it less confusing
      for the end user.  What I did is print the message for cpu0 and
      save it for future comparisons.  If future cpus have an
      identical message as cpu0, then don't print the redundant info.
      However, if a future cpu has a different message, happily print
      that loudly.
      
      Before the change, you would see something like:
      
          ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
          CPU0: Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz stepping 0a
          Performance Events: PEBS fmt0+, Core2 events, Intel PMU driver.
          ... version:                2
          ... bit width:              40
          ... generic registers:      2
          ... value mask:             000000ffffffffff
          ... max period:             000000007fffffff
          ... fixed-purpose events:   3
          ... event mask:             0000000700000003
          NMI watchdog enabled, takes one hw-pmu counter.
          Booting Node   0, Processors  #1
          NMI watchdog enabled, takes one hw-pmu counter.
           #2
          NMI watchdog enabled, takes one hw-pmu counter.
           #3 Ok.
          NMI watchdog enabled, takes one hw-pmu counter.
          Brought up 4 CPUs
          Total of 4 processors activated (22607.24 BogoMIPS).
      
      After the change, it is simplified to:
      
          ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
          CPU0: Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz stepping 0a
          Performance Events: PEBS fmt0+, Core2 events, Intel PMU driver.
          ... version:                2
          ... bit width:              40
          ... generic registers:      2
          ... value mask:             000000ffffffffff
          ... max period:             000000007fffffff
          ... fixed-purpose events:   3
          ... event mask:             0000000700000003
          NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
          Booting Node   0, Processors  #1 #2 #3 Ok.
          Brought up 4 CPUs
      
      V2: little changes based on Joe Perches' feedback
      V3: printk cleanup based on Ingo's feedback; checkpatch fix
      V4: keep printk as one long line
      V5: Ingo fix ups
      Reported-and-tested-by: default avatarNathan Zimmer <nzimmer@sgi.com>
      Signed-off-by: default avatarDon Zickus <dzickus@redhat.com>
      Cc: nzimmer@sgi.com
      Cc: joe@perches.com
      Link: http://lkml.kernel.org/r/1339594548-17227-1-git-send-email-dzickus@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      a7027046
  4. 13 Jun, 2012 4 commits
    • Eric Dumazet's avatar
      bnx2x: fix checksum validation · d6cb3e41
      Eric Dumazet authored
      bnx2x driver incorrectly sets ip_summed to CHECKSUM_UNNECESSARY on
      encapsulated segments. TCP stack happily accepts frames with bad
      checksums, if they are inside a GRE or IPIP encapsulation.
      
      Our understanding is that if no IP or L4 csum validation was done by the
      hardware, we should leave ip_summed as is (CHECKSUM_NONE), since
      hardware doesn't provide CHECKSUM_COMPLETE support in its cqe.
      
      Then, if IP/L4 checksumming was done by the hardware, set
      CHECKSUM_UNNECESSARY if no error was flagged.
      
      Patch based on findings and analysis from Robert Evans
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: Yaniv Rosner <yanivr@broadcom.com>
      Cc: Merav Sicron <meravs@broadcom.com>
      Cc: Tom Herbert <therbert@google.com>
      Cc: Robert Evans <evansr@google.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Acked-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d6cb3e41
    • Eric Dumazet's avatar
      netpoll: fix netpoll_send_udp() bugs · 954fba02
      Eric Dumazet authored
      Bogdan Hamciuc diagnosed and fixed following bug in netpoll_send_udp() :
      
      "skb->len += len;" instead of "skb_put(skb, len);"
      
      Meaning that _if_ a network driver needs to call skb_realloc_headroom(),
      only packet headers would be copied, leaving garbage in the payload.
      
      However the skb_realloc_headroom() must be avoided as much as possible
      since it requires memory and netpoll tries hard to work even if memory
      is exhausted (using a pool of preallocated skbs)
      
      It appears netpoll_send_udp() reserved 16 bytes for the ethernet header,
      which happens to work for typicall drivers but not all.
      
      Right thing is to use LL_RESERVED_SPACE(dev)
      (And also add dev->needed_tailroom of tailroom)
      
      This patch combines both fixes.
      
      Many thanks to Bogdan for raising this issue.
      Reported-by: default avatarBogdan Hamciuc <bogdan.hamciuc@freescale.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Tested-by: default avatarBogdan Hamciuc <bogdan.hamciuc@freescale.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Reviewed-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Reviewed-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      954fba02
    • Linus Torvalds's avatar
      Merge tag 'sh-for-linus' of git://github.com/pmundt/linux-sh · 790b9d4b
      Linus Torvalds authored
      Pull SuperH fixes from Paul Mundt.
      
      * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh:
        sh: Kill off additional asm-generic wrappers.
        sh: Setup CROSS_COMPILE at the top
        sh: Fix up link time defsym warnings.
        sh: use the new generic strnlen_user() function
        sh: switch to generic strncpy_from_user().
        sh: Kill off last dead UBC header
        serial: sh-sci: Make probe fail for ports that exceed the maximum count
        serial: sh-sci: Fix probe error paths
        clocksource: sh_tmu: Use clockevents_config_and_register().
        clocksource: sh_tmu: Convert timer lock to raw spinlock.
        clocksource: sh_mtu2: Convert timer lock to raw spinlock.
        clocksource: sh_cmt: Convert timer lock to raw spinlock.
        bug.h: need linux/kernel.h for TAINT_WARN.
        sh: convert to kbuild asm-generic support.
        sh64: Fix up fallout from generic init_task conversion.
        sh: arch/sh/kernel/process.c needs asm/fpu.h for unlazy_fpu().
      790b9d4b
    • Linus Torvalds's avatar
      Merge branch 'fixes-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds · c02feeea
      Linus Torvalds authored
      Pull led fixes from Bryan Wu.
      
      * 'fixes-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
        leds: Make LEDS_ASIC3 and LEDS_RENESAS_TPU depend on LEDS_CLASS=y
        leds: fixed a coding style issue.
        leds: don't disable blinking when writing the same value to delay_on or delay_off
      c02feeea