Re: fixmap problem on PA11 hardware

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2021-10-31 7:07 p.m., Helge Deller wrote:
On 10/31/21 23:47, John David Anglin wrote:
My sense is the invalidate patch isn't correct.  The main difference between pdc and fdc is that
it is optional whether pdc writes the cache line back to memory when it's dirty at priority 0.
That's true, nevertheless I've seen different behaviour on real hardware.

It might be, that:

-	flush_kernel_vmap_range((void *)fixmap, (p-fixmap) * sizeof(*p));
+	invalidate_kernel_vmap_range((void *)fixmap, (p-fixmap) * sizeof(*p));
(here the flush might be sufficient)
  	if (mapped)
  		patch_unmap(FIX_TEXT_POKE0, &flags);
+	invalidate_kernel_vmap_range((void *)start, end - start);
(but here the pdc is necessary to actually drop data from I-cache)
  	flush_icache_range(start, end);

I can test tomorrow...
Maybe sync is needed before releasing lock.  pdc/fdc are weakly ordered.

Dave

--
John David Anglin  dave.anglin@xxxxxxxx




[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux