1. 16 1月, 2014 1 次提交
  2. 05 12月, 2013 1 次提交
  3. 04 12月, 2013 1 次提交
  4. 07 11月, 2013 1 次提交
  5. 05 11月, 2013 1 次提交
  6. 29 10月, 2013 3 次提交
  7. 17 10月, 2013 3 次提交
    • G
      virtio: convert bus code to use dev_groups · 3736dab6
      Greg Kroah-Hartman 提交于
      The dev_attrs field of struct bus_type is going away soon, dev_groups
      should be used instead.  This converts the virtio bus code to use the
      correct field.
      
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: <virtualization@lists.linux-foundation.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3736dab6
    • R
      virtio: use size-based config accessors. · 855e0c52
      Rusty Russell 提交于
      This lets the transport do endian conversion if necessary, and insulates
      the drivers from the difference.
      
      Most drivers can use the simple helpers virtio_cread() and virtio_cwrite().
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      855e0c52
    • R
      virtio_ring: plug kmemleak false positive. · bb478d8b
      Rusty Russell 提交于
      unreferenced object 0xffff88003d467e20 (size 32):
        comm "softirq", pid 0, jiffies 4295197765 (age 6.364s)
        hex dump (first 32 bytes):
          28 19 bf 3d 00 00 00 00 0c 00 00 00 01 00 01 00  (..=............
          02 dc 51 3c 00 00 00 00 56 00 00 00 00 00 00 00  ..Q<....V.......
        backtrace:
          [<ffffffff8152db19>] kmemleak_alloc+0x59/0xc0
          [<ffffffff81102e93>] __kmalloc+0xf3/0x180
          [<ffffffff812db5d6>] vring_add_indirect+0x36/0x280
          [<ffffffff812dc59f>] virtqueue_add_outbuf+0xbf/0x4e0
          [<ffffffff813a8b30>] start_xmit+0x1a0/0x3b0
          [<ffffffff81445861>] dev_hard_start_xmit+0x2d1/0x4d0
          [<ffffffff81460052>] sch_direct_xmit+0xf2/0x1c0
          [<ffffffff81445c28>] dev_queue_xmit+0x1c8/0x460
          [<ffffffff814e3187>] ip6_finish_output2+0x1d7/0x470
          [<ffffffff814e34b0>] ip6_finish_output+0x90/0xb0
          [<ffffffff814e3507>] ip6_output+0x37/0xb0
          [<ffffffff815021eb>] igmp6_send+0x2db/0x470
          [<ffffffff81502645>] igmp6_timer_handler+0x95/0xa0
          [<ffffffff8104b57c>] call_timer_fn+0x2c/0x90
          [<ffffffff8104b7ba>] run_timer_softirq+0x1da/0x1f0
          [<ffffffff81045721>] __do_softirq+0xd1/0x1b0
      
      Address gets embedded in a descriptor via virt_to_phys().  See detach_buf,
      which frees it:
      
      	if (vq->vring.desc[i].flags & VRING_DESC_F_INDIRECT)
      		kfree(phys_to_virt(vq->vring.desc[i].addr));
      Reported-by: NChristoph Paasch <christoph.paasch@uclouvain.be>
      Fix-suggested-by: NChristoph Paasch <christoph.paasch@uclouvain.be>
      Typing-done-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      bb478d8b
  8. 23 9月, 2013 1 次提交
  9. 09 9月, 2013 1 次提交
    • A
      virtio_pci: pm: Use CONFIG_PM_SLEEP instead of CONFIG_PM · 9e266ece
      Aaron Lu 提交于
      The virtio_pci_freeze/restore are defined under CONFIG_PM but is used
      by SET_SYSTEM_SLEEP_PM_OPS macro, which is defined under
      CONFIG_PM_SLEEP. So if CONFIG_PM_SLEEP is not cofigured but
      CONFIG_PM_RUNTIME is, the following warning message appeared:
      
      drivers/virtio/virtio_pci.c:770:12: warning: ‘virtio_pci_freeze’ defined but not used [-Wunused-function]
       static int virtio_pci_freeze(struct device *dev)
                  ^
      drivers/virtio/virtio_pci.c:790:12: warning: ‘virtio_pci_restore’ defined but not used [-Wunused-function]
       static int virtio_pci_restore(struct device *dev)
                  ^
      Fix it by changing CONFIG_PM to CONFIG_PM_SLEEP.
      Signed-off-by: NAaron Lu <aaron.lu@intel.com>
      Reviewed-by: NAmit Shah <amit.shah@redhat.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      9e266ece
  10. 10 7月, 2013 1 次提交
  11. 04 7月, 2013 1 次提交
    • J
      mm: correctly update zone->managed_pages · 3dcc0571
      Jiang Liu 提交于
      Enhance adjust_managed_page_count() to adjust totalhigh_pages for
      highmem pages.  And change code which directly adjusts totalram_pages to
      use adjust_managed_page_count() because it adjusts totalram_pages,
      totalhigh_pages and zone->managed_pages altogether in a safe way.
      
      Remove inc_totalhigh_pages() and dec_totalhigh_pages() from xen/balloon
      driver bacause adjust_managed_page_count() has already adjusted
      totalhigh_pages.
      
      This patch also fixes two bugs:
      
      1) enhances virtio_balloon driver to adjust totalhigh_pages when
         reserve/unreserve pages.
      2) enhance memory_hotplug.c to adjust totalhigh_pages when hot-removing
         memory.
      
      We still need to deal with modifications of totalram_pages in file
      arch/powerpc/platforms/pseries/cmm.c, but need help from PPC experts.
      
      [akpm@linux-foundation.org: remove ifdef, per Wanpeng Li, virtio_balloon.c cleanup, per Sergei]
      [akpm@linux-foundation.org: export adjust_managed_page_count() to modules, for drivers/virtio/virtio_balloon.c]
      Signed-off-by: NJiang Liu <jiang.liu@huawei.com>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: Wen Congyang <wency@cn.fujitsu.com>
      Cc: Tang Chen <tangchen@cn.fujitsu.com>
      Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: <sworddragon2@aol.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jianguo Wu <wujianguo@huawei.com>
      Cc: Joonsoo Kim <js1304@gmail.com>
      Cc: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Cc: Wu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3dcc0571
  12. 02 7月, 2013 2 次提交
    • L
      virtio_balloon: leak_balloon(): only tell host if we got pages deflated · 8c6bab4f
      Luiz Capitulino 提交于
      balloon_page_dequeue() can return NULL.  If it does for the first page
      being freed then leak_balloon() will create a scatter list with len=0.
      Which in turn seems to generate an invalid virtio request.
      
      I didn't get this in practice, I found it by code review.  On the other
      hand, such an invalid virtio request will cause errors in QEMU and
      fill_balloon() also performs the same check implemented by this commit.
      
      This bug was introduced in e2250429.
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      Acked-by: NRafael Aquini <aquini@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Cc: stable@kernel.org # 3.9
      8c6bab4f
    • A
      virtio-pci: fix leaks of msix_affinity_masks · f11335db
      Andrew Vagin 提交于
      vp_dev->msix_vectors should be initialized before allocating
      msix_affinity_masks, otherwise vp_free_vectors will not free these
      objects.
      
      unreferenced object 0xffff88010f969d88 (size 512):
        comm "systemd-udevd", pid 158, jiffies 4294673645 (age 80.545s)
        hex dump (first 32 bytes):
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        backtrace:
          [<ffffffff816e455e>] kmemleak_alloc+0x5e/0xc0
          [<ffffffff811aa7f1>] kmem_cache_alloc_node_trace+0x141/0x2c0
          [<ffffffff8133ba23>] alloc_cpumask_var_node+0x23/0x80
          [<ffffffff8133ba8e>] alloc_cpumask_var+0xe/0x10
          [<ffffffff813fdb3d>] vp_try_to_find_vqs+0x25d/0x810
          [<ffffffff813fe171>] vp_find_vqs+0x81/0xb0
          [<ffffffffa00d2a05>] init_vqs+0x85/0x120 [virtio_balloon]
          [<ffffffffa00d2c29>] virtballoon_probe+0xf9/0x1a0 [virtio_balloon]
          [<ffffffff813fb61e>] virtio_dev_probe+0xde/0x140
          [<ffffffff814452b8>] driver_probe_device+0x98/0x3a0
          [<ffffffff8144566b>] __driver_attach+0xab/0xb0
          [<ffffffff814432f4>] bus_for_each_dev+0x94/0xb0
          [<ffffffff81444f4e>] driver_attach+0x1e/0x20
          [<ffffffff81444910>] bus_add_driver+0x200/0x280
          [<ffffffff81445c14>] driver_register+0x74/0x160
          [<ffffffff813fb7d0>] register_virtio_driver+0x20/0x40
      
      v2: change msix_vectors uncoditionaly in vp_free_vectors
      
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Jason Wang <jasowang@redhat.com>
      Signed-off-by: NAndrew Vagin <avagin@openvz.org>
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Acked-by: NJason Wang <jasowang@redhat.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      f11335db
  13. 20 5月, 2013 1 次提交
  14. 20 3月, 2013 4 次提交
  15. 13 2月, 2013 1 次提交
  16. 11 2月, 2013 2 次提交
  17. 04 2月, 2013 1 次提交
  18. 12 1月, 2013 1 次提交
  19. 04 1月, 2013 1 次提交
    • G
      Drivers: virtio: remove __dev* attributes. · 8590dbc7
      Greg Kroah-Hartman 提交于
      CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
      markings need to be removed.
      
      This change removes the use of __devinit, __devexit_p, and __devexit
      from these drivers.
      
      Based on patches originally written by Bill Pemberton, but redone by me
      in order to handle some of the coding style issues better, by hand.
      
      Cc: Bill Pemberton <wfp5p@virginia.edu>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8590dbc7
  20. 18 12月, 2012 7 次提交
  21. 12 12月, 2012 1 次提交
    • R
      virtio_balloon: introduce migration primitives to balloon pages · e2250429
      Rafael Aquini 提交于
      Memory fragmentation introduced by ballooning might reduce significantly
      the number of 2MB contiguous memory blocks that can be used within a guest,
      thus imposing performance penalties associated with the reduced number of
      transparent huge pages that could be used by the guest workload.
      
      Besides making balloon pages movable at allocation time and introducing
      the necessary primitives to perform balloon page migration/compaction,
      this patch also introduces the following locking scheme, in order to
      enhance the syncronization methods for accessing elements of struct
      virtio_balloon, thus providing protection against concurrent access
      introduced by parallel memory migration threads.
      
       - balloon_lock (mutex) : synchronizes the access demand to elements of
                                struct virtio_balloon and its queue operations;
      
      [yongjun_wei@trendmicro.com.cn: fix missing unlock on error in fill_balloon()]
      [akpm@linux-foundation.org: avoid having multiple return points in fill_balloon()]
      [akpm@linux-foundation.org: fix printk warning]Signed-off-by: Rafael Aquini <aquini@redhat.com>
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e2250429
  22. 09 11月, 2012 1 次提交
    • C
      virtio: Don't access index after unregister. · 237242bd
      Cornelia Huck 提交于
      Virtio wants to release used indices after the corresponding
      virtio device has been unregistered. However, virtio does not
      hold an extra reference, giving up its last reference with
      device_unregister(), making accessing dev->index afterwards
      invalid.
      
      I actually saw problems when testing my (not-yet-merged)
      virtio-ccw code:
      
      - device_add virtio-net,id=xxx
      -> creates device virtio<n> with n>0
      
      - device_del xxx
      -> deletes virtio<n>, but calls ida_simple_remove with an
         index of 0
      
      - device_add virtio-net,id=xxx
      -> tries to add virtio0, which is still in use...
      
      So let's save the index we want to release before calling
      device_unregister().
      Signed-off-by: NCornelia Huck <cornelia.huck@de.ibm.com>
      Acked-by: NSjur Brændeland <sjur.brandeland@stericsson.com>
      Cc: stable@kernel.org
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      237242bd
  23. 22 10月, 2012 1 次提交
    • W
      virtio: force vring descriptors to be allocated from lowmem · b92b1b89
      Will Deacon 提交于
      Virtio devices may attempt to add descriptors to a virtqueue from atomic
      context using GFP_ATOMIC allocation. This is problematic because such
      allocations can fall outside of the lowmem mapping, causing virt_to_phys
      to report bogus physical addresses which are subsequently passed to
      userspace via the buffers for the virtual device.
      
      This patch masks out __GFP_HIGH and __GFP_HIGHMEM from the requested
      flags when allocating descriptors for a virtqueue. If an atomic
      allocation is requested and later fails, we will return -ENOSPC which
      will be handled by the driver.
      
      Cc: stable@kernel.org
      Cc: Sasha Levin <levinsasha928@gmail.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      b92b1b89
  24. 28 9月, 2012 2 次提交