1
0
Fork 0
alistair23-linux/arch/mips/pci
Matt Redfearn 735302665c MIPS: PCI: Fix smp_processor_id() in preemptible
Commit 1c3c5eab17 ("sched/core: Enable might_sleep() and
smp_processor_id() checks early") enables checks for might_sleep() and
smp_processor_id() being used in preemptible code earlier in the boot
than before. This results in a new BUG from
pcibios_set_cache_line_size().

BUG: using smp_processor_id() in preemptible [00000000] code:
swapper/0/1 caller is pcibios_set_cache_line_size+0x10/0x70
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.13.0-rc1-00007-g3ce3e4ba4275 #615
Stack: 0000000000000000 ffffffff81189694 0000000000000000 ffffffff81822318
       000000000000004e 0000000000000001 800000000e20bd08 20c49ba5e3540000
       0000000000000000 0000000000000000 ffffffff818d0000 0000000000000000
       0000000000000000 ffffffff81189328 ffffffff818ce692 0000000000000000
       0000000000000000 ffffffff81189bc8 ffffffff818d0000 0000000000000000
       ffffffff81828907 ffffffff81769970 800000020ec78d80 ffffffff818c7b48
       0000000000000001 0000000000000001 ffffffff818652b0 ffffffff81896268
       ffffffff818c0000 800000020ec7fb40 800000020ec7fc58 ffffffff81684cac
       0000000000000000 ffffffff8118ab50 0000000000000030 ffffffff81769970
       0000000000000001 ffffffff81122a58 0000000000000000 0000000000000000 ...
Call Trace:
[<ffffffff81122a58>] show_stack+0x90/0xb0
[<ffffffff81684cac>] dump_stack+0xac/0xf0
[<ffffffff813f7050>] check_preemption_disabled+0x120/0x128
[<ffffffff818855e8>] pcibios_set_cache_line_size+0x10/0x70
[<ffffffff81100578>] do_one_initcall+0x48/0x140
[<ffffffff81865dc4>] kernel_init_freeable+0x194/0x24c
[<ffffffff8169c534>] kernel_init+0x14/0x118
[<ffffffff8111ca84>] ret_from_kernel_thread+0x14/0x1c

Fix this by using the cpu_*cache_line_size() macros instead. These
macros are the "proper" way to determine the CPU cache sizes.
This makes use of the newly added cpu_tcache_line_size.

Fixes: 1c3c5eab17 ("sched/core: Enable might_sleep() and smp_processor_id() checks early")
Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com>
Suggested-by: James Hogan <james.hogan@imgtec.com>
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2017-08-08 00:04:31 +02:00
..
Makefile MIPS: PCI: Support generic drivers 2016-10-06 18:00:52 +02:00
fixup-bcm63xx.c MIPS: BCM63xx: Add support for the Broadcom BCM63xx family of SOCs. 2009-09-17 20:07:52 +02:00
fixup-capcella.c Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
fixup-cobalt.c PCI: Remove unnecessary #includes of <asm/pci.h> 2015-06-08 07:56:09 -05:00
fixup-emma2rh.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fixup-fuloong2e.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fixup-ip32.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fixup-jmr3927.c [MIPS] TXx9: Make single kernel can support multiple boards 2008-07-15 18:44:35 +01:00
fixup-lantiq.c MIPS: Change my email address 2016-05-13 14:02:18 +02:00
fixup-lemote2f.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fixup-loongson3.c MIPS: Loongson 3: Keep CPU physical (not virtual) addresses in shadow ROM resource 2016-03-12 06:00:29 -06:00
fixup-malta.c MIPS: Malta: Let PIIX4 respond to PCI special cycles 2014-05-30 21:01:09 +02:00
fixup-mpc30x.c mips: mark const init data with __initconst instead of __initdata 2012-07-19 11:23:43 +02:00
fixup-pmcmsp.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fixup-rbtx4927.c [MIPS] TXx9: Make single kernel can support multiple boards 2008-07-15 18:44:35 +01:00
fixup-rbtx4938.c [MIPS] TXx9: Make single kernel can support multiple boards 2008-07-15 18:44:35 +01:00
fixup-rc32434.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
fixup-sb1250.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
fixup-sni.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fixup-tb0219.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fixup-tb0226.c Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
fixup-tb0287.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
msi-octeon.c MIPS/PCI: Use for_pci_msi_entry() to access MSI device list 2015-07-22 18:37:42 +02:00
msi-xlp.c MIPS: Netlogic: Use chip_data for irq_chip methods 2015-09-03 12:08:03 +02:00
ops-bcm63xx.c MIPS: Remove useless parentheses 2014-11-24 07:44:49 +01:00
ops-bonito64.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
ops-bridge.c MIPS: IP27: Fix typo 2016-05-28 12:35:07 +02:00
ops-emma2rh.c MIPS: ops-emma2rh: Drop nonsensical db_assert 2015-08-26 15:23:35 +02:00
ops-gt64xxx_pci0.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
ops-lantiq.c MIPS: Change my email address 2016-05-13 14:02:18 +02:00
ops-loongson2.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
ops-loongson3.c MIPS: Loongson 3: Add HT-linked PCI support 2014-03-31 18:17:12 +02:00
ops-mace.c PCI: Remove unnecessary #includes of <asm/pci.h> 2015-06-08 07:56:09 -05:00
ops-msc.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
ops-nile4.c MIPS: NILE4: Remove odd locking in PCI config space access code 2014-11-24 07:44:49 +01:00
ops-pmcmsp.c MIPS: MSP71xx: remove odd locking in PCI config space access code 2014-11-24 07:44:50 +01:00
ops-rc32434.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
ops-sni.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
ops-tx3927.c mips: Update the email address of Geert Uytterhoeven 2014-06-02 16:34:41 +02:00
ops-tx4927.c MIPS: TXx9: Delete an unused variable in tx4927_pcibios_setup 2014-07-30 15:58:39 +02:00
ops-vr41xx.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-alchemy.c MIPS: Sanitise coherentio semantics 2016-10-06 18:01:28 +02:00
pci-ar71xx.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-ar724x.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-ar2315.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
pci-bcm47xx.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-bcm63xx.c MIPS: BCM63XX: add support for BCM3368 Cable Modem 2013-07-01 15:10:53 +02:00
pci-bcm63xx.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-bcm1480.c MIPS: Add struct pci_ops member names to initialization 2015-01-16 15:04:38 +01:00
pci-bcm1480ht.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-emma2rh.c MIPS: Eleminate filenames from comments 2009-08-03 17:52:40 +01:00
pci-generic.c MIPS: PCI: Support generic drivers 2016-10-06 18:00:52 +02:00
pci-ip27.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
pci-ip32.c MIPS: make PCI_DMA_BUS_IS_PHYS=1 constant 2016-05-13 14:02:17 +02:00
pci-lantiq.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-lantiq.h MIPS: Change my email address 2016-05-13 14:02:18 +02:00
pci-lasat.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-legacy.c MIPS: PCI: Remove unused busn_offset 2017-05-18 15:39:19 -05:00
pci-malta.c MIPS: Malta: Make use of generic CM support 2014-03-26 23:09:06 +01:00
pci-mt7620.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-octeon.c treewide: Move dma_ops from struct dev_archdata into struct device 2017-01-24 12:23:35 -05:00
pci-rc32434.c MIPS: RC32434: fix broken PCI resource initialization 2014-05-26 09:02:06 +02:00
pci-rt2880.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-rt3883.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-sb1250.c TTY:vt: convert remain take_over_console's users to do_take_over_console 2013-05-20 22:29:27 -07:00
pci-tx4927.c MIPS: TXx9: Modernize printing of kernel messages 2017-01-03 16:34:32 +01:00
pci-tx4938.c MIPS: TXx9: Modernize printing of kernel messages 2017-01-03 16:34:32 +01:00
pci-tx4939.c MIPS: TXx9: Modernize printing of kernel messages 2017-01-03 16:34:32 +01:00
pci-virtio-guest.c MIPS: paravirt: Add pci controller for virtio 2014-06-02 12:34:20 +02:00
pci-vr41xx.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-vr41xx.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-xlp.c MIPS: PCI: Netlogic XLP9XX support 2014-01-24 22:39:49 +01:00
pci-xlr.c PCI/MSI: Rename write_msi_msg() to pci_write_msi_msg() 2014-11-23 13:01:45 +01:00
pci.c MIPS: PCI: Fix smp_processor_id() in preemptible 2017-08-08 00:04:31 +02:00
pcie-octeon.c MIPS: Octeon: Remove unused SLI types and macros. 2017-04-10 11:56:06 +02:00