Skip to content

Commit 6a30bed

Browse files
committed
Merge git://git.kernel.org:/pub/scm/linux/kernel/git/davem/sparc
Pull sparc fixes from David Miller: "Fix opcode filtering for exceptions, and clean up defconfig" * git://git.kernel.org:/pub/scm/linux/kernel/git/davem/sparc: sparc: sparc64_defconfig: remove duplicate CONFIGs sparc64: Fix opcode filtering in handling of no fault loads
2 parents 4b3d9f9 + 69264b4 commit 6a30bed

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

arch/sparc/configs/sparc64_defconfig

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ CONFIG_NETDEVICES=y
9393
CONFIG_NET_ETHERNET=y
9494
CONFIG_MII=m
9595
CONFIG_SUNLANCE=m
96-
CONFIG_HAPPYMEAL=m
96+
CONFIG_HAPPYMEAL=y
9797
CONFIG_SUNGEM=m
9898
CONFIG_SUNVNET=m
9999
CONFIG_LDMVSW=m
@@ -234,9 +234,7 @@ CONFIG_CRYPTO_TWOFISH=m
234234
CONFIG_CRC16=m
235235
CONFIG_LIBCRC32C=m
236236
CONFIG_VCC=m
237-
CONFIG_ATA=y
238237
CONFIG_PATA_CMD64X=y
239-
CONFIG_HAPPYMEAL=y
240238
CONFIG_IP_PNP=y
241239
CONFIG_IP_PNP_DHCP=y
242240
CONFIG_DEVTMPFS=y

arch/sparc/kernel/traps_64.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -275,14 +275,13 @@ bool is_no_fault_exception(struct pt_regs *regs)
275275
asi = (regs->tstate >> 24); /* saved %asi */
276276
else
277277
asi = (insn >> 5); /* immediate asi */
278-
if ((asi & 0xf2) == ASI_PNF) {
279-
if (insn & 0x1000000) { /* op3[5:4]=3 */
280-
handle_ldf_stq(insn, regs);
281-
return true;
282-
} else if (insn & 0x200000) { /* op3[2], stores */
278+
if ((asi & 0xf6) == ASI_PNF) {
279+
if (insn & 0x200000) /* op3[2], stores */
283280
return false;
284-
}
285-
handle_ld_nf(insn, regs);
281+
if (insn & 0x1000000) /* op3[5:4]=3 (fp) */
282+
handle_ldf_stq(insn, regs);
283+
else
284+
handle_ld_nf(insn, regs);
286285
return true;
287286
}
288287
}

0 commit comments

Comments
 (0)