1. 26 Jul, 2021 4 commits
    • Zheyu Ma's avatar
      video: fbdev: riva: Error out if 'pixclock' equals zero · f92763cb
      Zheyu Ma authored
      The userspace program could pass any values to the driver through
      ioctl() interface. If the driver doesn't check the value of 'pixclock',
      it may cause divide error.
      
      Fix this by checking whether 'pixclock' is zero first.
      
      The following log reveals it:
      
      [   33.396850] divide error: 0000 [#1] PREEMPT SMP KASAN PTI
      [   33.396864] CPU: 5 PID: 11754 Comm: i740 Not tainted 5.14.0-rc2-00513-gac532c9bbcfb-dirty #222
      [   33.396883] RIP: 0010:riva_load_video_mode+0x417/0xf70
      [   33.396969] Call Trace:
      [   33.396973]  ? debug_smp_processor_id+0x1c/0x20
      [   33.396984]  ? tick_nohz_tick_stopped+0x1a/0x90
      [   33.396996]  ? rivafb_copyarea+0x3c0/0x3c0
      [   33.397003]  ? wake_up_klogd.part.0+0x99/0xd0
      [   33.397014]  ? vprintk_emit+0x110/0x4b0
      [   33.397024]  ? vprintk_default+0x26/0x30
      [   33.397033]  ? vprintk+0x9c/0x1f0
      [   33.397041]  ? printk+0xba/0xed
      [   33.397054]  ? record_print_text.cold+0x16/0x16
      [   33.397063]  ? __kasan_check_read+0x11/0x20
      [   33.397074]  ? profile_tick+0xc0/0x100
      [   33.397084]  ? __sanitizer_cov_trace_const_cmp4+0x24/0x80
      [   33.397094]  ? riva_set_rop_solid+0x2a0/0x2a0
      [   33.397102]  rivafb_set_par+0xbe/0x610
      [   33.397111]  ? riva_set_rop_solid+0x2a0/0x2a0
      [   33.397119]  fb_set_var+0x5bf/0xeb0
      [   33.397127]  ? fb_blank+0x1a0/0x1a0
      [   33.397134]  ? lock_acquire+0x1ef/0x530
      [   33.397143]  ? lock_release+0x810/0x810
      [   33.397151]  ? lock_is_held_type+0x100/0x140
      [   33.397159]  ? ___might_sleep+0x1ee/0x2d0
      [   33.397170]  ? __mutex_lock+0x620/0x1190
      [   33.397180]  ? trace_hardirqs_on+0x6a/0x1c0
      [   33.397190]  do_fb_ioctl+0x31e/0x700
      Signed-off-by: default avatarZheyu Ma <zheyuma97@gmail.com>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/1627293835-17441-4-git-send-email-zheyuma97@gmail.com
      f92763cb
    • Zheyu Ma's avatar
      video: fbdev: kyro: Error out if 'pixclock' equals zero · 1520b4b7
      Zheyu Ma authored
      The userspace program could pass any values to the driver through
      ioctl() interface. if the driver doesn't check the value of 'pixclock',
      it may cause divide error because the value of 'lineclock' and
      'frameclock' will be zero.
      
      Fix this by checking whether 'pixclock' is zero in kyrofb_check_var().
      
      The following log reveals it:
      
      [  103.073930] divide error: 0000 [#1] PREEMPT SMP KASAN PTI
      [  103.073942] CPU: 4 PID: 12483 Comm: syz-executor Not tainted 5.14.0-rc2-00478-g2734d6c1-dirty #118
      [  103.073959] RIP: 0010:kyrofb_set_par+0x316/0xc80
      [  103.074045] Call Trace:
      [  103.074048]  ? ___might_sleep+0x1ee/0x2d0
      [  103.074060]  ? kyrofb_ioctl+0x330/0x330
      [  103.074069]  fb_set_var+0x5bf/0xeb0
      [  103.074078]  ? fb_blank+0x1a0/0x1a0
      [  103.074085]  ? lock_acquire+0x3bd/0x530
      [  103.074094]  ? lock_release+0x810/0x810
      [  103.074103]  ? ___might_sleep+0x1ee/0x2d0
      [  103.074114]  ? __mutex_lock+0x620/0x1190
      [  103.074126]  ? trace_hardirqs_on+0x6a/0x1c0
      [  103.074137]  do_fb_ioctl+0x31e/0x700
      [  103.074144]  ? fb_getput_cmap+0x280/0x280
      [  103.074152]  ? rcu_read_lock_sched_held+0x11/0x80
      [  103.074162]  ? rcu_read_lock_sched_held+0x11/0x80
      [  103.074171]  ? __sanitizer_cov_trace_switch+0x67/0xf0
      [  103.074181]  ? __sanitizer_cov_trace_const_cmp2+0x20/0x80
      [  103.074191]  ? do_vfs_ioctl+0x14b/0x16c0
      [  103.074199]  ? vfs_fileattr_set+0xb60/0xb60
      [  103.074207]  ? rcu_read_lock_sched_held+0x11/0x80
      [  103.074216]  ? lock_release+0x483/0x810
      [  103.074224]  ? __fget_files+0x217/0x3d0
      [  103.074234]  ? __fget_files+0x239/0x3d0
      [  103.074243]  ? do_fb_ioctl+0x700/0x700
      [  103.074250]  fb_ioctl+0xe6/0x130
      Signed-off-by: default avatarZheyu Ma <zheyuma97@gmail.com>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/1627293835-17441-3-git-send-email-zheyuma97@gmail.com
      1520b4b7
    • Zheyu Ma's avatar
      video: fbdev: asiliantfb: Error out if 'pixclock' equals zero · b36b242d
      Zheyu Ma authored
      The userspace program could pass any values to the driver through
      ioctl() interface. If the driver doesn't check the value of 'pixclock',
      it may cause divide error.
      
      Fix this by checking whether 'pixclock' is zero first.
      
      The following log reveals it:
      
      [   43.861711] divide error: 0000 [#1] PREEMPT SMP KASAN PTI
      [   43.861737] CPU: 2 PID: 11764 Comm: i740 Not tainted 5.14.0-rc2-00513-gac532c9bbcfb-dirty #224
      [   43.861756] RIP: 0010:asiliantfb_check_var+0x4e/0x730
      [   43.861843] Call Trace:
      [   43.861848]  ? asiliantfb_remove+0x190/0x190
      [   43.861858]  fb_set_var+0x2e4/0xeb0
      [   43.861866]  ? fb_blank+0x1a0/0x1a0
      [   43.861873]  ? lock_acquire+0x1ef/0x530
      [   43.861884]  ? lock_release+0x810/0x810
      [   43.861892]  ? lock_is_held_type+0x100/0x140
      [   43.861903]  ? ___might_sleep+0x1ee/0x2d0
      [   43.861914]  ? __mutex_lock+0x620/0x1190
      [   43.861921]  ? do_fb_ioctl+0x313/0x700
      [   43.861929]  ? mutex_lock_io_nested+0xfa0/0xfa0
      [   43.861936]  ? __this_cpu_preempt_check+0x1d/0x30
      [   43.861944]  ? _raw_spin_unlock_irqrestore+0x46/0x60
      [   43.861952]  ? lockdep_hardirqs_on+0x59/0x100
      [   43.861959]  ? _raw_spin_unlock_irqrestore+0x46/0x60
      [   43.861967]  ? trace_hardirqs_on+0x6a/0x1c0
      [   43.861978]  do_fb_ioctl+0x31e/0x700
      Signed-off-by: default avatarZheyu Ma <zheyuma97@gmail.com>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/1627293835-17441-2-git-send-email-zheyuma97@gmail.com
      b36b242d
    • Simon Ser's avatar
      drm: document drm_property_enum.value for bitfields · 3012248f
      Simon Ser authored
      When a property has the type DRM_MODE_PROP_BITMASK, the value field
      stores a bitshift, not a bitmask, which can be surprising.
      Signed-off-by: default avatarSimon Ser <contact@emersion.fr>
      Cc: Leandro Ribeiro <leandro.ribeiro@collabora.com>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Acked-by: default avatarPekka Paalanen <pekka.paalanen@collabora.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/NUZTPTKKZtAlDhxIXFB1qrUqWBYKapkBxCnb1S1bc3g@cp3-web-033.plabs.ch
      3012248f
  2. 25 Jul, 2021 9 commits
  3. 23 Jul, 2021 11 commits
  4. 22 Jul, 2021 1 commit
  5. 21 Jul, 2021 11 commits
  6. 20 Jul, 2021 4 commits