Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> writes:
On '030, the relevant code is: if (mmusr & (MMU_I | MMU_WP)) { if (ssw & 4) { printk("Data %s fault at %#010lx in %s (pc=%#lx)\n", ssw & RW ? "read" : "write", fp->un.fmtb.daddr, space_names[ssw & DFC], fp->ptregs.pc); goto buserr; } /* Don't try to do anything further if an exception was handled. */ if (do_page_fault (&fp->ptregs, addr, errorcode) < 0) return; But we never get to do_page_fault(), as ssw = 5 (SUPER_DATA). The "if (ssw & 4) { ... }" chunk was added in commit e48d483d581278fae02a5fffeba2b1fef47be4d4 (from full-history-linux):
I guess it just reinstates the condition in the first hunk. - if (fp->ptregs.sr & PS_S) { - /* kernel fault must be a data fault to user space */ Andreas. -- Andreas Schwab, schwab@xxxxxxxxxxxxxx GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." -- To unsubscribe from this list: send the line "unsubscribe linux-m68k" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html