On 2019-05-25 5:01 a.m., Carlo Pisani wrote: > on kernel 5.1, from the git repository, compiled with SMP > > dmesg | grep altern > [ 2.551002] alternatives: applied 156 out of 175 patches > > this patch has made my day! > It seems the solution for the problem! > > the card is still working after 10 hours of burn-in test! > > --- a/arch/parisc/include/asm/cache.h > +++ b/arch/parisc/include/asm/cache.h > @@ -52,7 +52,6 @@ void parisc_setup_cache_timing(void); > > #define asm_io_fdc(addr) asm volatile("fdc %%r0(%0)" \ > ALTERNATIVE(ALT_COND_NO_DCACHE, INSN_NOP) \ > - ALTERNATIVE(ALT_COND_NO_IOC_FDC, INSN_NOP) \ > : : "r" (addr) : "memory") > #define asm_io_sync() asm volatile("sync" \ > ALTERNATIVE(ALT_COND_NO_DCACHE, INSN_NOP) \ The change isn't fully correct as the alternative should also have been removed from the asm_io_sync() define. If the change actually fixes controller, then there must be a problem with the test in arch/parisc/kernel/alternative.c that determines whether or not to patch out fdc instruction on c3600. See Helge's patch to fix alternative coding for PCX-U CPUs. It would help to print boot_cpu_data.pdc.capabilities and boot_cpu_data.cpu_type on your machine. Dave -- John David Anglin dave.anglin@xxxxxxxx