1. 24 May, 2017 2 commits
    • Arun Easi's avatar
      scsi: qedi: Fix bad pte call trace when iscsiuio is stopped. · 5e901d0b
      Arun Easi authored
      munmap done by iscsiuio during a stop of the service triggers a "bad
      pte" warning sometimes. munmap kernel path goes through the mmapped
      pages and has a validation check for mapcount (in struct page) to be
      zero or above. kzalloc, which we had used to allocate udev->ctrl, uses
      slab allocations, which re-uses mapcount (union) for other purposes that
      can make the mapcount look negative. Avoid all these trouble by invoking
      one of the __get_free_pages wrappers to be used instead of kzalloc for
      udev->ctrl.
      
       BUG: Bad page map in process iscsiuio  pte:80000000aa624067 pmd:3e6777067
       page:ffffea0002a98900 count:2 mapcount:-2143289280
           mapping: (null) index:0xffff8800aa624e00
       page flags: 0x10075d00000090(dirty|slab)
       page dumped because: bad pte
       addr:00007fcba70a3000 vm_flags:0c0400fb anon_vma: (null)
           mapping:ffff8803edf66e90 index:0
      
       Call Trace:
           dump_stack+0x19/0x1b
           print_bad_pte+0x1af/0x250
           unmap_page_range+0x7a7/0x8a0
           unmap_single_vma+0x81/0xf0
           unmap_vmas+0x49/0x90
           unmap_region+0xbe/0x140
           ? vma_rb_erase+0x121/0x220
           do_munmap+0x245/0x420
           vm_munmap+0x41/0x60
           SyS_munmap+0x22/0x30
           tracesys+0xdd/0xe2
      Signed-off-by: default avatarArun Easi <arun.easi@cavium.com>
      Signed-off-by: default avatarManish Rangankar <manish.rangankar@cavium.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      5e901d0b
    • Artem Savkov's avatar
      scsi: scsi_dh_rdac: Use ctlr directly in rdac_failover_get() · 0648a07c
      Artem Savkov authored
      rdac_failover_get references struct rdac_controller as
      ctlr->ms_sdev->handler_data->ctlr for no apparent reason. Besides being
      inefficient this also introduces a null-pointer dereference as
      send_mode_select() sets ctlr->ms_sdev to NULL before calling
      rdac_failover_get():
      
      [   18.432550] device-mapper: multipath service-time: version 0.3.0 loaded
      [   18.436124] BUG: unable to handle kernel NULL pointer dereference at 0000000000000790
      [   18.436129] IP: send_mode_select+0xca/0x560
      [   18.436129] PGD 0
      [   18.436130] P4D 0
      [   18.436130]
      [   18.436132] Oops: 0000 [#1] SMP
      [   18.436133] Modules linked in: dm_service_time sd_mod dm_multipath amdkfd amd_iommu_v2 radeon(+) i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm qla2xxx drm serio_raw scsi_transport_fc bnx2 i2c_core dm_mirror dm_region_hash dm_log dm_mod
      [   18.436143] CPU: 4 PID: 443 Comm: kworker/u16:2 Not tainted 4.12.0-rc1.1.el7.test.x86_64 #1
      [   18.436144] Hardware name: IBM BladeCenter LS22 -[79013SG]-/Server Blade, BIOS -[L8E164AUS-1.07]- 05/25/2011
      [   18.436145] Workqueue: kmpath_rdacd send_mode_select
      [   18.436146] task: ffff880225116a40 task.stack: ffffc90002bd8000
      [   18.436148] RIP: 0010:send_mode_select+0xca/0x560
      [   18.436148] RSP: 0018:ffffc90002bdbda8 EFLAGS: 00010246
      [   18.436149] RAX: 0000000000000000 RBX: ffffc90002bdbe08 RCX: ffff88017ef04a80
      [   18.436150] RDX: ffffc90002bdbe08 RSI: ffff88017ef04a80 RDI: ffff8802248e4388
      [   18.436151] RBP: ffffc90002bdbe48 R08: 0000000000000000 R09: ffffffff81c104c0
      [   18.436151] R10: 00000000000001ff R11: 000000000000035a R12: ffffc90002bdbdd8
      [   18.436152] R13: ffff8802248e4390 R14: ffff880225152800 R15: ffff8802248e4400
      [   18.436153] FS:  0000000000000000(0000) GS:ffff880227d00000(0000) knlGS:0000000000000000
      [   18.436154] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   18.436154] CR2: 0000000000000790 CR3: 000000042535b000 CR4: 00000000000006e0
      [   18.436155] Call Trace:
      [   18.436159]  ? rdac_activate+0x14e/0x150
      [   18.436161]  ? refcount_dec_and_test+0x11/0x20
      [   18.436162]  ? kobject_put+0x1c/0x50
      [   18.436165]  ? scsi_dh_activate+0x6f/0xd0
      [   18.436168]  process_one_work+0x149/0x360
      [   18.436170]  worker_thread+0x4d/0x3c0
      [   18.436172]  kthread+0x109/0x140
      [   18.436173]  ? rescuer_thread+0x380/0x380
      [   18.436174]  ? kthread_park+0x60/0x60
      [   18.436176]  ret_from_fork+0x2c/0x40
      [   18.436177] Code: 49 c7 46 20 00 00 00 00 4c 89 ef c6 07 00 0f 1f 40 00 45 31 ed c7 45 b0 05 00 00 00 44 89 6d b4 4d 89 f5 4c 8b 75 a8 49 8b 45 20 <48> 8b b0 90 07 00 00 48 8b 56 10 8b 42 10 48 8d 7a 28 85 c0 0f
      [   18.436192] RIP: send_mode_select+0xca/0x560 RSP: ffffc90002bdbda8
      [   18.436192] CR2: 0000000000000790
      [   18.436198] ---[ end trace 40f3e4dca1ffabdd ]---
      [   18.436199] Kernel panic - not syncing: Fatal exception
      [   18.436222] Kernel Offset: disabled
      [-- MARK -- Thu May 18 11:45:00 2017]
      
      Fixes: 32782557 scsi_dh_rdac: switch to scsi_execute_req_flags()
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarArtem Savkov <asavkov@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      0648a07c
  2. 19 May, 2017 3 commits
  3. 18 May, 2017 2 commits
  4. 17 May, 2017 17 commits
  5. 12 May, 2017 3 commits
  6. 09 May, 2017 12 commits
  7. 08 May, 2017 1 commit
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 2d3e4866
      Linus Torvalds authored
      Pull KVM updates from Paolo Bonzini:
       "ARM:
         - HYP mode stub supports kexec/kdump on 32-bit
         - improved PMU support
         - virtual interrupt controller performance improvements
         - support for userspace virtual interrupt controller (slower, but
           necessary for KVM on the weird Broadcom SoCs used by the Raspberry
           Pi 3)
      
        MIPS:
         - basic support for hardware virtualization (ImgTec P5600/P6600/I6400
           and Cavium Octeon III)
      
        PPC:
         - in-kernel acceleration for VFIO
      
        s390:
         - support for guests without storage keys
         - adapter interruption suppression
      
        x86:
         - usual range of nVMX improvements, notably nested EPT support for
           accessed and dirty bits
         - emulation of CPL3 CPUID faulting
      
        generic:
         - first part of VCPU thread request API
         - kvm_stat improvements"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (227 commits)
        kvm: nVMX: Don't validate disabled secondary controls
        KVM: put back #ifndef CONFIG_S390 around kvm_vcpu_kick
        Revert "KVM: Support vCPU-based gfn->hva cache"
        tools/kvm: fix top level makefile
        KVM: x86: don't hold kvm->lock in KVM_SET_GSI_ROUTING
        KVM: Documentation: remove VM mmap documentation
        kvm: nVMX: Remove superfluous VMX instruction fault checks
        KVM: x86: fix emulation of RSM and IRET instructions
        KVM: mark requests that need synchronization
        KVM: return if kvm_vcpu_wake_up() did wake up the VCPU
        KVM: add explicit barrier to kvm_vcpu_kick
        KVM: perform a wake_up in kvm_make_all_cpus_request
        KVM: mark requests that do not need a wakeup
        KVM: remove #ifndef CONFIG_S390 around kvm_vcpu_wake_up
        KVM: x86: always use kvm_make_request instead of set_bit
        KVM: add kvm_{test,clear}_request to replace {test,clear}_bit
        s390: kvm: Cpu model support for msa6, msa7 and msa8
        KVM: x86: remove irq disablement around KVM_SET_CLOCK/KVM_GET_CLOCK
        kvm: better MWAIT emulation for guests
        KVM: x86: virtualize cpuid faulting
        ...
      2d3e4866