On 8/12/20 10:52 AM, Richard Henderson wrote: > On 8/12/20 10:38 AM, Andrey Konovalov wrote: >> On Wed, Aug 12, 2020 at 7:19 PM Richard Henderson >> <richard.hender...@linaro.org> wrote: >>> >>> As reported by Andrey, I was missing the complete ISS info for >>> the Data Abort raised upon a synchronous tag check fail. >>> >>> The following should fix that. All the twisty little rules for >>> the ISS.ISV bit are already handled by merge_syn_data_abort. >>> Probably the most important bit that was missing was ISS.WnR, >>> as that is independent of ISS.ISV. >>> >>> Andrey, will you please test? >> >> Looks like WnR is now being set properly, but SAS is still always 0. > > Are you looking at ESR_EL1? > > On page D13-2992 of revision F.a: > > # ISV is 0 for all faults reported in ESR_EL1 or ESR_EL3. > > which means that ISS[23:14] are RES0, which includes SAS.
Actually, note that AArch64.TagCheckFault never fills in anything except WnR. So the final patch here merging the recorded syndrome information is wrong. I was only missing WnR in the original implementation. r~