赵子初 [Thu, 25 Oct 2012 12:31:29 +0000 (20:31 +0800)]
rk2928phonepad: sc6610:add resume and suspend
邱建斌 [Thu, 25 Oct 2012 11:00:45 +0000 (19:00 +0800)]
rk2928phonepad modem_sound :
add set volume ioctl cmd
邱建斌 [Thu, 25 Oct 2012 10:59:26 +0000 (18:59 +0800)]
rk2928phonepad:
modfiy headset driver
fix hook key source
kfx [Thu, 25 Oct 2012 09:06:48 +0000 (17:06 +0800)]
rk2928: update gt811_ts driver
kfx [Thu, 25 Oct 2012 08:06:13 +0000 (16:06 +0800)]
rk2928_defconfig: support 'rk2928 phonepad'
张晴 [Thu, 25 Oct 2012 06:38:03 +0000 (14:38 +0800)]
rk2928:rk2926:remove excess pmu file
张晴 [Thu, 25 Oct 2012 06:19:44 +0000 (14:19 +0800)]
rk2928:rk2926:support pmu init voltage reference
kfx [Thu, 25 Oct 2012 02:50:13 +0000 (10:50 +0800)]
rk2928: tr726: gt811_ts.c optimize(yj)
wlq [Thu, 25 Oct 2012 02:10:46 +0000 (10:10 +0800)]
changed sc6610 GPIO define error
luowei [Wed, 24 Oct 2012 11:17:12 +0000 (19:17 +0800)]
rk30_phonepad:add auto modem support and delete ddr scaling config
linjh [Wed, 24 Oct 2012 10:48:50 +0000 (18:48 +0800)]
rk2928-phonepad: update power charger support
[reference files]
arch/arm/configs/rk2928_phonepad_defconfig
arch/arm/mach-rk2928/board-rk2928-phonepad.c
luowei [Wed, 24 Oct 2012 10:35:42 +0000 (18:35 +0800)]
rk30_phonepad:add board id head file
luowei [Wed, 24 Oct 2012 10:30:22 +0000 (18:30 +0800)]
rk30_phonepad:add mt6229 to black list in usb serial
luowei [Wed, 24 Oct 2012 10:25:26 +0000 (18:25 +0800)]
rk30_phonepad:add auto modem driver Kconfig
邱建斌 [Wed, 24 Oct 2012 10:19:11 +0000 (18:19 +0800)]
rk2928phonepad:
update rk2928phonepad defconfig,open modem_sound and headset config
张晴 [Wed, 24 Oct 2012 10:18:15 +0000 (18:18 +0800)]
rk3066b:support pmu init voltage reference
luowei [Wed, 24 Oct 2012 10:11:05 +0000 (18:11 +0800)]
rk30_phonepad:add auto modem driver support
邱建斌 [Wed, 24 Oct 2012 09:48:13 +0000 (17:48 +0800)]
rk2928phonepad:
modfiy modem_sound ioctl cmd
yzq [Wed, 24 Oct 2012 06:55:18 +0000 (14:55 +0800)]
fix backlight shutdown waring and fix switch screen backlight status
linjh [Wed, 24 Oct 2012 03:53:42 +0000 (11:53 +0800)]
rk2928_phonepad: adjust ap321xx l/p sensor to compatibale sensor framework
[reference files]
modified:
arch/arm/configs/rk2928_phonepad_defconfig
arch/arm/mach-rk2928/board-rk2928-phonepad.c
arch/arm/mach-rk2928/include/mach/board.h
drivers/input/misc/Kconfig
drivers/input/misc/Makefile
drivers/input/sensors/lsensor/Kconfig
drivers/input/sensors/lsensor/Makefile
drivers/input/sensors/psensor/Kconfig
drivers/input/sensors/psensor/Makefile
drivers/input/sensors/sensor-dev.c
include/linux/sensor-dev.h
new file:
drivers/input/sensors/psensor/ps_ap321xx.c
drivers/input/sensors/lsensor/ls_ap321xx.c
deleted:
drivers/input/misc/ap321xx.c
hwg [Wed, 24 Oct 2012 02:03:07 +0000 (10:03 +0800)]
use default wifi rtl8192cu for rk2928_sdk_defconfig
邱建斌 [Tue, 23 Oct 2012 11:14:38 +0000 (19:14 +0800)]
rk2928phonepad:
fix inside headset unnot boot
邱建斌 [Tue, 23 Oct 2012 10:57:37 +0000 (18:57 +0800)]
rk2928phonepad:
update rk2928 codec for modem sound
kfx [Tue, 23 Oct 2012 10:45:47 +0000 (18:45 +0800)]
rk2928 tb: fixed power_on gpio
kfx [Tue, 23 Oct 2012 10:44:24 +0000 (18:44 +0800)]
adc_factory: return -EINVAL if fail to register adc channel
linjh [Tue, 23 Oct 2012 08:31:44 +0000 (16:31 +0800)]
rk2928_phonepad: remove exp gpio
[reference files]
modified:
arch/arm/mach-rk2928/include/mach/board.h
drivers/misc/rk2928_callpad_misc/Kconfig
drivers/misc/rk2928_callpad_misc/Makefile
deleted:
drivers/misc/rk2928_callpad_misc/gpio_exp_callpad.c
include/linux/gpio_exp_callpad.h
kfx [Tue, 23 Oct 2012 07:53:13 +0000 (15:53 +0800)]
rk2928_defconfig: support 'rk2928 sdk'
yzq [Tue, 23 Oct 2012 02:34:26 +0000 (10:34 +0800)]
rk fb: update hdmi scale and switch screen func
chenxing [Tue, 23 Oct 2012 04:49:37 +0000 (12:49 +0800)]
rk2928: rename hclk_nandc as nandc
kfx [Tue, 23 Oct 2012 02:58:27 +0000 (10:58 +0800)]
rk2928_defconfig: support 'rk2928 top board'
chenxing [Tue, 23 Oct 2012 02:54:05 +0000 (10:54 +0800)]
rk3066b: add loader config dump support
chenxing [Tue, 23 Oct 2012 02:44:21 +0000 (10:44 +0800)]
rk2928: add loader config dump
黄涛 [Tue, 23 Oct 2012 02:12:01 +0000 (10:12 +0800)]
rk2928: enable ARM ERRATA 775420 workaround
黄涛 [Tue, 23 Oct 2012 02:08:59 +0000 (10:08 +0800)]
rk30: enable ARM ERRATA 775420 workaround
黄涛 [Tue, 23 Oct 2012 02:06:51 +0000 (10:06 +0800)]
Merge remote-tracking branch 'stable/linux-3.0.y' into develop-3.0
Conflicts:
Makefile
kfx [Tue, 23 Oct 2012 00:34:49 +0000 (08:34 +0800)]
rk2928_defconfig: support 'rk2926 sdk(m713)'
黄涛 [Mon, 22 Oct 2012 10:50:52 +0000 (18:50 +0800)]
rk: move rk2928 cpu.h to plat-rk, add rk3066b cpu.h
张晴 [Mon, 22 Oct 2012 09:18:57 +0000 (17:18 +0800)]
rk30:rk2926:support logic voltage adjusted to 0.95v
yangkai [Mon, 22 Oct 2012 07:53:47 +0000 (15:53 +0800)]
modify rk2928 usb host&otg phy config
kfx [Mon, 22 Oct 2012 07:41:15 +0000 (15:41 +0800)]
rk2928_defconfig: support 'rk2926 top board'
yangkai [Mon, 22 Oct 2012 07:16:31 +0000 (15:16 +0800)]
modify rk2928 host phy config
黄涛 [Mon, 22 Oct 2012 03:14:51 +0000 (11:14 +0800)]
rk3066b: defconfig: add SOC_RK3066B config, which auto select ARCH_RK3066B
黄涛 [Mon, 22 Oct 2012 02:55:33 +0000 (10:55 +0800)]
rk: Kconfig add rk3108 support and add SOC_RKXXXX config
Greg Kroah-Hartman [Sun, 21 Oct 2012 16:17:50 +0000 (09:17 -0700)]
Linux 3.0.47
Maxim Kachur [Wed, 17 Oct 2012 16:18:10 +0000 (18:18 +0200)]
ALSA: emu10k1: add chip details for E-mu 1010 PCIe card
commit
10f571d09106c3eb85951896522c9650596eff2e upstream.
Add chip details for E-mu 1010 PCIe card. It has the same
chip as found in E-mu 1010b but it uses different PCI id.
Signed-off-by: Maxim Kachur <mcdebugger@duganet.ru>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Takashi Iwai [Thu, 11 Oct 2012 14:43:40 +0000 (16:43 +0200)]
ALSA: ac97 - Fix missing NULL check in snd_ac97_cvol_new()
commit
733a48e5ae5bf28b046fad984d458c747cbb8c21 upstream.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=44721
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Nikola Pajkovsky [Tue, 14 Aug 2012 22:38:08 +0000 (00:38 +0200)]
udf: fix retun value on error path in udf_load_logicalvol
commit
68766a2edcd5cd744262a70a2f67a320ac944760 upstream.
In case we detect a problem and bail out, we fail to set "ret" to a
nonzero value, and udf_load_logicalvol will mistakenly report success.
Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Peter Huewe [Thu, 27 Sep 2012 14:09:33 +0000 (16:09 +0200)]
tpm: Propagate error from tpm_transmit to fix a timeout hang
commit
abce9ac292e13da367bbd22c1f7669f988d931ac upstream.
tpm_write calls tpm_transmit without checking the return value and
assigns the return value unconditionally to chip->pending_data, even if
it's an error value.
This causes three bugs.
So if we write to /dev/tpm0 with a tpm_param_size bigger than
TPM_BUFSIZE=0x1000 (e.g. 0x100a)
and a bufsize also bigger than TPM_BUFSIZE (e.g. 0x100a)
tpm_transmit returns -E2BIG which is assigned to chip->pending_data as
-7, but tpm_write returns that TPM_BUFSIZE bytes have been successfully
been written to the TPM, altough this is not true (bug #1).
As we did write more than than TPM_BUFSIZE bytes but tpm_write reports
that only TPM_BUFSIZE bytes have been written the vfs tries to write
the remaining bytes (in this case 10 bytes) to the tpm device driver via
tpm_write which then blocks at
/* cannot perform a write until the read has cleared
either via tpm_read or a user_read_timer timeout */
while (atomic_read(&chip->data_pending) != 0)
msleep(TPM_TIMEOUT);
for 60 seconds, since data_pending is -7 and nobody is able to
read it (since tpm_read luckily checks if data_pending is greater than
0) (#bug 2).
After that the remaining bytes are written to the TPM which are
interpreted by the tpm as a normal command. (bug #3)
So if the last bytes of the command stream happen to be a e.g.
tpm_force_clear this gets accidentally sent to the TPM.
This patch fixes all three bugs, by propagating the error code of
tpm_write and returning -E2BIG if the input buffer is too big,
since the response from the tpm for a truncated value is bogus anyway.
Moreover it returns -EBUSY to userspace if there is a response ready to be
read.
Signed-off-by: Peter Huewe <peter.huewe@infineon.com>
Signed-off-by: Kent Yoder <key@linux.vnet.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H. Peter Anvin [Sun, 31 Jul 2011 21:02:19 +0000 (14:02 -0700)]
x86, random: Verify RDRAND functionality and allow it to be disabled
commit
49d859d78c5aeb998b6936fcb5f288f78d713489 upstream.
If the CPU declares that RDRAND is available, go through a guranteed
reseed sequence, and make sure that it is actually working (producing
data.) If it does not, disable the CPU feature flag.
Allow RDRAND to be disabled on the command line (as opposed to at
compile time) for a user who has special requirements with regards to
random numbers.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: Matt Mackall <mpm@selenic.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H. Peter Anvin [Sun, 31 Jul 2011 20:59:29 +0000 (13:59 -0700)]
x86, random: Architectural inlines to get random integers with RDRAND
commit
628c6246d47b85f5357298601df2444d7f4dd3fd upstream.
Architectural inlines to get random ints and longs using the RDRAND
instruction.
Intel has introduced a new RDRAND instruction, a Digital Random Number
Generator (DRNG), which is functionally an high bandwidth entropy
source, cryptographic whitener, and integrity monitor all built into
hardware. This enables RDRAND to be used directly, bypassing the
kernel random number pool.
For technical documentation, see:
http://software.intel.com/en-us/articles/download-the-latest-bull-mountain-software-implementation-guide/
In this patch, this is *only* used for the nonblocking random number
pool. RDRAND is a nonblocking source, similar to our /dev/urandom,
and is therefore not a direct replacement for /dev/random. The
architectural hooks presented in the previous patch only feed the
kernel internal users, which only use the nonblocking pool, and so
this is not a problem.
Since this instruction is available in userspace, there is no reason
to have a /dev/hw_rng device driver for the purpose of feeding rngd.
This is especially so since RDRAND is a nonblocking source, and needs
additional whitening and reduction (see the above technical
documentation for details) in order to be of "pure entropy source"
quality.
The CONFIG_EXPERT compile-time option can be used to disable this use
of RDRAND.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Originally-by: Fenghua Yu <fenghua.yu@intel.com>
Cc: Matt Mackall <mpm@selenic.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jan Kara [Wed, 11 Jul 2012 21:16:25 +0000 (23:16 +0200)]
jbd: Fix assertion failure in commit code due to lacking transaction credits
commit
09e05d4805e6c524c1af74e524e5d0528bb3fef3 upstream.
ext3 users of data=journal mode with blocksize < pagesize were occasionally
hitting assertion failure in journal_commit_transaction() checking whether the
transaction has at least as many credits reserved as buffers attached. The
core of the problem is that when a file gets truncated, buffers that still need
checkpointing or that are attached to the committing transaction are left with
buffer_mapped set. When this happens to buffers beyond i_size attached to a
page stradding i_size, subsequent write extending the file will see these
buffers and as they are mapped (but underlying blocks were freed) things go
awry from here.
The assertion failure just coincidentally (and in this case luckily as we would
start corrupting filesystem) triggers due to journal_head not being properly
cleaned up as well.
Under some rare circumstances this bug could even hit data=ordered mode users.
There the assertion won't trigger and we would end up corrupting the
filesystem.
We fix the problem by unmapping buffers if possible (in lots of cases we just
need a buffer attached to a transaction as a place holder but it must not be
written out anyway). And in one case, we just have to bite the bullet and wait
for transaction commit to finish.
Reviewed-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Egbert Eich [Mon, 15 Oct 2012 06:21:39 +0000 (08:21 +0200)]
drm/radeon: Don't destroy I2C Bus Rec in radeon_ext_tmds_enc_destroy().
commit
082918471139b07964967cfe5f70230909c82ae1 upstream.
radeon_i2c_fini() walks thru the list of I2C bus recs rdev->i2c_bus[]
to destroy each of them.
radeon_ext_tmds_enc_destroy() however also has code to destroy it's
associated I2C bus rec which has been obtained by radeon_i2c_lookup()
and is therefore also in the i2c_bus[] list.
This causes a double free resulting in a kernel panic when unloading
the radeon driver.
Removing destroy code from radeon_ext_tmds_enc_destroy() fixes this
problem.
agd5f: fix compiler warning
Signed-off-by: Egbert Eich <eich@suse.de>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jean-Christian de Rivaz [Wed, 10 Oct 2012 12:49:02 +0000 (12:49 +0000)]
Add CDC-ACM support for the CX93010-2x UCMxx USB Modem
commit
e7d491a19d3e3aac544070293891a2542ae0c565 upstream.
This USB V.92/V.32bis Controllered Modem have the USB vendor ID 0x0572
and device ID 0x1340. It need the NO_UNION_NORMAL quirk to be recognized.
Reference:
http://www.conexant.com/servlets/DownloadServlet/DSH-201723-005.pdf?docid=1725&revid=5
See idVendor and idProduct in table 6-1. Device Descriptors
Signed-off-by: Jean-Christian de Rivaz <jc@eclis.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jan Engelhardt [Fri, 21 Sep 2012 22:26:52 +0000 (22:26 +0000)]
netfilter: xt_limit: have r->cost != 0 case work
commit
82e6bfe2fbc4d48852114c4f979137cd5bf1d1a8 upstream.
Commit v2.6.19-rc1~1272^2~41 tells us that r->cost != 0 can happen when
a running state is saved to userspace and then reinstated from there.
Make sure that private xt_limit area is initialized with correct values.
Otherwise, random matchings due to use of uninitialized memory.
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Acked-by: David Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Florian Westphal [Mon, 7 May 2012 10:51:43 +0000 (10:51 +0000)]
netfilter: limit, hashlimit: avoid duplicated inline
commit
7a909ac70f6b0823d9f23a43f19598d4b57ac901 upstream.
credit_cap can be set to credit, which avoids inlining user2credits
twice. Also, remove inline keyword and let compiler decide.
old:
684 192 0 876 36c net/netfilter/xt_limit.o
4927 344 32 5303 14b7 net/netfilter/xt_hashlimit.o
now:
668 192 0 860 35c net/netfilter/xt_limit.o
4793 344 32 5169 1431 net/netfilter/xt_hashlimit.o
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Acked-by: David Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Pablo Neira Ayuso [Thu, 16 Aug 2012 00:25:24 +0000 (02:25 +0200)]
netfilter: nf_ct_expect: fix possible access to uninitialized timer
commit
2614f86490122bf51eb7c12ec73927f1900f4e7d upstream.
In __nf_ct_expect_check, the function refresh_timer returns 1
if a matching expectation is found and its timer is successfully
refreshed. This results in nf_ct_expect_related returning 0.
Note that at this point:
- the passed expectation is not inserted in the expectation table
and its timer was not initialized, since we have refreshed one
matching/existing expectation.
- nf_ct_expect_alloc uses kmem_cache_alloc, so the expectation
timer is in some undefined state just after the allocation,
until it is appropriately initialized.
This can be a problem for the SIP helper during the expectation
addition:
...
if (nf_ct_expect_related(rtp_exp) == 0) {
if (nf_ct_expect_related(rtcp_exp) != 0)
nf_ct_unexpect_related(rtp_exp);
...
Note that nf_ct_expect_related(rtp_exp) may return 0 for the timer refresh
case that is detailed above. Then, if nf_ct_unexpect_related(rtcp_exp)
returns != 0, nf_ct_unexpect_related(rtp_exp) is called, which does:
spin_lock_bh(&nf_conntrack_lock);
if (del_timer(&exp->timeout)) {
nf_ct_unlink_expect(exp);
nf_ct_expect_put(exp);
}
spin_unlock_bh(&nf_conntrack_lock);
Note that del_timer always returns false if the timer has been
initialized. However, the timer was not initialized since setup_timer
was not called, therefore, the expectation timer remains in some
undefined state. If I'm not missing anything, this may lead to the
removal an unexistent expectation.
To fix this, the optimization that allows refreshing an expectation
is removed. Now nf_conntrack_expect_related looks more consistent
to me since it always add the expectation in case that it returns
success.
Thanks to Patrick McHardy for participating in the discussion of
this patch.
I think this may be the source of the problem described by:
http://marc.info/?l=netfilter-devel&m=
134073514719421&w=2
Reported-by: Rafal Fitt <rafalf@aplusc.com.pl>
Acked-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Acked-by: David Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Patrick McHardy [Thu, 9 Aug 2012 10:08:47 +0000 (10:08 +0000)]
netfilter: nf_nat_sip: fix via header translation with multiple parameters
commit
f22eb25cf5b1157b29ef88c793b71972efc47143 upstream.
Via-headers are parsed beginning at the first character after the Via-address.
When the address is translated first and its length decreases, the offset to
start parsing at is incorrect and header parameters might be missed.
Update the offset after translating the Via-address to fix this.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Acked-by: David Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Lin Ming [Sat, 7 Jul 2012 10:26:10 +0000 (18:26 +0800)]
ipvs: fix oops on NAT reply in br_nf context
commit
9e33ce453f8ac8452649802bee1f410319408f4b upstream.
IPVS should not reset skb->nf_bridge in FORWARD hook
by calling nf_reset for NAT replies. It triggers oops in
br_nf_forward_finish.
[ 579.781508] BUG: unable to handle kernel NULL pointer dereference at
0000000000000004
[ 579.781669] IP: [<
ffffffff817b1ca5>] br_nf_forward_finish+0x58/0x112
[ 579.781792] PGD
218f9067 PUD 0
[ 579.781865] Oops: 0000 [#1] SMP
[ 579.781945] CPU 0
[ 579.781983] Modules linked in:
[ 579.782047]
[ 579.782080]
[ 579.782114] Pid: 4644, comm: qemu Tainted: G W
3.5.0-rc5-00006-g95e69f9 #282 Hewlett-Packard /30E8
[ 579.782300] RIP: 0010:[<
ffffffff817b1ca5>] [<
ffffffff817b1ca5>] br_nf_forward_finish+0x58/0x112
[ 579.782455] RSP: 0018:
ffff88007b003a98 EFLAGS:
00010287
[ 579.782541] RAX:
0000000000000008 RBX:
ffff8800762ead00 RCX:
000000000001670a
[ 579.782653] RDX:
0000000000000000 RSI:
000000000000000a RDI:
ffff8800762ead00
[ 579.782845] RBP:
ffff88007b003ac8 R08:
0000000000016630 R09:
ffff88007b003a90
[ 579.782957] R10:
ffff88007b0038e8 R11:
ffff88002da37540 R12:
ffff88002da01a02
[ 579.783066] R13:
ffff88002da01a80 R14:
ffff88002d83c000 R15:
ffff88002d82a000
[ 579.783177] FS:
0000000000000000(0000) GS:
ffff88007b000000(0063) knlGS:
00000000f62d1b70
[ 579.783306] CS: 0010 DS: 002b ES: 002b CR0:
000000008005003b
[ 579.783395] CR2:
0000000000000004 CR3:
00000000218fe000 CR4:
00000000000027f0
[ 579.783505] DR0:
0000000000000000 DR1:
0000000000000000 DR2:
0000000000000000
[ 579.783684] DR3:
0000000000000000 DR6:
00000000ffff0ff0 DR7:
0000000000000400
[ 579.783795] Process qemu (pid: 4644, threadinfo
ffff880021b20000, task
ffff880021aba760)
[ 579.783919] Stack:
[ 579.783959]
ffff88007693cedc ffff8800762ead00 ffff88002da01a02 ffff8800762ead00
[ 579.784110]
ffff88002da01a02 ffff88002da01a80 ffff88007b003b18 ffffffff817b26c7
[ 579.784260]
ffff880080000000 ffffffff81ef59f0 ffff8800762ead00 ffffffff81ef58b0
[ 579.784477] Call Trace:
[ 579.784523] <IRQ>
[ 579.784562]
[ 579.784603] [<
ffffffff817b26c7>] br_nf_forward_ip+0x275/0x2c8
[ 579.784707] [<
ffffffff81704b58>] nf_iterate+0x47/0x7d
[ 579.784797] [<
ffffffff817ac32e>] ? br_dev_queue_push_xmit+0xae/0xae
[ 579.784906] [<
ffffffff81704bfb>] nf_hook_slow+0x6d/0x102
[ 579.784995] [<
ffffffff817ac32e>] ? br_dev_queue_push_xmit+0xae/0xae
[ 579.785175] [<
ffffffff8187fa95>] ? _raw_write_unlock_bh+0x19/0x1b
[ 579.785179] [<
ffffffff817ac417>] __br_forward+0x97/0xa2
[ 579.785179] [<
ffffffff817ad366>] br_handle_frame_finish+0x1a6/0x257
[ 579.785179] [<
ffffffff817b2386>] br_nf_pre_routing_finish+0x26d/0x2cb
[ 579.785179] [<
ffffffff817b2cf0>] br_nf_pre_routing+0x55d/0x5c1
[ 579.785179] [<
ffffffff81704b58>] nf_iterate+0x47/0x7d
[ 579.785179] [<
ffffffff817ad1c0>] ? br_handle_local_finish+0x44/0x44
[ 579.785179] [<
ffffffff81704bfb>] nf_hook_slow+0x6d/0x102
[ 579.785179] [<
ffffffff817ad1c0>] ? br_handle_local_finish+0x44/0x44
[ 579.785179] [<
ffffffff81551525>] ? sky2_poll+0xb35/0xb54
[ 579.785179] [<
ffffffff817ad62a>] br_handle_frame+0x213/0x229
[ 579.785179] [<
ffffffff817ad417>] ? br_handle_frame_finish+0x257/0x257
[ 579.785179] [<
ffffffff816e3b47>] __netif_receive_skb+0x2b4/0x3f1
[ 579.785179] [<
ffffffff816e69fc>] process_backlog+0x99/0x1e2
[ 579.785179] [<
ffffffff816e6800>] net_rx_action+0xdf/0x242
[ 579.785179] [<
ffffffff8107e8a8>] __do_softirq+0xc1/0x1e0
[ 579.785179] [<
ffffffff8135a5ba>] ? trace_hardirqs_off_thunk+0x3a/0x6c
[ 579.785179] [<
ffffffff8188812c>] call_softirq+0x1c/0x30
The steps to reproduce as follow,
1. On Host1, setup brige br0(192.168.1.106)
2. Boot a kvm guest(192.168.1.105) on Host1 and start httpd
3. Start IPVS service on Host1
ipvsadm -A -t 192.168.1.106:80 -s rr
ipvsadm -a -t 192.168.1.106:80 -r 192.168.1.105:80 -m
4. Run apache benchmark on Host2(192.168.1.101)
ab -n 1000 http://192.168.1.106/
ip_vs_reply4
ip_vs_out
handle_response
ip_vs_notrack
nf_reset()
{
skb->nf_bridge = NULL;
}
Actually, IPVS wants in this case just to replace nfct
with untracked version. So replace the nf_reset(skb) call
in ip_vs_notrack() with a nf_conntrack_put(skb->nfct) call.
Signed-off-by: Lin Ming <mlin@ss.pku.edu.cn>
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Acked-by: David Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Pablo Neira Ayuso [Wed, 29 Aug 2012 15:24:09 +0000 (15:24 +0000)]
netfilter: nf_nat_sip: fix incorrect handling of EBUSY for RTCP expectation
commit
3f509c689a07a4aa989b426893d8491a7ffcc410 upstream.
We're hitting bug while trying to reinsert an already existing
expectation:
kernel BUG at kernel/timer.c:895!
invalid opcode: 0000 [#1] SMP
[...]
Call Trace:
<IRQ>
[<
ffffffffa0069563>] nf_ct_expect_related_report+0x4a0/0x57a [nf_conntrack]
[<
ffffffff812d423a>] ? in4_pton+0x72/0x131
[<
ffffffffa00ca69e>] ip_nat_sdp_media+0xeb/0x185 [nf_nat_sip]
[<
ffffffffa00b5b9b>] set_expected_rtp_rtcp+0x32d/0x39b [nf_conntrack_sip]
[<
ffffffffa00b5f15>] process_sdp+0x30c/0x3ec [nf_conntrack_sip]
[<
ffffffff8103f1eb>] ? irq_exit+0x9a/0x9c
[<
ffffffffa00ca738>] ? ip_nat_sdp_media+0x185/0x185 [nf_nat_sip]
We have to remove the RTP expectation if the RTCP expectation hits EBUSY
since we keep trying with other ports until we succeed.
Reported-by: Rafal Fitt <rafalf@aplusc.com.pl>
Acked-by: David Miller <davem@davemloft.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jozsef Kadlecsik [Tue, 3 Apr 2012 20:02:01 +0000 (22:02 +0200)]
netfilter: nf_ct_ipv4: packets with wrong ihl are invalid
commit
07153c6ec074257ade76a461429b567cff2b3a1e upstream.
It was reported that the Linux kernel sometimes logs:
klogd: [
2629147.402413] kernel BUG at net / netfilter /
nf_conntrack_proto_tcp.c: 447!
klogd: [
1072212.887368] kernel BUG at net / netfilter /
nf_conntrack_proto_tcp.c: 392
ipv4_get_l4proto() in nf_conntrack_l3proto_ipv4.c and tcp_error() in
nf_conntrack_proto_tcp.c should catch malformed packets, so the errors
at the indicated lines - TCP options parsing - should not happen.
However, tcp_error() relies on the "dataoff" offset to the TCP header,
calculated by ipv4_get_l4proto(). But ipv4_get_l4proto() does not check
bogus ihl values in IPv4 packets, which then can slip through tcp_error()
and get caught at the TCP options parsing routines.
The patch fixes ipv4_get_l4proto() by invalidating packets with bogus
ihl value.
The patch closes netfilter bugzilla id 771.
Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Acked-by: David Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Pablo Neira Ayuso [Wed, 29 Aug 2012 16:25:49 +0000 (16:25 +0000)]
netfilter: nf_conntrack: fix racy timer handling with reliable events
commit
5b423f6a40a0327f9d40bc8b97ce9be266f74368 upstream.
Existing code assumes that del_timer returns true for alive conntrack
entries. However, this is not true if reliable events are enabled.
In that case, del_timer may return true for entries that were
just inserted in the dying list. Note that packets / ctnetlink may
hold references to conntrack entries that were just inserted to such
list.
This patch fixes the issue by adding an independent timer for
event delivery. This increases the size of the ecache extension.
Still we can revisit this later and use variable size extensions
to allocate this area on demand.
Tested-by: Oliver Smith <olipro@8.c.9.b.0.7.4.0.1.0.0.2.ip6.arpa>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Acked-by: David Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Julian Anastasov [Sat, 7 Jul 2012 17:30:11 +0000 (20:30 +0300)]
ipvs: fix oops in ip_vs_dst_event on rmmod
commit
283283c4da91adc44b03519f434ee1e7e91d6fdb upstream.
After commit
39f618b4fd95ae243d940ec64c961009c74e3333 (3.4)
"ipvs: reset ipvs pointer in netns" we can oops in
ip_vs_dst_event on rmmod ip_vs because ip_vs_control_cleanup
is called after the ipvs_core_ops subsys is unregistered and
net->ipvs is NULL. Fix it by exiting early from ip_vs_dst_event
if ipvs is NULL. It is safe because all services and dests
for the net are already freed.
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Acked-by: David Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Matt Carlson [Thu, 7 Jun 2012 12:56:54 +0000 (12:56 +0000)]
tg3: Apply short DMA frag workaround to 5906
commit
b7abee6ef888117f92db370620ebf116a38e3f4d upstream.
5906 devices also need the short DMA fragment workaround. This patch
makes the necessary change.
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Tested-by: Christian Kujau <lists@nerdbynature.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Mike Pagano <mpagano@gentoo.org>
Amerigo Wang [Tue, 9 Oct 2012 17:48:16 +0000 (17:48 +0000)]
pktgen: fix crash when generating IPv6 packets
commit
5aa8b572007c4bca1e6d3dd4c4820f1ae49d6bb2 upstream.
For IPv6, sizeof(struct ipv6hdr) = 40, thus the following
expression will result negative:
datalen = pkt_dev->cur_pkt_size - 14 -
sizeof(struct ipv6hdr) - sizeof(struct udphdr) -
pkt_dev->pkt_overhead;
And, the check "if (datalen < sizeof(struct pktgen_hdr))" will be
passed as "datalen" is promoted to unsigned, therefore will cause
a crash later.
This is a quick fix by checking if "datalen" is negative. The following
patch will increase the default value of 'min_pkt_size' for IPv6.
This bug should exist for a long time, so Cc -stable too.
Signed-off-by: Cong Wang <amwang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Hildner, Christian [Mon, 8 Oct 2012 13:49:03 +0000 (15:49 +0200)]
timers: Fix endless looping between cascade() and internal_add_timer()
commit
26cff4e2aa4d666dc6a120ea34336b5057e3e187 upstream.
Adding two (or more) timers with large values for "expires" (they have
to reside within tv5 in the same list) leads to endless looping
between cascade() and internal_add_timer() in case CONFIG_BASE_SMALL
is one and jiffies are crossing the value 1 << 18. The bug was
introduced between 2.6.11 and 2.6.12 (and survived for quite some
time).
This patch ensures that when cascade() is called timers within tv5 are
not added endlessly to their own list again, instead they are added to
the next lower tv level tv4 (as expected).
Signed-off-by: Christian Hildner <christian.hildner@siemens.com>
Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
Link: http://lkml.kernel.org/r/98673C87CB31274881CFFE0B65ECC87B0F5FC1963E@DEFTHW99EA4MSX.ww902.siemens.net
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Daniel Drake [Tue, 4 Sep 2012 15:45:32 +0000 (11:45 -0400)]
viafb: don't touch clock state on OLPC XO-1.5
commit
012a1211845eab69a5488d59eb87d24cc518c627 upstream.
As detailed in the thread titled "viafb PLL/clock tweaking causes XO-1.5
instability," enabling or disabling the IGA1/IGA2 clocks causes occasional
stability problems during suspend/resume cycles on this platform.
This is rather odd, as the documentation suggests that clocks have two
states (on/off) and the default (stable) configuration is configured to
enable the clock only when it is needed. However, explicitly enabling *or*
disabling the clock triggers this system instability, suggesting that there
is a 3rd state at play here.
Leaving the clock enable/disable registers alone solves this problem.
This fixes spurious reboots during suspend/resume behaviour introduced by
commit
b692a63a.
Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Alexander Holler [Tue, 14 Aug 2012 07:11:09 +0000 (09:11 +0200)]
video/udlfb: fix line counting in fb_write
commit
b8c4321f3d194469007f5f5f2b34ec278c264a04 upstream.
Line 0 and 1 were both written to line 0 (on the display) and all subsequent
lines had an offset of -1. The result was that the last line on the display
was never overwritten by writes to /dev/fbN.
Signed-off-by: Alexander Holler <holler@ahsoftware.de>
Acked-by: Bernie Thompson <bernie@plugable.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Matthew Garrett [Fri, 22 Jun 2012 17:49:31 +0000 (13:49 -0400)]
module: taint kernel when lve module is loaded
commit
c99af3752bb52ba3aece5315279a57a477edfaf1 upstream.
Cloudlinux have a product called lve that includes a kernel module. This
was previously GPLed but is now under a proprietary license, but the
module continues to declare MODULE_LICENSE("GPL") and makes use of some
EXPORT_SYMBOL_GPL symbols. Forcibly taint it in order to avoid this.
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Alex Lyashkov <umka@cloudlinux.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Kent [Thu, 11 Oct 2012 00:00:33 +0000 (08:00 +0800)]
autofs4 - fix reset pending flag on mount fail
commit
49999ab27eab6289a8e4f450e148bdab521361b2 upstream.
In autofs4_d_automount(), if a mount fail occurs the AUTOFS_INF_PENDING
mount pending flag is not cleared.
One effect of this is when using the "browse" option, directory entry
attributes show up with all "?"s due to the incorrect callback and
subsequent failure return (when in fact no callback should be made).
Signed-off-by: Ian Kent <ikent@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Tejun Heo [Thu, 20 Sep 2012 21:09:30 +0000 (14:09 -0700)]
block: fix request_queue->flags initialization
commit
60ea8226cbd5c8301f9a39edc574ddabcb8150e0 upstream.
A queue newly allocated with blk_alloc_queue_node() has only
QUEUE_FLAG_BYPASS set. For request-based drivers,
blk_init_allocated_queue() is called and q->queue_flags is overwritten
with QUEUE_FLAG_DEFAULT which doesn't include BYPASS even though the
initial bypass is still in effect.
In blk_init_allocated_queue(), or QUEUE_FLAG_DEFAULT to q->queue_flags
instead of overwriting.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Konrad Rzeszutek Wilk [Wed, 10 Oct 2012 17:30:47 +0000 (13:30 -0400)]
xen/bootup: allow read_tscp call for Xen PV guests.
commit
cd0608e71e9757f4dae35bcfb4e88f4d1a03a8ab upstream.
The hypervisor will trap it. However without this patch,
we would crash as the .read_tscp is set to NULL. This patch
fixes it and sets it to the native_read_tscp call.
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Konrad Rzeszutek Wilk [Wed, 10 Oct 2012 17:25:48 +0000 (13:25 -0400)]
xen/bootup: allow {read|write}_cr8 pvops call.
commit
1a7bbda5b1ab0e02622761305a32dc38735b90b2 upstream.
We actually do not do anything about it. Just return a default
value of zero and if the kernel tries to write anything but 0
we BUG_ON.
This fixes the case when an user tries to suspend the machine
and it blows up in save_processor_state b/c 'read_cr8' is set
to NULL and we get:
kernel BUG at /home/konrad/ssd/linux/arch/x86/include/asm/paravirt.h:100!
invalid opcode: 0000 [#1] SMP
Pid: 2687, comm: init.late Tainted: G O
3.6.0upstream-00002-gac264ac-dirty #4 Bochs Bochs
RIP: e030:[<
ffffffff814d5f42>] [<
ffffffff814d5f42>] save_processor_state+0x212/0x270
.. snip..
Call Trace:
[<
ffffffff810733bf>] do_suspend_lowlevel+0xf/0xac
[<
ffffffff8107330c>] ? x86_acpi_suspend_lowlevel+0x10c/0x150
[<
ffffffff81342ee2>] acpi_suspend_enter+0x57/0xd5
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Trond Myklebust [Wed, 12 Sep 2012 20:49:15 +0000 (16:49 -0400)]
SUNRPC: Ensure that the TCP socket is closed when in CLOSE_WAIT
commit
a519fc7a70d1a918574bb826cc6905b87b482eb9 upstream.
Instead of doing a shutdown() call, we need to do an actual close().
Ditto if/when the server is sending us junk RPC headers.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Tested-by: Simon Kirby <sim@hostway.ca>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stefan Richter [Sat, 6 Oct 2012 12:12:56 +0000 (14:12 +0200)]
firewire: cdev: fix user memory corruption (i386 userland on amd64 kernel)
commit
790198f74c9d1b46b6a89504361b1a844670d050 upstream.
Fix two bugs of the /dev/fw* character device concerning the
FW_CDEV_IOC_GET_INFO ioctl with nonzero fw_cdev_get_info.bus_reset.
(Practically all /dev/fw* clients issue this ioctl right after opening
the device.)
Both bugs are caused by sizeof(struct fw_cdev_event_bus_reset) being 36
without natural alignment and 40 with natural alignment.
1) Memory corruption, affecting i386 userland on amd64 kernel:
Userland reserves a 36 bytes large buffer, kernel writes 40 bytes.
This has been first found and reported against libraw1394 if
compiled with gcc 4.7 which happens to order libraw1394's stack such
that the bug became visible as data corruption.
2) Information leak, affecting all kernel architectures except i386:
4 bytes of random kernel stack data were leaked to userspace.
Hence limit the respective copy_to_user() to the 32-bit aligned size of
struct fw_cdev_event_bus_reset.
Reported-by: Simon Kirby <sim@hostway.ca>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Simon Horman [Fri, 28 Sep 2012 01:12:45 +0000 (02:12 +0100)]
ARM: 7541/1: Add ARM ERRATA 775420 workaround
commit
7253b85cc62d6ff84143d96fe6cd54f73736f4d7 upstream.
arm: Add ARM ERRATA 775420 workaround
Workaround for the 775420 Cortex-A9 (r2p2, r2p6,r2p8,r2p10,r3p0) erratum.
In case a date cache maintenance operation aborts with MMU exception, it
might cause the processor to deadlock. This workaround puts DSB before
executing ISB if an abort may occur on cache maintenance.
Based on work by Kouei Abe and feedback from Catalin Marinas.
Signed-off-by: Kouei Abe <kouei.abe.cp@rms.renesas.com>
[ horms@verge.net.au: Changed to implementation
suggested by catalin.marinas@arm.com ]
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Hugh Dickins [Mon, 8 Oct 2012 03:32:51 +0000 (20:32 -0700)]
tmpfs,ceph,gfs2,isofs,reiserfs,xfs: fix fh_len checking
commit
35c2a7f4908d404c9124c2efc6ada4640ca4d5d5 upstream.
Fuzzing with trinity oopsed on the 1st instruction of shmem_fh_to_dentry(),
u64 inum = fid->raw[2];
which is unhelpfully reported as at the end of shmem_alloc_inode():
BUG: unable to handle kernel paging request at
ffff880061cd3000
IP: [<
ffffffff812190d0>] shmem_alloc_inode+0x40/0x40
Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
Call Trace:
[<
ffffffff81488649>] ? exportfs_decode_fh+0x79/0x2d0
[<
ffffffff812d77c3>] do_handle_open+0x163/0x2c0
[<
ffffffff812d792c>] sys_open_by_handle_at+0xc/0x10
[<
ffffffff83a5f3f8>] tracesys+0xe1/0xe6
Right, tmpfs is being stupid to access fid->raw[2] before validating that
fh_len includes it: the buffer kmalloc'ed by do_sys_name_to_handle() may
fall at the end of a page, and the next page not be present.
But some other filesystems (ceph, gfs2, isofs, reiserfs, xfs) are being
careless about fh_len too, in fh_to_dentry() and/or fh_to_parent(), and
could oops in the same way: add the missing fh_len checks to those.
Reported-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Hugh Dickins <hughd@google.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Sage Weil <sage@inktank.com>
Cc: Steven Whitehouse <swhiteho@redhat.com>
Cc: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jason Wessel [Fri, 10 Aug 2012 17:21:15 +0000 (12:21 -0500)]
mips,kgdb: fix recursive page fault with CONFIG_KPROBES
commit
f0a996eeeda214f4293e234df33b29bec003b536 upstream.
This fault was detected using the kgdb test suite on boot and it
crashes recursively due to the fact that CONFIG_KPROBES on mips adds
an extra die notifier in the page fault handler. The crash signature
looks like this:
kgdbts:RUN bad memory access test
KGDB: re-enter exception: ALL breakpoints killed
Call Trace:
[<
807b7548>] dump_stack+0x20/0x54
[<
807b7548>] dump_stack+0x20/0x54
The fix for now is to have kgdb return immediately if the fault type
is DIE_PAGE_FAULT and allow the kprobe code to decide what is supposed
to happen.
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Feng Tang [Fri, 28 Sep 2012 07:22:01 +0000 (15:22 +0800)]
ACPI: EC: Add a quirk for CLEVO M720T/M730T laptop
commit
67bfa9b60bd689601554526d144b21d529f78a09 upstream.
By enlarging the GPE storm threshold back to 20, that laptop's
EC works fine with interrupt mode instead of polling mode.
https://bugzilla.kernel.org/show_bug.cgi?id=45151
Reported-and-Tested-by: Francesco <trentini@dei.unipd.it>
Signed-off-by: Feng Tang <feng.tang@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Feng Tang [Fri, 28 Sep 2012 07:22:00 +0000 (15:22 +0800)]
ACPI: EC: Make the GPE storm threshold a module parameter
commit
a520d52e99b14ba7db135e916348f12f2a6e09be upstream.
The Linux EC driver includes a mechanism to detect GPE storms,
and switch from interrupt-mode to polling mode. However, polling
mode sometimes doesn't work, so the workaround is problematic.
Also, different systems seem to need the threshold for detecting
the GPE storm at different levels.
ACPI_EC_STORM_THRESHOLD was initially 20 when it's created, and
was changed to 8 in 2.6.28 commit
06cf7d3c7 "ACPI: EC: lower interrupt storm
threshold" to fix kernel bug 11892 by forcing the laptop in that bug to
work in polling mode. However in bug 45151, it works fine in interrupt
mode if we lift the threshold back to 20.
This patch makes the threshold a module parameter so that user has a
flexible option to debug/workaround this issue.
The default is unchanged.
This is also a preparation patch to fix specific systems:
https://bugzilla.kernel.org/show_bug.cgi?id=45151
Signed-off-by: Feng Tang <feng.tang@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stanislav Kinsbursky [Tue, 18 Sep 2012 09:37:18 +0000 (13:37 +0400)]
lockd: use rpc client's cl_nodename for id encoding
commit
303a7ce92064c285a04c870f2dc0192fdb2968cb upstream.
Taking hostname from uts namespace if not safe, because this cuold be
performind during umount operation on child reaper death. And in this case
current->nsproxy is NULL already.
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Russell King [Tue, 9 Oct 2012 10:13:26 +0000 (11:13 +0100)]
ARM: vfp: fix saving d16-d31 vfp registers on v6+ kernels
commit
846a136881b8f73c1f74250bf6acfaa309cab1f2 upstream.
Michael Olbrich reported that his test program fails when built with
-O2 -mcpu=cortex-a8 -mfpu=neon, and a kernel which supports v6 and v7
CPUs:
volatile int x = 2;
volatile int64_t y = 2;
int main() {
volatile int a = 0;
volatile int64_t b = 0;
while (1) {
a = (a + x) % (1 << 30);
b = (b + y) % (1 << 30);
assert(a == b);
}
}
and two instances are run. When built for just v7 CPUs, this program
works fine. It uses the "vadd.i64 d19, d18, d16" VFP instruction.
It appears that we do not save the high-16 double VFP registers across
context switches when the kernel is built for v6 CPUs. Fix that.
Tested-By: Michael Olbrich <m.olbrich@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
wdc [Sat, 20 Oct 2012 09:12:38 +0000 (17:12 +0800)]
audio:解决录音时内存mmap出错,将原有的DMA方式修改成SDRM方式
[modified-files]
sound/soc/rk29/rk29_pcm.c
张晴 [Sat, 20 Oct 2012 08:41:42 +0000 (16:41 +0800)]
rk2926:m713:support reset to restart
yangkai [Sat, 20 Oct 2012 08:03:34 +0000 (16:03 +0800)]
disable host vbus power at shutdown
zhengxing [Sat, 20 Oct 2012 07:18:19 +0000 (15:18 +0800)]
m701 - tp: improve tp can't work when low power startup.
邱建斌 [Sat, 20 Oct 2012 07:08:57 +0000 (15:08 +0800)]
i2s: Remove compiler warnings
sound/soc/rk29/rk29_i2s.h:247:6: warning: "CONFIG_SND_SOC_RT5631" is not defined
sound/soc/rk29/rk30_i2s.c:200:6: warning: "CONFIG_SND_SOC_RT5631" is not defined
hwg [Sat, 20 Oct 2012 04:01:24 +0000 (12:01 +0800)]
act8931: do not disable vccio wl in tb board
张晴 [Fri, 19 Oct 2012 11:12:35 +0000 (19:12 +0800)]
rk3066b:support logic voltage can be adjusted to 0.95v
kfx [Fri, 19 Oct 2012 10:36:46 +0000 (18:36 +0800)]
rk2928 tb: update rkusb_wifi_power
root [Fri, 19 Oct 2012 09:34:20 +0000 (17:34 +0800)]
drivers/media/video/gc2035.c
yzq [Fri, 19 Oct 2012 09:16:02 +0000 (17:16 +0800)]
rk3066b m701: change min_brightness
yzq [Fri, 19 Oct 2012 09:13:11 +0000 (17:13 +0800)]
backlight:change min_brightness calculate,change suspend status ctl
kfx [Fri, 19 Oct 2012 08:37:28 +0000 (16:37 +0800)]
rk2928: tps65910: fix 'pmic sleep io error'
宋秀杰 [Fri, 19 Oct 2012 03:07:34 +0000 (11:07 +0800)]
phonepad: modify rt3261 hp pwd pop.
邱建斌 [Fri, 19 Oct 2012 02:48:56 +0000 (10:48 +0800)]
rk2928phonepad:
add support rk2928 codec for phonepad
kfx [Fri, 19 Oct 2012 02:45:44 +0000 (10:45 +0800)]
rk2928: rk2926 tb: fix 'vol-' and 'wifi: rk306->usb wifi'
邱建斌 [Fri, 19 Oct 2012 02:18:03 +0000 (10:18 +0800)]
rt5631: fix hdmi set spk error
[ 415.288635] Unable to handle kernel paging request at virtual address
ffffffd2
[ 415.295881] pgd =
c0404000
[ 415.298737] [
ffffffd2] *pgd=
8edfe821, *pte=
00000000, *ppte=
00000000
[ 415.305203] Internal error: Oops: 17 [#1] PREEMPT SMP
[ 415.310281] CPU: 0 Tainted: G C (3.0.8+ #6)
[ 415.315635] PC is at dapm_seq_check_event+0x78/0x110
[ 415.320622] LR is at dapm_seq_run_coalesced+0x118/0x150
[ 415.325873] pc : [<
c07b6dac>] lr : [<
c07b6f5c>] psr:
80000013
[ 415.325891] sp :
ee855e30 ip :
00000014 fp :
00000001
[ 415.337382] r10:
00000003 r9 :
c0ade668 r8 :
ffffffff
[ 415.342625] r7 :
ee855e98 r6 :
00000002 r5 :
c0a33820 r4 :
ffffff9e
[ 415.349169] r3 :
00000001 r2 :
c0ade668 r1 :
ffffff9e r0 :
ed544cac
[ 415.355720] Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
[ 415.363047] Control:
10c53c7d Table:
8d22404a DAC:
00000015
[ 415.368804]
[ 415.368813] PC: 0xc07b6d2c:
[ 415.373097] 6d2c
e8bd4010 ea05c6c1 e2423001 e92d4073 e1a06002 e1a04001 e5902064 e3530007
[ 415.381420] 6d4c
979ff103 ea000010 c07b6da4 c07b6d74 c07b6d98 c07b6d80 c07b6d98 c07b6d98
[ 415.389742] 6d6c
c07b6d98 c07b6d8c e3a03001 e59f50a8 ea00000a e3a03000 e59f50a0 ea000007
[ 415.398054] 6d8c
e3a03000 e59f5098 ea000004 e59f0094 e3a01d0d ebf5042f e59f508c e3a03001
[ 415.406359] 6dac
e5d41034 e2011001 e1510003 1a000018 e5943044 e3530000 0a000015 e1d434b0
[ 415.414674] 6dcc
e1160003 0a000012 e58d5000 e5921164 e5943004 e590005c e59f2050 ebffffab
[ 415.422996] 6dec
e1a00004 e1a02006 e3a01000 e1a0e00f e594f044 e2503000 aa000005 e1a01005
[ 415.431321] 6e0c
e5942004 e59f0028 e28dd008 e8bd4070 ea05c1df e28dd008 e8bd8070 c0a33820
yxj [Thu, 18 Oct 2012 13:01:34 +0000 (21:01 +0800)]
rk2928: use 800x480 linux logo as default logo for factory tool
kfx [Thu, 18 Oct 2012 10:59:06 +0000 (18:59 +0800)]
rk2928: rk2926 tb initial(rk2926_tb_defconfig)
kfx [Thu, 18 Oct 2012 10:33:41 +0000 (18:33 +0800)]
rk2928: rk2926 sdk: revert dvfs_arm_table