1. 22 11月, 2019 8 次提交
  2. 02 11月, 2019 10 次提交
  3. 01 11月, 2019 4 次提交
    • M
      igb: Enable media autosense for the i350. · fb2308ba
      Manfred Rudigier 提交于
      This patch enables the hardware feature "Media Auto Sense" also on the
      i350. It works in the same way as on the 82850 devices. Hardware designs
      using dual PHYs (fiber/copper) can enable this feature by setting the MAS
      enable bits in the NVM_COMPAT register (0x03) in the EEPROM.
      Signed-off-by: NManfred Rudigier <manfred.rudigier@omicronenergy.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      fb2308ba
    • L
      igb/igc: Don't warn on fatal read failures when the device is removed · 94bc1e52
      Lyude Paul 提交于
      Fatal read errors are worth warning about, unless of course the device
      was just unplugged from the machine - something that's a rather normal
      occurrence when the igb/igc adapter is located on a Thunderbolt dock. So,
      let's only WARN() if there's a fatal read error while the device is
      still present.
      
      This fixes the following WARN splat that's been appearing whenever I
      unplug my Caldigit TS3 Thunderbolt dock from my laptop:
      
        igb 0000:09:00.0 enp9s0: PCIe link lost
        ------------[ cut here ]------------
        igb: Failed to read reg 0x18!
        WARNING: CPU: 7 PID: 516 at
        drivers/net/ethernet/intel/igb/igb_main.c:756 igb_rd32+0x57/0x6a [igb]
        Modules linked in: igb dca thunderbolt fuse vfat fat elan_i2c mei_wdt
        mei_hdcp i915 wmi_bmof intel_wmi_thunderbolt iTCO_wdt
        iTCO_vendor_support x86_pkg_temp_thermal intel_powerclamp joydev
        coretemp crct10dif_pclmul crc32_pclmul i2c_algo_bit ghash_clmulni_intel
        intel_cstate drm_kms_helper intel_uncore syscopyarea sysfillrect
        sysimgblt fb_sys_fops intel_rapl_perf intel_xhci_usb_role_switch mei_me
        drm roles idma64 i2c_i801 ucsi_acpi typec_ucsi mei intel_lpss_pci
        processor_thermal_device typec intel_pch_thermal intel_soc_dts_iosf
        intel_lpss int3403_thermal thinkpad_acpi wmi int340x_thermal_zone
        ledtrig_audio int3400_thermal acpi_thermal_rel acpi_pad video
        pcc_cpufreq ip_tables serio_raw nvme nvme_core crc32c_intel uas
        usb_storage e1000e i2c_dev
        CPU: 7 PID: 516 Comm: kworker/u16:3 Not tainted 5.2.0-rc1Lyude-Test+ #14
        Hardware name: LENOVO 20L8S2N800/20L8S2N800, BIOS N22ET35W (1.12 ) 04/09/2018
        Workqueue: kacpi_hotplug acpi_hotplug_work_fn
        RIP: 0010:igb_rd32+0x57/0x6a [igb]
        Code: 87 b8 fc ff ff 48 c7 47 08 00 00 00 00 48 c7 c6 33 42 9b c0 4c 89
        c7 e8 47 45 cd dc 89 ee 48 c7 c7 43 42 9b c0 e8 c1 94 71 dc <0f> 0b eb
        08 8b 00 ff c0 75 b0 eb c8 44 89 e0 5d 41 5c c3 0f 1f 44
        RSP: 0018:ffffba5801cf7c48 EFLAGS: 00010286
        RAX: 0000000000000000 RBX: ffff9e7956608840 RCX: 0000000000000007
        RDX: 0000000000000000 RSI: ffffba5801cf7b24 RDI: ffff9e795e3d6a00
        RBP: 0000000000000018 R08: 000000009dec4a01 R09: ffffffff9e61018f
        R10: 0000000000000000 R11: ffffba5801cf7ae5 R12: 00000000ffffffff
        R13: ffff9e7956608840 R14: ffff9e795a6f10b0 R15: 0000000000000000
        FS:  0000000000000000(0000) GS:ffff9e795e3c0000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
        CR2: 0000564317bc4088 CR3: 000000010e00a006 CR4: 00000000003606e0
        DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
        DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
        Call Trace:
         igb_release_hw_control+0x1a/0x30 [igb]
         igb_remove+0xc5/0x14b [igb]
         pci_device_remove+0x3b/0x93
         device_release_driver_internal+0xd7/0x17e
         pci_stop_bus_device+0x36/0x75
         pci_stop_bus_device+0x66/0x75
         pci_stop_bus_device+0x66/0x75
         pci_stop_and_remove_bus_device+0xf/0x19
         trim_stale_devices+0xc5/0x13a
         ? __pm_runtime_resume+0x6e/0x7b
         trim_stale_devices+0x103/0x13a
         ? __pm_runtime_resume+0x6e/0x7b
         trim_stale_devices+0x103/0x13a
         acpiphp_check_bridge+0xd8/0xf5
         acpiphp_hotplug_notify+0xf7/0x14b
         ? acpiphp_check_bridge+0xf5/0xf5
         acpi_device_hotplug+0x357/0x3b5
         acpi_hotplug_work_fn+0x1a/0x23
         process_one_work+0x1a7/0x296
         worker_thread+0x1a8/0x24c
         ? process_scheduled_works+0x2c/0x2c
         kthread+0xe9/0xee
         ? kthread_destroy_worker+0x41/0x41
         ret_from_fork+0x35/0x40
        ---[ end trace 252bf10352c63d22 ]---
      Signed-off-by: NLyude Paul <lyude@redhat.com>
      Fixes: 47e16692 ("igb/igc: warn when fatal read failure happens")
      Acked-by: NSasha Neftin <sasha.neftin@intel.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Acked-by: NFeng Tang <feng.tang@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      94bc1e52
    • I
      netdevsim: Fix use-after-free during device dismantle · 6d6f0383
      Ido Schimmel 提交于
      Commit da58f90f ("netdevsim: Add devlink-trap support") added
      delayed work to netdevsim that periodically iterates over the registered
      netdevsim ports and reports various packet traps via devlink.
      
      While the delayed work takes the 'port_list_lock' mutex to protect
      against concurrent addition / deletion of ports, during device creation
      / dismantle ports are added / deleted without this lock, which can
      result in a use-after-free [1].
      
      Fix this by making sure that the ports list is always modified under the
      lock.
      
      [1]
      [   59.205543] ==================================================================
      [   59.207748] BUG: KASAN: use-after-free in nsim_dev_trap_report_work+0xa67/0xad0
      [   59.210247] Read of size 8 at addr ffff8883cbdd3398 by task kworker/3:1/38
      [   59.212584]
      [   59.213148] CPU: 3 PID: 38 Comm: kworker/3:1 Not tainted 5.4.0-rc3-custom-16119-ge6abb5f0261e #2013
      [   59.215896] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS ?-20180724_192412-buildhw-07.phx2.fedoraproject.org-1.fc29 04/01/2014
      [   59.218384] Workqueue: events nsim_dev_trap_report_work
      [   59.219428] Call Trace:
      [   59.219924]  dump_stack+0xa9/0x10e
      [   59.220623]  print_address_description.constprop.4+0x21/0x340
      [   59.221976]  ? vprintk_func+0x66/0x240
      [   59.222752]  __kasan_report.cold.8+0x78/0x91
      [   59.223602]  ? nsim_dev_trap_report_work+0xa67/0xad0
      [   59.224603]  kasan_report+0xe/0x20
      [   59.225296]  nsim_dev_trap_report_work+0xa67/0xad0
      [   59.226435]  ? rcu_read_lock_sched_held+0xaf/0xe0
      [   59.227512]  ? trace_event_raw_event_rcu_quiescent_state_report+0x360/0x360
      [   59.228851]  process_one_work+0x98f/0x1760
      [   59.229684]  ? pwq_dec_nr_in_flight+0x330/0x330
      [   59.230656]  worker_thread+0x91/0xc40
      [   59.231587]  ? process_one_work+0x1760/0x1760
      [   59.232451]  kthread+0x34a/0x410
      [   59.233104]  ? __kthread_queue_delayed_work+0x240/0x240
      [   59.234141]  ret_from_fork+0x3a/0x50
      [   59.234982]
      [   59.235371] Allocated by task 187:
      [   59.236189]  save_stack+0x19/0x80
      [   59.236853]  __kasan_kmalloc.constprop.5+0xc1/0xd0
      [   59.237822]  kmem_cache_alloc_trace+0x14c/0x380
      [   59.238769]  __nsim_dev_port_add+0xaf/0x5c0
      [   59.239627]  nsim_dev_probe+0x4fc/0x1140
      [   59.240550]  really_probe+0x264/0xc00
      [   59.241418]  driver_probe_device+0x208/0x2e0
      [   59.242255]  __device_attach_driver+0x215/0x2d0
      [   59.243150]  bus_for_each_drv+0x154/0x1d0
      [   59.243944]  __device_attach+0x1ba/0x2b0
      [   59.244923]  bus_probe_device+0x1dd/0x290
      [   59.245805]  device_add+0xbac/0x1550
      [   59.246528]  new_device_store+0x1f4/0x400
      [   59.247306]  bus_attr_store+0x7b/0xa0
      [   59.248047]  sysfs_kf_write+0x10f/0x170
      [   59.248941]  kernfs_fop_write+0x283/0x430
      [   59.249843]  __vfs_write+0x81/0x100
      [   59.250546]  vfs_write+0x1ce/0x510
      [   59.251190]  ksys_write+0x104/0x200
      [   59.251873]  do_syscall_64+0xa4/0x4e0
      [   59.252642]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
      [   59.253837]
      [   59.254203] Freed by task 187:
      [   59.254811]  save_stack+0x19/0x80
      [   59.255463]  __kasan_slab_free+0x125/0x170
      [   59.256265]  kfree+0x100/0x440
      [   59.256870]  nsim_dev_remove+0x98/0x100
      [   59.257651]  nsim_bus_remove+0x16/0x20
      [   59.258382]  device_release_driver_internal+0x20b/0x4d0
      [   59.259588]  bus_remove_device+0x2e9/0x5a0
      [   59.260551]  device_del+0x410/0xad0
      [   59.263777]  device_unregister+0x26/0xc0
      [   59.264616]  nsim_bus_dev_del+0x16/0x60
      [   59.265381]  del_device_store+0x2d6/0x3c0
      [   59.266295]  bus_attr_store+0x7b/0xa0
      [   59.267192]  sysfs_kf_write+0x10f/0x170
      [   59.267960]  kernfs_fop_write+0x283/0x430
      [   59.268800]  __vfs_write+0x81/0x100
      [   59.269551]  vfs_write+0x1ce/0x510
      [   59.270252]  ksys_write+0x104/0x200
      [   59.270910]  do_syscall_64+0xa4/0x4e0
      [   59.271680]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
      [   59.272812]
      [   59.273211] The buggy address belongs to the object at ffff8883cbdd3200
      [   59.273211]  which belongs to the cache kmalloc-512 of size 512
      [   59.275838] The buggy address is located 408 bytes inside of
      [   59.275838]  512-byte region [ffff8883cbdd3200, ffff8883cbdd3400)
      [   59.278151] The buggy address belongs to the page:
      [   59.279215] page:ffffea000f2f7400 refcount:1 mapcount:0 mapping:ffff8883ecc0ce00 index:0x0 compound_mapcount: 0
      [   59.281449] flags: 0x200000000010200(slab|head)
      [   59.282356] raw: 0200000000010200 ffffea000f2f3a08 ffffea000f2fd608 ffff8883ecc0ce00
      [   59.283949] raw: 0000000000000000 0000000000150015 00000001ffffffff 0000000000000000
      [   59.285608] page dumped because: kasan: bad access detected
      [   59.286981]
      [   59.287337] Memory state around the buggy address:
      [   59.288310]  ffff8883cbdd3280: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      [   59.289763]  ffff8883cbdd3300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      [   59.291452] >ffff8883cbdd3380: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      [   59.292945]                             ^
      [   59.293815]  ffff8883cbdd3400: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [   59.295220]  ffff8883cbdd3480: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [   59.296872] ==================================================================
      
      Fixes: da58f90f ("netdevsim: Add devlink-trap support")
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Reported-by: syzbot+9ed8f68ab30761f3678e@syzkaller.appspotmail.com
      Acked-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6d6f0383
    • F
      usb: dwc3: gadget: fix race when disabling ep with cancelled xfers · d8eca64e
      Felipe Balbi 提交于
      When disabling an endpoint which has cancelled requests, we should
      make sure to giveback requests that are currently pending in the
      cancelled list, otherwise we may fall into a situation where command
      completion interrupt fires after endpoint has been disabled, therefore
      causing a splat.
      
      Fixes: fec9095b "usb: dwc3: gadget: remove wait_end_transfer"
      Reported-by: NRoger Quadros <rogerq@ti.com>
      Signed-off-by: NFelipe Balbi <felipe.balbi@linux.intel.com>
      Link: https://lore.kernel.org/r/20191031090713.1452818-1-felipe.balbi@linux.intel.comSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d8eca64e
  4. 31 10月, 2019 13 次提交
  5. 30 10月, 2019 5 次提交
    • N
      drm/amdgpu: enable -msse2 for GCC 7.1+ users · e8a170ff
      Nick Desaulniers 提交于
      A final attempt at enabling sse2 for GCC users.
      
      Orininally attempted in:
      commit 10117450 ("drm/amd/display: add -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines")
      
      Reverted due to "reported instability" in:
      commit 193392ed ("Revert "drm/amd/display: add -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines"")
      
      Re-added just for Clang in:
      commit 0f0727d9 ("drm/amd/display: readd -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines")
      
      The original report didn't have enough information to know if the GPF
      was due to misalignment, but I suspect that it was. (The missing
      information was the disassembly of the function at the bottom of the
      trace, to see if the instruction pointer pointed to an instruction with
      16B alignment memory operand requirements.  The stack trace does show
      the stack was only 8B but not 16B aligned though, which makes this a
      strong possibility).
      
      Now that the stack misalignment issue has been fixed for users of GCC
      7.1+, reattempt adding -msse2. This matches Clang.
      
      It will likely never be safe to enable this for pre-GCC 7.1 AND use a
      16B aligned stack in these translation units.
      
      This is only a functional change for GCC 7.1+ users, and should be boot
      tested.
      
      Link: https://bugs.freedesktop.org/show_bug.cgi?id=109487Signed-off-by: NNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      e8a170ff
    • N
      drm/amdgpu: fix stack alignment ABI mismatch for GCC 7.1+ · 00db2971
      Nick Desaulniers 提交于
      GCC earlier than 7.1 errors when compiling code that makes use of
      `double`s and sets a stack alignment outside of the range of [2^4-2^12]:
      
      $ cat foo.c
      double foo(double x, double y) {
        return x + y;
      }
      $ gcc-4.9 -mpreferred-stack-boundary=3 foo.c
      error: -mpreferred-stack-boundary=3 is not between 4 and 12
      
      This is likely why the AMDGPU driver was ever compiled with a different
      stack alignment (and thus different ABI) than the rest of the x86
      kernel. The kernel uses 8B stack alignment, while the driver was using
      16B stack alignment in a few places.
      
      Since GCC 7.1+ doesn't error, fix the ABI mismatch for users of newer
      versions of GCC.
      
      There was discussion about whether to mark the driver broken or not for
      users of GCC earlier than 7.1, but since the driver currently is
      working, don't explicitly break the driver for them here.
      
      Relying on differing stack alignment is unspecified behavior, and
      brittle, and may break in the future.
      
      This patch is no functional change for GCC users earlier than 7.1. It's
      been compile tested on GCC 4.9 and 8.3 to check the correct flags. It
      should be boot tested when built with GCC 7.1+.
      
      -mincoming-stack-boundary= or -mstackrealign may help keep this code
      building for pre-GCC 7.1 users.
      
      The version check for GCC is broken into two conditionals, both because
      cc-ifversion is currently GCC specific, and it simplifies a subsequent
      patch.
      Signed-off-by: NNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      00db2971
    • N
      drm/amdgpu: fix stack alignment ABI mismatch for Clang · c868868f
      Nick Desaulniers 提交于
      The x86 kernel is compiled with an 8B stack alignment via
      `-mpreferred-stack-boundary=3` for GCC since 3.6-rc1 via
      commit d9b0cde9 ("x86-64, gcc: Use -mpreferred-stack-boundary=3 if supported")
      or `-mstack-alignment=8` for Clang. Parts of the AMDGPU driver are
      compiled with 16B stack alignment.
      
      Generally, the stack alignment is part of the ABI. Linking together two
      different translation units with differing stack alignment is dangerous,
      particularly when the translation unit with the smaller stack alignment
      makes calls into the translation unit with the larger stack alignment.
      While 8B aligned stacks are sometimes also 16B aligned, they are not
      always.
      
      Multiple users have reported General Protection Faults (GPF) when using
      the AMDGPU driver compiled with Clang. Clang is placing objects in stack
      slots assuming the stack is 16B aligned, and selecting instructions that
      require 16B aligned memory operands.
      
      At runtime, syscall handlers with 8B aligned stack call into code that
      assumes 16B stack alignment.  When the stack is a multiple of 8B but not
      16B, these instructions result in a GPF.
      
      Remove the code that added compatibility between the differing compiler
      flags, as it will result in runtime GPFs when built with Clang. Cleanups
      for GCC will be sent in later patches in the series.
      
      Link: https://github.com/ClangBuiltLinux/linux/issues/735Debugged-by: NYuxuan Shui <yshuiv7@gmail.com>
      Reported-by: NShirish S <shirish.s@amd.com>
      Reported-by: NYuxuan Shui <yshuiv7@gmail.com>
      Suggested-by: NAndrew Cooper <andrew.cooper3@citrix.com>
      Signed-off-by: NNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      c868868f
    • K
      drm/radeon: Fix EEH during kexec · 72260843
      Kyle Mahlkuch 提交于
      During kexec some adapters hit an EEH since they are not properly
      shut down in the radeon_pci_shutdown() function. Adding
      radeon_suspend_kms() fixes this issue.
      Enabled only on PPC because this patch causes issues on some other
      boards.
      Signed-off-by: NKyle Mahlkuch <kmahlkuc@linux.vnet.ibm.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      72260843
    • A
      drm/amdgpu/gmc10: properly set BANK_SELECT and FRAGMENT_SIZE · 30ef5c7e
      Alex Deucher 提交于
      These were not aligned for optimal performance for GPUVM.
      Acked-by: NChristian König <christian.koenig@amd.com>
      Reviewed-by: NTianci Yin <tianci.yin@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      30ef5c7e