Hi,

On Wed, 2 Aug 2023 14:11:36 +1000
Jonathan Gray <j...@jsg.id.au> wrote:
> 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.

Thanks.  I verified the diff fixed the problem.

> 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