The most important ones are a duplicated definition of a Kconfig
variable and the handling of external interrupts for non-DT case.
The new at91sam9g10 was suffering a recognition issue due to an ID
mis-interpreted: this was leading to a kernel panic.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQEcBAABAgAGBQJQiPCWAAoJEAf03oE53VmQHZcH/2cAmpXeCoLwtpmRs0WpumtN
OnIVB0W4EchnCUSfd19q4FiUANfPFAxRN0yxx8Sby4wUMUMKnAu6eLebhumeBl6i
L/80KDwIUOhxXCt8YV9tjH1sGDddiG8oQWLF9wfKTIAyTNKcG3usuxq/bTooiXnE
8i1dYvM0w9A7vseYDOOzDgapslStJUBaaZllNddhyP/FyGJZopGb6ObhI1PLeyTJ
iRLA5+NeFAdHIV7y875JlIWacfzQxEa0u2cptVAz9ZmYobesTZJkhzGAjpFEwUB1
bGktll0opy+2pPg8JFqZLC/qdYzVZJxSBWbT/zA2amf8asN4NFReTxHnsh81Rfs=
=AgpJ
-----END PGP SIGNATURE-----
Merge tag 'at91-fixes' of git://github.com/at91linux/linux-at91 into fixes
From Nicolas Ferre <nicolas.ferre@atmel.com>:
A mix of typos and critical fixes.
The most important ones are a duplicated definition of a Kconfig
variable and the handling of external interrupts for non-DT case.
The new at91sam9g10 was suffering a recognition issue due to an ID
mis-interpreted: this was leading to a kernel panic.
* tag 'at91-fixes' of git://github.com/at91linux/linux-at91: (257 commits)
ARM: at91: drop duplicated config SOC_AT91SAM9 entry
ARM: at91/i2c: change id to let i2c-at91 work
ARM: at91/i2c: change id to let i2c-gpio work
ARM: at91/dts: at91sam9g20ek_common: Fix typos in buttons labels.
ARM: at91: fix external interrupt specification in board code
ARM: at91: fix external interrupts in non-DT case
ARM: at91: at91sam9g10: fix SOC type detection
ARM: at91/tc: fix typo in the DT document
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
The current DT nodes for mx23/mx28 miss the `clocks-names` item for gpmi-nand.
So the gpmi-nand driver could not find the proper clock.
This patch fixes this issue.
Signed-off-by: Huang Shijie <b32955@freescale.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Here we fix a simple copy and paste error and bring some node
spaces back into line with the remainder of the tree.
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Now the Nomadik I2C driver has been converted to an AMBA one, we
are required to provide the Primecell IDs via platform code. When
booting with DT enabled these have to be specified in the device
nodes. We do that here.
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
This patch fixes the build error below:
arch/arm/mach-ux500/cpu.c: In function ‘ux500_init_irq’:
arch/arm/mach-ux500/cpu.c:55:2: error: invalid use of undefined type ‘struct irq_chip’
arch/arm/mach-ux500/cpu.c:55:24: error: ‘IRQCHIP_SKIP_SET_WAKE’ undeclared (first use in this function)
arch/arm/mach-ux500/cpu.c:55:24: note: each undeclared identifier is reported only once for each function it appears in
arch/arm/mach-ux500/cpu.c:55:48: error: ‘IRQCHIP_MASK_ON_SUSPEND’ undeclared (first use in this function)
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
The i2c core driver will turn the platform device ID to busnum
When using platfrom device ID as -1, it means dynamically assigned
the busnum. When writing code, we need to make sure the busnum,
and call i2c_register_board_info(int busnum, ...) to register device
if using -1, we do not know the value of busnum
In order to solve this issue, set the platform device ID as a fix number
Here using 0 to match the busnum used in i2c_regsiter_board_info()
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Ludovic Desroches <ludovic.desroches@atmel.com>
The i2c core driver will turn the platform device ID to busnum
When using platfrom device ID as -1, it means dynamically assigned
the busnum. When writing code, we need to make sure the busnum,
and call i2c_register_board_info(int busnum, ...) to register device
if using -1, we do not know the value of busnum
In order to solve this issue, set the platform device ID as a fix number
Here using 0 to match the busnum used in i2c_regsiter_board_info()
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Acked-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Cc: stable <stable@vger.kernel.org> [very long time]
Since the switch to sparse irq, we have to add the NR_IRQS_LEGACY
offset to static irq numbers. It has been forgotten on these
SPI irq definitions in board code.
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Cc: stable <stable@vger.kernel.org> [v3.6]
Management of external interrupts has changed but the
non-DT code has not integrated these changes.
Add a mask to pass external irq specification from SoC
specific code to the at91_aic_init() function.
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Cc: stable <stable@vger.kernel.org> [v3.6]
Newer at91sam9g10 SoC revision can't be detected, so the kernel can't boot with
this kind of kernel panic:
"AT91: Impossible to detect the SOC type"
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Atmel AT91SAM9G10-EK
Ignoring tag cmdline (using the default kernel command line)
bootconsole [earlycon0] enabled
Memory policy: ECC disabled, Data cache writeback
Kernel panic - not syncing: AT91: Impossible to detect the SOC type
[<c00133d4>] (unwind_backtrace+0x0/0xe0) from [<c02366dc>] (panic+0x78/0x1cc)
[<c02366dc>] (panic+0x78/0x1cc) from [<c02fa35c>] (at91_map_io+0x90/0xc8)
[<c02fa35c>] (at91_map_io+0x90/0xc8) from [<c02f9860>] (paging_init+0x564/0x6d0)
[<c02f9860>] (paging_init+0x564/0x6d0) from [<c02f7914>] (setup_arch+0x464/0x704)
[<c02f7914>] (setup_arch+0x464/0x704) from [<c02f44f8>] (start_kernel+0x6c/0x2d4)
[<c02f44f8>] (start_kernel+0x6c/0x2d4) from [<20008040>] (0x20008040)
The reason for this is that the Debug Unit Chip ID Register has changed between
Engineering Sample and definitive revision of the SoC. Changing the check of
cidr to socid will address the problem. We do not integrate this check to the
list just above because we also have to make sure that the extended id is
disregarded.
Signed-off-by: Ivan Shugov <ivan.shugov@gmail.com>
[nicolas.ferre@atmel.com: change commit message]
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: stable <stable@vger.kernel.org> [v3.1] # since commit 8c3583b6
- AArch64 Linux compilation fixes following 3.7-rc1 changes
(MODULES_USE_ELF_RELA, update_vsyscall() prototype)
- Unnecessary register setting in start_thread() (thanks to Al Viro)
- ptrace fixes
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iQIcBAABAgAGBQJQgsjyAAoJEGvWsS0AyF7xyZEP/2hIVC7OvY7zyqfvcTP+WxQr
3ck30cEzzkssSHSU+M3wNRNQAhnuCoshvKZ+hJ8jephf71FyNYOVZOSlMUrmcF8p
gahIfwmKQhOTmC5Rdb4f9lLaDJ4bXH70n33YrQKFkjYfcNwqe5+fdCcuvP+aZKJ+
0BuXYlPczLkbi7ghcHl8kXr1E5mzzSQPlAUCw6R1+kEAYDCzXBT3uuLdIqcbQ62N
bJ4BkMOAg51vFaMWMVZUtBq1f8zngc+QogCti6rubhAFfwcO0VS1zmELa28trIYa
qyCr3eBeQq7v8M2crSqVrRdUDi1t5LjLZmP6RtfIkbfhCvrPuUg3N4votnPIgqT9
MAkHUsH810jdO/iW7FBN3opuCvEejgx7JLGTjrM7TsjKDJjwG6u6Cmm8MEbiX8Pz
8BMhm2k+BUnHkCOxiyi0hVVie81Xn9pxbdUzBSqDQnVYclZ3haJc1sXqnQDIuwn3
QEKRAzxhXQZeE6wJu7+tuvmOs9G+wVARKfSaEyMPdAnVNLl8SN/vSqIPqJBuVa2X
nCpuEOkX4yDVLcOyMePZvyyAlhLFH66K8q+CZtGv8Mn1+WR2mkiANKCW7mf1PEQk
SNAYzlV7HcKYIJKq5Qpv91zi64UyAU6qgzeDUbuxFpOFlEDSWMbvixzUeyryXFYy
fWevt1zE1plA02f2+9Wn
=0gQo
-----END PGP SIGNATURE-----
Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64
Pull arm64 fixes from Catalin Marinas:
"Main changes:
- AArch64 Linux compilation fixes following 3.7-rc1 changes
(MODULES_USE_ELF_RELA, update_vsyscall() prototype)
- Unnecessary register setting in start_thread() (thanks to Al Viro)
- ptrace fixes"
* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:
arm64: fix alignment padding in assembly code
arm64: ptrace: use HW_BREAKPOINT_EMPTY type for disabled breakpoints
arm64: ptrace: make structure padding explicit for debug registers
arm64: No need to set the x0-x2 registers in start_thread()
arm64: Ignore memory blocks below PHYS_OFFSET
arm64: Fix the update_vsyscall() prototype
arm64: Select MODULES_USE_ELF_RELA
arm64: Remove duplicate inclusion of mmu_context.h in smp.c
An interesting effect of using the generic version of linkage.h
is that the padding is defined in terms of x86 NOPs, which can have
even more interesting effects when the assembly code looks like this:
ENTRY(func1)
mov x0, xzr
ENDPROC(func1)
// fall through
ENTRY(func2)
mov x0, #1
ret
ENDPROC(func2)
Admittedly, the code is not very nice. But having code from another
architecture doesn't look completely sane either.
The fix is to add arm64's version of linkage.h, which causes the insertion
of proper AArch64 NOPs.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Pull perf fixes from Ingo Molnar:
"Assorted small fixes"
* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf python: Properly link with libtraceevent
perf hists browser: Add back callchain folding symbol
perf tools: Fix build on sparc.
perf python: Link with libtraceevent
perf python: Initialize 'page_size' variable
tools lib traceevent: Fix missed freeing of subargs in free_arg() in filter
lib tools traceevent: Add back pevent assignment in __pevent_parse_format()
perf hists browser: Fix off-by-two bug on the first column
perf tools: Remove warnings on JIT samples for srcline sort key
perf tools: Fix segfault when using srcline sort key
perf: Require exclude_guest to use PEBS - kernel side enforcement
perf tool: Precise mode requires exclude_guest
. The python binding needs to link with libtraceevent and to initialize
the 'page_size' variable so that mmaping works again.
. The callchain folding character that appears on the TUI just before
the overhead had disappeared due to recent changes, add it back.
. Intel PEBS in VT-x context uses the DS address as a guest linear address,
even though its programmed by the host as a host linear address. This either
results in guest memory corruption and or the hardware faulting and 'crashing'
the virtual machine. Therefore we have to disable PEBS on VT-x enter and
re-enable on VT-x exit, enforcing a strict exclude_guest.
Kernel side enforcement fix by Peter Zijlstra, tooling side fix by David Ahern.
. Fix build on sparc due to UAPI, fix from David Miller.
. Fixes for the srclike sort key for unresolved symbols and when processing
samples in JITted code, where we don't have an ELF file, just an special
symbol table, fixes from Namhyung Kim.
. Fix some leaks in libtraceevent, from Steven Rostedt.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iQIcBAABAgAGBQJQfuZQAAoJENZQFvNTUqpAqCAQALDAEmfIfj3MHjlYuf4eO54J
sxlyv1U1l0oi6IXE2nqEUJCmh0qtpUT386WkVynqLd4EzklQ2/RP7y1tezqDTx0b
o7qoT1CjB064x2TrHqqDbS96kYOyjLoZaIyfNPqSHUQlyq1jeA6gDzmTNqrE6ckO
vqW7RbwFoXRHH8YTBfalxY0KQdJd/bBvLS6tKBssiROw2wZ4B3OWRbwqPEPLgu7B
8OrX+cm02/LYvAP63VmlDlAEyIwYSN3KQUG+fAAtjNg2spMYV7ntHHH1GOvzuO5D
wEmsY7KrMcWUW/qxhYow0ka1cSTK8QckiS6usDBocAVioPBl2YhnFqPgSzPzqF2M
1iqfdsGwhytLZqrVzD+9MfoHVZaBVPvwtI/iCgdPFIK2RuiBJW36SECeu5jMKynV
Teq65Nhkr9A58+5L88pz+Ws89x/TQVINYxWGLeVsN7IVEmg+o90SK6U64+EXRUZ1
hNZ1/4BPw5i/KBDT8jX3qDZradZfA/hZiCyYAfPCk/4AUfak69wRmMDmOcQEo7JP
m0mSi850s//ofygf+6Bu1R/usXpJEG9LFuFsIplp+rzHuM2qeHP0ch01Mj/weHjp
7zD1xVpuRxu35o3q+9k9YKp37G+zsyiPmL4zrk0mgmYydempHY1Z6G6ZsboQYCmF
oN0iMavg0klkd0gjEXGH
=DTM3
-----END PGP SIGNATURE-----
Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
* The python binding needs to link with libtraceevent and to initialize
the 'page_size' variable so that mmaping works again.
* The callchain folding character that appears on the TUI just before
the overhead had disappeared due to recent changes, add it back.
* Intel PEBS in VT-x context uses the DS address as a guest linear address,
even though its programmed by the host as a host linear address. This either
results in guest memory corruption and or the hardware faulting and 'crashing'
the virtual machine. Therefore we have to disable PEBS on VT-x enter and
re-enable on VT-x exit, enforcing a strict exclude_guest.
Kernel side enforcement fix by Peter Zijlstra, tooling side fix by David Ahern.
* Fix build on sparc due to UAPI, fix from David Miller.
* Fixes for the srclike sort key for unresolved symbols and when processing
samples in JITted code, where we don't have an ELF file, just an special
symbol table, fixes from Namhyung Kim.
* Fix some leaks in libtraceevent, from Steven Rostedt.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
A set of fixes and some minor cleanups for -rc2:
- A series from Arnd that fixes warnings in drivers and other code
included by ARM defconfigs. Most have been acked by corresponding
maintainers (and seem quite hard to argue not picking up anyway in the
few exception cases).
- A few misc patches from the list for integrator/vt8500/i.MX
- A batch of fixes to OMAP platforms, fixing:
- boot problems on beaglebone,
- regression fixes for local timers
- clockdomain locking fixes
- a few boot/sparse warnings
- For Tegra:
- Clock rate calculation overflow fix
- Revert a change that removed timer clocks and a fix for symbol name clashes
- For Renesas:
- IO accessor / annotation cleanups to remove warnings
- For Kirkwood/Dove/mvebu:
- Fixes for device trees for Dove (some minor cleanups, some fixes)
- Fixes for the mvebu gpio driver
- Fix build problem for Feroceon due to missing ifdefs
- Fix lsxl DTS files
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQIcBAABAgAGBQJQgembAAoJEIwa5zzehBx3tbwQAJVxDjt0bNFhPDmPVnh4O3qE
qpmCQ4UZ3u153gkXO9973qZNso635yPYtiUA53TAr9kxX4La690IcBOLNMK2TwYZ
enBeg0JtjV+25lkYcsFGnggj8YNXzsL47SVymFxqiu4s4XLuQfUlBWpYyLjYVa6p
1zE5Q6oUVZMJxbqBEK3LaZ9ifV7RxG9xwpx6QiXQlPpZkKqDVYCs/efPXfXBoOeq
KinO/p6fDOQoKrYt1Kdfw5AhmHBrSw/K630/IjZHaIc6j3nDU5UjP0zhO0CE3zDH
NrYctUfJqR9VEKvrpO24RFFYiDaGK1Oge/GhmAAftiLoKK8qxTehKnxe3BUAsMnD
wldxsBBym1rDbr0ehxC9pV6ZtJhA7KZLoPNZpqwSbBYqFnmEG3pZwQV9wToswpmw
1jPJpzZOpe14edHvsixaPuaY3ACnzkkfUWu1wOlg33W5WhPInieMJuJ8hmL+1SVJ
g6Z6/7pjpHhC5CEhVqc5FJjRk1Jk+WsFa1FICoDjnkRW1Hg9DLvdUReEl+8xYuvI
oHqLvDrTabVs9ZDnyT5avBrovWVZjSxZ+TxwMIeQGU1QhW4b8hIjPx09EBb1Hy6F
BiZO3Q9zqm0+C+P1S0Cb3npumwG16ry7f6+51QXRXWNcgWWjm1ggZpWpmPY+g0Ra
BO6UABZwuUm8HzpJaEu1
=alOZ
-----END PGP SIGNATURE-----
Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM soc fixes from Olof Johansson:
"A set of fixes and some minor cleanups for -rc2:
- A series from Arnd that fixes warnings in drivers and other code
included by ARM defconfigs. Most have been acked by corresponding
maintainers (and seem quite hard to argue not picking up anyway in
the few exception cases).
- A few misc patches from the list for integrator/vt8500/i.MX
- A batch of fixes to OMAP platforms, fixing:
- boot problems on beaglebone,
- regression fixes for local timers
- clockdomain locking fixes
- a few boot/sparse warnings
- For Tegra:
- Clock rate calculation overflow fix
- Revert a change that removed timer clocks and a fix for symbol
name clashes
- For Renesas:
- IO accessor / annotation cleanups to remove warnings
- For Kirkwood/Dove/mvebu:
- Fixes for device trees for Dove (some minor cleanups, some fixes)
- Fixes for the mvebu gpio driver
- Fix build problem for Feroceon due to missing ifdefs
- Fix lsxl DTS files"
* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (31 commits)
ARM: kirkwood: fix buttons on lsxl boards
ARM: kirkwood: fix LEDs names for lsxl boards
ARM: Kirkwood: fix disabling CACHE_FEROCEON_L2
gpio: mvebu: Add missing breaks in mvebu_gpio_irq_set_type
ARM: dove: Add crypto engine to DT
ARM: dove: Remove watchdog from DT
ARM: dove: Restructure SoC device tree descriptor
ARM: dove: Fix clock names of sata and gbe
ARM: dove: Fix tauros2 device tree init
ARM: dove: Add pcie clock support
ARM: OMAP2+: Allow kernel to boot even if GPMC fails to reserve memory
ARM: OMAP: clockdomain: Fix locking on _clkdm_clk_hwmod_enable / disable
ARM: s3c: mark s3c2440_clk_add as __init_refok
spi/s3c64xx: use correct dma_transfer_direction type
ARM: OMAP4: devices: fixup OMAP4 DMIC platform device error message
ARM: OMAP2+: clock data: Add dev-id for the omap-gpmc dummy fck
ARM: OMAP: resolve sparse warning concerning debug_card_init()
ARM: OMAP4: Fix twd_local_timer_register regression
ARM: tegra: add tegra_timer clock
ARM: tegra: rename tegra system timer
...
A collection of warning fixes on non-ARM code from Arnd Bergmann:
* 'testing/driver-warnings' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
ARM: s3c: mark s3c2440_clk_add as __init_refok
spi/s3c64xx: use correct dma_transfer_direction type
pcmcia: sharpsl: don't discard sharpsl_pcmcia_ops
USB: EHCI: mark ehci_orion_conf_mbus_windows __devinit
mm/slob: use min_t() to compare ARCH_SLAB_MINALIGN
SCSI: ARM: make fas216_dumpinfo function conditional
SCSI: ARM: ncr5380/oak uses no interrupts
Pull miscellaneous x86 fixes from Peter Anvin:
"The biggest ones are fixing suspend/resume breakage on 32 bits, and an
interrim fix for mapping over holes that allows AMD kit with more than
1 TB.
A final solution for the latter is in the works, but involves some
fairly invasive changes that will probably mean it will only be
appropriate for 3.8."
* 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86, MCE: Remove bios_cmci_threshold sysfs attribute
x86, amd, mce: Avoid NULL pointer reference on CPU northbridge lookup
x86: Exclude E820_RESERVED regions and memory holes above 4 GB from direct mapping.
x86/cache_info: Use ARRAY_SIZE() in amd_l3_attrs()
x86/reboot: Remove quirk entry for SBC FITPC
x86, suspend: Correct the restore of CR4, EFER; skip computing EFLAGS.ID
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQIcBAABAgAGBQJQgZtoAAoJEI9vqH3mFV2sADsP/1bJJzvmA3CvIXoZ/C70Sysj
JMpN9teg85sgfc8NoXl5ZYq8GtdLFr+IR0WkXSjptku6Q2aDyKvOeMp2sUVzHqXv
DOBGEx6/7ADfSF1MzcdAPlbnSseiZQB8AZEaeoaDHGzdJGk40yRgR7TkYrLNEYfe
Ie/EN9QWOF7tsMzL4m5lY+YkqmAFUp9Xw/W8jmLKMJUaSCfA5fMsaYWUDanJt0PG
XSvKaZq9iaO5YaWoAzAhQtalKWMx/BsBpzx2NJ2jO9gx3hnklePdhkyEehJN5P4+
hjXZco2EhSwK2hCtBwkeHSRCE3AMCh98SuzTmhpifCti57GZ14Bs1/y2lfiyeBe4
4EwnL5GtYN5o6ZASQYgwO98SVbP+Po7YXtmS3nIbg4WprmJ4N2K+Fmqw5RUJ11DQ
vDtgzSJxY4m0jlzEDfW7uSohunz2CabYkaHx5EVRGh1fRFtVK6g+rS40bVx4iTHx
/lYW3CK2cvmNmseedvWbhPCryUmnAeoFwn/DCh5+z8INydXRwJQI+rCzMj0NupAe
A5RbBPv+zJK/04e+8aXcUz9i5peEcWkIj3/CfZKWphUcgwNj3QrqE/6C0w61Hb2e
siTosAhF7q4vqf0bES3OJZWFdRUkqaud2+R6eadT6pozrb4VjxKJ/2gCEmiCtDtn
n6ZYizjXVzl3A6GtyMv5
=Vb/G
-----END PGP SIGNATURE-----
Merge tag 'xtensa-next-20121018' of git://github.com/czankel/xtensa-linux
Pull Xtensa patchset from Chris Zankel:
"These are all limited to the xtensa subtree and include some important
changes (adding long missing system calls for newer libc versions and
other fixes) and the UAPI changes"
* tag 'xtensa-next-20121018' of git://github.com/czankel/xtensa-linux:
xtensa: add missing system calls to the syscall table
xtensa: minor compiler warning fix
xtensa: Use Kbuild infrastructure to handle asm-generic headers
UAPI: (Scripted) Disintegrate arch/xtensa/include/asm
xtensa: fix unaligned usermode access
xtensa: reorganize SR referencing
xtensa: fix boot parameters parsing
xtensa: fix missing return in do_page_fault for SIGBUS case
xtensa: copy_thread with CLONE_VM must not copy live parent AR windows
xtensa: fix memmove(), bcopy(), and memcpy().
xtensa: ISS: fix rs_put_char
xtensa: ISS: fix specific simcalls
Pull hexagon updates from Richard Kuo:
"It includes the Hexagon UAPI changes from David Howells and some CR
marking changes for the transition from Code Aurora to Linux
Foundation."
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel:
Hexagon: Copyright marking changes
UAPI: (Scripted) Disintegrate arch/hexagon/include/asm
This is a couple of high code motion patches (all within arch/parisc) I'd like
to apply at -rc1 to avoid conflicts with anything else. One moves us on to
the generated instead of included asm file model and the other is a pull
request from David Howells for UAPI disintegration.
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
iQEcBAABAgAGBQJQgY1yAAoJEDeqqVYsXL0MEmMH/R4MUjwPUE8FsAylREzOt3Ej
HSTHLzLSgAsIseQY8z3pyPPpZem/50ti3jYGZDWPyTZd2VoGeYvbPOew/c08C86c
r2RoNHQb6sYX0LcjAPGIiKZ7ft7p/CUus0v07IX6xnIqH4y2TY/26b67VhcNyTdn
MWYZ55q6Zc+EsyZZbH7eq0hRTubSpx/cXIc15pgJmt+LvikVDFjB9sYieAZVSTiF
ATCRkyzR6lxLkyYiG0K56h7Qdjz9IAn2b0tUYax0Gf/96K7Zo0nhNmv6RPD5DNbN
dwBeKi/e62DI/KY6xm/znyFdRW5TGCxxip5ZFD7fcD7DQ5y9Ap6GCw+7TF9z6ok=
=GU0H
-----END PGP SIGNATURE-----
Merge tag 'parisc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6
Pull PARISC changes from James Bottomley:
"This is a couple of high code motion patches (all within arch/parisc)
I'd like to apply at -rc1 to avoid conflicts with anything else. One
moves us on to the generated instead of included asm file model and
the other is a pull request from David Howells for UAPI
disintegration.
Signed-off-by: James Bottomley <JBottomley@Parallels.com>"
* tag 'parisc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6:
UAPI: (Scripted) Disintegrate arch/parisc/include/asm
[PARISC] asm: redo generic includes
Add the following system calls to the syscall table:
fallocate
sendmmsg
umount2
syncfs
epoll_create1
inotify_init1
signalfd4
dup3
pipe2
timerfd_create
timerfd_settime
timerfd_gettime
eventfd2
preadv
pwritev
fanotify_init
fanotify_mark
process_vm_readv
process_vm_writev
name_to_handle_at
open_by_handle_at
sync_file_range
perf_event_open
rt_tgsigqueueinfo
clock_adjtime
prlimit64
kcmp
Note that we have to use the 'sys_sync_file_range2' version, so that
the 64-bit arguments are aligned correctly to the argument registers.
Signed-off-by: Chris Zankel <chris@zankel.net>
Fix two compiler warnings complaining about truncating a value on
a 64-bit host, and about declaring an unused variable that is only
used for a specific configuration.
Signed-off-by: Chris Zankel <chris@zankel.net>
From Borislav Petkov <bp@amd64.org>:
Below is a RAS fix which reverts the addition of a sysfs attribute
which we agreed is not needed, post-factum. And this should go in now
because that sysfs attribute is going to end up in 3.7 otherwise and
thus exposed to userspace; removing it then would be a lot harder.
This is done as a merge rather than a simple patch/cherry-pick since
the baseline for this patch was not in the previous x86/urgent.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
450cc20103 ("x86/mce: Provide boot argument to honour bios-set CMCI
threshold") added the bios_cmci_threshold sysfs attribute which was
supposed to communicate to userspace tools that BIOS CMCI threshold has
been honoured.
However, this info is not of any importance to userspace - it should
rather get the actual error count it has been thresholded already from
MCi_STATUS[38:52].
So drop this before it becomes a used interface (good thing we caught
this early in 3.7-rc1, right after the merge window closed).
Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Acked-by: Tony Luck <tony.luck@intel.com>
Link: http://lkml.kernel.org/r/20121017105940.GA14590@x1.osrc.amd.com
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Dave Jones <davej@redhat.com>
Signed-off-by: Richard Kuo <rkuo@codeaurora.org>
Calling convention for internal functions and 'asmlinkage' functions is
different on x86-32. Therefore do not directly cast aesni_enc as XTS tweak
function, but use wrapper function in between. Fixes crash with "XTS +
aesni_intel + x86-32" combination.
Cc: stable@vger.kernel.org
Reported-by: Krzysztof Kolasa <kkolasa@winsoft.pl>
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
If a debugger tries to zero a hardware debug control register, the
kernel will try to infer both the type and length of the breakpoint
in order to sanity-check against the requested regset type. This will
fail because the encoding will appear as a zero-length breakpoint.
This patch changes the control register setting so that disabled
breakpoints are treated as HW_BREAKPOINT_EMPTY and no further
sanity-checking is required.
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
The user_hwdebug_state structure contains implicit padding to conform to
the alignment requirements of the AArch64 ABI (namely that aggregates
must be aligned to their most aligned member).
This patch fixes the ptrace functions operating on struct
user_hwdebug_state so that the padding is handled correctly.
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
For historical reasons, ARM used to set r0-r2 in start_thread() to the
first values on the user stack when starting a new user application. The
same logic has been inherited in AArch64. The x0 register is overridden
by the sys_execve() return value so it's always zero on success. The x1
and x2 registers are ignored by AArch64 and EABI AArch32 applications,
so we can safely remove the register setting for both native and compat
user space.
This also fixes a potential fault with the kernel accessing user space
stack directly.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Reported-by: Al Viro <viro@zeniv.linux.org.uk>
According to Documentation/arm64/booting.txt, the kernel image must be
loaded at a pre-defined offset from the start of RAM so that the kernel
can calculate PHYS_OFFSET based on this address. If the DT contains
memory blocks below this PHYS_OFFSET, report them and ignore the
corresponding memory range.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
With commit 576094b7 (time: Introduce new GENERIC_TIME_VSYSCALL) the old
update_vsyscall() prototype is no longer available. This patch updates
the arm64 port.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Cc: John Stultz <john.stultz@linaro.org>
With commit 786d35d4 (make most arch asm/module.h files use
asm-generic/module.h) arm64 needs to enable MODULES_USE_ELF_RELA for
loadable modules.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Will Deacon <Will.Deacon@arm.com>
Pull MIPS fixes from Ralf Baechle:
"Random small fixes across the MIPS code."
* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
MIPS: CMP: Fix physical core number calculation logic
MIPS: JZ4740: Forward declare struct uart_port in header.
MIPS: JZ4740: Fix '#include guard' in serial.h
MIPS: hugetlbfs: Fix hazard between tlb write and pagemask restoration.
MIPS: Restore pagemask after dumping the TLB.
MIPS: Hugetlbfs: Handle huge pages correctly in pmd_bad()
MIPS: R5000: Fix TLB hazard handling.
MIPS: tlbex: Deal with re-definition of label
MIPS: Make __{,n,u}delay declarations match definitions and generic delay.h
Pull powerpc fixes from Benjamin Herrenschmidt:
"Here are a handful of powerpc related fixes."
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
cpuidle/powerpc: Fix snooze state problem in the cpuidle design on pseries.
cpuidle/powerpc: Fix smt_snooze_delay functionality.
cpuidle/powerpc: Fix target residency initialisation in pseries cpuidle
powerpc: Build fix for powerpc KVM
Revert "powerpc/perf: Use pmc_overflow() to detect rolled back events"
Significant changes are:
- A regression fix for the new HD-audio LPIB delay counting,
VGA-switcheroo race fix
- ASoC ams-delta fix for the broken driver loading
Otherwise a collection of mostly small / trivial fixes.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
iQIcBAABAgAGBQJQgArvAAoJEGwxgFQ9KSmk91wP/2VHQ7GVshkiVCcBeRo57X3Z
4Lmt8tEm55swC/issMhRYmzFiRHQHpwEfYhXHfntjxqI9siDRGaqoFoGosV68BPp
wXA2vdcbYoZ2yxxhZbwqjzOWHkM45HM/NL6l2PGVdsn69KMNLom8TK2aMqZvy0k0
S/kCbsNlgKLglsfXDhId8ITofC/mqTp/6PV+LKslJeFaK9jdqWYsQMjDlcOObP+Q
vpHe++8BqbhYg3N8SwQKO7RDwlr9JqDaMJTVci8jkMHu0+fmUOCqXWTcOW+x49zD
YI7rdYL8Mfsv+nsn3VAg0c/ulbFOqaFzse6LvgGbzAMl1lI4dm5aCxwOsHKn6ake
VUkUqSui5saYaacBSEA4SXE10RfGUHPNjWb6sasFxGvw2ShFajcIMCt34BIieUFz
yv7D8sagRmJVmnMlZuuGmqrf2FK7bWKhrfOodGesyBwHtmU7AYnZnU9HSjROsIo9
yn53kt9NRFsy2l5CVLDGz4fDbqv9w9NZV6L+7rCReityNdWTaxlV60n8qMION/dq
8hVX2J030kY2MqUQ+XXfj1Hje6lYjVW+TW/2KfMYABz1CJ4ZJjaF8uwTo5DUoEdv
4Pumx7sYEMkaEUD8EIsRnoaNBXVTYNbtwnmlt1jlDMfZReVboIWzwjKmsC6Ug/ge
hhKKAAO0KODOZyuj9cxE
=bW/T
-----END PGP SIGNATURE-----
Merge tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai:
"Significant changes are:
- A regression fix for the new HD-audio LPIB delay counting,
VGA-switcheroo race fix
- ASoC ams-delta fix for the broken driver loading
Otherwise a collection of mostly small / trivial fixes."
* tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: emu10k1: add chip details for E-mu 1010 PCIe card
ALSA: hda - Always check array bounds in alc_get_line_out_pfx
ASoC: bells: Correct typo in sub speaker DAI name for WM5110
ALSA: hda - Stop LPIB delay counting on broken hardware
ALSA: hda - Fix registration race of VGA switcheroo
ALSA: hda - Clean up superfluous position_fix list entries
ALSA: ac97 - Fix missing NULL check in snd_ac97_cvol_new()
ASoC: codecs: da9055: Minor improvement in ALC calibration process
ASoC: dmaengine: Correct Makefile when sound is built as module
ASoC: fsi: don't reschedule DMA from an atomic context
ASoC: fix documentation in soc-jack
ARM: pxa: Fix build error caused by sram.h rename
ASoC: wm2200: Fix non-inverted OUT2 mute control
ASoC: wm2200: Use rev A register patches on rev B
ASoC: bells: Correct typo in sub speaker DAI name for WM5110
ASoC: ams-delta: Convert to use snd_soc_register_card()
ASoC: omap-mcpdm: Remove OMAP revision check
ASoC: Fix wrong include for McPDM
ASoC: omap-abe-twl6040: Fix typo of Vibrator
ASoC: twl6040: Fix Stream DAPM mapping
Change event type to switch for the power and autopower switches.
Additionally, this patch aligns the keycodes with the other linkstation
boards already supported by linux.
Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Don't use the specific board name in a the common device tree include file.
Instead use the common name 'lsxl'.
Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Move the CACHE_FEROCEON_L2 test to kirkwood_l2_init, since linking
fails on the reference to feroceon_l2_init.
Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
The CPUNum Field in EBase register is 10bit wide, so after 1 bit right
shift, the mask value should be 0x1ff.
Signed-off-by: jerin jacob <jerinjacobk@gmail.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/4420/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
- Based against v3.7-rc1
- Latest changes to arch/arm/mm/cache-tauros2.c
c2b7e05 ARM: cache: add dt support for tauros2 cache
Misc. fixes for latest changes to mach-dove/
Fixes build breakage for mach-dove
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
iQEcBAABAgAGBQJQfutwAAoJEAi3KVZQDZAeJlYH/2n8rEqGCrZuU16XVl3Hwc5q
mUkF0PexHDnGGNrgfOEAIaouG3rCTVVdj+NTqnz3gK8jaJHF06tfhpwZaxymDFzW
m4Lt45IuDvU5jEuCBm1IDHWHLro/73YepZJJRt9yAwI1DdWAhUBYLS8cd7fIoLAJ
th0TI7PObmHRVlY2mS+ByuU5wnqV5mJMMPN6oU4RzO91rNuhoQRm8WvjzEs+tSfU
GluD05p/bm3dL9Aq6146h80CZn3W4SVIKeS2l/GdQV6bqaIUvsp0F3xfzggcrcLF
rZxOom72BgnEzA1enu+adJwKY8dHxOAZ4Iuf4HUXI5DKVfVCOrmJmWfp0mS8oyc=
=RP8E
-----END PGP SIGNATURE-----
Merge tag 'mvebu_dove_late_fixes_for_v3.7' of git://git.infradead.org/users/jcooper/linux into fixes
From Jason Cooper:
Misc. fixes for latest changes to mach-dove/
Fixes build breakage for mach-dove
* tag 'mvebu_dove_late_fixes_for_v3.7' of git://git.infradead.org/users/jcooper/linux:
ARM: dove: Add crypto engine to DT
ARM: dove: Remove watchdog from DT
ARM: dove: Restructure SoC device tree descriptor
ARM: dove: Fix clock names of sata and gbe
ARM: dove: Fix tauros2 device tree init
ARM: dove: Add pcie clock support
a regression fix for local timer, and a clockdomain locking fix.
Also few minor fixes for boot time and sparse warnings.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iQIcBAABAgAGBQJQftwiAAoJEBvUPslcq6Vz0nAQANzNA5Ek5QOE3h77u+fUeYr2
+zCltDpJdv5ICTYPTbHeckrnaVqK+0udV/Z98iJ4jlraslfAwaIdIx9WDXc+VVic
grBhROiHx6OsqK0+hpkPM75RiYNJsVBzQ1BY5hdvJwVTiu7GnM+5KcKKPGEr52QA
ugZmweaJZ5/8flqJKzmVkmYA0EtKcwBEM3YUvYHhIZDol96ec9LX2FT1bUo33duz
fRq0uZvYgpSSVCiWedt74rzc4oYddMtIiYeQLLTz4bxsMjjgJT1zTEOlJ8TM5Ijl
XGdwoC9pBhM6vjCGcS2tyUrA3483LvT8ngL8SX3HkrkKus2sdMEtmotskB5xSGSQ
al9kMBu9EbJE/1I6AG15pUhP6SB+AiRwFOrBZbaavVbeA9b+KykxuYAUyhj/pEQj
AaC+u46QlhqT4LX2sQPEhosJLRMNucFfs/dkoLM451YzcSA4SEDbHcoxMJMEqpNo
iLzAuZJygGJlMqJ1OvLNTs86e+3rwZ0jS2T/7M6TUhjoiyUVXPIJooredlq+DTGT
g6/sQfpqXqcl99a3snzvnS0VjmfSpErg31TD2hPBmmSCG0cw/24vDDHrDACKazzF
bcCU/2kEfIH/IOKdSvHmIAlhGIFu6aj2HzxTyoOBdH8DMm44pGzasabZ/m9hBU8i
AFJh28CYM2++pmHmkUF9
=4meh
-----END PGP SIGNATURE-----
Merge tag 'omap-for-v3.7-rc1/fixes-take5-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
From Tony Lindgren:
A boot problem fix for am33xx beaglebone caused by GPMC,
a regression fix for local timer, and a clockdomain locking fix.
Also few minor fixes for boot time and sparse warnings.
* tag 'omap-for-v3.7-rc1/fixes-take5-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: OMAP2+: Allow kernel to boot even if GPMC fails to reserve memory
ARM: OMAP: clockdomain: Fix locking on _clkdm_clk_hwmod_enable / disable
ARM: OMAP4: devices: fixup OMAP4 DMIC platform device error message
ARM: OMAP2+: clock data: Add dev-id for the omap-gpmc dummy fck
ARM: OMAP: resolve sparse warning concerning debug_card_init()
ARM: OMAP4: Fix twd_local_timer_register regression
This branch contains a couple small fixes for Tegra for 3.7.
* A fix for another clock rate calculation overflow
* A revert of a change that removed the "timer" clock on Tegra, coupled
with a fix for the confusing symbol name clash that triggered it.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
iQIcBAABAgAGBQJQfzn3AAoJEMzrak5tbycxAOEQAIWu3M+9SeKD68QE3yVSuyBL
zKAQc5/aZINZxVpR54d8ywIJ7XlLkYatYvniv3x9tyiQ9VZ9b+G63NGHyolAFEjE
4wOWpJ0UmKdEIkJIGTqiFoAifzSjRaoSZcB7Mu+HpY+COKcYeey6riPqNo8KtNTp
u01qUg1iTwLiNHq79A/4LGs0XcVLDnsVK3xxuNYSeCGBRHXaAYeJgk6BmUJ6WMKv
0lKdlGOQN5qKcwvJUkP6fqigcmAJ12MD1MLEDOAPh230h7tUzPLOqydcqPQG6E7M
zQyiRzJBqxO/tbEkc3ZPaPAjgRARlU92PSqIcg4XTnr7B+TmBkgsfUS7L8n+1lXx
UvPh4cmfj9QAjelwZkxqYU6AtKsLRXUijGfV/BWaHoUvfd/9Sz3VlL5octkLrKfl
EzXJ7fG4nX9DRoszAEGAHl9Pv60bcdg0lMiHbY6Ot+AJPLccZqz9MkRTs/GLBhZq
btxq3zi66pw1SX8MVH2Yn5fO6ZxXtOz1XnypAd/T3oBcuxPGkQqULXTLpmThPDYV
OILg67mHHpzdF1LVLTZoRBateGFyiwTWpy8ChVTSepriUzdfbyT2fZwvo4n0ryY9
lN2xzuuo+4upw2GWFT1+mJ8dpsA7MDo3TwTdIlSLzuN7gSW59U9C5zpJYDFXMscK
C4FYIKmUra9G7dQC3xBr
=Cjt7
-----END PGP SIGNATURE-----
Merge tag 'tegra-for-3.7-fixes-for-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into fixes
From Stephen Warren: ARM: tegra: fixes for 3.7-rc2
This branch contains a couple small fixes for Tegra for 3.7.
* A fix for another clock rate calculation overflow
* A revert of a change that removed the "timer" clock on Tegra, coupled
with a fix for the confusing symbol name clash that triggered it.
* tag 'tegra-for-3.7-fixes-for-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra:
ARM: tegra: add tegra_timer clock
ARM: tegra: rename tegra system timer
ARM: tegra30: clk: Fix output_rate overflow
Signed-off-by: Olof Johansson <olof@lixom.net>
Earlier without cpuidle framework on pseries, the native arch
idle routine comprised of both snooze and nap
states. smt_snooze_delay variable was used to delay
the idle process entry to deeper idle state like nap.
With the coming of cpuidle, this arch specific idle was replaced
by two different idle routines, one for supporting snooze and other
for nap. This enabled addition of more
low level idle states on pseries in the future.
On adopting the generic cpuidle framework for POWER systems,
the decision of which idle state to choose from, given a predicted
idle time is taken by the menu governor based on
target_residency and exit_latency of the idle states.
target_residency is the minimum time to be resident in that idle state.
Exit_latency is time taken to exit out of idle state.
Deeper the idle state, both the target residency and exit latency
would be higher.
In the current design, smt_snooze_delay is used as target_residency
for the snooze state which is incorrect, as it is not the
minimum but the maximum duration to be in snooze state.
This would result in the governor in taking bad decision,
as presently target_residency of nap < target_residency of snooze
inspite of nap being deeper idle state.
This patch aims to fix this problem by replacing the smt_snooze_delay loop
in snooze state, with the need_resched() as the governor is aware of
entry and exit of various idle transitions based on which
next idle time prediction.
The governor is intelligent enough to determine the idle state the needs to
be transitioned to and maintains a whole of heuristics including
io load, previous idle states predictions etc for the same, based on
which idle state entry decision is taken.
With this fix, of setting target_residency of snooze to 0
nap to smt_snooze_delay
if the predicted idle time is less
than smt_snooze_delay (target_residency of nap)
value governor would pick snooze state, else nap. This adhers to the
previous native idle design.
Signed-off-by: Deepthi Dharwar <deepthi@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
smt_snooze_delay was designed to delay idle loop's nap entry
in the native idle code before it got ported over to use as part of
the cpuidle framework.
A -ve value assigned to smt_snooze_delay should result in
busy looping, in other words disabling the entry to nap state.
- https://lists.ozlabs.org/pipermail/linuxppc-dev/2010-May/082450.html
This particular functionality can be achieved currently by
echo 1 > /sys/devices/system/cpu/cpu*/state1/disable
but it is broken when one assigns -ve value to the smt_snooze_delay
variable either via sysfs entry or ppc64_cpu util.
This patch aims to fix this, by disabling nap state when smt_snooze_delay
variable is set to -ve value.
Signed-off-by: Deepthi Dharwar <deepthi@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>