This manifested as grep failing psuedo-randomly:
-------------->8---------------------
[ARCLinux]$ ip address show lo | grep inet
[ARCLinux]$ ip address show lo | grep inet
[ARCLinux]$ ip address show lo | grep inet
[ARCLinux]$
[ARCLinux]$ ip address show lo | grep inet
inet 127.0.0.1/8 scope host lo
-------------->8---------------------
ARC700 MMU provides fully orthogonal permission bits per page:
Ur, Uw, Ux, Kr, Kw, Kx
The user mode page permission templates used to have all Kernel mode
access bits enabled.
This caused a tricky race condition observed with uClibc buffered file
read and UNIX pipes.
1. Read access to an anon mapped page in libc .bss: write-protected
zero_page mapped: TLB Entry installed with Ur + K[rwx]
2. grep calls libc:getc() -> buffered read layer calls read(2) with the
internal read buffer in same .bss page.
The read() call is on STDIN which has been redirected to a pipe.
read(2) => sys_read() => pipe_read() => copy_to_user()
3. Since page has Kernel-write permission (despite being user-mode
write-protected), copy_to_user() suceeds w/o taking a MMU TLB-Miss
Exception (page-fault for ARC). core-MM is unaware that kernel
erroneously wrote to the reserved read-only zero-page (BUG #1)
4. Control returns to userspace which now does a write to same .bss page
Since Linux MM is not aware that page has been modified by kernel, it
simply reassigns a new writable zero-init page to mapping, loosing the
prior write by kernel - effectively zero'ing out the libc read buffer
under the hood - hence grep doesn't see right data (BUG #2)
The fix is to make all kernel-mode access permissions mirror the
user-mode ones. Note that the kernel still has full access to pages,
when accessed directly (w/o MMU) - this fix ensures that kernel-mode
access in copy_to_from() path uses the same faulting access model as for
pure user accesses to keep MM fully aware of page state.
The issue is peudo-random because it only shows up if the TLB entry
installed in #1 is present at the time of #3. If it is evicted out, due
to TLB pressure or some-such, then copy_to_user() does take a TLB Miss
Exception, with a routine write-to-anon COW processing installing a
fresh page for kernel writes and also usable as it is in userspace.
Further the issue was dormant for so long as it depends on where the
libc internal read buffer (in .bss) is mapped at runtime.
If it happens to reside in file-backed data mapping of libc (in the
page-aligned slack space trailing the file backed data), loader zero
padding the slack space, does the early cow page replacement, setting
things up at the very beginning itself.
With gcc 4.8 based builds, the libc buffer got pushed out to a real
anon mapping which triggers the issue.
Reported-by: Anton Kolesov <akolesov@synopsys.com>
Cc: <stable@vger.kernel.org> # 3.9
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Flush and INVALIDATE the dcache page.
This helper is only used for writeback of CODE pages to memory. So
there's no value in keeping the dcache lines around. Infact it is risky
as a writeback on natural eviction under pressure can cause un-needed
writeback with weird issues on aliasing dcache configurations.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Pull AVR32 update from Hans-Christian Egtvedt:
"wow, it has gone 10 releases since my last request :("
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32:
avr32: fix building warnings caused by redefinitions of HZ
avr32: fix relocation check for signed 18-bit offset
avr32: move NODES_SHIFT into Kconfig and delete numnodes.h
Pull MIPS update from Ralf Baechle:
- Fix a build error if <linux/printk.h> is included without
<linux/linkage.h> having been included before.
- Cleanup and fix the damage done by the generic idle loop patch.
- A kprobes fix that brings the MIPS code in line with what other
architectures are for quite a while already.
- Wire up the native getdents64(2) syscall for 64 bit - for some reason
it was only for the compat ABIs. This has been reported to cause an
application issue. This turned out bigger than I meant but the wait
instruction support code was driving me nuts.
* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
MIPS: N64: Wire getdents64(2)
kprobes/mips: Fix to check double free of insn slot
MIPS: Idle: Break r4k_wait into two functions and fix it.
MIPS: Idle: Do address fiddlery in helper functions.
MIPS: Idle: Consolidate all declarations in <asm/idle.h>.
MIPS: Idle: Don't call local_irq_disable() in cpu_wait() implementations.
MIPS: Idle: Re-enable irqs at the end of r3081, au1k and loongson2 cpu_wait.
MIPS: Idle: Make call of function pointer readable.
MIPS: Idle: Consistently reformat inline assembler.
MIPS: Idle: cleaup SMTC idle hook as per Linux coding style.
MIPS: Consolidate idle loop / WAIT instruction support in a single file.
MIPS: clock.h: Remove declaration of cpu_wait.
Add include dependencies to <linux/printk.h>.
MIPS: Rewrite pfn_valid to work in modules, too.
Like on UL30VT, the ACPI video driver can't control backlight correctly on
Asus UL30A. Vendor driver (asus-laptop) can work. This patch is to
add "Asus UL30A" to ACPI video detect blacklist in order to use
asus-laptop for video control on the "Asus UL30A" rather than ACPI
video driver.
Signed-off-by: Bastian Triller <bastian.triller@gmail.com>
Cc: All <stable@vger.kernel.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Remove the compile-time warning for this config option, and instead
warn that it is experimental in the Kconfig text
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Paul Zimmerman <paulz@synopsys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Added support for Cinterion's PLxx WWAN Interface by adding QMI_FIXED_INTF with
Cinterion's Vendor ID as well as Product ID and WWAN Interface Number.
Signed-off-by: Hans-Christoph Schemmel <hans-christoph.schemmel@gemalto.com>
Signed-off-by: Christian Schmiedl <christian.schmiedl@gemalto.com>
Acked-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
The usual mixed bag of little fixes.
1) A fix for mxs-lradc having missed out on some global abi changes that and
hence being unable to start up buffered output.
2) Clean up error handling in tsl2x7x
3) A build fix for some of the dac drivers when they have spi master support
built in, but i2c support build as a module.
4) Add a missing disable after a oneshot capture to the st sensor core.
5) Exynos adc driver took a novel an incorrect route to get at its private
data store.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.20 (GNU/Linux)
iQIcBAABAgAGBQJRnUDZAAoJEFSFNJnE9BaICsQQALIu6naaYSQ1inFJ4lPkyU64
q52c0QYtOFVrATTMApuIFR162nZgyBxQJ+QXLKFx52lrxDDBRcjvgIsScMFZR9Bv
PCLz0ErZLKOYw+azPFZGy/jJKi1gHKT0Zy2DKt6hgi3dhujGCfDAHb9gFr41Q9z3
h3Yu2g45BcMPt+h0nxny82YoHBY/fXV56rNhZQIIw3RBZgk2GxlXSU6cEiaImlWT
faCD6DhxrpGbnv0E0x3K5b3cKHhb883XMkKL6wY/6zQ3U4ey/uK4uQliTpYv+Gic
HhVdHP7mJ3lK/tsDhiK0znOGPotAuNilRu3qJ03195pzHI9RPAIxzM/+Xd3YnNkp
/RIVNsy6iRY/0lRx6Hta8yif8933e2qWOzLN1anyDmus7BKVaoV7WcwBbqlPj8R2
sI3x+nuxKUnnGVVBvUx4k9PC0f12ob2Hu97hYHaj++kJXrnRJU+OVt46JqUSnTys
autYPXLiE6kf/KyVymhhUOtTCIqwROlBb5Jun92H4TYIFyI8HFfbE8lxZ/mf58zw
SS0/D410gUQLxlzbasS3HMR8byUSb9SMuSvjMvLsQ+PBPijJ7Z26P2DMgZTyMIX9
GlEMJGj30uUQeApoDsrWNDlyy7f5ExZQOGfR2lVmKHkLo/WhXoMJYNVTwYrH3gim
ByFQfHo4jQrl4NtE0+ru
=Slky
-----END PGP SIGNATURE-----
Merge tag 'iio-fixes-for-3.10a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-linus
Jonathan writes:
First round of IIO fixes for the 3.10 cycle.
The usual mixed bag of little fixes.
1) A fix for mxs-lradc having missed out on some global abi changes that and
hence being unable to start up buffered output.
2) Clean up error handling in tsl2x7x
3) A build fix for some of the dac drivers when they have spi master support
built in, but i2c support build as a module.
4) Add a missing disable after a oneshot capture to the st sensor core.
5) Exynos adc driver took a novel an incorrect route to get at its private
data store.
Ben Hutchings says:
====================
Somewhat surprisingly, the net_dropmonitor reporting script doesn't work
at all. This series fixes it and then makes it slightly more efficient.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
We can read /proc/kallsyms in a fraction of a second, so why waste
a further fraction of a second showing progress?
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
The sort order of dictionaries in Python is undocumented. Use
tuples instead, which are documented to be lexically ordered.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
The comparison between traced and symbol addresses is backwards: if
the traced address doesn't exactly match a symbol (which we don't
expect it to), we'll show the next symbol and the offset to it,
whereas we should show the previous symbol and the offset from it.
Cc: stable@vger.kernel.org
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
This works much better if we don't treat protocol numbers as addresses.
Cc: stable@vger.kernel.org
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
MVF is a family while MVF600 is a particular SoC in the family. We
generally prefer to use SoC rather than family name in compatible string
to define a particular type of fec device. And this is how fec_dt_ids
works for all those IMX fec variants. Let's change mvf to mvf600 to
have it work in the same way.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
o After change in EPORT features of 82xx adapter, netdev->features needs to
be updated to reflect EPORT feature updates but driver was manipulating
netdev->features at wrong place.
o This patch uses netdev_update_features() and .ndo_fix_features() to
update netdev->features properly.
Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Code is removed because netdev->trans_start updates made by the driver
will be ignored by the kernel.
Signed-off-by: Sony Chacko <sony.chacko@qlogic.com>
Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Fix error paths in probe to assign proper error codes to probe return value.
Signed-off-by: Sony Chacko <sony.chacko@qlogic.com>
Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
After resetting the device, the driver waits for a signature to be
updated to know that firmware has completed initialization. However, the
call to tg3_poll_fw() is being done too late and we're writing to the
GRC_MODE register before it has completely initialized, causing
contention with firmware. This logic has existed since day one but is
causing PCIE link to go down randomly at startup on one platform once
every few hundred reboots.
Move the tg3_poll_fw() up to before we write to the GRC_MODE register
after reset.
Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
The exynos_adc device structure was wrongly extracted from the dev*
correcting the same.
Using the regular conversion of
struct device* -> struct platform_device* -> struct exynos_adc* seems wrong.
Instead we should be doing
struct device* -> struct iio_dev* -> struct exynos_adc*
Signed-off-by: Naveen Krishna Chatradhi <ch.naveen@samsung.com>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This patch fixes below build error when CONFIG_SPI_MASTER=y && CONFIG_I2C=m:
drivers/built-in.o: In function `ad5064_i2c_write':
drivers/iio/dac/ad5064.c:608: undefined reference to `i2c_master_send'
drivers/built-in.o: In function `ad5064_i2c_register_driver':
drivers/iio/dac/ad5064.c:646: undefined reference to `i2c_register_driver'
drivers/built-in.o: In function `ad5064_i2c_unregister_driver':
drivers/iio/dac/ad5064.c:651: undefined reference to `i2c_del_driver'
make: *** [vmlinux] Error 1
When CONFIG_I2C=m, meaning we can't build the drivers in with I2C support.
Thus don't allow the drivers to be compiled as built-in when CONFIG_I2C=m.
The real fix though is to break the driver apart into a SPI part, an I2C part
and a common part. But that's something for 3.11 while this is something for
3.10/stable.
Reported-by: Wu Fengguang <fengguang.wu@intel.com>
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Fix to return -EINVAL in the i2c device found error handling
case instead of 0, as done elsewhere in this function.
And also correct the fail1 and fail2 lable to do the right thing.
Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This fixes 'preenable failed: -EINVAL' error when using this driver.
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Commit d3f79584a8 ("ARM: cleanup undefined instruction entry code")
improved the register scheduling when handling undefined instructions.
A side effect of this is that r5 is now used as a temporary, whilst the
VFP probing code relies on r5 containing a non-zero value when VFP is
not supported.
This patch fixes the VFP detection code so that we don't rely on the
contents of r5. Without this patch, Linux dies loudly on CPUs without
VFP support.
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
If one reads /proc/$PID/smaps, the mmap_sem belonging to the
address space of the task being examined is locked for reading.
All the pages of the vmas belonging to the task's address space
are then walked with this lock held.
If a gate_vma is present in the architecture, it too is examined
by the fs/proc/task_mmu.c code. As gate_vma doesn't belong to the
address space of the task though, its pages are not walked.
A recent cleanup (commit f6604efe) of the gate_vma initialisation
code set the vm_mm value to &init_mm. Unfortunately a non-NULL
vm_mm value in the gate_vma will cause the task_mmu code to attempt
to walk the pages of the gate_vma (with no mmap-sem lock held). If
one enables Transparent Huge Page support and vm debugging, this
will then cause OOPses as pmd_trans_huge_lock is called without
mmap_sem being locked.
This patch removes the .vm_mm value from gate_vma, restoring the
original behaviour of the task_mmu code.
Signed-off-by: Steve Capper <steve.capper@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Make the SHA1 asm code ABI conformant by making sure all stack
accesses occur above the stack pointer.
Origin:
http://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=1a9d60d2
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Nicolas Pitre <nico@linaro.org>
Cc: stable@vger.kernel.org
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iQIcBAABAgAGBQJRnGlnAAoJENfPZGlqN0++M1MQAIk1JS3wTU33DPqZJ6+OBnuK
5eVSItXR5lImEOGMIhqhgm1zsIR15G89LhZmNKjVQeMAnMY/+s1DcwLfQtXXAC2W
qTZ31qLeUOA9NGgAEoCtJ4tfUBQ4jBRJrpGAa9HXsEEhOC7ojP9GnWrONvSldzRA
+pdC5oFqeaZl6u/VirttFIH6g/VRc8LV8cVeSIhnun2X0VcG54+p7qBjtpnWWw5z
IqpUs+DsegDJ0q5FT7bNKUVXI0F9Vc1je9u08rqc+aE5GGccJftub2KI9VO7d46d
upG84kz7FTxUj58D8fumNZ9NgWQqi/OWuDrrgIgoKmcRneZ2l8EI0USXm8r2uXcI
8OqdWN5o4I8ec2Zj+IVhqhh1mNM7Irbv/rqjOtlxO80z5FzYRfKE8oXeEvd5zI0h
sIhnfMEderVZM9wJnqfKNn5YI8BwLHim2irYNnIVB5WbK1SbhhJl8Hmw92pzRi2V
mN4ctXLNGDrb+xFCvVQvgG10DI8R/FP82ul550kQynNftipgLPamTxxQ0JCMj1qg
nNGrkxdhOrwv0B21xTqgUwShdWAmNVfJvxQuh0AyOhS4lXz70Pctqqpvp1zyJv1L
//eFmfc8KqUhNAWOMywv9S8UZatZnMR5pYSPlJGUmwaGNpqrXUoEd4xWKcKuCVcw
E10B31MLfNHESdwSzQDP
=GyZI
-----END PGP SIGNATURE-----
Merge tag 'renesas-boards-marzen-fixes-for-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into fixes
From Simon Horman:
Correct USB PHY initialisation on the marzen board.
* tag 'renesas-boards-marzen-fixes-for-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: marzen: Use error values in usb_power_*
Signed-off-by: Olof Johansson <olof@lixom.net>
with DT.
Basic build, boot, and PM test logs are here - unfortunately, not for
the DT case yet:
http://www.pwsan.com/omap/testlogs/uart_idle_fix_v3.10-rc/20130519164010/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iQIcBAABAgAGBQJRmVyFAAoJEMePsQ0LvSpL7esP/3Jxl0XhCHnZdS19Ts+wg3Uj
u1kfLN5WVaPEuXbBEuM/wEnMcSuWeAxhJEwEFvVURfVmUkbSWpQ9vRtXNFlbKAro
qiAG7Rc+9dqZqzpgSn7iV/KhxZiYu7du1zMJP1tR15QLlswJtuLhG4D3im6SZ7qh
QQ/iESsQp7fzASguv6Bo8piw3M7PIF7zgRw5zki2dQBowGqHqQcKFcQgDADeeIg/
dToCKRJb91F9/von8D7D8TvRLo0DS/uxTVLvXLteB8hqIbLXJel6llYanw3JFZyt
1D6Ygml4RQUlLYhq4ERkAsMtb8s9cwk/IvkAyksCytORG7s5+4jFxKhAu+6P8tjv
caf5yQNT8qtRgyB7QGA0F75tNKV8Nm4j3BpyYLz1690ZC6tDV3+9QQOnEj6YR6bJ
X7+x0eoRrJS3ZUakTdDZSBXW4YxWZUHNzbpSpwDEQKaMgR2FLq0dbDYMqYUkMHNH
FL+0mfeXMcg8NBaZfGyxwjsxme6aN4LuJ3SsLVSFjDA9qNXqFE4DARAZwyiQixGG
f8z5KfLhKr+zI+iiuK439U4f6AW7uguHHvUL8eEzyjEA++TvSm0TzZURafX5Ldhh
U8y3vudHAszZr6gLEBqUsvJZBmNWPVhkL5m8PRFOBIJqjqS3dyh/zbA+gB3TNRcM
gLdggBxEL2w8ESpWj+UH
=DRuE
-----END PGP SIGNATURE-----
Merge tag 'omap-fixes-a-for-3.10-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into fixes
From Paul Walmsley:
Fix the OMAP serial driver to work correctly on OMAP4 when booting
with DT.
* tag 'omap-fixes-a-for-3.10-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending:
ARM: OMAP2+: hwmod: Remove sysc slave idle and auto idle apis
SERIAL: OMAP: Remove the slave idle handling from the driver
ARM: OMAP2+: serial: Remove the un-used slave idle hooks
ARM: OMAP2+: hwmod-data: UART IP needs software control to manage sidle modes
ARM: OMAP2+: hwmod: Add a new flag to handle SIDLE in SWSUP only in active
ARM: OMAP2+: hwmod: Fix sidle programming in _enable_sysc()/_idle_sysc()
Signed-off-by: Olof Johansson <olof@lixom.net>
As suggested by David Howells <dhowells@redhat.com>, use
asm-generic/param.h and uapi/asm-generic/param.h for AVR32.
It also fixes building warnings caused by redefinitions of HZ:
In file included from /ws/linux/kernel/linux.git/include/uapi/linux/param.h:4,
from include/linux/timex.h:63,
from include/linux/jiffies.h:8,
from include/linux/ktime.h:25,
from include/linux/timer.h:5,
from include/linux/workqueue.h:8,
from include/linux/srcu.h:34,
from include/linux/notifier.h:15,
from include/linux/memory_hotplug.h:6,
from include/linux/mmzone.h:777,
from include/linux/gfp.h:4,
from arch/avr32/mm/init.c:10:
/ws/linux/kernel/linux.git/arch/avr32/include/asm/param.h:6:1: warning: "HZ" redefined
In file included from /ws/linux/kernel/linux.git/arch/avr32/include/asm/param.h:4,
from /ws/linux/kernel/linux.git/include/uapi/linux/param.h:4,
from include/linux/timex.h:63,
from include/linux/jiffies.h:8,
from include/linux/ktime.h:25,
from include/linux/timer.h:5,
from include/linux/workqueue.h:8,
from include/linux/srcu.h:34,
from include/linux/notifier.h:15,
from include/linux/memory_hotplug.h:6,
from include/linux/mmzone.h:777,
from include/linux/gfp.h:4,
from arch/avr32/mm/init.c:10:
/ws/linux/kernel/linux.git/arch/avr32/include/uapi/asm/param.h:6:1: warning: this is the location of the previous definition
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Hans-Christian Egtvedt <egtvedt@samfundet.no>
The lockless RPC_IS_QUEUED() test in __rpc_execute means that we need to
be careful about ordering the calls to rpc_test_and_set_running(task) and
rpc_clear_queued(task). If we get the order wrong, then we may end up
testing the RPC_TASK_RUNNING flag after __rpc_execute() has looped
and changed the state of the rpc_task.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: stable@vger.kernel.org
virt_to_page() is typically implemented as a macro containing a cast so
that it will accept both pointers and unsigned long without causing a
warning.
But MIPS virt_to_page() uses virt_to_phys which is a function so passing
an unsigned long will cause a warning:
CC mm/page_alloc.o
mm/page_alloc.c: In function ‘free_reserved_area’:
mm/page_alloc.c:5161:3: warning: passing argument 1 of ‘virt_to_phys’ makes pointer from integer without a cast [enabled by default]
arch/mips/include/asm/io.h:119:100: note: expected ‘const volatile void *’ but argument is of type ‘long unsigned int’
All others users of virt_to_page() in mm/ are passing a void *.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Reported-by: Eunbong Song <eunb.song@samsung.com>
Cc: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org
Cc: linux-mips@linux-mips.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
It's bigger than I would like, most of it is due to the big ab/db8500 merge
that went through during the 3.10 merge window.
So we have:
- Some build fixes for the tps65912 and ab8500 drivers.
- A couple of build fixes for the the si476x driver with pre 4.3 gcc
compilers.
- A few runtime breakage fixes (probe failures or oopses) for the ab8500
and db8500 drivers.
- Some sparse or regular gcc warning fixes for the si476x, ab8500 and
cros_ec drivers.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iQIcBAABAgAGBQJRm/FnAAoJEIqAPN1PVmxKMwQP/RpmIcJ3Y8MoaPil35cNFdij
F7dbVlRFqusYtZeCSfeThDzzkGaDG0iMzbFNfxJopfab7jz6G+hu4P3gpzS3w4fN
R8g+gmci5xmW5FqgqogMEx5mpYuOhyHzgsG93t++GHcQX/ne+7fqMIVWBfC4x4EH
yxApTkXbd3Eih9KE1PoWRsUGSn4DoatjyhAJfXN7NmOO7juzJr6O8NsydD8x0fVv
Tgwysra14s1qtnnhpKKxEQY6XnMy/9OsI1y/Kig08R0bokH8o6wh02W6iRHc6ED7
Y4YeTnsEkzTBi36Djtixreyfnbc67muHH7e+c4zwMJDYilQHq3CoU9vxVOAFuLRL
W0ImpNjrhTGTpD24nGxD/YiBvrkQbIwa/4O6ZoRPXSNhuWsx7euuSetqYPYxS+oU
AmARUCeTGL9xy5FNJ0LUDKPDRn8SaiKvqE2AKhjVW8b9hZvlSbNITSawJeV01Wz2
SHMgdafDXio47uAczuwg/mCpcReBQ/0+9GDtofCRVd1ySMpWBjweoJ1WwU5Hs02o
JjJ3iCHF+xM1vr6rkrNrXYwv5Zuxl/WZP7KR1wlSYIT0EVjQw2SRBUjhg4QBfFBm
1jYW690xy8DriUmEmf1GGAHeQgDBG3k4kNzg63IG6QOsAnVv+5Fytth9smFrjCjs
5fCA2ED6gdWr7sWXPmbv
=RQz1
-----END PGP SIGNATURE-----
Merge tag 'mfd-fixes-3.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-fixes
Pull mfd fixes from Samuel Ortiz:
"This is the first batch of MFD fixes for 3.10.
It's bigger than I would like, most of it is due to the big ab/db8500
merge that went through during the 3.10 merge window.
So we have:
- Some build fixes for the tps65912 and ab8500 drivers.
- A couple of build fixes for the the si476x driver with pre 4.3 gcc
compilers.
- A few runtime breakage fixes (probe failures or oopses) for the
ab8500 and db8500 drivers.
- Some sparse or regular gcc warning fixes for the si476x, ab8500 and
cros_ec drivers."
* tag 'mfd-fixes-3.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-fixes:
mfd: ab8500-sysctrl: Let sysctrl driver work without pdata
mfd: db8500-prcmu: Update stored DSI PLL divider value
mfd: ab8500-sysctrl: Always enable pm_power_off handler
mfd: ab8500-core: Pass GPADC compatible string to MFD core
mfd: db8500-prcmu: Supply the pdata_size attribute for db8500-thermal
mfd: ab8500-core: Use the correct driver name when enabling gpio/pinctrl
mfd: ab8500: Pass AB8500 IRQ to debugfs code by resource
mfd: ab8500-gpadc: Suppress 'ignoring regulator_enable() return value' warning
mfd: ab8500-sysctrl: Set sysctrl_dev during probe
mfd: ab8500-sysctrl: Fix sparse warning
mfd: abx500-core: Fix sparse warning
mfd: ab8500: Debugfs code depends on gpadc
mfd: si476x: Use get_unaligned_be16() for unaligned be16 loads
mfd: cros_ec_spi: Use %z to format pointer differences
mfd: si476x: Do not use binary constants
mfd: tps65912: Select MFD_CORE
I liked, but my first version broke linux-next due to overzealous
header clean.
Thanks,
Rusty.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iQIcBAABAgAGBQJRnBctAAoJENkgDmzRrbjxymMP/ioTlABagJKNPvGPs4+j3rux
uqd/qYImRGvEd/JzqQ3o2LWLUgMv/wPWjhpsaPTwNIgQYWp+u+YGtGVe73EYOEMR
/Zy7MWsivva/p0MLmEKvWT8dgR88Nw0koxw+9zDUH0b5JIsH5vasG6hCQvumSNmW
RRkgSqD+hQvIevG0sxLj6WXXX0Yh6bXteKy+MRJL+TMT//W+idFb3Y2OLDP8RgXy
PPiJ5Qiw08sCIePXt9+rOgx6Qy2clQ70Y+1Vegr1pkTVreYxv/ERl4sOuy6pncGu
z2IsNiVPFJG0hhalKjsyhJ0k/OrqlgDMWaj+Jh1iV+Iti6+4xco4fbQuAcEiVLm+
aml6ogpARI4Nc5lQIoZCVNGVEbp+NzDUIQi3ao6P59dZFcgYPApVwI6osYDV+SOE
PjFf/HNYLogiO9rbOKCHxkvlUIr07eqB2RqVeSIdOkx/jrfFzGnJVFIge7LKO4ZM
cOKw7qZAQgdUY/tZL+3ty4eCkg0WNjK6F4ORqIp7Vi6X2bMHLFAvG6oYDAZhcBGr
ODZUt30fk1fYgoP1Kx3MFXJm6esOM3IdzpNmJY4hnV3Dx51w+5PNVYHE/RdXwqLh
FvrDv2V5ZIuWoTY0HpYkl7Wld9Q1ZH9G2v+P936IR+exOuZKiRXkUjPPdAHSgQxs
1YWWoR3Up5ObU7LH6hL9
=rYZI
-----END PGP SIGNATURE-----
Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux
Pull virtio fixes from Rusty Russell:
"A build fix and a uapi exposure fix. The build fix is later than I
liked, but my first version broke linux-next due to overzealous header
clean."
* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
virtio_console: fix uapi header
Hoist memcpy_fromiovec/memcpy_toiovec into lib/
As a relatively new ABI, N64 only had getdents syscall while other modern
architectures have getdents64.
This was noticed when Python 3.3 shifted to the latter one for aarch64.
[ralf@linux-mips.org: The history of getdents64 is a little complicated.
Commit 1a1d77dd589de5a567fa95e36aa6999c704ceca4 [Merge with 2.4.0-test7.]
added N64 getdents(2) to arch/mips64/kernel/scall_64.S as syscall 5213,
then dropped again in 578720675c44e54e8aa7c68f6dce59ed37ce3d3b [Overhaul
of the 64-bit syscall interface. Now heritage free.] for 2.5.18 in 2002.]
Signed-off-by: Aron Xu <aron@debian.org>
Acked-by: David Daney <david.daney@cavium.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/5285/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
As multiplatform build is being adopted by more and more ARM platforms, initcall
function should be used very carefully. For example, when both arm_big_little_dt
and cpufreq-cpu0 drivers are compiled in, arm_big_little_dt driver may try to
register even if we had platform device for cpufreq-cpu0 registered.
To eliminate this undesired the effect, the patch changes arm_big_little_dt
driver to have it instantiated as a platform_driver. Then it will only run on
platforms that create the platform_device "arm-bL-cpufreq-dt".
Reported-and-tested-by: Rob Herring <robherring2@gmail.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
If arm_big_little_dt driver is enabled, then it will always try to register with
big LITTLE cpufreq core driver. In case DT doesn't have relevant data for cpu
nodes, i.e. operating points aren't present, then we should exit early and
shouldn't register with big LITTLE cpufreq core driver. Otherwise we will fail
continuously from the driver->init() routine.
This patch fixes this issue.
Reported-and-tested-by: Jon Medhurst <tixy@linaro.org>
Reviewed-by: Jon Medhurst <tixy@linaro.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
on i386:
CONFIG_ACPI_PROCESSOR=m
CONFIG_X86_E_POWERSAVER=y
drivers/built-in.o: In function `eps_cpu_init.part.8':
e_powersaver.c:(.text.unlikely+0x2243): undefined reference to `acpi_processor_register_performance'
e_powersaver.c:(.text.unlikely+0x22a2): undefined reference to `acpi_processor_unregister_performance'
e_powersaver.c:(.text.unlikely+0x246b): undefined reference to `acpi_processor_get_bios_limit'
X86_E_POWERSAVER should also depend on ACPI_PROCESSOR.
Signed-off-by: Rafal Bilski <rafalbilski@interia.pl>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
- As suggested by Gleb, wrap calls to gfn_to_pfn() with srcu_read_lock/unlock().
Memory slots should be acccessed from a SRCU read section.
- kvm_mips_map_page() now returns an error code to it's callers, instead of
calling panic() if it cannot find a mapping for a particular gfn.
Signed-off-by: Sanjay Lal <sanjayl@kymasys.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
This patch updates the marzen board code as if USB PHY isn't enabled
they phy will have a value set by ERR_PTR() rather than be NULL.
Without this patch a NULL pointer dereference and kernel panic
occurs on initialisation of USB on marzen.
This resolves a regression introduced in 3.10-rc1 by
b7fa5c2aec
("usb: phy: return -ENXIO when PHY layer isn't enabled").
Tested-by: Nguyen Hong Ky <nh-ky@jinso.co.jp>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
local_irq_enable() may expand into very different code, so it rather should
stay in C. Also this keeps the assembler code size constant which keeps
the rollback code simple. So it's best to split r4k_wait into two parts,
one C and one assembler.
Finally add the local_irq_enable() to r4k_wait to ensure the WAIT
instruction in __r4k_wait() will work properly.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>