1. 02 2月, 2018 1 次提交
  2. 17 1月, 2018 1 次提交
  3. 16 1月, 2018 1 次提交
    • H
      ACPI / LPSS: Do not instiate platform_dev for devs without MMIO resources · e1681599
      Hans de Goede 提交于
      acpi_lpss_create_device() skips handling LPSS devices which do not have
      a mmio resources in their resource list (typically these devices are
      disabled by the firmware). But since the LPSS code does not bind to the
      device, acpi_bus_attach() ends up still creating a platform device for
      it and the regular platform_driver for the ACPI HID still tries to bind
      to it.
      
      This happens e.g. on some boards which do not use the pwm-controller
      and have an empty or invalid resource-table for it. Currently this causes
      these error messages to get logged:
      
      [    3.281966] pwm-lpss 80862288:00: invalid resource
      [    3.287098] pwm-lpss: probe of 80862288:00 failed with error -22
      
      This commit stops the undesirable creation of a platform_device for
      disabled LPSS devices by setting pnp.type.platform_id to 0. Note that
      acpi_scan_attach_handler() also sets pnp.type.platform_id to 0 when there
      is a matching handler for the device and that handler has no attach
      callback, so we simply behave as a handler without an attach function
      in this case.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Acked-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      e1681599
  4. 12 1月, 2018 1 次提交
  5. 11 1月, 2018 8 次提交
    • C
      drm/i915: Don't adjust priority on an already signaled fence · 5005c851
      Chris Wilson 提交于
      When we retire a signaled fence, we free the dependency tree. However,
      we skip clearing the list so that if we then try to adjust the priority
      of the signaled fence, we may walk the list of freed dependencies.
      
      [ 3083.156757] ==================================================================
      [ 3083.156806] BUG: KASAN: use-after-free in execlists_schedule+0x199/0x660 [i915]
      [ 3083.156810] Read of size 8 at addr ffff8806bf20f400 by task Xorg/831
      
      [ 3083.156815] CPU: 0 PID: 831 Comm: Xorg Not tainted 4.15.0-rc6-no-psn+ #1
      [ 3083.156817] Hardware name: Notebook                         N24_25BU/N24_25BU, BIOS 5.12 02/17/2017
      [ 3083.156818] Call Trace:
      [ 3083.156823]  dump_stack+0x5c/0x7a
      [ 3083.156827]  print_address_description+0x6b/0x290
      [ 3083.156830]  kasan_report+0x28f/0x380
      [ 3083.156872]  ? execlists_schedule+0x199/0x660 [i915]
      [ 3083.156914]  execlists_schedule+0x199/0x660 [i915]
      [ 3083.156956]  ? intel_crtc_atomic_check+0x146/0x4e0 [i915]
      [ 3083.156997]  ? execlists_submit_request+0xe0/0xe0 [i915]
      [ 3083.157038]  ? i915_vma_misplaced.part.4+0x25/0xb0 [i915]
      [ 3083.157079]  ? __i915_vma_do_pin+0x7c8/0xc80 [i915]
      [ 3083.157121]  ? intel_atomic_state_alloc+0x44/0x60 [i915]
      [ 3083.157130]  ? drm_atomic_helper_page_flip+0x3e/0xb0 [drm_kms_helper]
      [ 3083.157145]  ? drm_mode_page_flip_ioctl+0x7d2/0x850 [drm]
      [ 3083.157159]  ? drm_ioctl_kernel+0xa7/0xf0 [drm]
      [ 3083.157172]  ? drm_ioctl+0x45b/0x560 [drm]
      [ 3083.157211]  i915_gem_object_wait_priority+0x14c/0x2c0 [i915]
      [ 3083.157251]  ? i915_gem_get_aperture_ioctl+0x150/0x150 [i915]
      [ 3083.157290]  ? i915_vma_pin_fence+0x1d8/0x320 [i915]
      [ 3083.157331]  ? intel_pin_and_fence_fb_obj+0x175/0x250 [i915]
      [ 3083.157372]  ? intel_rotation_info_size+0x60/0x60 [i915]
      [ 3083.157413]  ? intel_link_compute_m_n+0x80/0x80 [i915]
      [ 3083.157428]  ? drm_dev_printk+0x1b0/0x1b0 [drm]
      [ 3083.157443]  ? drm_dev_printk+0x1b0/0x1b0 [drm]
      [ 3083.157485]  intel_prepare_plane_fb+0x2f8/0x5a0 [i915]
      [ 3083.157527]  ? intel_crtc_get_vblank_counter+0x80/0x80 [i915]
      [ 3083.157536]  drm_atomic_helper_prepare_planes+0xa0/0x1c0 [drm_kms_helper]
      [ 3083.157587]  intel_atomic_commit+0x12e/0x4e0 [i915]
      [ 3083.157605]  drm_atomic_helper_page_flip+0xa2/0xb0 [drm_kms_helper]
      [ 3083.157621]  drm_mode_page_flip_ioctl+0x7d2/0x850 [drm]
      [ 3083.157638]  ? drm_mode_cursor2_ioctl+0x10/0x10 [drm]
      [ 3083.157652]  ? drm_lease_owner+0x1a/0x30 [drm]
      [ 3083.157668]  ? drm_mode_cursor2_ioctl+0x10/0x10 [drm]
      [ 3083.157681]  drm_ioctl_kernel+0xa7/0xf0 [drm]
      [ 3083.157696]  drm_ioctl+0x45b/0x560 [drm]
      [ 3083.157711]  ? drm_mode_cursor2_ioctl+0x10/0x10 [drm]
      [ 3083.157725]  ? drm_getstats+0x20/0x20 [drm]
      [ 3083.157729]  ? timerqueue_del+0x49/0x80
      [ 3083.157732]  ? __remove_hrtimer+0x62/0xb0
      [ 3083.157735]  ? hrtimer_try_to_cancel+0x173/0x210
      [ 3083.157738]  do_vfs_ioctl+0x13b/0x880
      [ 3083.157741]  ? ioctl_preallocate+0x140/0x140
      [ 3083.157744]  ? _raw_spin_unlock_irq+0xe/0x30
      [ 3083.157746]  ? do_setitimer+0x234/0x370
      [ 3083.157750]  ? SyS_setitimer+0x19e/0x1b0
      [ 3083.157752]  ? SyS_alarm+0x140/0x140
      [ 3083.157755]  ? __rcu_read_unlock+0x66/0x80
      [ 3083.157757]  ? __fget+0xc4/0x100
      [ 3083.157760]  SyS_ioctl+0x74/0x80
      [ 3083.157763]  entry_SYSCALL_64_fastpath+0x1a/0x7d
      [ 3083.157765] RIP: 0033:0x7f6135d0c6a7
      [ 3083.157767] RSP: 002b:00007fff01451888 EFLAGS: 00003246 ORIG_RAX: 0000000000000010
      [ 3083.157769] RAX: ffffffffffffffda RBX: 0000000000000004 RCX: 00007f6135d0c6a7
      [ 3083.157771] RDX: 00007fff01451950 RSI: 00000000c01864b0 RDI: 000000000000000c
      [ 3083.157772] RBP: 00007f613076f600 R08: 0000000000000001 R09: 0000000000000000
      [ 3083.157773] R10: 0000000000000060 R11: 0000000000003246 R12: 0000000000000000
      [ 3083.157774] R13: 0000000000000060 R14: 000000000000001b R15: 0000000000000060
      
      [ 3083.157779] Allocated by task 831:
      [ 3083.157783]  kmem_cache_alloc+0xc0/0x200
      [ 3083.157822]  i915_gem_request_await_dma_fence+0x2c4/0x5d0 [i915]
      [ 3083.157861]  i915_gem_request_await_object+0x321/0x370 [i915]
      [ 3083.157900]  i915_gem_do_execbuffer+0x1165/0x19c0 [i915]
      [ 3083.157937]  i915_gem_execbuffer2+0x1ad/0x550 [i915]
      [ 3083.157950]  drm_ioctl_kernel+0xa7/0xf0 [drm]
      [ 3083.157962]  drm_ioctl+0x45b/0x560 [drm]
      [ 3083.157964]  do_vfs_ioctl+0x13b/0x880
      [ 3083.157966]  SyS_ioctl+0x74/0x80
      [ 3083.157968]  entry_SYSCALL_64_fastpath+0x1a/0x7d
      
      [ 3083.157971] Freed by task 831:
      [ 3083.157973]  kmem_cache_free+0x77/0x220
      [ 3083.158012]  i915_gem_request_retire+0x72c/0xa70 [i915]
      [ 3083.158051]  i915_gem_request_alloc+0x1e9/0x8b0 [i915]
      [ 3083.158089]  i915_gem_do_execbuffer+0xa96/0x19c0 [i915]
      [ 3083.158127]  i915_gem_execbuffer2+0x1ad/0x550 [i915]
      [ 3083.158140]  drm_ioctl_kernel+0xa7/0xf0 [drm]
      [ 3083.158153]  drm_ioctl+0x45b/0x560 [drm]
      [ 3083.158155]  do_vfs_ioctl+0x13b/0x880
      [ 3083.158156]  SyS_ioctl+0x74/0x80
      [ 3083.158158]  entry_SYSCALL_64_fastpath+0x1a/0x7d
      
      [ 3083.158162] The buggy address belongs to the object at ffff8806bf20f400
                      which belongs to the cache i915_dependency of size 64
      [ 3083.158166] The buggy address is located 0 bytes inside of
                      64-byte region [ffff8806bf20f400, ffff8806bf20f440)
      [ 3083.158168] The buggy address belongs to the page:
      [ 3083.158171] page:00000000d43decc4 count:1 mapcount:0 mapping:          (null) index:0x0
      [ 3083.158174] flags: 0x17ffe0000000100(slab)
      [ 3083.158179] raw: 017ffe0000000100 0000000000000000 0000000000000000 0000000180200020
      [ 3083.158182] raw: ffffea001afc16c0 0000000500000005 ffff880731b881c0 0000000000000000
      [ 3083.158184] page dumped because: kasan: bad access detected
      
      [ 3083.158187] Memory state around the buggy address:
      [ 3083.158190]  ffff8806bf20f300: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
      [ 3083.158192]  ffff8806bf20f380: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
      [ 3083.158195] >ffff8806bf20f400: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
      [ 3083.158196]                    ^
      [ 3083.158199]  ffff8806bf20f480: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
      [ 3083.158201]  ffff8806bf20f500: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
      [ 3083.158203] ==================================================================
      Reported-by: NAlexandru Chirvasitu <achirvasub@gmail.com>
      Reported-by: NMike Keehan <mike@keehan.net>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104436
      Fixes: 1f181225 ("drm/i915/execlists: Keep request->priority for its lifetime")
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Alexandru Chirvasitu <achirvasub@gmail.com>
      Cc: Michał Winiarski <michal.winiarski@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Tested-by: NAlexandru Chirvasitu <achirvasub@gmail.com>
      Reviewed-by: NMichał Winiarski <michal.winiarski@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180106105618.13532-1-chris@chris-wilson.co.uk
      (cherry picked from commit c218ee03)
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      5005c851
    • K
      drm/i915: Whitelist SLICE_COMMON_ECO_CHICKEN1 on Geminilake. · 4636bda8
      Kenneth Graunke 提交于
      Geminilake requires the 3D driver to select whether barriers are
      intended for compute shaders, or tessellation control shaders, by
      whacking a "Barrier Mode" bit in SLICE_COMMON_ECO_CHICKEN1 when
      switching pipelines.  Failure to do this properly can result in GPU
      hangs.
      
      Unfortunately, this means it needs to switch mid-batch, so only
      userspace can properly set it.  To facilitate this, the kernel needs
      to whitelist the register.
      
      The workarounds page currently tags this as applying to Broxton only,
      but that doesn't make sense.  The documentation for the register it
      references says the bit userspace is supposed to toggle only exists on
      Geminilake.  Empirically, the Mesa patch to toggle this bit appears to
      fix intermittent GPU hangs in tessellation control shader barrier tests
      on Geminilake; we haven't seen those hangs on Broxton.
      
      v2: Mention WA #0862 in the comment (it doesn't have a name).
      Signed-off-by: NKenneth Graunke <kenneth@whitecape.org>
      Acked-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180105085905.9298-1-kenneth@whitecape.org
      (cherry picked from commit ab062639)
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      4636bda8
    • A
      ACPI / PMIC: Convert to use builtin_platform_driver() macro · 0d154fdd
      Andy Shevchenko 提交于
      All of PMIC OpRegion drivers can't be modules, thus, convert them to use
      builtin_platform_driver() macro and remove redundant MODULE_*() macros.
      
      No functional change intended.
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Reviewed-by: NHans de Goede <hdegoede@redhat.com>
      Acked-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0d154fdd
    • J
      mlxsw: spectrum_qdisc: Don't use variable array in mlxsw_sp_tclass_congestion_enable · db84924c
      Jiri Pirko 提交于
      Resolve the sparse warning:
      "sparse: Variable length array is used."
      Use 2 arrays for 2 PRM register accesses.
      
      Fixes: 96f17e07 ("mlxsw: spectrum: Support RED qdisc offload")
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Reviewed-by: NYuval Mintz <yuvalm@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      db84924c
    • Y
      mlxsw: pci: Wait after reset before accessing HW · 8e033a93
      Yuval Mintz 提交于
      After performing reset driver polls on HW indication until learning
      that the reset is done, but immediately after reset the device becomes
      unresponsive which might lead to completion timeout on the first read.
      
      Wait for 100ms before starting the polling.
      
      Fixes: 233fa44b ("mlxsw: pci: Implement reset done check")
      Signed-off-by: NYuval Mintz <yuvalm@mellanox.com>
      Reviewed-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8e033a93
    • J
      nfp: always unmask aux interrupts at init · fc233650
      Jakub Kicinski 提交于
      The link state and exception interrupts may be masked when we probe.
      The firmware should in theory prevent sending (and automasking) those
      interrupts if the device is disabled, but if my reading of the FW code
      is correct there are firmwares out there with race conditions in this
      area.  The interrupt may also be masked if previous driver which used
      the device was malfunctioning and we didn't load the FW (there is no
      other good way to comprehensively reset the PF).
      
      Note that FW unmasks the data interrupts by itself when vNIC is
      enabled, such helpful operation is not performed for LSC/EXN interrupts.
      
      Always unmask the auxiliary interrupts after request_irq().  On the
      remove path add missing PCI write flush before free_irq().
      
      Fixes: 4c352362 ("net: add driver for Netronome NFP4000/NFP6000 NIC VFs")
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Reviewed-by: NDirk van der Merwe <dirk.vandermerwe@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fc233650
    • M
      of_mdio: avoid MDIO bus removal when a PHY is missing · 95f566de
      Madalin Bucur 提交于
      If one of the child devices is missing the of_mdiobus_register_phy()
      call will return -ENODEV. When a missing device is encountered the
      registration of the remaining PHYs is stopped and the MDIO bus will
      fail to register. Propagate all errors except ENODEV to avoid it.
      Signed-off-by: NMadalin Bucur <madalin.bucur@nxp.com>
      Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      95f566de
    • Y
      net: gianfar_ptp: move set_fipers() to spinlock protecting area · 11d827a9
      Yangbo Lu 提交于
      set_fipers() calling should be protected by spinlock in
      case that any interrupt breaks related registers setting
      and the function we expect. This patch is to move set_fipers()
      to spinlock protecting area in ptp_gianfar_adjtime().
      Signed-off-by: NYangbo Lu <yangbo.lu@nxp.com>
      Acked-by: NRichard Cochran <richardcochran@gmail.com>
      Reviewed-by: NFabio Estevam <fabio.estevam@nxp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      11d827a9
  6. 10 1月, 2018 10 次提交
  7. 09 1月, 2018 13 次提交
  8. 08 1月, 2018 3 次提交
    • T
      sysfs/cpu: Add vulnerability folder · 87590ce6
      Thomas Gleixner 提交于
      As the meltdown/spectre problem affects several CPU architectures, it makes
      sense to have common way to express whether a system is affected by a
      particular vulnerability or not. If affected the way to express the
      mitigation should be common as well.
      
      Create /sys/devices/system/cpu/vulnerabilities folder and files for
      meltdown, spectre_v1 and spectre_v2.
      
      Allow architectures to override the show function.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Reviewed-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Dave Hansen <dave.hansen@intel.com>
      Cc: Linus Torvalds <torvalds@linuxfoundation.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: David Woodhouse <dwmw@amazon.co.uk>
      Link: https://lkml.kernel.org/r/20180107214913.096657732@linutronix.de
      87590ce6
    • E
      nvme-fabrics: initialize default host->id in nvmf_host_default() · 6b018235
      Ewan D. Milne 提交于
      The field was uninitialized before use.
      Signed-off-by: NEwan D. Milne <emilne@redhat.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      6b018235
    • C
      drm/i915/gvt: Fix stack-out-of-bounds bug in cmd parser · 65e74392
      Changbin Du 提交于
      for_each_set_bit() only accepts variable of type unsigned long, and we can
      not cast it from smaller types.
      
      [   16.499365] ==================================================================
      [   16.506655] BUG: KASAN: stack-out-of-bounds in find_first_bit+0x1d/0x70
      [   16.513313] Read of size 8 at addr ffff8803616cf510 by task systemd-udevd/180
      [   16.521998] CPU: 0 PID: 180 Comm: systemd-udevd Tainted: G     U     O     4.15.0-rc3+ #14
      [   16.530317] Hardware name: Dell Inc. OptiPlex 7040/0Y7WYT, BIOS 1.2.8 01/26/2016
      [   16.537760] Call Trace:
      [   16.540230]  dump_stack+0x7c/0xbb
      [   16.543569]  print_address_description+0x6b/0x290
      [   16.548306]  kasan_report+0x28a/0x370
      [   16.551993]  ? find_first_bit+0x1d/0x70
      [   16.555858]  find_first_bit+0x1d/0x70
      [   16.559625]  intel_gvt_init_cmd_parser+0x127/0x3c0 [i915]
      [   16.565060]  ? __lock_is_held+0x8f/0xf0
      [   16.568990]  ? intel_gvt_clean_cmd_parser+0x10/0x10 [i915]
      [   16.574514]  ? __hrtimer_init+0x5d/0xb0
      [   16.578445]  intel_gvt_init_device+0x2c3/0x690 [i915]
      [   16.583537]  ? unregister_module_notifier+0x20/0x20
      [   16.588515]  intel_gvt_init+0x89/0x100 [i915]
      [   16.592962]  i915_driver_load+0x1992/0x1c70 [i915]
      [   16.597846]  ? __i915_printk+0x210/0x210 [i915]
      [   16.602410]  ? wait_for_completion+0x280/0x280
      [   16.606883]  ? lock_downgrade+0x2c0/0x2c0
      [   16.610923]  ? __pm_runtime_resume+0x46/0x90
      [   16.615238]  ? acpi_dev_found+0x76/0x80
      [   16.619162]  ? i915_pci_remove+0x30/0x30 [i915]
      [   16.623733]  local_pci_probe+0x74/0xe0
      [   16.627518]  pci_device_probe+0x208/0x310
      [   16.631561]  ? pci_device_remove+0x100/0x100
      [   16.635871]  ? __list_add_valid+0x29/0xa0
      [   16.639919]  driver_probe_device+0x40b/0x6b0
      [   16.644223]  ? driver_probe_device+0x6b0/0x6b0
      [   16.648696]  __driver_attach+0x11d/0x130
      [   16.652649]  bus_for_each_dev+0xe7/0x160
      [   16.656600]  ? subsys_dev_iter_exit+0x10/0x10
      [   16.660987]  ? __list_add_valid+0x29/0xa0
      [   16.665028]  bus_add_driver+0x31d/0x3a0
      [   16.668893]  driver_register+0xc6/0x170
      [   16.672758]  ? 0xffffffffc0ad8000
      [   16.676108]  do_one_initcall+0x9c/0x206
      [   16.679984]  ? initcall_blacklisted+0x150/0x150
      [   16.684545]  ? do_init_module+0x35/0x33b
      [   16.688494]  ? kasan_unpoison_shadow+0x31/0x40
      [   16.692968]  ? kasan_kmalloc+0xa6/0xd0
      [   16.696743]  ? do_init_module+0x35/0x33b
      [   16.700694]  ? kasan_unpoison_shadow+0x31/0x40
      [   16.705168]  ? __asan_register_globals+0x82/0xa0
      [   16.709819]  do_init_module+0xe7/0x33b
      [   16.713597]  load_module+0x4481/0x4ce0
      [   16.717397]  ? module_frob_arch_sections+0x20/0x20
      [   16.722228]  ? vfs_read+0x13b/0x190
      [   16.725742]  ? kernel_read+0x74/0xa0
      [   16.729351]  ? get_user_arg_ptr.isra.17+0x70/0x70
      [   16.734099]  ? SYSC_finit_module+0x175/0x1b0
      [   16.738399]  SYSC_finit_module+0x175/0x1b0
      [   16.742524]  ? SYSC_init_module+0x1e0/0x1e0
      [   16.746741]  ? __fget+0x157/0x240
      [   16.750090]  ? trace_hardirqs_on_thunk+0x1a/0x1c
      [   16.754747]  entry_SYSCALL_64_fastpath+0x23/0x9a
      [   16.759397] RIP: 0033:0x7f8fbc837499
      [   16.762996] RSP: 002b:00007ffead76c138 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
      [   16.770618] RAX: ffffffffffffffda RBX: 0000000000000012 RCX: 00007f8fbc837499
      [   16.777800] RDX: 0000000000000000 RSI: 000056484e67b080 RDI: 0000000000000012
      [   16.784979] RBP: 00007ffead76b140 R08: 0000000000000000 R09: 0000000000000021
      [   16.792164] R10: 0000000000000012 R11: 0000000000000246 R12: 000056484e67b460
      [   16.799345] R13: 00007ffead76b120 R14: 0000000000000005 R15: 0000000000000000
      [   16.808052] The buggy address belongs to the page:
      [   16.812876] page:00000000dc4b8c1e count:0 mapcount:0 mapping:          (null) index:0x0
      [   16.820934] flags: 0x17ffffc0000000()
      [   16.824621] raw: 0017ffffc0000000 0000000000000000 0000000000000000 00000000ffffffff
      [   16.832416] raw: ffffea000d85b3e0 ffffea000d85b3e0 0000000000000000 0000000000000000
      [   16.840208] page dumped because: kasan: bad access detected
      [   16.847318] Memory state around the buggy address:
      [   16.852143]  ffff8803616cf400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      [   16.859427]  ffff8803616cf480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1
      [   16.866708] >ffff8803616cf500: f1 f1 04 f4 f4 f4 f3 f3 f3 f3 00 00 00 00 00 00
      [   16.873988]                          ^
      [   16.877770]  ffff8803616cf580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      [   16.885042]  ffff8803616cf600: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
      [   16.892312] ==================================================================
      Signed-off-by: NChangbin Du <changbin.du@intel.com>
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      65e74392
  9. 07 1月, 2018 2 次提交
    • J
      leds: core: Fix regression caused by commit 2b83ff96 · 7b6af2c5
      Jacek Anaszewski 提交于
      Commit 2b83ff96 ("led: core: Fix brightness setting when setting delay_off=0")
      replaced del_timer_sync(&led_cdev->blink_timer) with led_stop_software_blink()
      in led_blink_set(), which additionally clears LED_BLINK_SW flag as well as
      zeroes blink_delay_on and blink_delay_off properties of the struct led_classdev.
      
      Cleansing of the latter ones wasn't required to fix the original issue but
      wasn't considered harmful. It nonetheless turned out to be so in case when
      pointer to one or both props is passed to led_blink_set() like in the
      ledtrig-timer.c. In such cases zeroes are passed later in delay_on and/or
      delay_off arguments to led_blink_setup(), which results either in stopping
      the software blinking or setting blinking frequency always to 1Hz.
      
      Avoid using led_stop_software_blink() and add a single call required
      to clear LED_BLINK_SW flag, which was the only needed modification to
      fix the original issue.
      
      Fixes 2b83ff96 ("led: core: Fix brightness setting when setting delay_off=0")
      Signed-off-by: NJacek Anaszewski <jacek.anaszewski@gmail.com>
      7b6af2c5
    • B
      mtd: nand: pxa3xx: Fix READOOB implementation · fee4380f
      Boris Brezillon 提交于
      In the current driver, OOB bytes are accessed in raw mode, and when a
      page access is done with NDCR_SPARE_EN set and NDCR_ECC_EN cleared, the
      driver must read the whole spare area (64 bytes in case of a 2k page,
      16 bytes for a 512 page). The driver was only reading the free OOB
      bytes, which was leaving some unread data in the FIFO and was somehow
      leading to a timeout.
      
      We could patch the driver to read ->spare_size + ->ecc_size instead of
      just ->spare_size when READOOB is requested, but we'd better make
      in-band and OOB accesses consistent.
      Since the driver is always accessing in-band data in non-raw mode (with
      the ECC engine enabled), we should also access OOB data in this mode.
      That's particularly useful when using the BCH engine because in this
      mode the free OOB bytes are also ECC protected.
      
      Fixes: 43bcfd2b ("mtd: nand: pxa3xx: Add driver-specific ECC BCH support")
      Cc: stable@vger.kernel.org
      Reported-by: NSean Nyekjær <sean.nyekjaer@prevas.dk>
      Tested-by: NWilly Tarreau <w@1wt.eu>
      Signed-off-by: NBoris Brezillon <boris.brezillon@free-electrons.com>
      Acked-by: NEzequiel Garcia <ezequiel@vanguardiasur.com.ar>
      Tested-by: NSean Nyekjaer <sean.nyekjaer@prevas.dk>
      Acked-by: NRobert Jarzmik <robert.jarzmik@free.fr>
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      fee4380f