1. 11 Feb, 2014 3 commits
    • Richard Yao's avatar
      9p/trans_virtio.c: Fix broken zero-copy on vmalloc() buffers · b6f52ae2
      Richard Yao authored
      The 9p-virtio transport does zero copy on things larger than 1024 bytes
      in size. It accomplishes this by returning the physical addresses of
      pages to the virtio-pci device. At present, the translation is usually a
      bit shift.
      
      That approach produces an invalid page address when we read/write to
      vmalloc buffers, such as those used for Linux kernel modules. Any
      attempt to load a Linux kernel module from 9p-virtio produces the
      following stack.
      
      [<ffffffff814878ce>] p9_virtio_zc_request+0x45e/0x510
      [<ffffffff814814ed>] p9_client_zc_rpc.constprop.16+0xfd/0x4f0
      [<ffffffff814839dd>] p9_client_read+0x15d/0x240
      [<ffffffff811c8440>] v9fs_fid_readn+0x50/0xa0
      [<ffffffff811c84a0>] v9fs_file_readn+0x10/0x20
      [<ffffffff811c84e7>] v9fs_file_read+0x37/0x70
      [<ffffffff8114e3fb>] vfs_read+0x9b/0x160
      [<ffffffff81153571>] kernel_read+0x41/0x60
      [<ffffffff810c83ab>] copy_module_from_fd.isra.34+0xfb/0x180
      
      Subsequently, QEMU will die printing:
      
      qemu-system-x86_64: virtio: trying to map MMIO memory
      
      This patch enables 9p-virtio to correctly handle this case. This not
      only enables us to load Linux kernel modules off virtfs, but also
      enables ZFS file-based vdevs on virtfs to be used without killing QEMU.
      
      Special thanks to both Avi Kivity and Alexander Graf for their
      interpretation of QEMU backtraces. Without their guidence, tracking down
      this bug would have taken much longer. Also, special thanks to Linus
      Torvalds for his insightful explanation of why this should use
      is_vmalloc_addr() instead of is_vmalloc_or_module_addr():
      
      https://lkml.org/lkml/2014/2/8/272Signed-off-by: default avatarRichard Yao <ryao@gentoo.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b6f52ae2
    • dingtianhong's avatar
      bonding: remove unwanted bond lock for enslave processing · 6b8790b5
      dingtianhong authored
      The bond enslave processing don't hold bond->lock anymore,
      so release an unlocked rw lock will cause warning message,
      remove the unwanted read_unlock(&bond->lock).
      
      Cc: Jay Vosburgh <fubar@us.ibm.com>
      Cc: Veaceslav Falico <vfalico@redhat.com>
      Cc: Andy Gospodarek <andy@greyhouse.net>
      Signed-off-by: default avatarDing Tianhong <dingtianhong@huawei.com>
      Acked-by: default avatarVeaceslav Falico <vfalico@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6b8790b5
    • Liu Junliang's avatar
  2. 10 Feb, 2014 31 commits
  3. 09 Feb, 2014 2 commits
    • David S. Miller's avatar
      Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless · 872c7e6f
      David S. Miller authored
      John W. Linville says:
      
      ====================
      Please pull this batch of fixes intended for the 3.14 stream!
      
      For the mac80211 bits, Johannes says:
      
      "This is just a collection of small fixes, the commit logs explain the
      details. The only thing that isn't strictly a fix is the 5/10 MHz
      enabling, I had forgotten this and there's little point in waiting
      longer. The patch simply removes the force-disable code that I put in
      when there was a problem with the userspace API (that has long been
      fixed.)"
      
      For the iwlwifi bits, Emmanuel says:
      
      "I have an important fix that disables A band in case the driver thought
      it was enabled, and the firmware disagreed. We ended up making the
      firmware unhappy. I also fix the station table in AP mode and fix the
      scan while we have BT working.
      Johannes removes a static variable that could potentially lead to to
      issues on multi-device setups and disables scheduled scan to avoid
      issues with old versions of wpa_supplicant.
      A small fix from David on scan and a few new device IDs for 7265."
      
      On top of that...
      
      Oleksij Rempel adds a USB ID to the ar5523 driver and changes the
      default powersave setting for ath9k_htc to "off", due to observed
      stability issues (based on an equivalent ath9k patch).
      
      Stanislaw Gruszka similarly disables powersave for a couple of rt2x00
      drivers.  He also fixes a couple of scheduling while atomic issues
      in ath9k_htc.
      
      Sujith Manoharan rounds-out the powersave disables with one for ath9k.
      He also fixes a build prolem with ath9k on ARM and fixes an ath9k Tx
      power calculation.
      
      Finally, Andrea Merello fixes a couple of lingering DMA mapping
      problems in the rtl8180 driver.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      872c7e6f
    • David S. Miller's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf · f41f0319
      David S. Miller authored
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter/nftables/IPVS fixes for net
      
      The following patchset contains Netfilter/IPVS fixes, mostly nftables
      fixes, most relevantly they are:
      
      * Fix a crash in the h323 conntrack NAT helper due to expectation list
        corruption, from Alexey Dobriyan.
      
      * A couple of RCU race fixes for conntrack, one manifests by hitting BUG_ON
        in nf_nat_setup_info() and the destroy path, patches from Andrey Vagin and
        me.
      
      * Dump direction attribute in nft_ct only if it is set, from Arturo
        Borrero.
      
      * Fix IPVS bug in its own connection tracking system that may lead to
        copying only 4 bytes of the IPv6 address when initializing the
        ip_vs_conn object, from Michal Kubecek.
      
      * Fix -EBUSY errors in nftables when deleting the rules, chain and tables
        in a row due mixture of asynchronous and synchronous object releasing,
        from me.
      
      * Three fixes for the nf_tables set infrastructure when using intervals and
        mappings, from me.
      
      * Four patches to fixing the nf_tables log, reject and ct expressions from
        the new inet table, from Patrick McHardy.
      
      * Fix memory overrun in the map that is used to dynamically allocate names
        from anonymous sets, also from Patrick.
      
      * Fix a potential oops if you dump a set with NFPROTO_UNSPEC and a table
        name, from Patrick McHardy.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f41f0319
  4. 07 Feb, 2014 4 commits