- 05 6月, 2014 2 次提交
-
-
由 Christoph Lameter 提交于
__get_cpu_var() is used for multiple purposes in the kernel source. One of them is address calculation via the form &__get_cpu_var(x). This calculates the address for the instance of the percpu variable of the current processor based on an offset. Other use cases are for storing and retrieving data from the current processors percpu area. __get_cpu_var() can be used as an lvalue when writing data or on the right side of an assignment. __get_cpu_var() is defined as : #define __get_cpu_var(var) (*this_cpu_ptr(&(var))) __get_cpu_var() always only does an address determination. However, store and retrieve operations could use a segment prefix (or global register on other platforms) to avoid the address calculation. this_cpu_write() and this_cpu_read() can directly take an offset into a percpu area and use optimized assembly code to read and write per cpu variables. This patch converts __get_cpu_var into either an explicit address calculation using this_cpu_ptr() or into a use of this_cpu operations that use the offset. Thereby address calculations are avoided and less registers are used when code is generated. At the end of the patch set all uses of __get_cpu_var have been removed so the macro is removed too. The patch set includes passes over all arches as well. Once these operations are used throughout then specialized macros can be defined in non -x86 arches as well in order to optimize per cpu access by f.e. using a global register that may be set to the per cpu base. Transformations done to __get_cpu_var() 1. Determine the address of the percpu instance of the current processor. DEFINE_PER_CPU(int, y); int *x = &__get_cpu_var(y); Converts to int *x = this_cpu_ptr(&y); 2. Same as #1 but this time an array structure is involved. DEFINE_PER_CPU(int, y[20]); int *x = __get_cpu_var(y); Converts to int *x = this_cpu_ptr(y); 3. Retrieve the content of the current processors instance of a per cpu variable. DEFINE_PER_CPU(int, y); int x = __get_cpu_var(y) Converts to int x = __this_cpu_read(y); 4. Retrieve the content of a percpu struct DEFINE_PER_CPU(struct mystruct, y); struct mystruct x = __get_cpu_var(y); Converts to memcpy(&x, this_cpu_ptr(&y), sizeof(x)); 5. Assignment to a per cpu variable DEFINE_PER_CPU(int, y) __get_cpu_var(y) = x; Converts to __this_cpu_write(y, x); 6. Increment/Decrement etc of a per cpu variable DEFINE_PER_CPU(int, y); __get_cpu_var(y)++ Converts to __this_cpu_inc(y) Signed-off-by: NChristoph Lameter <cl@linux.com> Tested-by: Geert Uytterhoeven <geert@linux-m68k.org> [compilation only] Cc: Paul Mundt <lethal@linux-sh.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Naoya Horiguchi 提交于
Currently hugepage migration is available for all archs which support pmd-level hugepage, but testing is done only for x86_64 and there're bugs for other archs. So to avoid breaking such archs, this patch limits the availability strictly to x86_64 until developers of other archs get interested in enabling this feature. Simply disabling hugepage migration on non-x86_64 archs is not enough to fix the reported problem where sys_move_pages() hits the BUG_ON() in follow_page(FOLL_GET), so let's fix this by checking if hugepage migration is supported in vma_migratable(). Signed-off-by: NNaoya Horiguchi <n-horiguchi@ah.jp.nec.com> Reported-by: NMichael Ellerman <mpe@ellerman.id.au> Tested-by: NMichael Ellerman <mpe@ellerman.id.au> Acked-by: NHugh Dickins <hughd@google.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Tony Luck <tony.luck@intel.com> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: James Hogan <james.hogan@imgtec.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: David Miller <davem@davemloft.net> Cc: <stable@vger.kernel.org> [3.12+] Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 02 6月, 2014 2 次提交
-
-
由 Ulf Hansson 提交于
Remove the option to provide DMA configuration as platform data, enforce it through DT. Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org> Cc: Russell King <linux@arm.linux.org.uk> Cc: Roland Stigge <stigge@antcom.de> Acked-by: NArnd Bergmann <arnd@arndb.de>
-
由 Benjamin Herrenschmidt 提交于
Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
-
- 01 6月, 2014 1 次提交
-
-
由 Olof Johansson 提交于
This was caught by a panic on Broadcom mobile platforms. Note that this code is all going away with the pending l2x0 cleanup series from Russell, but we need this here until that's landed so we can enable exynos multiplatform. Signed-off-by: NOlof Johansson <olof@lixom.net>
-
- 31 5月, 2014 33 次提交
-
-
由 Abhilash Kesavan 提交于
This fixes the following build errors: /tmp/ccRbZlaA.s: Assembler messages: /tmp/ccRbZlaA.s:69: Error: selected processor does not support ARM mode `isb ' /tmp/ccRbZlaA.s:75: Error: selected processor does not support ARM mode `isb ' /tmp/ccRbZlaA.s:76: Error: selected processor does not support ARM mode `dsb ' make[1]: *** [arch/arm/mach-exynos/hotplug.o] Error 1 /tmp/ccJEg4jw.s: Assembler messages: /tmp/ccJEg4jw.s:454: Error: selected processor does not support ARM mode `isb' /tmp/ccJEg4jw.s:455: Error: selected processor does not support ARM mode `dsb' /tmp/ccJEg4jw.s:465: Error: selected processor does not support ARM mode `isb' /tmp/ccJEg4jw.s:474: Error: selected processor does not support ARM mode `isb' /tmp/ccJEg4jw.s:475: Error: selected processor does not support ARM mode `dsb' /tmp/ccJEg4jw.s:516: Error: selected processor does not support ARM mode `isb' /tmp/ccJEg4jw.s:525: Error: selected processor does not support ARM mode `isb' /tmp/ccJEg4jw.s:526: Error: selected processor does not support ARM mode `dsb' make[1]: *** [arch/arm/mach-exynos/mcpm-exynos.o] Error 1 Reported-by: NSachin Kamat <sachin.kamat@linaro.org> Signed-off-by: NAbhilash Kesavan <a.kesavan@samsung.com> Tested-by: NSachin Kamat <sachin.kamat@linaro.org> Signed-off-by: NOlof Johansson <olof@lixom.net>
-
由 Sachin Kamat 提交于
Enable Exynos platform and its related IPs for multi_v7_defconfig. Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org> Acked-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com> Signed-off-by: NOlof Johansson <olof@lixom.net>
-
由 Borislav Petkov 提交于
There is very little and maybe practically nothing we can do to recover from a system where at least one core has reached a timeout during the whole monarch cores gathering. So panic when that happens. Link: http://lkml.kernel.org/r/20140523091041.GA21332@pd.tnicSigned-off-by: NBorislav Petkov <bp@suse.de>
-
由 Mathieu Souchaud 提交于
Check return code of every function called by mcheck_init_device(). Signed-off-by: NMathieu Souchaud <mattieu.souchaud@free.fr> Link: http://lkml.kernel.org/r/1399151031-19905-1-git-send-email-mattieu.souchaud@free.frSigned-off-by: NBorislav Petkov <bp@suse.de>
-
由 Tushar Behera 提交于
Arndale-Octa board is always configured to work with trustzone firmware binary. Added DTS node entry to enable this support. Signed-off-by: NTushar Behera <tushar.behera@linaro.org> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Minchan Kim 提交于
While I play inhouse patches with much memory pressure on qemu-kvm, 3.14 kernel was randomly crashed. The reason was kernel stack overflow. When I investigated the problem, the callstack was a little bit deeper by involve with reclaim functions but not direct reclaim path. I tried to diet stack size of some functions related with alloc/reclaim so did a hundred of byte but overflow was't disappeard so that I encounter overflow by another deeper callstack on reclaim/allocator path. Of course, we might sweep every sites we have found for reducing stack usage but I'm not sure how long it saves the world(surely, lots of developer start to add nice features which will use stack agains) and if we consider another more complex feature in I/O layer and/or reclaim path, it might be better to increase stack size( meanwhile, stack usage on 64bit machine was doubled compared to 32bit while it have sticked to 8K. Hmm, it's not a fair to me and arm64 already expaned to 16K. ) So, my stupid idea is just let's expand stack size and keep an eye toward stack consumption on each kernel functions via stacktrace of ftrace. For example, we can have a bar like that each funcion shouldn't exceed 200K and emit the warning when some function consumes more in runtime. Of course, it could make false positive but at least, it could make a chance to think over it. I guess this topic was discussed several time so there might be strong reason not to increase kernel stack size on x86_64, for me not knowing so Ccing x86_64 maintainers, other MM guys and virtio maintainers. Here's an example call trace using up the kernel stack: Depth Size Location (51 entries) ----- ---- -------- 0) 7696 16 lookup_address 1) 7680 16 _lookup_address_cpa.isra.3 2) 7664 24 __change_page_attr_set_clr 3) 7640 392 kernel_map_pages 4) 7248 256 get_page_from_freelist 5) 6992 352 __alloc_pages_nodemask 6) 6640 8 alloc_pages_current 7) 6632 168 new_slab 8) 6464 8 __slab_alloc 9) 6456 80 __kmalloc 10) 6376 376 vring_add_indirect 11) 6000 144 virtqueue_add_sgs 12) 5856 288 __virtblk_add_req 13) 5568 96 virtio_queue_rq 14) 5472 128 __blk_mq_run_hw_queue 15) 5344 16 blk_mq_run_hw_queue 16) 5328 96 blk_mq_insert_requests 17) 5232 112 blk_mq_flush_plug_list 18) 5120 112 blk_flush_plug_list 19) 5008 64 io_schedule_timeout 20) 4944 128 mempool_alloc 21) 4816 96 bio_alloc_bioset 22) 4720 48 get_swap_bio 23) 4672 160 __swap_writepage 24) 4512 32 swap_writepage 25) 4480 320 shrink_page_list 26) 4160 208 shrink_inactive_list 27) 3952 304 shrink_lruvec 28) 3648 80 shrink_zone 29) 3568 128 do_try_to_free_pages 30) 3440 208 try_to_free_pages 31) 3232 352 __alloc_pages_nodemask 32) 2880 8 alloc_pages_current 33) 2872 200 __page_cache_alloc 34) 2672 80 find_or_create_page 35) 2592 80 ext4_mb_load_buddy 36) 2512 176 ext4_mb_regular_allocator 37) 2336 128 ext4_mb_new_blocks 38) 2208 256 ext4_ext_map_blocks 39) 1952 160 ext4_map_blocks 40) 1792 384 ext4_writepages 41) 1408 16 do_writepages 42) 1392 96 __writeback_single_inode 43) 1296 176 writeback_sb_inodes 44) 1120 80 __writeback_inodes_wb 45) 1040 160 wb_writeback 46) 880 208 bdi_writeback_workfn 47) 672 144 process_one_work 48) 528 112 worker_thread 49) 416 240 kthread 50) 176 176 ret_from_fork [ Note: the problem is exacerbated by certain gcc versions that seem to generate much bigger stack frames due to apparently bad coalescing of temporaries and generating too many spills. Rusty saw gcc-4.6.4 using 35% more stack on the virtio path than 4.8.2 does, for example. Minchan not only uses such a bad gcc version (4.6.3 in his case), but some of the stack use is due to debugging (CONFIG_DEBUG_PAGEALLOC is what causes that kernel_map_pages() frame, for example). But we're clearly getting too close. The VM code also seems to have excessive stack frames partly for the same compiler reason, triggered by excessive inlining and lots of function arguments. We need to improve on our stack use, but in the meantime let's do this simple stack increase too. Unlike most earlier reports, there is nothing simple that stands out as being really horribly wrong here, apart from the fact that the stack frames are just bigger than they should need to be. - Linus ] Signed-off-by: NMinchan Kim <minchan@kernel.org> Cc: Peter Anvin <hpa@zytor.com> Cc: Dave Chinner <david@fromorbit.com> Cc: Dave Jones <davej@redhat.com> Cc: Jens Axboe <axboe@kernel.dk> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Mel Gorman <mgorman@suse.de> Cc: Rik van Riel <riel@redhat.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Hugh Dickins <hughd@google.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Michael S Tsirkin <mst@redhat.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: PJ Waskiewicz <pjwaskiewicz@gmail.com> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Kukjin Kim 提交于
Since commit 166aaf39 ("ARM: 8029/1: mcpm: Rename the power_down_finish() functions to be less confusing") changed the name of power_down_finish to wait_for_cpu_powerdown, so use new member name wait_for_cpu_powerdown. Reported-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Abhilash Kesavan 提交于
The exynos5800 is very similar to exynos5420. We can re-use the existing MCPM support for exynos5800 for secondary boot -up and switching. Signed-off-by: NAbhilash Kesavan <a.kesavan@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Arnd Bergmann 提交于
This makes it possible to enable the Exynos platform as part of a multiplatform kernel. Signed-off-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Sachin Kamat 提交于
Instead of repeating the Kconfig entries for every SoC, move them under ARCH_EXYNOS3, 4 and 5 and move the entries common to 3, 4 and 5 under ARCH_EXYNOS. Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org> Acked-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Tarek Dakhran 提交于
EXYNOS5410 is SoC in Samsung's Exynos5 SoC series. Add initial support for this SoC. Signed-off-by: NTarek Dakhran <t.dakhran@samsung.com> Signed-off-by: NVyacheslav Tyrtov <v.tyrtov@samsung.com> Reviewed-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Chanwoo Choi 提交于
This patch fix the offset of CPU boot address and don't need to send smc call of SMC_CMD_CPU1BOOT command for secondary CPU boot because Exynos3250 removes WFE in secure mode. Signed-off-by: NChanwoo Choi <cw00.choi@samsung.com> Acked-by: NKyungmin Park <kyungmin.park@samsung.com> Reviewed-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Chanwoo Choi 提交于
This patch add Exynos3250's SoC ID. Exynos 3250 is SoC that is based on the 32-bit RISC processor for Smartphone. Exynos3250 uses Cortex-A7 dual cores and has a target speed of 1.0GHz. Signed-off-by: NChanwoo Choi <cw00.choi@samsung.com> Acked-by: NKyungmin Park <kyungmin.park@samsung.com> Reviewed-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Arun Kumar K 提交于
Exynos5800 is an octa core SoC which is based on the 5420 platform. This patch adds the basic support for it in the mach-exynos. Signed-off-by: NArun Kumar K <arun.kk@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Pankaj Dubey 提交于
This patch add basic arch side support for exynos5260 SoC. Note that this is required to enable build for clock driver. Signed-off-by: NPankaj Dubey <pankaj.dubey@samsung.com> Signed-off-by: NRahul Sharma <rahul.sharma@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Chanwoo Choi 提交于
This patch add pmusysreg node for Exynos3250 to access PMU (Power Management Unit) register in a centralized way using syscon driver. Signed-off-by: NChanwoo Choi <cw00.choi@samsung.com> Acked-by: NKyungmin Park <kyungmin.park@samsung.com> Reviewed-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Arun Kumar K 提交于
The vbus-supply property is wrongly updated in the usbdrd node instead of the usbdrd_phy node. This patch fixes the same. Signed-off-by: NArun Kumar K <arun.kk@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Arun Kumar K 提交于
The vbus-supply property is wrongly updated in the usbdrd node instead of the usbdrd_phy node. This patch fixes the same. Signed-off-by: NArun Kumar K <arun.kk@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Tarek Dakhran 提交于
Add initial device tree nodes for EXYNOS5410 SoC and SMDK5410 board. Signed-off-by: NTarek Dakhran <t.dakhran@samsung.com> Signed-off-by: NVyacheslav Tyrtov <v.tyrtov@samsung.com> Reviewed-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Tomasz Figa 提交于
This patch adds new exynos3250.dtsi to support Exynos3250 SoC based on Cortex-A7 dual core and includes following dt nodes: - GIC interrupt controller - Pinctrl to control GPIOs - Clock controller - CPU information (Cortex-A7 dual core) - UART to support serial port - MCT (Multi Core Timer) - ADC (Analog Digital Converter) - I2C/SPI bus - Power domain - PMU (Performance Monitoring Unit) - MSHC (Mobile Storage Host Controller) - PWM (Pluse Width Modulation) - AMBA bus - sysram node for SYSRAM memory mapping Signed-off-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> Signed-off-by: NInki Dae <inki.dae@samsung.com> Signed-off-by: NHyunhee Kim <hyunhee.kim@samsung.com> Signed-off-by: NJaehoon Chung <jh80.chung@samsung.com> Signed-off-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: NChanwoo Choi <cw00.choi@samsung.com> Cc: Ben Dooks <ben-linux@fluff.org> Cc: Kukjin Kim <kgene.kim@samsung.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Pawel Moll <pawel.moll@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Ian Campbell <ijc+devicetree@hellion.org.uk> Cc: Kumar Gala <galak@codeaurora.org> Cc: Russell King <linux@arm.linux.org.uk> Cc: devicetree@vger.kernel.org Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Arun Kumar K 提交于
Adds the mfc node to exynos5800 which uses MFCv8. Signed-off-by: NArun Kumar K <arun.kk@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Vivek Gautam 提交于
Add required fixed-regulator for VBUS supply for USB 3.0 controller phy. Signed-off-by: NVivek Gautam <gautam.vivek@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Rahul Sharma 提交于
Enable FIMD for peach-pi board. Signed-off-by: NRahul Sharma <rahul.sharma@samsung.com> Reviewed-by: NJingoo Han <jg1.han@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Rahul Sharma 提交于
Enable display controller with timing information for 1080p panel in Exynos5800 peach-pi board. Signed-off-by: NRahul Sharma <rahul.sharma@samsung.com> Reviewed-by: NJingoo Han <jg1.han@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Rahul Sharma 提交于
Enable hdmi for peach-pi board. Signed-off-by: NRahul Sharma <rahul.sharma@samsung.com> Acked-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Arun Kumar K 提交于
Adds support for google peach-pi board having the Exynos5800 SoC. Signed-off-by: NArun Kumar K <arun.kk@samsung.com> Signed-off-by: NDoug Anderson <dianders@chromium.org> Reviewed-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Arun Kumar K 提交于
Most of the nodes of exynos5420 remains same for exynos5800. So the exynos5420.dtsi is included in exynos5800 and the changed node properties will be overriden. Signed-off-by: NArun Kumar K <arun.kk@samsung.com> Reviewed-by: NTomasz Figa <t.figa@samsung.com> Acked-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Rahul Sharma 提交于
The patch adds the dts file for xyref5260 board which is based on exynos5260 SoC. Signed-off-by: NRahul Sharma <rahul.sharma@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Rahul Sharma 提交于
The patch adds the dts files for exynos5260. Signed-off-by: NPankaj Dubey <pankaj.dubey@samsung.com> Signed-off-by: NRahul Sharma <rahul.sharma@samsung.com> Signed-off-by: NArun Kumar K <arun.kk@samsung.com> Reviewed-by: NTomasz Figa <t.figa@samsung.com> Reviewed-by: NSachin Kamat <sachin.kamat@linaro.org> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Sachin Kamat 提交于
Made it as per DT node naming convention <name@reg_addr>. Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org> Reviewed-by: NJingoo Han <jg1.han@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Sachin Kamat 提交于
Key code macros improve readability on exnos4210-origen, exynos4412-origen and exynos5250-arndale boards. Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org> [kgene.kim@samsung.com: squashed similar two patches] Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Sachin Kamat 提交于
Enabled RTC and WDT nodes on exynos4210-origen and exynos4412-origen boards. Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org> [kgene.kim@samsung.com: squashed similar two patches] Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Murali Karicheri 提交于
Call pcie_bus_configure_settings() on ARM, like for other platforms. pcie_bus_configure_settings() makes sure the MPS across the bus is uniform and provides the ability to tune the MRSS and MPS to higher performance values. This is particularly important for embedded where there is no firmware to program these PCIe settings for the OS. Signed-off-by: NMurali Karicheri <m-karicheri2@ti.com> Signed-off-by: NBjorn Helgaas <bhelgaas@google.com> CC: Russell King <linux@arm.linux.org.uk> CC: Arnd Bergmann <arnd@arndb.de> CC: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> CC: Santosh Shilimkar <santosh.shilimkar@ti.com>
-
- 30 5月, 2014 2 次提交
-
-
由 Alexander Graf 提交于
On LPAR guest systems Linux enables the shadow SLB to indicate to the hypervisor a number of SLB entries that always have to be available. Today we go through this shadow SLB and disable all ESID's valid bits. However, pHyp doesn't like this approach very much and honors us with fancy machine checks. Fortunately the shadow SLB descriptor also has an entry that indicates the number of valid entries following. During the lifetime of a guest we can just swap that value to 0 and don't have to worry about the SLB restoration magic. While we're touching the code, let's also make it more readable (get rid of rldicl), allow it to deal with a dynamic number of bolted SLB entries and only do shadow SLB swizzling on LPAR systems. Signed-off-by: NAlexander Graf <agraf@suse.de>
-
由 Alexander Graf 提交于
We didn't make use of SLB entry 0 because ... of no good reason. SLB entry 0 will always be used by the Linux linear SLB entry, so the fact that slbia does not invalidate it doesn't matter as we overwrite SLB 0 on exit anyway. Just enable use of SLB entry 0 for our shadow SLB code. Signed-off-by: NAlexander Graf <agraf@suse.de>
-