linux-hardened/arch/mips
David Daney 49c426ba44 MIPS: Make virt_to_phys() work for all unmapped addresses.
As reported:
  This problem was discovered when doing BGP traffic with the TCP MD5 option
  activated, where the following call chain caused a crash:

   * tcp_v4_rcv
   *  tcp_v4_timewait_ack
   *   tcp_v4_send_ack -> follow stack variable rep.th
   *    tcp_v4_md5_hash_hdr
   *     tcp_md5_hash_header
   *      sg_init_one
   *       sg_set_buf
   *        virt_to_page

  I noticed that tcp_v4_send_reset uses a similar stack variable and
  also calls tcp_v4_md5_hash_hdr, so it has the same problem.

The networking core can indirectly call virt_to_phys() on stack
addresses, if this is done from PID 0, the stack will usually be in
CKSEG0, so virt_to_phys() needs to work there as well

Signed-off-by: David Daney <david.daney@cavium.com>
Cc: linux-mips@linux-mips.org
Cc: Jiang Liu <liuj97@gmail.com>
Cc: eunb.song@samsung.com
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/5220/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2013-05-17 20:36:15 +02:00
..
alchemy MIPS: Kconfig: remove "config MIPS_DISABLE_OBSOLETE_IDE" 2013-05-08 01:19:06 +02:00
ar7 MIPS: FW: Remove obsolete header file for MTI platforms. 2013-05-08 12:30:10 +02:00
ath79 MIPS: ath79: make use of the new memory detection code 2013-05-08 01:19:12 +02:00
bcm47xx Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into mips-for-linux-next 2013-02-22 10:07:30 +01:00
bcm63xx Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-05-10 07:48:05 -07:00
boot MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
cavium-octeon MIPS: octeon: Fix GPIO number in IRQ chip private data 2013-05-08 01:19:07 +02:00
cobalt MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
configs Merge branch 'mti-next' of git://git.linux-mips.org/pub/scm/sjhill/linux-sjhill into mips-for-linux-next 2013-05-09 17:57:30 +02:00
dec MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
emma MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fw MIPS: FW: Add environment variable processing. 2013-05-08 12:30:09 +02:00
include MIPS: Make virt_to_phys() work for all unmapped addresses. 2013-05-17 20:36:15 +02:00
jazz Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-03-02 07:44:16 -08:00
jz4740 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
kernel MIPS: Fix build error for crash_dump.c in 3.10-rc1 2013-05-17 20:36:02 +02:00
kvm Revert "MIPS: Allow ASID size to be determined at boot time." 2013-05-16 20:35:42 +02:00
lantiq MIPS: Xway: Fix clk leak 2013-05-17 20:35:53 +02:00
lasat procfs: new helper - PDE_DATA(inode) 2013-04-09 14:13:32 -04:00
lib Revert "MIPS: Allow ASID size to be determined at boot time." 2013-05-16 20:35:42 +02:00
loongson mips: loongson: use GPIO driver on CONFIG_GPIOLIB 2013-03-20 22:48:13 +09:00
loongson1 Merge branch 'mips-next-3.9' of git://git.linux-mips.org/pub/scm/john/linux-john into mips-for-linux-next 2013-02-21 12:51:33 +01:00
math-emu MIPS: microMIPS: Floating point support. 2013-05-09 17:55:18 +02:00
mm Revert "MIPS: Allow ASID size to be determined at boot time." 2013-05-16 20:35:42 +02:00
mti-malta Merge branch 'mti-next' of git://git.linux-mips.org/pub/scm/sjhill/linux-sjhill into mips-for-linux-next 2013-05-09 17:57:30 +02:00
mti-sead3 MIPS: Move 'gic_present' to common location. 2013-05-09 17:55:20 +02:00
netlogic MIPS: Netlogic: Merge platform usb.h to usb-init.c 2013-05-08 01:19:05 +02:00
oprofile MIPS: Netlogic: Fix oprofile compile on XLR uniprocessor 2013-05-08 01:19:05 +02:00
pci Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-05-10 07:48:05 -07:00
pmcs-msp71xx MIPS: MSP71xx: Move code. 2013-02-01 10:00:22 +01:00
pnx833x MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
power MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
powertv MIPS: FW: Remove obsolete header file for MTI platforms. 2013-05-08 12:30:10 +02:00
ralink Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-05-10 07:48:05 -07:00
rb532 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sgi-ip22 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sgi-ip27 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-05-10 07:48:05 -07:00
sgi-ip32 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sibyte mips: single_open() leaks 2013-05-05 00:10:21 -04:00
sni Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-03-02 07:44:16 -08:00
txx9 mips: txx9: change GENERIC_GPIO to GPIOLIB 2013-03-20 22:48:14 +09:00
vr41xx MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
wrppmc MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
Kbuild KVM/MIPS32: Infrastructure/build files. 2013-05-08 03:55:34 +02:00
Kbuild.platforms Merge branch 'mips-next-3.9' of git://git.linux-mips.org/pub/scm/john/linux-john into mips-for-linux-next 2013-02-21 12:51:33 +01:00
Kconfig Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-05-10 07:48:05 -07:00
Kconfig.debug Fix typo in various Kconfig file 2012-04-16 14:40:08 +02:00
Makefile MIPS: microMIPS: Add configuration option for microMIPS kernel. 2013-05-09 17:55:19 +02:00