> Date: Wed, 2 Aug 2023 14:11:36 +1000
> From: Jonathan Gray <j...@jsg.id.au>
> 
> On Mon, Jul 31, 2023 at 10:48:12PM +1000, Jonathan Gray wrote:
> > On Sun, Jul 30, 2023 at 03:21:47PM +0900, YASUOKA Masahiko wrote:
> > > Hello,
> > > 
> > > I got new vaio last week, the machine seems to have the same graphic
> > > 
> > >   inteldrm0 at pci0 dev 2 function 0 "Intel Graphics" rev 0x04
> > >   drm0 at inteldrm0
> > >   inteldrm0: msi, ALDERLAKE_P, gen 12
> > > 
> > > and has the same problem.  I found having Option "PageFlip" "off" in
> > > /etc/X11/xorg.conf can workaround the problem.
> > > 
> > >   Section "Device"
> > >           Identifier      "Card0"
> > >           Driver          "modesetting"
> > >           BusID           "PCI:0:2:0"
> > >           Option          "PageFlip" "off"
> > >   EndSection
> > 
> > running GENERIC I got the following with xfce.
> > 
> > matches the trace in an earlier report from sthen@
> > https://marc.info/?l=openbsd-bugs&m=168234057913478&w=2
> > 
> > dpt_insert_entries+0xbc: movl 0x34(%r8),%r10d
> > r8  0xffff800001938fe0
> > r10 0x1000
> > 
> >    0xffffffff81ab0bc3 <+179>:   mov    %r8,%rcx
> >    0xffffffff81ab0bc6 <+182>:   add    $0x20,%rcx
> >    0xffffffff81ab0bca <+186>:   je     0xffffffff81ab0be8 
> > <dpt_insert_entries+216>
> >    0xffffffff81ab0bcc <+188>:   mov    0x34(%r8),%r10d
> >    0xffffffff81ab0bd0 <+192>:   test   %r10d,%r10d
> >    0xffffffff81ab0bd3 <+195>:   je     0xffffffff81ab0be8 
> > <dpt_insert_entries+216>
> > 
> > (gdb) info line *0xffffffff81ab0bcc
> > Line 34 of "/sys/dev/pci/drm/i915/i915_scatterlist.h"
> >    starts at address 0xffffffff81ab0bc1 <dpt_insert_entries+177>
> >    and ends at 0xffffffff81ab0bd5 <dpt_insert_entries+197>.
> > 
> >         if (dma && s.sgp && sg_dma_len(s.sgp) == 0) {
> > 
> > dpt_insert_entries+0xbc
> > dpt_bind_vma+0x64
> > i915_vma_bind+0x317
> > i915_vma_pin_ww+0x44b
> > intel_plane_pin_fb+0x25c
> > intel_prepare_plane_pin_fb+0x12c
> > drm_atomic_helper_prepare_planes+0x5b
> > intel_atomic_commit+0xda
> > drm_atomic_helper_page_flip+0x77
> > drm_mode_page_flip_ioctl+0x466
> > drm_do_ioctl+0x285
> > drmioctl+0xdc
> > VOP_IOCTL+0x57
> > vn_ioctl+0x6c
> 
> The fix is to not reset the end of list marker when
> assigning a page.

The Linux version retains the end marker, so this fix appears to be correct.

ok kettenis@

> Index: sys/dev/pci/drm/include/linux/scatterlist.h
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/drm/include/linux/scatterlist.h,v
> retrieving revision 1.5
> diff -u -p -r1.5 scatterlist.h
> --- sys/dev/pci/drm/include/linux/scatterlist.h       1 Jan 2023 01:34:58 
> -0000       1.5
> +++ sys/dev/pci/drm/include/linux/scatterlist.h       2 Aug 2023 04:02:02 
> -0000
> @@ -119,7 +119,6 @@ sg_set_page(struct scatterlist *sgl, str
>       sgl->dma_address = page ? VM_PAGE_TO_PHYS(page) : 0;
>       sgl->offset = offset;
>       sgl->length = length;
> -     sgl->end = false;
>  }
>  
>  #define sg_dma_address(sg)   ((sg)->dma_address)
> 
> 

Reply via email to