Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Linus Cox Senior Medvedev #70

Closed
wants to merge 4,600 commits into from

12 participants

Robert B Colton b38800 LiuHui-Jason wildea01 Mark Brown Eric Nelson computersforpeace jmartinc dwmw2 Marc Kleine-Budde John Weber Tapani-
Robert B Colton

FUCK DONKOS

Robin Gong and others added some commits
Robin Gong ENGR00233366-3 CPUFREQ:add cpufreq restore back if set fail
Restore back cpu freq and regulator if set fail.

Signed-off-by: Robin Gong <b38343@freescale.com>
a538dc2
Robin Gong ENGR00233366-4 WDOG LDO_BYPASS: fix wdog2 to reset external pmic in l…
…do bypass

On Sabresd board design, the WDOG_B output to reset external pmic source from
GPIO_2 pad which can be configured as WDOG2_WDOG_B, so if in ldo bypass mode,
we should use WDOG2 reset signal to reset pmic, not WDOG1. Also, configure the
related pins.

Signed-off-by: Robin Gong <b38343@freescale.com>
c9f6d63
Robin Gong ENGR00234045 fix building error caused by ENGR00233366
Forget submit some local change...

Signed-off-by: Robin Gong <b38343@freescale.com>
326e7cd
Robby Cai ENGR00231307 csi/camera: add some ioctls
added ioctls are:
VIDIOC_ENUM_FRAMEINTERVALS
VIDIOC_ENUM_FRAMESIZES
VIDIOC_ENUM_FMT
VIDIOC_DBG_G_CHIP_IDENT

Signed-off-by: Robby Cai <R63905@freescale.com>
b957623
Robby Cai ENGR00232893 mx6sl: pxp/v4l2: add dependency on CONFIG_FB_MXC_ELCDIF_FB
Without this dependency, we have to manually disable
CONFIG_VIDEO_MXC_PXP_V4L2 when disable CONFIG_FB_MXC_ELCDIF_FB.
Otherwise, a build error shows up. This patch fixed it.

Signed-off-by: Robby Cai <R63905@freescale.com>
c17e62b
Robby Cai ENGR00229852 csi/v4l: lower the priority of "working queue empty" mes…
…sage

When pause the capture test program, the "working queue empty" message
shows up repeatedly. However this message is expected to show up because
there's no QBUF called. Change pr_err to pr_debug to keep it as debug level.

Signed-off-by: Robby Cai <R63905@freescale.com>
da53026
Robin Gong ENGR00234217 cpufreq:fix loops_per_jiffy wrong on new suspend flow of…
… cpufreq

Currently, we use pm_notifier to enter suspend/resume flow. But in the notifier
we only set cpufreq, didn't tell CPUFREQ core what the current cpufreq setting
now. So in the next time if CPUFREQ core find the current cpu frequncy is not
the value that CPUFREQ core want to set before. CPUFREQ core will force to set
the freqs.old with its own rule, which means the freqs.old will be MODIFYED
unexpectedly, and this will cause wrong loops_per_jiffy. We need add cpufreq_
notify_transition in the suspend/resume interface of cpufreq.

Signed-off-by: Robin Gong <b38343@freescale.com>
f7df006
Adrian Alonso ENGR00234354-1: board-mx6q_sabreauto aline spi-nor partition layout
* Aline spi-nor partition layout
* set correct chip-select value

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
ec7f947
Adrian Alonso ENGR00234354-2: board-mx6q_sabreauto aline weim-nor partition layout
* Aline weim-nor partition layout with u-boot expected
  offtsets
  "bootloader"  /dev/mtd0
  "bootenv"     /dev/mtd1
  "kernel"      /dev/mtd2
  "rootfs"      /dev/mtd3

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
8116f8d
Michael Minnick ENGR00233494 EPDC: Driver only supports 16 LUTs
This bug was introduced by ENGR00229290 which fixed
the problem of greater than 16 LUTs used when 5-bit
waveform loaded. The bug is that now the driver is also
restricted to using 16 LUTs in 4-bit mode.

The fix is to correct the test of the EPDC_FORMAT
register used to determine if a 5-bit waveform
is loaded.

Also removed the while loop in favor of a bitwise OR
used to determine if a chosen LUT has yet to be
acknowledged by the interrupt handler.

Signed-off-by: Michael Minnick <michael.minnick@freescale.com>
0ffba59
Robin Gong ENGR00234411-1 Sabreauto: fix error print COULD NOT SET GP VOLTAGE.
Didn't take more care about non-pfuze board, and there is two place in BSP will
call "mx6_cpu_regulator_init". It means regulator_get will be called twice on
every vddcore/vddsoc regulator. Then one value need set twice ,because from
regulator core view, there is two regulators share the same regulator. The non-
validate one will return error and print "COULD NOT SET GP VOLTAGE!!!!." on
Sabreauto board. The same as Sabrelite and ARM2 board.

Meanwhile, Sabreauto need be configured LDO bypass default.
Signed-off-by: Robin Gong <b38343@freescale.com>
e2cb64c
Robin Gong ENGR00234411-2 CPUFREQ: fix one code bug on regulator restore when fail
Didn't care about pu_regulator is enabled or not when regulator restore if some
regulator set failed.

Signed-off-by: Robin Gong <b38343@freescale.com>
ab96223
Steve Cornelius ENGR00234401: CAAM: Fix incorrect invalidate call for output ring
The job ring driver exhibited a hang condition in the top of
caam_jr_dequeue() where a BUG_ON statement looks for a condition
where the output ring is said to have valid entries by the ring logic,
but the ring entries apparently have NULL descriptor pointers.

In the initial ARM port of this driver, the cache flush call
of the output ring content occured before the output ring read index
register read occurred, exposing a condition where the driver sensed valid
output entries, yet the entries written by the ring hardware were not
invalidated, and therefore were not visible to the processor, appearing
as false NULL entries.

This patch relocates the invalidate call to immediately follow the
check of the output read index, where it is required.

Signed-off-by: Vicki Milhoan <vicki.milhoan@freescale.com>
Signed-off-by: Steve Cornelius <steve.cornelius@freescale.com>
Signed-off-by: Terry Lv <r65388@freescale.com>
25629f0
Tony LIU ENGR00234531 fix MFGTOOL issue after USB module loadable done
- must add a new config item to enable USB
  CONFIG_USB_FSL_ARC_OTG=y

Signed-off-by: Tony LIU <junjie.liu@freescale.com>
ba7a36b
b38800 b38800 ENGR00234362 Camera: ov5640_mipi: wait for sensor stable before streamon
ov5642 add some delay to wait for sensor stable after S_PARM.
And ov5640_mipi should keep the same behavior.
So the upper layer can trust the first frame comes out of ov5640_mipi.

- delay added according to the recommended time from ov company

Signed-off-by: Sheng Nan <b38800@freescale.com>
765f642
Ryan QIAN ENGR00234519 mmc: support eMMC v4.5 memory cards
Bypass eMMC version checking, so that eMMC v4.5 can work on current kernel as
eMMC v4.4 cards, no specific v4.5 feature supported. Only basic read/write
operations are supported, also ddr mode is supported.

Acked-by: Dong Aisheng <b29396@freescale.com>
Signed-off-by: Ryan QIAN <b32804@freescale.com>
d62bb92
Robby Cai ENGR00234387 mx6sl: csi/v4l2: add V4L2_MEMORY_USERPTR support
Add V4L2_MEMORY_USERPTR support for csi v4l2 capture
Support V4L2_MEMORY_USERPTR and V4L2_MEMORY_MMAP now

Signed-off-by: Robby Cai <R63905@freescale.com>
b2851b3
Ge Lei ENGR00233569 SDMA: Add support for SDMA M2M copy
Our SDMA code did not support SDMA M2M copy function before, we add
SDMA M2M copy function in this patch, you can use 'sg' to use this
function, you can refer to 'linux-test/module_test/mxc_sdma_memcopy_test.c'
for how to use this function.

Signed-off-by: Ge Lei <b42127@freescale.com>
7c92123
Robin Gong ENGR00234685-1 cpufreq:fix one bug in cpufreq driver if I2C transfer …
…error

Currently, if we used LDO bypass, will set pfuze register by I2C bus to modify
voltage according to different cpu frequency, if I2C transfer error, we should
restore to old cpu frequency, not only in cpufreq driver but also cpufreq core.

Signed-off-by: Robin Gong <b38343@freescale.com>
5edceb5
Robin Gong ENGR00234685-2 mx6q_sabreauto: change Sabreauto board to LDO-ENABLED …
…mode

Per hardware design, we can't set LDO bypass mode on Sabreauto board,otherwise,
system will can't reset,if cpu freq run in 400Mhz.
Signed-off-by: Robin Gong <b38343@freescale.com>
2fe94a8
Michal Hocko mm: fix off-by-two in __zone_watermark_ok()
Commit 88f5acf ("mm: page allocator: adjust the per-cpu counter
threshold when memory is low") changed the form how free_pages is
calculated but it forgot that we used to do free_pages - ((1 << order) -
1) so we ended up with off-by-two when calculating free_pages.

Reported-by: Wang Sheng-Hui <shhuiw@gmail.com>
Signed-off-by: Michal Hocko <mhocko@suse.cz>
Acked-by: Mel Gorman <mgorman@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2dd9359
Zhang Jiejing ENGR00234781 input: add novatek touch screen driver.
This patch add device drvier for novatek touch screen driver.
This touch screen chip will be support because it have
more populary screen size.

Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
01539e3
Fugang Duan ENGR00234236 1588: fix kernel build warning
Warning: no return statement in function returning non-void.
fec_ptp_ioctl return zero when 1588 is not enable.

Signed-off-by: Fugang Duan  <B38611@freescale.com>
e6a3ea5
Fugang Duan ENGR00235090 FEC: Workaround for FEC RX hang with stress test
When do Ethernet UDP stress overnight test with abundance of
data transmission, RX path may hang-on.
Dump the RX BD, found all BD "Empty" bit is cleared, which means
CPU read BD status is not right and waiting here.

Change BD memroy attribute from Normal to strongly ordered:
changes the memory attribute of C=0, B=0 instead of C=0, B=1.
Apply the change, the issue cannot be reproduced.

Signed-off-by: Fugang Duan  <B38611@freescale.com>
af18f30
Ryan QIAN ENGR00234933 mmc: sdhci: invalid cd_gpio for always_present host cont…
…roller

Issue:
By default, cd_gpio is 0 for always presented host controller, which is a
valid gpio. Then it will result to free_irq for 0 in esdhc_pltfm_exit for
these always_present host controllers.

Fix:
Invalid cd_gpio if the controller is indicated to be always present.

Acked-by: Dong Aisheng <b29396@freescale.com>
Signed-off-by: Ryan QIAN <b32804@freescale.com>
21d674e
Gary Zhang ENGR00234111 wm8962: switch automatically between speaker and hp
when detect hp inserted, disable speaker; when hp is plugout,
enable speaker.

Signed-off-by: Gary Zhang <b13634@freescale.com>
fd1aee5
Fugang Duan ENGR00235086 I2C: update i2c clock divider for each transaction
Currently on Arik/Rigel, the I2C clk is from IPG_PERCLK which is
sourced from IPG_CLK. Under normal operation, ipg_perclk is at 22MHz
so that we can get 400KHz i2c speed. In low bus freq mode, IPG_CLK is
at 12MHz and IPG_PERCLK is down to 4MHz.
So the I2C driver must update the divider register for each transaction.

Signed-off-by: Fugang Duan  <B38611@freescale.com>
1c382ea
Alejandro Sierra ENGR00234466 UART: Fix disablement of CTS signal
On Uart driver, CTS signal were never disabled
on the imx_set_mctrl function since the register was
written inside of the conditional.
        if (mctrl & TIOCM_RTS) {
                temp |= UCR2_CTS;
                writel(temp, sport->port.membase + UCR2);
        }

Signed-off-by: Alejandro Sierra <b18039@freescale.com>
8ddd1ff
Alejandro Sierra ENGR00235081 Quad DL: Fix chip select for SPI-NOR and flags
Fix chip select for SPI-NOR and
remove flags for no writeable partition for weim nor and
SPI-NOR

Signed-off-by: Alejandro Sierra <b18039@freescale.com>
ce38b85
Zhang Xiaodong ENGR00223037 fsl: Add new board HDMI dongle for imx6 Q/DL.
Add HDMIdongle board for imx6Q/DL under board/freescale.

Signed-off-by: Zhang Xiaodong <B39117@freescale.com>
10f2c6c
Terry Lv ENGR00235268: change caam_ipg_clk's CG to CG6
Another patch changed caam_ipg_clk's CG to CG4 and this commit will
revert this change.

Signed-off-by: Terry Lv <r65388@freescale.com>
d4a15e9
Fugang Duan ENGR00235363 I2C: fix kernel crash due
Kernel crash log:
Unable to handle kernel NULL pointer dereference at
virtual address 00000001 pgd = d02ec000
[00000001] *pgd=00000000
Internal error: Oops: 1 [#1] PREEMPT SMP
Modules linked in:
CPU: 0    Not tainted  (3.0.35-05332-ga7a1dec-dirty #38)
PC is at i2c_imx_probe+0xdc/0x434
LR is at i2c_imx_xfer+0x53c/0x75c
pc : [<c002645c>]    lr : [<c03b1e98>]    psr: 20000013
sp : d41c3dd8  ip : 00000001  fp : 00000001
r10: 00000001  r9 : ffff8fcc  r8 : d41c3e48
r7 : c08f4dc0  r6 : 00000001  r5 : d41c3e48  r4 : d447f000
r3 : d417cbe0  r2 : 00000001  r1 : 000186a0  r0 : d447f000
Flags:nzCv IRQs on  FIQs on Mode SVC_32 ISA ARM Segment kernel
...
Process kworker/0:3 (pid: 1254, stack limit = 0xd41c22f0)
Stack: (0xd41c3dd8 to 0xd41c4000)
3dc0:  00000000

I2C driver call the function "static void __init i2c_imx_set_clk()"
in runtime, the function is linked to init.text section, and don't
be used after kernel bootup. Remove the "__init" statement to fix
the issue.

Signed-off-by: Fugang Duan  <B38611@freescale.com>
812b6f8
make shi ENGR00234722 USB: fix Kernel dump issue after USB driver loadable
- It is better to disable otgsc and wake up interrupt to avoid an
  abnormal interrupt happen during USB driver being removed.
- If the USB host is already at low power mode, only need turn on
  the clock, no need turn off the clock.
- Need discharge dp and dm during USB driver being removed ,in order
  to avoid a wakeup interrupt happen. And if the USB otg is in host
  mode, we should clear discharge dp and dm in fsl_otg_set_host()
  during system boot up.

Signed-off-by: make shi <b15407@freescale.com>
7395b05
make shi ENGR00235630 MX6 USB :fix USB does not work when plug in device durin…
…g suspend

USB does not work when plug in a usb device during system suspend. Under this
case, USB driver will be in low power mode, but WIE bit not be set if usb wake
up is not enabled.So there are only ID change interrupt no USB wakeup interrupt
after system resume.In current bsp, after system resume ID change status not be
clear,and ID change interrupt will continue happen, which cause the system busy.
No checking WIR bit if ID change interrupt happen when USB in low power mode to
fix this issue.

Signed-off-by: make shi <b15407@freescale.com>
3a64cce
Fugang Duan ENGR00235626 FEC: Enable phy pause frame feature
Since some ethernet MAC flow control is relied on phy pause
status, both link partners exchange information via auto neg to
determine if both parties are capable of flow control.
Advertise phy pause frame to avoid pause frame is not responsed
by the other net node.

Signed-off-by: Fugang Duan  <B38611@freescale.com>
59530a4
Hongzhang Yang ENGR00232530 Refine VPU suspend/resume according to open_count
1. Refine VPU suspend/resume according to open_count to completely
fix bug: ENGR00230203 [Android_MX6DL_SD] Gallery: System hang
after resume from suspend during video playback. 20%

open_count == 0 case can be simplified because VPU is released
(all instances are freed), so
- clock is already off
- context is no longer needed
- power is already off on MX6

VPU reset is removed from resume because power is ensured to be off
before entering resume on MX6 by calling regulator API.

2. Fix bug: VPU always busy after suspend/resume

Error log (VPU refused to suspend due to VPU busy):
pm_op(): platform_pm_suspend+0x0/0x54 returns -11
PM: Device mxc_vpu failed to suspend: error -11
PM: Some devices failed to suspend

Root cause:
- Suspend happened during vpu_Init(), somewhere after VPU lib started
  to download FW (when PC == 0), but before run FW. (BIT_BUSY_FLAG=1,
  BIT_CODE_RUN=1).
- In such case, VPU resume downloaded FW and run VPU to idle because
  suspend was triggered after VPU was opened (active).
- vpu_Init run VPU again with BIT_BUSY_FLAG=1. So VPU was trapped in
  idle loop but BIT_BUSY_FLAG was never cleared. VPU lib regarded VPU
  as always busy.

Solution (in VPU resume):
- run VPU FW only if VPU was opened and PC before suspend is not 0
- restore host register is required
- download FW is required, because program memory is lost after power
  off.

Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
e470b6f
Alejandro Sierra ENGR00235624 Quad/DualLite ARD: MTD partition non aligned
MTD partition for SPI-NOR was not aligned to 8K.
Replace its offset from MTDPART_OFS_APPEND to MTDPART_OFS_NXTBLK.

Signed-off-by: Alejandro Sierra <b18039@freescale.com>
e6a5dc7
make shi ENGR00236031 MX6 USB :Change default USB H1 and OTG driver load order
In current linux BSP USB H1 driver default load before otg driver load,
which cause USBx not match the ehci controller number. like bellow:

root@freescale /sys/devices/platform/fsl-ehci.0$ ls
driver     modalias   pools      power      subsystem  uevent     usb2
root@freescale /sys/devices/platform/fsl-ehci.1$ ls
driver     modalias   pools      power      subsystem  uevent     usb1

Signed-off-by: make shi <b15407@freescale.com>
f12b683
b38800 b38800 ENGR00235665: mxc_v4l2_capture: add YV12 format support in camera driver
Android CTS verifier have a must requirement for YV12 format. Since IPUv3
common driver has supported IPU_PIX_FMT_YVU420P pixel format, add the
support of YV12 format in mxc_v4l2_capture.

Signed-off-by: Sheng Nan <b38800@freescale.com>
98a5129
b38800 b38800 ENGR00236196: mxc_vout: add YV12 format support in enum fmt field.
Since YV12 format is supported in mxc_v4l2_capture, it should be also
supported in mxc_vout.

Signed-off-by: Sheng Nan <b38800@freescale.com>
efaaa44
Chen Liangjun ENGR00236499 ASRC: fix build warning
Remove unused function "asrc_get_output_buffer_size()" to fix build
warning.

Signed-off-by: Chen Liangjun <b36089@freescale.com>
c870770
Zhang Jiejing ENGR00235817 mx6: use SNVS LPGPR register to store boot mode value.
After using POR reset, the content in SRC will be reset.
See RM: 63.5.1.2.3 IPP_RESET_B(POR)

Because POR reset will reset most of register in IC, so use
SNVS_LP General Purpose Register (LPGPR) to store the boot mode value.

Below copy from SNVS_BlockGuide.pdf:
The SNVS_LP General Purpose Register provides a 32 bit read write
register, which can be used by any application for retaining 32 bit
data during a power-down mode

This Patch will use [7,8] bits of this register.

Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
a27cdd5
Gary Zhang ENGR00236020-1 ALSA: add calling of trigger in machine driver
soc_pcm_trigger() calls trigger functions of cpu_dai, codec_dai
and platform, but the trigger function of machine is not called.
add calling of trigger in machine driver in soc_pcm_trigger()

Signed-off-by: Gary Zhang <b13634@freescale.com>
5d26163
Gary Zhang ENGR00236020-2 wm8962: hp/speaker switching afer resume
implement headphone and speaker automatically switch
even if headphone is plugin/out during suspend

Signed-off-by: Gary Zhang <b13634@freescale.com>
695ec57
make shi ENGR00236169 MX6 USB :kfree udc_controller when remove udc driver
Kree and reset udc_controller should be done when remove udc driver to avoid
kernel dump during modprobe gadget driver after modprobe and rmmod udc driver.

Signed-off-by: make shi <b15407@freescale.com>
84d91e1
Zhang Xiaodong ENGR00223037-1 pmic: Fix the bug of pmic I2C
Fix the bug of wm831x pmic I2C

Signed-off-by: Zhang Xiaodong <B39117@freescale.com>
Acked-by: Lily Zhang
0a88e56
Ranjani Vaidyanathan ENGR00236837 MX6SL-Fix random crash caused by incorrect setting of IP…
…G clk rate.

Need to ensure that bus frequency setpoint is changed only if
the system is not already at the requested setpoint.
Changing the bus freq to high setpoint when its already at
high setpoint causes the AHB/IPG dividers to be set incorrectly.
Then when the system enters WAIT mode, the 12:5 ratio of
ARM_CLK:IPG_CLK is no longer maintained.
This causes random crashes.
Fix is to return immediately if the bus is already at the
requested setpoint

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
2e077b4
Robby Cai ENGR00229855 mx6sl: csi: can not support two camera instances
run two unit test instances as follows fails (sometimes kernel dump).
/unit_tests/csi_v4l2_capture.out &
/unit_tests/csi_v4l2_capture.out

Fix by improving the resource lock.
- We get busy_lock semaphore before we get a dqueue event, so, when user
  is blocked at DQBUF ioctrl, the user will also be blocked at QBUF ioctrl,
  then the video performance will drop. This patch changes to get busy_lock
  semaphore to protect DQBUF ioctrl until we successfully get a dqueue event.
- Use queue_int_lock spinlock to protect cam->ping_pong_csi, since it can be
  modified either in irq handler or in queue event.
- linked list should be protected by the lock:
  -- Use queue_int_lock and dqueue_int_lock spinlocks to protect working_q/
     ready_q/done_q in the end of frame interrupt handler camera_callback(),
     in case, the handler and VIDIOC_QBUF/VIDIOC_DQBUF ioctrls are called on
     different threads at same time.
  -- Protect ready_q with queue_int_lock spinlock in streamon(), in case,
     VIDIOC_STREAMON and VIDIOC_QBUF ioctrls are called on different threads
     at same time.

Signed-off-by: Robby Cai <R63905@freescale.com>
ac6d252
Robby Cai ENGR00236137 mx6sl: csi: Change video buffer access mode to writecombine
Change buffer access mode from noncached to writecombine for better
performance.

Signed-off-by: Robby Cai <R63905@freescale.com>
c1a7c48
Robby Cai ENGR00236722 mx6sl: csi: Ensure dma reflash operation done when dma i…
…s disabled

If do dma reflash operation when dma is enabled, the system will hang and we
can not connect to the core through jtag. The reason is the reflash signal
(DMA_REFLASH_RFF) will initialize the AHB bus signals and it indeed seems to
modify the AHB address on the clock as soon as the programmable register value
is changed, the bus may not respond.

This patch revised it according to the RM:
"Reflash DMA Controller for RxFIFO. This bit reflash the embedded DMA controller
for RxFIFO. It should be reflashed before the embedded DMA controller starts
to work."

Signed-off-by: Robby Cai <R63905@freescale.com>
e515072
LiGang ENGR00231808: Add epdc pmic shut down feature
For some cases, system maybe restart with epdc pmic on.
If epdc pmic on for sometime(2~3s), the current epdc pmic consume will increase
obviously, then the total current of board maybe exceed to the current limit,
which will pull down the input voltage to lead to the system pmic reset,
an un-expected POR reset occurs.
So it is necessary to close epdc pmic before system restart.

This patch is added by Robby Cai<r63905@freescale.com>

Signed-off-by: LiGang <b41990@freescale.com>
(cherry picked from commit ee9ffb4307b2b3d7440fc3468b0faaace3d2829e)
1d9cd23
Hongzhang Yang ENGR00236879 Enhance VPU driver to handle API call sequence abnormal …
…abort

Some application may exit without calling neccessay API to wrap up VPU
after it receives error message.

This could lead to system hang because driver will power off VPU
(vpu_release) while VPU may still be busy.

We require application to strictly follow the API call sequence even in
error handling case. Meanwhile, we enhance VPU driver to protect against
such abnormal abort, to prevent system hang at least.

If the last instance is closed, VPU will gate off or power off only if
VPU is idle.

Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
48e8037
Fugang Duan ENGR00236240 i2c: i2c performance optimization
It is unnecessary to calculate and update i2c divider during
every transaction. Only do it if current i2c clock is different
with the previous clock frequency.

Signed-off-by: Fugang Duan  <B38611@freescale.com>
592eb9e
Gary Zhang ENGR00236910 wm8962: use alsa jack mechanism to handle pin detection
use alsa jack mechanism to handle pin detection

Signed-off-by: Gary Zhang <b13634@freescale.com>
29d7623
Liu Ying ENGR00237678 IPUv3:Clean up sync and error interrupt
1) Split sync and error interrupt handler into 2 different
   handlers, so that we may save several CPU cycles to
   handler sync interrupt which is triggered in most IPU
   usecases.
2) So far, every IPUv3 version in different SoCs has sync
   and error interrupts, so we return -ENODEV if they cannot
   be gotten from platform resource. Then, we may request
   them directly but do not check more.
3) Clean up free irq code by removing unnecessary check.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit a88d2aa)
e84859f
Robin Gong ENGR00237742 busfreq:fix IPG_PERCLK will be decreased to 6M once exit…
… low bus

on Sabresd board, IPG_PERCLK will be fixed on 6Mhz once system enter low bus,
and never restore to 22Mhz which be set in boot.  It means some device clock
which sourcing from IPG_PERCLK such as I2C will be slow down. The root cause is
that there is workaround for GPT timer of Arik TO1.0 in mx6_ddr_freq.S. GPT
clock source from IPG_PERCLK on TO1.0 and should be fixed on 6Mhz. But for
TO1.1 and TO1.2 ,the workaround should be removed.
Signed-off-by: Robin Gong <B38343@freescale.com>
edbdbeb
guoyin.chen ENGR00236141 csi:Add stride alignment setting from userspace
In android, IPU fills the I420 buffer. And GPU shows the buffer to display.
mx6's GPU has 32 Y-stride alignment for I420. The stride alignment will
be passed through by bytesperline. This update is only for
csi->smfc->mem channel.

Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
(cherry picked from commit 4708dc1)
1e54665
guoyin.chen ENGR00238201-1 V4L2:ADV7180:Support ioctrl_enum_framesizes
Add ioctl_enum_framesizes function to align the requirement
of Camera HAL in Android

Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
(cherry picked from commit fd0a1be)
ad7f343
guoyin.chen ENGR00238201-2 V4L2:ADV7180:driver kconfig change
Move ADV7180 out of choice to make it be enabled with other
camera config simultaneously

Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
(cherry picked from commit a6becd9)
a0f146f
Sandor Yu ENGR00238357 MX6x Change HDMI default output RGB
Change HDMI default output RGB

Signed-off-by: Sandor Yu <R01008@freescale.com>
485bf63
Sandor Yu ENGR00238382 MX6 HDMI: Change VGA mode flag, adjust default modelist …
…sequency

- Change VGA mode the flag from unknow to VESA.
- Adjust default modelist order, put the VESA to the end of modelist.
- Fix a build warning.

Signed-off-by: Sandor Yu <R01008@freescale.com>
66eca71
Sandor Yu ENGR00238384 MX6x HDMI: Update HDMI setting when HDMI cable plugin
Update HDMI setting when HDMI cable plugin,
HDMI will catch capbility update with EDID data updated.

Signed-off-by: Sandor Yu <R01008@freescale.com>
0c65d1a
Sandor Yu ENGR00238391 MX6x HDMI: Add default EDID config function when read ED…
…ID failed

Add default EDID config function when read EDID failed.
Fix HDMI no audio issue  when failed read EDID.

Signed-off-by: Sandor Yu <R01008@freescale.com>
7797766
Chen Liangjun ENGR00238439 ASRC: add delay before reading ASRC FIFO status
ASRC driver would read the sample number of ASRC output FIFO to fetch
the data from ASRC output FIFO. However, SDMA's fetching operation may
not finished before ASRC's reading. In this case, ASRC driver may read a
error data from the register.

In this patch, add delay before reading ASRC FIFO status to prevent
noise.

Signed-off-by: Chen Liangjun <b36089@freescale.com>
5b8e69b
Gary Zhang ENGR00238809-1 mx6sl: clock: add dependency of IRAM clk
when IRAM is used by SSI, add IRAM clock dependency to
SSI clock

Signed-off-by: Gary Zhang <b13634@freescale.com>
36b611f
Gary Zhang ENGR00238809-2 mx6sl: ssi: add IRAM support
locate SSI playback buffer into IRAM in mx6sl.
because left IRAM room is not enough to contain record
buffer, if IRAM allocation for record fails, record
buffer will use external ram

Signed-off-by: Gary Zhang <b13634@freescale.com>
724fef3
Lionel Xu ENGR00238281 MX6SL_EVK: Add rfkill interface to bluetooth
MX6SL EVK board uses Silex SX-SDMAN board for bluetooth.
Add rfkill interface to control SX-SDMAN reset.
The reset signal is required before using bluetooth.

Signed-off-by: Lionel Xu <R63889@freescale.com>
1ffc70e
Lionel Xu ENGR00238307 MX6SL_EVK bluetooth: Add support to Silex SXSDMAN module
mx6sl_evk board uses Silex SXSDMAN board for bluetooth, add uart4 driver
to support it.

Signed-off-by: Lionel Xu <Lionel.Xu@freescale.com>
343f8f9
Gary Zhang ENGR00238943 wm8962: add judgement for no det_pin case
add judgement to avoid no detect pin case

Signed-off-by: Gary Zhang <b13634@freescale.com>
9870e52
Loren Huang ENGR00238947 [GPU]Integrate Vivante 4.6.9p10 gpu driver kernel part code
Integrate both 4.6.9p9.1 and 4.6.9p10.

Signed-off-by: Loren Huang <b02279@freescale.com>
Acked-by: Lily Zhang
68544bc
Robby Cai ENGR00238237-1 mx6sl: csi/v4l: fix camera picture flickering issue
Flickering issue happens when there's no buffer to be processed(e.g., the
pace of QBUF is much slower than DQBUF). The cause is the hardware is using
double buffering, while the driver has no good protection at above case and
thus the CSI will fill the buffer not in the right order. The way to fix is
refining the output of the working_q buffer list, that is, if there's no buffer
to be processed then output to a dummy buffer.

Another important change is to only do DMA reflash operation when SOF is
detected in streamon. Remove this operation is CSI interrupt handler because
it violates to the SPEC (only do DMA reflash before DMA is enabled but NOT at
the time or after DMA's enabled).

Signed-off-by: LiGang <b41990@freescale.com>
Signed-off-by: Robby Cai <R63905@freescale.com>
(cherry picked from commit 0c4584763fa44b01a2f48198fa27c9206a116164)
4514a3c
Robby Cai ENGR00238237-2 mx6sl: csi/v4l: Initialize the variable cam_fmt
This patch fixed the cam_fmt uninitialization issue.

Signed-off-by: LiGang <b41990@freescale.com>
Signed-off-by: Robby Cai <R63905@freescale.com>
(cherry picked from commit 48a48ea30c6e55e44c9eacaad316b5caa04a3dda)
e6faeea
Zhang Jiejing ENGR00239187 input: novatek_ts: fix some point not release issue.
This issue is caused by Touch Screen F/W, and it will report a
full package with 0xFF * 6 to notice the point was release.

Add this workaround to fix this issue, fixup the wrong finger id.

Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
509b601
Chen Liangjun ENGR00238813 ASRC: add check before release ASRC pair
Add check before relase ASRC pair to prevent ASRC register operation
while clock is not enabled. The ASRC clock is disable while index is not
applied.

Signed-off-by: Chen Liangjun <b36089@freescale.com>
b2381e9
Sandor Yu ENGR00239062 MX6X HDMI add 1440x240p60 mode support
Adjust 1440x240p60 timing to pass HDMI compliance test.

Signed-off-by: Sandor Yu <R01008@freescale.com>
675f8ef
Peter Chan ENGR00232879 mx6sl: EPDC VDDH and VPOS power on/off sequence is wrong
VDDH should only be ON after VPOS when power up and should be off
before VPOS when power down. Set the appropriate MAX17135 timing
parameters for the correct power up/down sequence

Signed-off-by: Peter Chan <B18700@freescale.com>
d7c6674
LiuHui-Jason LiuHui-Jason fix echo 1 > compact_memory return error issue
when run the folloing command under shell, it will return error
sh/$ echo 1 > /proc/sys/vm/compact_memory
sh/$ sh: write error: Bad address

After strace, I found the following log:
...
write(1, "1\n", 2)               = 3
write(1, "", 4294967295)         = -1 EFAULT (Bad address)
write(2, "echo: write error: Bad address\n", 31echo: write error: Bad address
) = 31

This tells system return 3(COMPACT_COMPLETE) after write data to compact_memory.

The fix is to make the system just return 0 instead 3(COMPACT_COMPLETE) from
sysctl_compaction_handler after compaction_nodes finished.

Signed-off-by: Jason Liu <r64343@freescale.com>
Suggested-by: David Rientjes <rientjes@google.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Rik van Riel <riel@redhat.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
80ad41a
Adrian Alonso ENGR00237364: board-mx6q_sabreauto fix adv7180 tvin powerdown
* Fix adv7180 tvin powerdown function
  gpio power pin already exported in io-mux setup function
  no need to request/free gpio
* Update copyrigth year 2013.

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
0b68422
b38800 b38800 ENGR00237682-1: mxc_v4l2_capture: ov5640: use global initialization
The current code struct of parallel ov5640 set mode directly.
The newest settings need to go through global initialization.
New settings are provided by ov company

So this patch does:
- Make parallel ov5640 mode settings go through global initialization.
- Only VGA (640 * 480) are provided as a validation of the new setting.
- Other modes will be provided in the later patches.

Signed-off-by: Sheng Nan <b38800@freescale.com>
7936969
b38800 b38800 ENGR00237706: mxc_v4l2_capture: ov5640: correct the behavior of ENUM_FMT
ov5640 ioctl_enum_fmt_cap only returns value of index = 0;
before support other formats, correct the behavior of this ioctl.

- ENUM_FMT returns all the supported format.

Signed-off-by: Sheng Nan <b38800@freescale.com>
aeb4138
b38800 b38800 ENGR00237682-2: mxc_v4l2_capture: ov5640: support all subsampling modes
Supported the following modes, verified image quality and frame rate
- VGA 30/15fps
- QVGA 30/15fps
- NTSC 30/15fps
- PAL 30/15fps
- 720P 30/15fps
Note: use the same setting as app note of ov5640 dvp
- QCIF 30/15fps
- XGA 22.5/15fps
Note: cannot make XGA work on 30fps. Just a reference of ov5640 datasheet:
1280*960 YUV422 maximum at 22.5fps.
1280*720 YUV422 maximum at 30fps.
Need to confirm later.

Signed-off-by: Sheng Nan <b38800@freescale.com>
f3432e3
b38800 b38800 ENGR00237682-3: mxc_v4l2_capture: ov5640: support scaling modes
The method for change between scaling and subsampling mode is different
from ov5640_mipi.
(image bigger than 1280*960 is scaling mode, smaller is subsampling).

According to OV5640 Auto Focus Camera Module Application Notes
(with DVP Interface) R2.14.pdf,
change back from QSXGA to VGA, don't need to do exposure calculation.

According to the test result, if we do exposure calculation when change
back from scaling to subsampling mode, the image would be dark.

So the method is:
Change to scaling mode, go through exposure calcuation.
Change to or back to subsampling mode, change mode directly.

Supported mode:
- QSXGA@7.5fps
- 1080P@7.5fps

Can't make 1080P works at 15fps. Here is a reply from ov fae:
because of scaling down, max frame for 1080P is the same as 5M, both are 15fps.
so if 5M can runs up to 7.5fps on your demo, then 1080P is the same 7.5fps max.

Signed-off-by: Sheng Nan <b38800@freescale.com>
648dfe4
make shi ENGR00232755 USB: disable clock and abnormal wakeup when remove gadge…
…t driver

- In current bsp, the usb clock mismatch when rmmod gadget class driver. The
  clock should be turn off when gadget class driver unregister.
- There is an abnormal usb wakeup interrupt happen if phy is no power without
  VBUS. If we unplug the usb cable after unregister usb gadget driver, it is
  difficult to handle the unexpected usb wakeup interrupt. SO we must call
  dr_discharge_line()  to make sure no abnormal usb wakeup interrupt happen in
  usb unregister gadget class driver.

Signed-off-by: make shi <b15407@freescale.com>
5a5ec76
Sandor Yu ENGR00239207 MX6x HDMI add some support modes
Remove video mode 2880x480p60 that not supported by IPU.
Add video mode 1080p25, 1080p30, 720p100, 720p120, 1440x480p60,
1440x288p50, 1440x576p50.

Signed-off-by: Sandor Yu <R01008@freescale.com>
4e4c302
Sandor Yu ENGR00239569 Mx6x HDMI Add RGB/YCbCr output select via system file
Add RGB/YCbCr output select via system file,
the default output is RGB.

Signed-off-by: Sandor Yu <R01008@freescale.com>
dbdca9c
Richard Zhu ENGR00239905 PCIe Enable PCIe switch support
PCIe switch access mechanism:
 - CfgRd0/CfgWr0 is used to access the CFG space of the EP device
 or the upstream port of PCIe switch that is connected to RC directly.
 - CfgRd1/CfgWr1 is used to access the CFG space of the downstream port
 of PCIe switch and so on cases.

UR and kernel crash problem:
i.MX6 PCIe maps UR(Unsupported Request)err to AXI SLVERR err, which would
cause the arm data abort exception.
There is one "Received Master Abort" in iMX6 Root complex Secondary
status register when a requester receives a Completion
with Unsupported Request Completion Status.
In this case, the Linux kernel would be crashed.

Workaround: correct this imprecise external abort.

Signed-off-by: Richard Zhu <r65037@freescale.com>
339a24c
Hongzhang Yang ENGR00240506 fix a bug in abnormal abort handling
Bug:
If app quits before FW is loaded to VPU, VPU driver will hang in vpu_release().

Root cause:
In that case, if BIT_BUSY_FLAG=1, vpu_release may reset VPU and run FW
init code, but FW has not been loaded.

Solution:
- Don't run FW init code after reset since VPU lib can load it next time.
- If PC=0, which means VPU never runs, don't check BIT_BUSY_FLAG

Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
f1d62f6
Wayne Zou ENGR00240298 IMX IPU: Optimize IPU resize performance
When disabling IPU channels, it needs less than 200us to wait for stop
Using msleep, it often sleep longer(above 10ms). So the extra delay
decrease the performance.

For 720p video playback on 1080p display(60Hz), the performance is about 40fps
With this patch, it can achieve around 60fps.

Signed-off-by: Wayne Zou <b36644@freescale.com>
3f2e125
Huang Shijie ENGR00240571 mtd: gpmi: fix the compiler warning
The current code may print out the following warning:
....................................................................
drivers/mtd/nand/gpmi-nand/gpmi-lib.c: In function gpmi_begin:
drivers/mtd/nand/gpmi-nand/gpmi-lib.c:1163: warning: hw.use_half_periods
				may be used uninitialized in this function
drivers/mtd/nand/gpmi-nand/gpmi-lib.c:1163: warning: hw.sample_delay_factor
				may be used uninitialized in this function
....................................................................

this patch fixes it.

Signed-off-by: Huang Shijie <b32955@freescale.com>
84cdc6e
Sandor Yu ENGR00239734 Mx6 HDMI PHY: Add 2 variable to pass board specific config
The PHY register 0x9 and 0xe should setting
to different value in different board to pass HCT.
Add variable phy_reg_vlev and phy_reg_cksymtx to pass
phy config data.

Signed-off-by: Sandor Yu <R01008@freescale.com>
844aab7
Richard Zhu ENGR00240650 pcie: imx: fix ep device no int when pcie switch is used
The pcie ep device inserted into the downstream port of the
pcie switch doesn't get the legacy INT when pcie switch
is used.

Signed-off-by: Richard Zhu <r65037@freescale.com>
28cae96
b38800 b38800 ENGR00240228: IPUv3: CSI: Correct enum definition of IPU_CSI_DATA_WIDTH
The current definition for with 10 and 16 is not correct.
IPU_CSI_DATA_WIDTH_10 = 2;
IPU_CSI_DATA_WIDTH_16 = 3;

According to the latest i.MX6DQ RM, the correct value should be:
IPU_CSI_DATA_WIDTH_10 = 3;
IPU_CSI_DATA_WIDTH_16 = 9;

Signed-off-by: Sheng Nan <b38800@freescale.com>
052f9c3
Liu Ying ENGR00240740-1 IPUv3:Workaround bootup ipu error
Enabling IPU hsp clock in mxcfb_probe() context by calling
ipu_init_channel() can avoid the IPU display channel(setup
in bootloader) from being damaged by some IPU common driver
APIS which enable/disable IPU hsp clock when doing driver
probe. However, somehow, after LDO bypass patch set is pushed
to kernel, this clock enablement can trigger IPU errors
(IPU_INT_STAT_5 - 0x00800000/IPU_INT_STAT_10 - 0x00100000) and
a display flash. A workaround is to enable IPU hsp clock when
we are at ipu_probe() context, which is earlier than mxcfb_probe()
context, and then to disable(cleanup) the clock once more when
fb_set_par() is triggered by the user for the first time. This
patch exports an interface to disable ipu hsp clock so that
fb_set_par() may call it, and enables ipu hsp clock in ipu_probe()
context.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 06e5772)
168f63d
Liu Ying ENGR00240740-2 ARM:IPUv3:Add an interface to disable IPU hsp clk
This patch adds an interface to disable IPU hsp clock so that it
can be called out of ipu common driver.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 78f0495)
af4f088
Liu Ying ENGR00240740-3 IPUv3 fb:Workaround bootup ipu error
Enabling IPU hsp clock in mxcfb_probe() context by calling
ipu_init_channel() can avoid the IPU display channel(setup
in bootloader) from being damaged by some IPU common driver
APIS which enable/disable IPU hsp clock when doing driver
probe. However, somehow, after LDO bypass patch set is pushed
to kernel, this clock enablement can trigger IPU errors
(IPU_INT_STAT_5 - 0x00800000/IPU_INT_STAT_10 - 0x00100000) and
a display flash. A workaround is to enable IPU hsp clock when
we are at ipu_probe() context, which is earlier than mxcfb_probe()
context, and then to disable(cleanup) the clock once more when
fb_set_par() is triggered by the user for the first time. This
patch updates the comment for ipu_init_channel() and
ipu_enable_channel() in mxcfb_probe() context, and disables ipu
hsp clock when fb_set_par() is triggered by the user for the first
time.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 5528e41)
41067ad
Liu Ying ENGR00240990 MX6 HDMI dongle:Configure HDMI PHY registers
This patch sets HDMI PHY register values in MXC HDMI driver
platform data so that MXC HDMI driver can configure the
0x09 CKSYMTXCTRL register(Clock Symbol and Transmitter
Control Register) and 0x0E VLEVCTRL register(Voltage Level
Control Register), then we may pass HDMI compliance test
for MX6 HDMI dongle board.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 788bcf5)
3f50062
Wayne Zou ENGR00240972-1 IPU: Add deinterlace frame rate double flags
Add deinterlace frame rate double flags for ipu header file

Signed-off-by: Wayne Zou <b36644@freescale.com>
34baea6
Wayne Zou ENGR00240972-2 IPU: Add vdic double frame rate feature
Add vdic double frame rate feature
It depends on the which frame(0 or 1),
and interlace field format(top or bottom) to do VDI process

Signed-off-by: Wayne Zou <b36644@freescale.com>
77df6b0
Wayne Zou ENGR00240972-3 V4L2: VDI double frame rate for interlace stream
Each VPU decoded frame is de-interlaced twice inside v4l2 output driver,
and show twice also to achieve IPU/VDI double frame rate output.
This feature is disable by default.

Signed-off-by: Wayne Zou <b36644@freescale.com>
ebd9fef
Loren HUANG ENGR00240988-5 Update gpu code to support 3.5 kernel
Cherry-pick from imx_3.5.7 branch.
-Comment regulator setting code temperarily for 3.5 kernel.
-Adjust clock setting code based on new clock framework.
-Disable dynamic frequency change feature as it depends on thermal
driver.
-Use DTS to get reserved memory information.
-Comment cpu check code for 3.5 kernel.
-Comment GPU reset code for 3.5 kernel.

Signed-off-by: Loren HUANG <b02279@freescale.com>
Acked-by: Lily Zhang
ca2426a
Loren HUANG ENGR00240988-10 Add runtime pm function call in gpu driver
Cherry-pick from imx_3.5.7 branch.
-Add runtime pm function.
-Set bus frequency to high when gpu power is on.

Signed-off-by: Loren HUANG <b02279@freescale.com>
Acked-by: Lily Zhang
4eb50eb
Loren HUANG ENGR00240988-12 Enable GPU hardware reset for 3.5 kernel
Cherry-pick from imx_3.5.7 branch.

Signed-off-by: Loren HUANG <b02279@freescale.com>
Acked-by: Lily Zhang
3b051d3
Anson Huang ENGR00241003-1 mx6: need to add delay in LDO voltage setting
1.LDO ramp up time may be modified by ROM code
according to fuse setting, cpu freq driver use
fixed delay time which assume the LDO ramp up time
is the reset value of ANATOP register, need to set
it to reset value in regulator init.

2.The regulator set voltage should take care of
the ramp up time, calculate the ramp up time based
of register setting and to the delay, make sure that
when the set voltage function return, the voltage is
stable enough.

3.CPUFreq no need to use delay, it is already taken
care by regulator voltage setting.

Signed-off-by: Anson Huang <b20788@freescale.com>
0949f89
Anson Huang ENGR00241003-2 pfuze: using _sel interface to add delay support
use regulator _sel interface set to support auto delay,
as when regulator's voltage go up, it will take some time
to ramp up to the required voltage, so the delay is necessary.
_sel interface set support such function, now we switch to this
interface set.

Signed-off-by: Anson Huang <b20788@freescale.com>
f110822
make shi ENGR00241582 MX6 USB host: USB host certification patch
The patch include:
- USB test mode on hub port and Root-hub port
- support 3 types of message:
	too much hub ties for hub attachment
	too much power consumption for device attachment
	unsupported device class warning
- support menuconfig select the FSL_USB_TEST_MODE, located in:
 	-> Device Drivers
	   -> USB support (USB_SUPPORT [=y])
	   	 -> FSL High-speed Electrical Test Mode support

Signed-off-by: make shi <b15407@freescale.com>
87a9758
Rong Dian ENGR00241739-1 thermal: providing the thermal hot notification
Create thermal hot's own hot notificaiton callback register and unregister
function.
Provide the thermal notification broadcast enable and disable through /sys fs.

Signed-off-by: Rong Dian <b38775@freescale.com>
59e50e8
Rong Dian ENGR00241739-2 gpu: Enable thermal hot notification in gpu driver
Using notify mechanism instead of global variable to
trigger gpu3d clock change through thermal driver

Signed-off-by: Rong Dian <b38775@freescale.com>
Signed-off-by: Loren Huang <b02279@freescale.com>
Acked-by: Lily Zhang
a1f6f4e
Loren HUANG ENGR00242201-3 gpu: Makeup GPU driver for kernel 3.5.7
Signed-off-by: Loren HUANG <b02279@freescale.com>
Acked-by: Lily Zhang
698d46e
Liu Ying ENGR00242269 MX6 PCIE:Print out link up failure log
This patch contains code change only to print out
link up failure log like below.
link up failed, DB_R0:0x001b8400, DB_R1:0x08200000!

Before the change, the present print code can never
be called even if the link up fails.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
7055ad7
Liu Ying ENGR00242214 IMX PWM:Correct duty cycle calculation
Since we've already reduced 2 cycles before writing PWMPR
register, the real period cycle on PWMO is the value of
period_cycles (before reducing 2). So, the following commit
message of ENGR00170342, which changes the duty cycle
calculation wrongly, is not reasonable:
===================================================
The chip document says the counter counts up to period_cycles + 1
and then is reset to 0, so the actual period of the PWM wave is
period_cycles + 2
===================================================

Revert "ENGR00170342 PWM: fix pwm output can't be set to 100% full duty"

This reverts commit ac3711f.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit b42be77)
2a3185e
Liu Ying ENGR00242672 MX6 local timer:Remove enable_wait_mode global variable
This patch removes the unnecessary global variable declaration for
enable_wait_mode.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
4e7d744
Peter Chen ENGR00242788: usb: host: disable stream mode due to IC problem
There is a bug at chipidea core, please see below synopsis problem title
and its number.
STAR 9000378958
Title: Non-Double Word Aligned Buffer Address Sometimes
Causes Host to Hang on OUT Retry

This problem will be showed when we use Ethernet device at host port, there
is an errata ERR006308 for it.

The workaround for this issue is to disable stream mode at register usbmode.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
2890c34
make shi ENGR00220096 USB core: remove Logitech Quickcam E3500 form usb_quirk_…
…list

Since Logitech Quickcam E3500 is defaultly listed in usb_quirk_list on current
linux kernel. So the USB camera only supports reset resume, but doesn't support
normal usb suspend/resume. Actually, the USB camera works abnormally after USB
reset resume, but it works well after doing normal suspend/resume.

Signed-off-by: make shi <b15407@freescale.com>
c92b009
Wayne Zou ENGR00242327 V4L2 output: Support field format changes on frame by fr…
…ame base

Support interlace field format or progressive format changes
on the frame by frame base for V4L2 output

Signed-off-by: Wayne Zou <b36644@freescale.com>
f7b0df5
Richard Zhu ENGR00243106 imx: pcie: enable pcie msi on imx6 platforms
deprieved from boundary msi support patch
add the following modifications
 * use the RC's line address 0x01FF8000 instead of one
 actual physical memory as the msi start address.
 The physical memory address is not mandatory required by the
 msi start address.

 * set PCI_MSI_FLAGS_ENABLE in RC's msi capability
 structure when the msi int is enabled.

 * the data of msg is only 16bit, set the upper 8bit
 cputype, and the msi int num to the lower 8bit.

Signed-off-by: Richard Zhu <r65037@freescale.com>
c1e3dbb
Richard Zhu ENGR00243339 imx: sata: disable sata phy when sata is not enabled
In order to save power consumption, disable sata phy
(enable PDDQ mode) in kernel level, if the sata module
is not enabled in kernel configuration.

Signed-off-by: Richard Zhu <r65037@freescale.com>
3470c22
Richard Zhu ENGR00243348 imx: pcie: disable pcie phy in kernel initialization
In order to save power consumption, disable pcie phy
(enable IDDQ mode) in kernel initialization.

Signed-off-by: Richard Zhu <r65037@freescale.com>
808a388
Oliver Brown ENGR00244769-1 [NOR FLASH]-Improve WEIM NOR speed
Increase the NOR flash read speed.
Added weimnor driver to use cached (and page mode) reads.

Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
4020b38
Oliver Brown ENGR00244769-2 [NOR FLASH]-Improve WEIM NOR speed
Increase the NOR flash read speed.
Added weimnor driver to use cached (and page mode) reads.

Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
58209e1
Wayne Zou ENGR00251015-1 FB/IPU: Add mxcfb ioctrl to update IPU DP CSC matrix
Add mxcfb ioctrl MXCFB_CSC_UPDATE to update IPU DP CSC matrix
for display adjustment.
This patch defines the ioctrl interface in header file.

Signed-off-by: Wayne Zou <b36644@freescale.com>
6e9d71d
Wayne Zou ENGR00251015-2 FB/IPU: Add mxcfb ioctrl to update IPU DP CSC matrix
Add mxcfb ioctrl MXCFB_CSC_UPDATE to update IPU DP CSC matrix
for display adjustment.
This patch implements the ioctrl interface.

Signed-off-by: Wayne Zou <b36644@freescale.com>
74dd3ca
Wayne Zou ENGR00250756-4 V4L2 output: fix coding format and review commit warning
Fix the review commit warning such as "line over 80 characters",
"no space before tabs".

Signed-off-by: Wayne Zou <b36644@freescale.com>
e0cd6ee
Loren Huang ENGR00251005 [gpu]4.6.9p11 kernel code integration
-4.6.9p11 kernel code integration
-Additionally release runtime pm and regulator when destory gpu driver
to avoid reference count mismatch.

Signed-off-by: Loren Huang <b02279@freescale.com>
Acked-by: Lily Zhang
5182c0c
Loren Huang ENGR00251008 [GPU] 4.6.9p11 integration for DRM
-DRM copyright update

Signed-off-by: Loren Huang <b02279@freescale.com>
6e24949
Robin Gong ENGR00251630 MX6DQ: do not power off ARM in suspend on TO1.1
System will resume back failed which caused by IPG clock glich issue. The issue
(TKT094231) has been fixed on MX6DQ TO1.2 and MX6DL TO1.1.It is hard to
reproduced on MX6DQ TO1.1/1.0 with 0xffffffff in GPC_PGC_CPU_PUPSCR
which implemented on GA release. But it is easy to reproduced with 0xf0f0 on
mainline now. As we focus on latest formal chip, the problem is cleaned up until
now. We will aign with the workaround on MX6DL which do not power off ARM in
suspend.

Signed-off-by: Robin Gong <b38343@freescale.com>
061ed6c
Robin Gong ENGR00251849-1 cpufreq:print the max freq directly, not obscure number
You can see "arm_max_freq=1GHz" log directly from console during boot.
not "arm_max_freq=1" before.

Signed-off-by: Robin Gong <b38343@freescale.com>
b63f6f1
Robin Gong ENGR00251849-2 ldo_bypass:print the ldo_bypass mode directly, not obs…
…cure number

You can see "cpu regulator mode:ldo_bypass" log directly from console when boot.
not "cpu regulator init ldo=1" before.
Signed-off-by: Robin Gong <b38343@freescale.com>
85b80e7
Xianzhong ENGR00243077 Fixed JB4.2 multi-user switch hang issue
Gpu virtual memory has potiential hang issue exposed,
Vivante will fix this hang issue with 4K contigueous memory limit.

4K limit is needless now and should be disabled by default.

Signed-off-by: Xianzhong <b07117@freescale.com>
Acked-by: Lily Zhang
08aef18
Wayne Zou ENGR00251830 LDB: Fix the bug of LDB separate mode for dual LVDS display
Fix the bug of LDB separate mode for dual LVDS display on i.mx6.
For 'ldb=sep0' option on kernel command line, it means that LVDS0 is
the primary display. While 'ldb=sep1' means that LVDS1 is the primary display.
For LDB separate mode, the Display Interface(disp_id) should be
configured differently on the platform layer. That is, IPU DI0 to LVDS1 or
IPU DI1 to LVDS0 configuration should be avoided.

Signed-off-by: Wayne Zou <b36644@freescale.com>
2fb57cd
Wayne Zou ENGR00251836 IPU device: Support local alpha with alpha value in each…
… pixel

Add local alpha support with alpha value in each pixel,
such as RGBA pixel format.

Signed-off-by: Wayne Zou <b36644@freescale.com>
4316456
LiuHui-Jason LiuHui-Jason timer: fix the too many reries on the per-cpu event device
There are so many retries happen on the per-cpu event device
when run the command 'cat /proc/timer_list', as following:

root@~$ cat /proc/timer_list
Timer List Version: v0.6
HRTIMER_MAX_CLOCK_BASES: 3
now at 3297691988044 nsecs

Tick Device: mode:     1
Per CPU device: 0
Clock Event Device: local_timer
 max_delta_ns:   8624432320
 min_delta_ns:   1000
 mult:           2138893713
 shift:          32
 mode:           3
 next_event:     3297700000000 nsecs
 set_next_event: twd_set_next_event
 set_mode:       twd_set_mode
 event_handler:  hrtimer_interrupt
 retries:        36383

the reason is that the local timer will stop when enter C3 state,
we need switch the local timer to bc timer when enter the state
and switch back when exit from the that state.The code is like this:

void arch_idle(void)
{
....
clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu);
enter_the_wait_mode();

clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu);
}

when the broadcast timer interrupt arrives(this interrupt just wakeup
the ARM, and ARM has no chance to handle it since local irq is disabled.
In fact it's disabled in cpu_idle() of arch/arm/kernel/process.c)

the broadcast timer interrupt will wake up the CPU and run:

clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu);    ->
tick_broadcast_oneshot_control(...);
->
tick_program_event(dev->next_event, 1);
->
tick_dev_program_event(dev, expires, force);
->
for (i = 0;;) {
                int ret = clockevents_program_event(dev, expires, now);
                if (!ret || !force)
                        return ret;
                dev->retries++;
                ....
                now = ktime_get();
                expires = ktime_add_ns(now, dev->min_delta_ns);
}
clockevents_program_event(dev, expires, now);
        delta = ktime_to_ns(ktime_sub(expires, now));

        if (delta <= 0)
                return -ETIME;
when the bc timer interrupt arrives,  which means the last local timer
expires too. so, clockevents_program_event will return -ETIME, which will
cause the dev->retries++ when retry to program the expired timer.

Even under the worst case, after the re-program the expired timer,
then CPU enter idle quickly before the re-progam timer expired,
it will make system ping-pang forever if no interrupt happen.

We have found the ping-pang issue during the video play-back test.
system will freeze and video not playing for sometime until other interrupt
occured to break the error condition.

The detailed information, please refer to the LKML:https://lkml.org/lkml/2013/2/20/216
which posted by Jason Liu.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Jason Liu <r64343@freescale.com>
Tested-by: Jason Liu <r64343@freescale.com>
Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
33ddde4
Dong Aisheng ENGR00252418 imx6: add fuse check for available devices
Since device availability may be different on the same SoC,
so we add fuse check for the supported device before we really
adding the device to the kernel.
This may avoid kernel crash once the CPU at the slot are changed to
a different one which with different device available but the kernel is
the same one.

Reviewed-by: Jason Liu <r64343@freescale.com>
Acked-by: Jason Liu <r64343@freescale.com>
Signed-off-by: Dong Aisheng <b29396@freescale.com>
2b9f85e
Fugang Duan ENGR00237452 i.MX6:IEEE1588: disable phy Ar8031 SmartEEE
Connecting two boards directly more than 2 hours, Ar8031 phy link
status generates glitch, which cause ethernet link down/up issue, but
ethernet still be active. There have three cases to validate the issue:

Item#1: If add performance stress test while runing IEEE1588, the link
	down/up issue cannot be found.
Item#2: If insert switch between two net nodes and run IEEE1588 test,
	the issue also cannot be found.
Item#3: If disable AR8031 SmartEEE feature, after two days overnight test,
	no such issue found.

The issue is caused by phy Ar8031 SmartEEE feature, Item#1 and Item#2 can
prevent phy enter lpm mode, which match the Item#3 test result, so disable
SmartEEE feature to avoid the link issue generation.

Signed-off-by: Fugang Duan  <B38611@freescale.com>
c38a586
Loren Huang ENGR00252727-1 [mxc]Add fuse check for gpu platform device
Add fuse check for gpu platform device. Bypass gpu core
initialization if certain core is fused.If all gpu cores
are fused, bypass gpu driver loading.

Signed-off-by: Loren Huang <b02279@freescale.com>
7345c45
Loren Huang ENGR00252727-2 [GPU]Power on VG core if there is only VG core in SoC
-Power on VG core to makesure VG can be initalized if there is only
VG core in SoC.
-Power off VG core after initalization is done.
-Adjust VG power and clock state to match above changing.

Signed-off-by: Loren Huang <b02279@freescale.com>
Acked-by: Lily Zhang
0dfa209
Peter Chen ENGR00251209-1 usb: add host 1 vbus callback
The callback will be used at probe and remove

Signed-off-by: Peter Chen <peter.chen@freescale.com>
bb50c09
Peter Chen ENGR00251209-2 usb: otg: fix the dp/dm will be floating when phy is n…
…o 3v3

For the design which the phy is no power (no 5v for VBUS), the
PHY can't get dp/dm correctly, so it the port change interrpt
is enabled or the host enters low power mode, the unexpected
interrupt will occur.
This commit will make the dp/dm as zero at otg configuration.
For gadget-only, the same function is existed at probe.
For host-only, the vbus will be on before port change interrupt
is enabled.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
e8ba76d
Peter Chen ENGR00251209-3 usb: fix below build warning
/home/b29397/work/projects/linux-2.6-imx/arch/arm/mach-mx6/usb_dr.c:
In function 'mx6_usb_dr_init':
/home/b29397/work/projects/linux-2.6-imx/arch/arm/mach-mx6/usb_dr.c:
615: warning: unused variable 'imx6q_mxc_ehci_otg_data'
/home/b29397/work/projects/linux-2.6-imx/arch/arm/mach-mx6/usb_dr.c:
At top level:
/home/b29397/work/projects/linux-2.6-imx/arch/arm/mach-mx6/usb_dr.c:
77: warning: 'fsl_platform_otg_set_usb_phy_dis' defined but not used

Signed-off-by: Peter Chen <peter.chen@freescale.com>
f11ef57
Peter Chen ENGR00251209-4 msl-mx6: usb: Fix system hang when unload gadget module
At gadget module remove function, it closes the clock, but
at platform code, it still visits register. In fact,
The PHY has already been low power mode when driver's remove
before platform code is called.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
f6ec2b0
Peter Chen ENGR00251209-5 usb: fix the system hang when unload gadget module
- For gadget, the clock will be closed at platform code, so
the driver should not be close clock beforehand.
- For host, the PHY should not be low power mode when the host
controller has still possibilities to use. Besides, the 5v should
be off at last as some platform uses 5v for PHY's power.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
5c554bf
Peter Chen ENGR00251209-6 msl-mx6: usb: keep the phy lower flag as true defaultly
Keep the phy lower flag as true defaultly, the driver should mark
it as false when the driver begins to use PHY.
This fixes one bug that when build both host and gadget as loadable
modules, the phy lower flag is false if the related module is not
loaded, then, the wakeup interrupt will not be treated as happened
if host module is loaded, but gadget is not loaded, or vice verse.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
05156a8
Peter Chen ENGR00251209-7 usb: mark phy's low power flag as false at probe
PHY's low power flag was false at former logic, so this
change should not affect functions.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
b9a129c
Peter Chen ENGR00251209-8 usb: fix the build error when building usb as loadable…
… module

export usb_suspend, usb_resume, and pm_mutex

Signed-off-by: Peter Chen <peter.chen@freescale.com>
cb28299
Peter Chen ENGR00251209-9 msl: usb: make global variable as drvdata
There is a bug when we try to remove wakeup module twice as
g_ctrl is a globle variable, in fact, it is per controller
wakeup driver, so the private data should be per device.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
a95950b
wildea01 wildea01 ARM: 7417/1: vfp: ensure preemption is disabled when enabling VFP access
The vfp_enable function enables access to the VFP co-processor register
space (cp10 and cp11) on the current CPU and must be called with
preemption disabled. Unfortunately, the vfp_init late initcall does not
disable preemption and can lead to an oops during boot if thread
migration occurs at the wrong time and we end up attempting to access
the FPSID on a CPU with VFP access disabled.

This patch fixes the initcall to call vfp_enable from a non-preemptible
context on each CPU and adds a BUG_ON(preemptible) to ensure that any
similar problems are easily spotted in the future.

Cc: stable@vger.kernel.org
Reported-by: Hyungwoo Yang <hwoo.yang@gmail.com>
Signed-off-by: Hyungwoo Yang <hyungwooy@nvidia.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
[Fix merge conflict]
Signed-off-by: Jason Liu <r64343@freescale.com>
5b04cf7
Nicolin Chen ENGR00253290-1 ASoC: wm8962: fix over-gained audio playback issue
  We put some code to set default volumes in codec driver, but later we found
that one of volume was higher than 0db, which would cause over-gained volume.
  So this patch removed DAC default volume setting, and reverted the volume
interface of it to let user control the register from user space.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
b477657
Nicolin Chen ENGR00253290-2 ASoC: imx-wm8962: fix continuous playback distortion i…
…ssue

  If DAC volume's set to a value that's lower than 0xd8, contineously FLL
setting of wm8962 in machine driver would cause playback distortion issue,
which happens to ENGR219882. so we have to put some another code in machine
driver to prevent distortion issue.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
1a7dc88
Nicolin Chen ENGR00234501 ASoC: spdif: fix Ubuntu reboot hang issue
  spdif driver registered kcontrol for ALSA subsystem controlling, while some
of those kcontrol functions lack of clk_enable() before register-accessing. So
system would definitely hang when those functions're called, which did happen
during reboot test on Ubuntu due to its pulse-audio.
  This patch added paired clk_en/disable() to those functions so as to pevent
system hang issue.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Tested-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
d44a867
b38800 b38800 ENGR00252162: mxc_v4l2_capture: ov5640: some formats have quality issue
The following formats have quality issue:
- 30fps: 720p
- 15 fps: 1080p,qsxga

Quality issue happens on high resolutions.
So, increase the drive capability of ov5640 can fix this problem.

Signed-off-by: Sheng Nan <b38800@freescale.com>
7546325
b38800 b38800 ENGR00252071-4: mxc_v4l2_capture: enable auto detect of ov5642/5640 i…
…n sabrelite

- enable the auto detect for parallel ov5642 and ov5640 in sabrelite board.

Signed-off-by: Sheng Nan <b38800@freescale.com>
6be334a
b38800 b38800 ENGR00252071-3: mxc_v4l2_capture: enable auto detect of ov5642/5640 i…
…n sabresd

- enable the auto detect for parallel ov5642 and ov5640 in sabresd board.

Signed-off-by: Sheng Nan <b38800@freescale.com>
ae74bc1
b38800 b38800 ENGR00252071-2: mxc_v4l2_capture: ov5640_mipi: update probe print inf…
…ormation

Because ov5642 and ov5640 changes the probe information due to auto detect,
ov5640_mipi should keep the same.

- Add found information to tell user ov5640_mipi is found.
- Use the same "not found" information as ov5642/ov5640.

Signed-off-by: Sheng Nan <b38800@freescale.com>
6b0a741
b38800 b38800 ENGR00252071-1: mxc_v4l2_capture: auto detection parallel ov5642 and …
…ov5640

Both ov5642 and ov5640 need to be supported for parallel port of
validation board and no code change is needed when change from one sensor
to another.

- Add additional common i2c id for ov5640 and ov5642 for auto dectection
- Since two sensors will be checked because of auto detection, so use warning
instead of error if sensor id don't match.
- Add found information to tell user which camera is found.

Signed-off-by: Sheng Nan <b38800@freescale.com>
873b4ee
b38800 b38800 ENGR00252381: mxc_v4l2_capture: ov5640: incorrect return value of ov5…
…640_probe

ov5640_probe always return -1 when error happens. Actually we should use the
correct return value. For example, -ENODEV when no ov5640 is found.

Signed-off-by: Sheng Nan <b38800@freescale.com>
a8d9efe
b38800 b38800 ENGR00252411: mxc_v4l2_capture: ov5642/ov5640 cannot both be set as b…
…uild-in.

ov5642 and ov5640 are inside choice "prompt "Select Camera/TV Decoder""
It prevents some modules are set as build-in at the same time.

All the cameras inside the choice are parallel cameras. There is no need to
include all of them inside a choice.

Know issues:
ADV7180 (out of the choice) and mipi ov camera (inside the choice)
can not be both selected for ARM2 board:
CSI0_MCLK pad is conflicted between adv7180 and mipi camera ext port.
Developers should know this.

Signed-off-by: Sheng Nan <b38800@freescale.com>
3744339
b38800 b38800 ENGR00252559: mxc_v4l2_capture: ov5640: incorrect warning for XGA@15fps
The following warning information should be displayed
only when the format is XGA and frame rate is 30fps:

pr_warning("ov5640: actual frame rate of XGA is 22.5fps\n");

Signed-off-by: Sheng Nan <b38800@freescale.com>
9e57106
Liu Ying ENGR00252782 mxc v4l2 capture:Support csi number attribution
This patch adds device attribution for video device to
show csi number to userspace. The pattern is in "ipux_csix"
fashion, which tells which ipu and csi is relevant to a
specific video device. In this way, userspace may figure
out different cameras even if they have the same type,
especially, android may use this to know back/front
cameras.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
b1e55ae
Jianzheng Zhou ENGR00169384 imx6q: uart: config and enble uart5
Config clock,irq,mux pad,data entry, etc to setup uart5.

Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
82c63fe
Terry Lv ENGR00253835: CAAM: Fix build warnings in caamhash.c
A warning was find in caamhash.c:
linux-2.6-imx/drivers/crypto/caam/caamhash.c: In function
'ahash_update_ctx':
linux-2.6-imx/drivers/crypto/caam/caamhash.c:850: warning: 'desc' may be
used uninitialized in this function

This commit is to fix it.

Signed-off-by: Terry Lv <r65388@freescale.com>
0974878
Robby Cai ENGR00253849 EPDC: fix build warnings in epdc fb driver
This patch is to fix the following warnings:

drivers/video/mxc/mxc_epdc_fb.c:5062:2: warning: initialization from
				incompatible pointer type [enabled by default]
drivers/video/mxc/mxc_epdc_fb.c:5062:2: warning: (near initialization for
			'mxc_epdc_fb_driver.shutdown') [enabled by default]

Signed-off-by: Robby Cai <R63905@freescale.com>
a086f97
Robby Cai ENGR00253947 EPDC: fix reboot failure
This patch is to

1) add clock enablement before access EPDC registers, otherwise system may hang.

And,
2) fix unbalanced disablement for PMIC regulators

------------[ cut here ]------------
WARNING: at drivers/regulator/core.c:1422 _regulator_disable+0xf8/0x12c()
unbalanced disables for VCOM
Modules linked in:
[<80040518>] (unwind_backtrace+0x0/0xf8) from [<800671d8>]
		(warn_slowpath_common +0x4c/0x64)
[<800671d8>] (warn_slowpath_common+0x4c/0x64) from [<80067284>]
		(warn_slowpath_fmt+0x30/0x40)
[<80067284>] (warn_slowpath_fmt+0x30/0x40) from [<8024ef60>]
		(_regulator_disable+0xf8/0x12c)
[<8024ef60>] (_regulator_disable+0xf8/0x12c) from [<8024efc4>]
		(regulator_disable+0x30/0x70)
[<8024efc4>] (regulator_disable+0x30/0x70) from [<80241044>]
		(mxc_epdc_fb_shutdown+0x18/0x84)
[<80241044>] (mxc_epdc_fb_shutdown+0x18/0x84) from [<80277f64>]
		(platform_drv_shutdown+0x18/0x1c)
[<80277f64>] (platform_drv_shutdown+0x18/0x1c) from [<802751d0>]
		(device_shutdown+0xac/0x124)
[<802751d0>] (device_shutdown+0xac/0x124) from [<8007812c>]
		(kernel_restart_prepare+0x30/0x38)
[<8007812c>] (kernel_restart_prepare+0x30/0x38) from [<80078140>]
		(kernel_restart+0xc/0x48)
[<80078140>] (kernel_restart+0xc/0x48) from [<80078290>]
		(sys_reboot+0x10c/0x1c4)
[<80078290>] (sys_reboot+0x10c/0x1c4) from [<8003ad40>]
		(ret_fast_syscall+0x0/0x30)
---[ end trace e392f5dd2f75e1a5 ]---
------------[ cut here ]------------
WARNING: at drivers/regulator/core.c:1422 _regulator_disable+0xf8/0x12c()
unbalanced disables for DISPLAY
Modules linked in:
[<80040518>] (unwind_backtrace+0x0/0xf8) from [<800671d8>]
		(warn_slowpath_common+0x4c/0x64)
[<800671d8>] (warn_slowpath_common+0x4c/0x64) from [<80067284>]
		(warn_slowpath_fmt+0x30/0x40)
[<80067284>] (warn_slowpath_fmt+0x30/0x40) from [<8024ef60>]
		(_regulator_disable+0xf8/0x12c)
[<8024ef60>] (_regulator_disable+0xf8/0x12c) from [<8024efc4>]
		(regulator_disable+0x30/0x70)
[<8024efc4>] (regulator_disable+0x30/0x70) from [<8024104c>]
		(mxc_epdc_fb_shutdown+0x20/0x84)
[<8024104c>] (mxc_epdc_fb_shutdown+0x20/0x84) from [<80277f64>]
		(platform_drv_shutdown+0x18/0x1c)
[<80277f64>] (platform_drv_shutdown+0x18/0x1c) from [<802751d0>]
		(device_shutdown+0xac/0x124)
[<802751d0>] (device_shutdown+0xac/0x124) from [<8007812c>]
		(kernel_restart_prepare+0x30/0x38)
[<8007812c>] (kernel_restart_prepare+0x30/0x38) from [<80078140>]
		(kernel_restart+0xc/0x48)
[<80078140>] (kernel_restart+0xc/0x48) from [<80078290>]
		(sys_reboot+0x10c/0x1c4)
[<80078290>] (sys_reboot+0x10c/0x1c4) from [<8003ad40>]
		(ret_fast_syscall+0x0/0x30)
---[ end trace e392f5dd2f75e1a6 ]---

Signed-off-by: Robby Cai <R63905@freescale.com>
bda715c
Wayne Zou ENGR00253418 IMX6 SabreSD Display: Support LVDS1 and HDMI dual display
Support LVDS1 and HDMI dual display on SabreSD Rev.C board on i.mx6
By default, LVDS uses LDB_SEP1 mode due to the hardware design.

Signed-off-by: Wayne Zou <b36644@freescale.com>
dfbdb18
Wayne Zou ENGR00253927 IPU: Fix NULL pointer bug when BG EOF interrupt occur early
Fix NULL pointer bug when IPU BG EOF interrupt occur before register irq handler
It can be reproduced on MIPI DSI display on i.mx6dl SabreSD board.

The sequence is:
a) enable display channel
b) pan display (fb_set_var()) -> ipu_enable_irq
c) ipu_request_irq
If an EOF interrupt comes before c and after b, the issue happens.

Signed-off-by: Wayne Zou <b36644@freescale.com>
d0d90af
Liu Ying ENGR00243315-1 IPUv3 CSI:Correct CCIR code1/2 for PAL and NTSC
We reversed CCIR code1/2 setting before, which may brings
captured frame quality issue(jaggy edge can be seen). This
patch revert that change.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit abdb436)
0eae266
Liu Ying ENGR00243315-2 IPUv3 CSI:Remove test mode clock setting
This patch removes test mode clock setting in function
ipu_csi_init_interface(), since the setting is only
necessary for function _ipu_csi_set_test_generator().
This unnecessary setting is added wrongly by commit
f8e1a3b.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 482c308)
57d5e9c
Liu Ying ENGR00243315-3 MXC V4L2 Capture:Remove unnecessary mclk setting
commit f8e1a3b added a hard
coding for csi_parma.mclk setting to 27MHz. The comment added by
that commit is totally wrong by telling that csi_param.mclk
would be a kind of 'pixel clock' set in 'csi_data_dest' register.
This patch removes the unnecessary mclk setting for csi_param.mclk
variable, since it is only valid for CSI test mode.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 5fed1e3)
a98c58c
Liu Ying ENGR00243315-4 MXC V4L2 Capture:Improve debug info for s_std
commit f8e1a3b introduced an
annoying kernel log by changing a pure debug info to error level.
This patch reverts that change.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 289cc88)
32b7519
Liu Ying ENGR00243315-5 ADV7180:Power management adjustment
ADV7180 power down/on can be controlled by a gpio
pin or i2c register setting. The PDBP bit in 0x0f
register chooses the control source, and the PWRDWN
bit in 0x0f register chooses to power down the chip
or power on the chip if control source is i2c.
This patch removes all gpio pin power down/on code
after probe function and uses i2c to do power down/on
operation, as some boards may choose to not connect
ADV7180 power down pin with AP, however, AP's i2c bus
has to be connect with the ADV7180 chip.
Moveover, this patch also adds a 400ms sleep after
the chip is powered on, which is a workaround for
preview scrolling issue(we suspect that the chip
needs some time to in a stable status, so that it
may sends correct data to AP).

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit fc214fa)
19d4075
Liu Ying ENGR00243315-6 ADV7180:Remove unnecessary header files
This patch removes unnesessary header files in the driver.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 871c223)
340b887
Robin Gong ENGR00254267 MX6DL/MX6SL max freq: Fix max cpu freq at 1G on MX6DL ARD
For MX6DL,align max cpufreq judge by SPEED_GRADING fuse bit with MX6DQ.
For MX6SL without the fuse bit, we need add condition check, if found
arm_max_freq set by default , change to1G. Else decided by 'arm_freq'
setting by cmdline.

Signed-off-by: Robin Gong <b38343@freescale.com>
e58db7b
Robin Gong ENGR00254457 mx6dl: fix mx6dl TO1.1 can't enter 'mem'
The previous patch ENGR00251630 didn't notice mx6q_revision() will
return -EINVAL and will match 'mx6q_revision()<IMX_CHIP_REVISION_1_1'
,then mx6dl TO1.1 will also change suspend state to 'standby'.

Signed-off-by: Robin Gong <b38343@freescale.com>
f31e3f3
Huang Shijie ENGR00253355 ARM: imx6q/imx6dl: Set proper PAD value for WEIM NOR
Set proper pad value for WEIM NOR. Without setting these pad value
the weim-nor can not work.

Signed-off-by: Huang Shijie <b32955@freescale.com>
e39b469
Alejandro Sierra ENGR00254442 Sabre ARD Include WEIM-NOR on imx6_updater_defconfig
Sabre ARD include WEIM-NOR configuration update to
enable higher bandwidth on this interface for mfg tool
support (imx6_updater_defconfig).

Signed-off-by: Alex Sierra <b18039@freescale.com>
ae6f681
Wayne Zou ENGR00254931 IPUv3 Fb: Fix display twinkling issue during suspend/resume
Fix display twinkling issue when video playback on LVDS during suspend/resume.
The issue happens when the rootfs application Xfbdev calls fb_set_var() for IPU
BG fb to unblank the console, so it wants to reinitialize the IPU BG. However,
IPU FG is still being used for video playback.It is reasonable to refuse
reprogramme because of the resources confilct.

Signed-off-by: Wayne Zou <b36644@freescale.com>
4bd475b
Robby Cai ENGR00252064-1 csi/v4l: need power on sensor for its initialization
Need power on the sensor for its initialization, otherwise the sensor can
not work properly.

Signed-off-by: Sheng Nan <b38800@freescale.com>
Signed-off-by: Robby Cai <R63905@freescale.com>
24ef6f5
Robby Cai ENGR00252064-2 mx6sl: ov5640: need enable MCLK before read sensor ID
After the patch of auto-detection for sensor pushed, there's a need to
read sensor ID in probe function. But on MX6SL, MCLK is not enabled at
that time. So need to enable it before read sensor ID.

Signed-off-by: Robby Cai <R63905@freescale.com>
78ad8b6
Robby Cai ENGR00252064-3 camera: ov5640: fix missed setting for light_frequency
Confirmed from OV, the missed setting for light_frequency need to be added.

Signed-off-by: Robby Cai <R63905@freescale.com>
3c4d081
Nicolin Chen ENGR00255029 ASoC: spdif: fix clk_enable/disable() mismatched issue
  The function might be returned if the CNEW wasn't detected, while in this
case the code won't disable the clk.
  This patch just fixed the mismatch.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
7ba5b60
Nicolin Chen ENGR00255482 ASoC: HDMI-audio: Add error message for HDMI-video detec…
…t failure

  HDMI-audio depends on HDMI-video. If users want to use HDMI-audio function,
they need to load HDMI-video first. Sometime users would forget to put video
info into U-boot cmdline, "video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24" for
example. That might cause HDMI-auido driver fail to detect HDMI-video.
  Previously, if this happened to system, driver only returned with "ENOMEM"
and system would print "Can't allocate memory". This might confuse users due
to the vague infomation. Users would be hard to figure out the root cause.
  So this patch just add some error message to give users a clear indication,
and changed the "ENOMEM" error number to the more precise "ENODEV".

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
9eb05b3
Peter Chen ENGR00255484-1 msl: usb: add NULL poiner check for fsl_xcvr_ops
Add NULL pointer check for global fsl_xcvr_ops

Signed-off-by: Peter Chen <peter.chen@freescale.com>
585c7fc
Peter Chen ENGR00255484-2 usb: ehci-arc: add NULL pointer check for pdata->pdev
The pdata->pdev is initialized at platform code, if init
fails at first, it will be not initialized, and platform exit
will not be called. This also fixes an oop when config usb
module wrongly:

Unable to handle kernel NULL pointer dereference at virtual address 0000005c
pgd = ba1c4000
[0000005c] *pgd=4a145831, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1] PREEMPT SMP
Modules linked in: ehci_hcd(+) usbcore
CPU: 1    Not tainted  (3.0.35-02451-ge361da1 #60)
PC is at fsl_usb_host_uninit_ext+0xc/0x28
LR is at usb_hcd_fsl_probe+0x2c8/0x44c [ehci_hcd]
pc : [<80062b58>]    lr : [<7f060934>]    psr: a0000013
sp : ba11be80  ip : 00005027  fp : 000a76e0
r10: 00000048  r9 : ba11a000  r8 : bfd4d608
r7 : ffffffed  r6 : bfd4d600  r5 : bfc84400  r4 : 80aaee48
r3 : 80062b4c  r2 : 00000000  r1 : 60000093  r0 : 00000000
Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c53c7d  Table: 4a1c404a  DAC: 00000015
Process modprobe (pid: 1555, stack limit = 0xba11a2f0)
Stack: (0xba11be80 to 0xba11c000)
be80: bfd97600 7f060934 00000000 00000000 bfd4d608 bfd4d608 80aca808 bfd4d63c
bea0: 7f062bd4 80041704 ba11a000 00000000 000a76e0 802a5cec bfd4d608 802a4a14
bec0: bfd4d608 7f062bd4 bfd4d63c 00000000 80041704 802a4bac 7f062bd4 ba11bee8
bee0: 802a4b20 802a4254 bffd4040 bff03f38 7f065000 7f062bd4 80a934c8 bfc8cd20
bf00: 00000000 802a3be0 7f062b1c 7f062bd4 00000000 7f017ec8 7f062bd4 00000000
bf20: 7f065000 80041704 00000000 802a51a0 7f017ec8 80aae500 00000000 7f065000
bf40: 80041704 7f065058 000a79e8 8003b4c4 00000000 00000000 00000000 80a14834
bf60: 000a79e8 000a79e8 7f062c20 00000000 0000e67b 80041704 ba11a000 00000000
bf80: 000a76e0 800aa428 ba076740 800f58dc 000a79e8 0000e67b 00000000 000a75d0
bfa0: 00000080 80041580 0000e67b 00000000 000a79e8 0000e67b 000a75d0 000a76e0
bfc0: 0000e67b 00000000 000a75d0 00000080 000a6a78 00000008 000a76a0 000a76e0
bfe0: 7ec7ab50 7ec7ab40 0001a32c 2ace6490 20000010 000a79e8 4fffe821 4fffec21
[<80062b58>] (fsl_usb_host_uninit_ext+0xc/0x28) from [<7f060934>]
	(usb_hcd_fsl_probe+0x2c8/0x44c [ehci_hcd])
[<7f060934>] (usb_hcd_fsl_probe+0x2c8/0x44c [ehci_hcd]) from [<802a5cec>]
	(platform_drv_probe+0x18/0x1c)
[<802a5cec>] (platform_drv_probe+0x18/0x1c) from [<802a4a14>]
	(driver_probe_device+0x98/0x1a4)
[<802a4a14>] (driver_probe_device+0x98/0x1a4) from [<802a4bac>]
	(__driver_attach+0x8c/0x90)
[<802a4bac>] (__driver_attach+0x8c/0x90) from [<802a4254>]
	(bus_for_each_dev+0x60/0x8c)
[<802a4254>] (bus_for_each_dev+0x60/0x8c) from [<802a3be0>]
	(bus_add_driver+0x184/0x25c)
[<802a3be0>] (bus_add_driver+0x184/0x25c) from [<802a51a0>]
	(driver_register+0x78/0x13c)
[<802a51a0>] (driver_register+0x78/0x13c) from [<7f065058>]
	(ehci_hcd_init+0x58/0x88 [ehci_hcd])
[<7f065058>] (ehci_hcd_init+0x58/0x88 [ehci_hcd]) from [<8003b4c4>]
	(do_one_initcall+0x30/0x16c)
[<8003b4c4>] (do_one_initcall+0x30/0x16c) from [<800aa428>]
	(sys_init_module+0x84/0x19c)
[<800aa428>] (sys_init_module+0x84/0x19c) from [<80041580>]
	(ret_fast_syscall+0x0/0x30)
Code: 80aaee48 e92d4010 e30e4e48 e34840aa (e590005c)
---[ end trace 719afdfe4af3a442 ]---

Signed-off-by: Peter Chen <peter.chen@freescale.com>
f1a46ba
Peter Chen ENGR00255484-3 msl: usb: add clock deinit at fail path
If not, the clocks usage will be mismatch

Signed-off-by: Peter Chen <peter.chen@freescale.com>
0c6379a
Robby Cai ENGR00255491 ov5640: Fix build break by make modules
Fix the kernel modules building error for mx6q/mx6dl as follows:

LD [M] drivers/usb/gadget/g_serial.o
Building modules, stage 2.
MODPOST 48 modules
ERROR: "csi_enable_mclk" [drivers/media/video/mxc/capture/ov5640_camera.ko]
			undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2

Signed-off-by: Robby Cai <R63905@freescale.com>
225b3f9
Anson Huang ENGR00255481 mx6: Update equation for thermal sensor
Use universal equation and 25C's calibration data to
get thermal sensor's ratio.

If want to use old calibration method, please add
"use_calibration" into kernel command line.

Signed-off-by: Anson Huang <b20788@freescale.com>
f102734
Robin Gong ENGR00255111 battery: fix voltage decreased only while discharging
If system run higher cpu loading with bigger current, such as GPU or VPU,
the voltage of battery will decrease down quickly  and rise up later.But the
battery driver only permit voltage decreasing while discharging before, in
other words, in the above case , the voltage will keep in very low level,
although the voltage will rise back again.

Now, remove the constrain in the code. Of course, with the patch, voltage will
down and rise back when run high loading user case, but it's better than
LOW ALWAYS, in worst case, the battery capacity will be 0 as test team reported

Please note :
Current battery capaity is not accurate because of hardware
design defect(ENGR00219632) on Sabresd.So please ignore the accuracy issue.

Signed-off-by: Robin Gong <b38343@freescale.com>
08c9214
Loren Huang ENGR00255322 Disable non-contiguous memory using for VG
Current OpenVG doesn't support to use non-contiguous memory.
Forbid VG to try to allocate non-contiguous memory when video
memory is used up temporarily.

Signed-off-by: Loren Huang <b02279@freescale.com>
Acked-by: Lily Zhang
896ea20
Fugang Duan ENGR00255406 net: fec: Workaround tx hang due to TDAR bit cleared by …
…uDMA

MTIP enet IP have one IC issue recorded at PDM ticket:TKT168103

The issue description:
The TDAR bit after being set by software is not acted upon by the ENET
module due to the timing of when the ENET state machine clearing the
TDAR bit occurring coincident or momentarily after the software sets
the bit.

The result:
The corresponding transmit packet for an incoming ping is delayed.

Workaround:
This forces the ENET module to check the Transmit buffer descriptor
and take action if the “ready” flag is set. Otherwise the ENET module
returns to idle mode.

Signed-off-by: Fugang Duan  <B38611@freescale.com>
0083c56
b02247 ENGR00255104 The opening time of cs42888 is very long, about 400ms
In this commit 957bc47, add msleep(400)
for reducing noise in the hw_params, but this time is very long for opening
device.
In this patch, remove this time and use the "Soft Ramp on Zero Crossings" to
reduce the noise.

Signed-off-by: b02247 <b02247@freescale.com>
ce9199e
Wayne Zou ENGR00256629 V4L2 output: Fix color bar issue on 1080p HDMI display
When doing video playback on video16, which is also the first framebuffer
and used for fb console as well, there is a color bar on top of 1080p screen.
We need to make sure the correct vmode when doing pan display.

Signed-off-by: Wayne Zou <b36644@freescale.com>
cdbbb76
Loren Huang ENGR00254106 Avoid incorrect GPU frequency scaling be overwritten
Correct code to remove unnecessary GPU frequency scaling updte.
This patch is from vivante.

Signed-off-by: Loren Huang <b02279@freescale.com>
Acked-by: Lily Zhang
84e470f
Nicolin Chen ENGR00256820-1 ASoC: WM8962: revert FLL-disable before FLL-setting
  The patch at the commit 30293bc dropped FLL-disabling code from wm8962
driver, which was a work around for CR 00209905. Since we fixed the issue in
a better way(commit 018958f), we don't need the work around any more.
  And in wm8962's datasheet, Wolfson suggests that driver should disable and
re-enable the FLL after the other registers're updated. So it's better for us
to revert the code to prevent some potential issue.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
1151a5a
Nicolin Chen ENGR00256820-2 ASoC: imx-wm8962: Fix incorrect setting of wm8962's FL…
…L source

  WM8962's internal FLL is sourced from MCLK on SabreSD, while the machine
driver set its source to OSC, which's definitely wrong.
  So This patch changed its source to MCLK to prevent some potential issue.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
f242f31
Anson Huang ENGR00256543 mx6: Update equation for thermal sensor on i.MX6DL
Use universal equation and 25C's calibration data to
get thermal sensor's ratio on i.MX6DL.

Signed-off-by: Anson Huang <b20788@freescale.com>
1c3d1f1
Mark Brown broonie ASoC: wm8962: Don't automatically enable and disable FLL
Only enable and disable the FLL when explicitly told to, supporting some
additional use cases and making the driver behaviour more standard.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit a968d9d)
e2bd4d2
Nicolin Chen ENGR00256310 ASoC: imx-wm8962: Fix playback abnormally slower issue
  Previously, we didn't close FLL after playback/capture, which might cause
FLL work werid after a long time suspend.
  This patch manually disables FLL after playback/capture.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
80dd801
Nicolin Chen ENGR00256933 ASoC: WM8962: Add delay after FLL-enable
  There's a start-up time after FLL_ENA bit is set. While the driver didn't
run the delay code which already exists in the set_fll() function.
  This patch let the driver run into the delay section, and made it work more
perfectly.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
7393254
Ranjani Vaidyanathan ENGR00256893-1 MX6Q/DL-Fix Ethernet performance issue when WAIT mode …
…is active

All of the interrupts from the ENET block are not routed to
the GPC block. Hence ENET interrupts are not able to wake
up the SOC when the system is in WAIT mode. And the ENET
interrupt gets serviced only when another interrupt causes
the SOC to exit WAIT mode. This impacts the ENET performance.

To fix the issue two options:
1. Route the ENET interrupt to a GPIO. Need to enable the
CONFIG_MX6_ENET_IRQ_TO_GPIO in the config.
This patch provides support for routing the ENET interrupt
to GPIO_1_6. Routing to this GPIO requires no HW board mods.
If the GPIO_1_6 is being used for some other peripheral,
this patch can be followed to route the ENET interrupt to
any other GPIO though a HW mode maybe required.
2. If the GPIO mechanism cannot be used and is not enabled
by the above mentioned config, the patch will disable entry
to WAIT mode until ENET clock is active. When the ENET clock
is disabled, WAIT mode will be automatically enetered.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
067c8dc
Ranjani Vaidyanathan ENGR00256893-2 MX6Q/DL-Fix Ethernet performance issue when WAIT mode …
…is active

All of the interrupts from the ENET block are not routed to
the GPC block. Hence ENET interrupts are not able to wake
up the SOC when the system is in WAIT mode. And the ENET
interrupt gets serviced only when another interrupt causes
the SOC to exit WAIT mode. This impacts the ENET performance.

To fix the issue two options:
1. Route the ENET interrupt to a GPIO. Need to enable the
CONFIG_MX6_ENET_IRQ_TO_GPIO in the config.
This patch provides support for routing the ENET interrupt
to GPIO_1_6. Routing to this GPIO requires no HW board mods.
If the GPIO_1_6 is being used for some other peripheral,
this patch can be followed to route the ENET interrupt to
any other GPIO though a HW mode maybe required.
2. If the GPIO mechanism cannot be used and is not enabled
by the above mentioned config, the patch will disable entry
to WAIT mode until ENET clock is active. When the ENET clock
is disabled, WAIT mode will be automatically enetered.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
573bab0
Huang Shijie ENGR00256315-3 ARM: WEIM-NOR: set the proper timing
These timings are calculated from the M29W256GL7AN6E.

Signed-off-by: Huang Shijie <b32955@freescale.com>
938dd92
Huang Shijie ENGR00256315-1 Revert "ENGR00244769-2 [NOR FLASH]-Improve WEIM NOR sp…
…eed"

This reverts commit 58209e1.

After apply these two patches, we can not pass the stress test.
So revert these two patches.

Signed-off-by: Huang Shijie <b32955@freescale.com>
1a1ff18
Huang Shijie ENGR00256315-2 Revert "ENGR00244769-1 [NOR FLASH]-Improve WEIM NOR sp…
…eed"

This reverts commit 4020b38.

After apply these two patches, we can not pass the stress test.
So revert these two patches.

Signed-off-by: Huang Shijie <b32955@freescale.com>
ad8a919
Huang Shijie ENGR00256315-4 ARM: imx6: weim-nor: set proper PAD value
Set the proper pad values for the pins used for address.

Signed-off-by: Huang Shijie <b32955@freescale.com>
9cc078b
Huang Shijie ENGR00256315-5 mtd: cfi_cmdset_0002: print @adr when write timeout oc…
…curs

Print out the @adr when the write timeout occurs.
This is useful to check if the write timeouts occur at the
same address.

Signed-off-by: Huang Shijie <b32955@freescale.com>
a9b6868
Liu Ying ENGR00253652 ov5640 dvp:Align iq setting with mipi camera
According to the OV FAE, the image quality(iq) setting is
from 0x5000 register to 0x3a1f register in the camera's
initialization setting. This patch aligns image quality
setting of ov5640 dvp camera to ov5640 mipi camera.
The registers whose values are changed are 0x5001, 0x5189,
0x518b, 0x518d, 0x518e, 0x518f, 0x5199, 0x519c and 0x519d.
This change may improve the image quality of 5M/1M/VGA/QVGA
taken pictures in Android according to test team observation.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit c4f92bf)
d7739c0
Liu Ying ENGR00255371 v4l2 fg overlay:workaround ipu warning
There is annoying ipu warning when doing preview
by using v4l2 fg overlay component:
/unit_tests/mxc_v4l2_overlay.out -iw 320 -ih 240 -ow 1280
-oh 720 -r 0 -fg -t 5
imx-ipuv3 imx-ipuv3.0: IDMAC12's EBA0 is not 8-byte aligned
This warning can be seen only when preview size is bigger
than 1024*1024(ipu device driver split mode is enabled).
After debug, it appears that the unaligned buffer address
is caused by input cropping for left strip, and this
cropping is triggered by the split mode algrithm. The
algrithm is complex, so currently this patch only changes
the input pixel format of the ipu task from UYVY to NV12
to workaround this warning.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit aaf14db)
31e5761
Liu Ying ENGR00256918 IPUv3 common:Correct CSI_PRP_MEM disable routine
For both CSI_MEMx and CSI_PRP_VF(ENC)_MEM capture channels,
we disable them with the following sequence:
1) Wait for an idmac channel eof interrupt.
2) Disable CSI by clearing CSIx_EN in IPU_CONF register.
3) Disable idmac channel by clearing relevant bit in
   IPU_IDMAC_CH_EN_1 register and other settings.

However, currently, we don't do 3) until CSI_PRP_VF(ENC)_MEM's
idmac channel being not busy by a while loop check. In case, an
external sensor is plugged out from the system or the sensor is
somehow broken, we will be unable to get out of that infinite
while loop. Since this check is unnecessary(we've already
waited for an idmac eof interrupt), this patch simply removes
it from the disable routine of CSI_PRP_VF(ENC)_MEM channel.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 8136a50)
e71d3d3
Eric Nelson ericnelsonboundary ENGR00243289 egalax_ts: Add support for single-touch
Add support for single-touch for the Egalax Touch driver

Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@freescale.com>
355f972
Zhang Xiaodong ENGR00254896 mx6: hdmidongle: Fix compile error.
After enable PICE in kernel config, building will meet
fatal error:linux/wakelock.h: No such file or directory

Signed-off-by: Zhang Xiaodong <B39117@freescale.com>
f16a7b2
Adrian Alonso ENGR00237365: board-mx6q_sabreauto fix mipi-csi2 settings
* Correct mipi-csi2 settings only one data line is used
* Add mx6q_mipi_csi1_io_init ipu-csi setting callback
  use virtual channel 1 and attach it to CSI1 -> IPU0
* Set i2c slave address to 0x52
* Set ipu-csi clko_clk

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
32d8da9
LiuHui-Jason LiuHui-Jason ENGR00255518 ipu/ipu3: using the kernel common help function div_u64
We don't need invent the wheel to implement the wrap for the _do_div,
we can use the kernel common helper function for the u64 divide with
div_u64() function call

This also fix the build break when CONFIG_DEBUG_SECTION_MISMATCH=y with
GCC4.6.3 cross-compile toolchain.

CC      init/version.o
LD      init/built-in.o
LD      .tmp_vmlinux1
drivers/built-in.o: In function `_do_div.part.1':
clkdev.c:(.text+0x15c23c): undefined reference to `__aeabi_uldivmod'
clkdev.c:(.text+0x15c25c): undefined reference to `__aeabi_uldivmod'
clkdev.c:(.text+0x15c2bc): undefined reference to `__aeabi_uldivmod'
clkdev.c:(.text+0x15c3ac): undefined reference to `__aeabi_uldivmod'
clkdev.c:(.text+0x15c3d0): undefined reference to `__aeabi_uldivmod'

This issue is caused by the wrongly optimized code produced by GCC,
See the bug report here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48783

The similar build break issue report at:
http://lists.infradead.org/pipermail/linux-mtd/2012-May/041677.html

Signed-off-by: Jason Liu <r64343@freescale.com>
790715d
LiuHui-Jason LiuHui-Jason ENGR00257658 Revert "ENGR00256893-2 MX6Q/DL-Fix Ethernet performance …
…issue

This reverts commit 573bab0.

i.mx6dl/dq sabreauto/sabresd board will boot up failed
randomly with this patch-set, thus revert it. [Jason]

Signed-off-by: Jason Liu <r64343@freescale.com>
49e57ec
LiuHui-Jason LiuHui-Jason ENGR00257658 Revert "ENGR00256893-1 MX6Q/DL-Fix Ethernet performance …
…issue

This reverts commit 067c8dc.

i.mx6dl/dq sabreauto/sabresd board will boot up failed
randomly with this patch-set, thus revert it. [Jason]

Signed-off-by: Jason Liu <r64343@freescale.com>
23fae65
Huang Shijie ENGR00257947 mtd: use memcpy to replace the memcpy_fromio
During the read of NOR, the kernel actually calls the inline_map_copy_from()
to read the data out. And inline_map_copy_from() will use the memcpy_fromio()
to do the real job.

The memcpy_fromio macro maps _memcpy_fromio() in the current code.
But the _memcpy_fromio() will use readb() to do the copy work one byte
by one byte. This makes the read performance of NOR very slow(about 2~3MB/s).

A similiar discussion could be found in:
http://lists.infradead.org/pipermail/linux-arm-kernel/2009-November/003860.html

This patch replace the memcpy_fromio with memcpy which is optimized by the
kernel.

The following is the result from mtd_speedtest with M29W256GL7AN6E:
=================================================
mtd_speedtest: MTD device: 2
mtd_speedtest: not NAND flash, assume page size is 512 bytes.
mtd_speedtest: MTD device size 4194304, eraseblock size 131072, page size 512,
		count of eraseblocks 32, pages per eraseblock 256, OOB size 0
mtd_speedtest: testing eraseblock write speed
mtd_speedtest: eraseblock write speed is 845 KiB/s
mtd_speedtest: testing eraseblock read speed
mtd_speedtest: eraseblock read speed is 19504 KiB/s
mtd_speedtest: testing page write speed
mtd_speedtest: page write speed is 845 KiB/s
mtd_speedtest: testing page read speed
mtd_speedtest: page read speed is 19140 KiB/s
mtd_speedtest: testing 2 page write speed
mtd_speedtest: 2 page write speed is 846 KiB/s
mtd_speedtest: testing 2 page read speed
mtd_speedtest: 2 page read speed is 19320 KiB/s
mtd_speedtest: Testing erase speed
mtd_speedtest: erase speed is 233 KiB/s
mtd_speedtest: Testing 2x multi-block erase speed
mtd_speedtest: 2x multi-block erase speed is 225 KiB/s
mtd_speedtest: Testing 4x multi-block erase speed
mtd_speedtest: 4x multi-block erase speed is 224 KiB/s
mtd_speedtest: Testing 8x multi-block erase speed
mtd_speedtest: 8x multi-block erase speed is 225 KiB/s
mtd_speedtest: Testing 16x multi-block erase speed
mtd_speedtest: 16x multi-block erase speed is 225 KiB/s
mtd_speedtest: Testing 32x multi-block erase speed
mtd_speedtest: 32x multi-block erase speed is 225 KiB/s
mtd_speedtest: Testing 64x multi-block erase speed
mtd_speedtest: 64x multi-block erase speed is 224 KiB/s
mtd_speedtest: finished
=================================================

Signed-off-by: Huang Shijie <b32955@freescale.com>
9e7dff8
Nicolin Chen ENGR00257755-1 Revert "ASoC: wm8962: Don't automatically enable and d…
…isable"

This reverts commit e2bd4d2.

With this patch, WM8962 couldn't work normally after SabreSD power-on.
So revert it and find a better solution.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
5e0d6ea
Nicolin Chen ENGR00257755-2 Revert "ENGR00256310 ASoC: imx-wm8962: Fix playback ab…
…normally"

This reverts commit 80dd801.

With this patch, WM8962 couldn't work normally after SabreSD power-on.
So revert it and find a better solution.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
1db8134
Nicolin Chen ENGR00257755-3 Revert "ENGR00256933 ASoC: WM8962: Add delay after FLL…
…-enable"

This reverts commit 7393254.

We already reverted FLL-enable code in set_fll(), so we don't need delay any
more.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
0166fa6
Nicolin Chen ENGR00257755-4 ASoC: WM8962: Disable FLL when chip's not being used
There might be a case that SYSCLK_SRC is not FLL, but FLL's still open.
If so, next time we use FLL as SYSCLK_SRC, it won't work normally.

This patch disabled FLL if FLL's enabled no matter what SYSCLK_SRC is.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
25b43b8
computersforpeace computersforpeace mtd: replace DEBUG() with pr_debug()
Start moving away from the MTD_DEBUG_LEVEL messages. The dynamic
debugging feature is a generic kernel feature that provides more
flexibility.

(See Documentation/dynamic-debug-howto.txt)

Also fix some punctuation, indentation, and capitalization that went
along with the affected lines.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
149484e
computersforpeace computersforpeace mtd: cleanup style on pr_debug messages
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
326a368
Ira W. Snyder mtd: cfi: AMD/Fujitsu compatibles: add panic write support
This allows the mtdoops driver to work on flash chips using the
AMD/Fujitsu compatible command set.

As the code comments note, the locks used throughout the normal code
paths in the driver are ignored, so that the chance of writing out the
kernel's last messages are maximized.

Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
9cc857e
Paul Parsons mtd: chips: cfi_cmdset_0002: Match ENABLE_VPP()/DISABLE_VPP() calls
This patch is part of a set which fixes unnecessary flash erase and write errors
resulting from the MTD CFI driver turning off vpp while an erase is in progress.
This patch ensures that only those flash operations which call ENABLE_VPP() can
then call DISABLE_VPP(). Other operations should never call DISABLE_VPP().

Signed-off-by: Paul Parsons <lost.distance@yahoo.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
4550615
jmartinc jmartinc mtd: add fixup for S29NS512P NOR flash.
Spansion S29NS512P flash uses a 16bit transfer to report number
of sectors instead of two 8bit accesses as CFI specifies.

Artem: remove warning message which said that we are applying the
fixup - no need to scary the user unnecessarily.

Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
107eb41
dwmw2 dwmw2 mtd: cfi_cmdset_0002: Slight cleanup of fixup messages
These should be semicolons, not commas.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
1634970
Gerlando Falauto mtd: cfi_cmdset_0002: Micron M29EW bugfixes as per TN-13-07
Fix the following issues with Micron's (formerly Numonyx)
M29EW NOR flash chips, as documented on TN-13-07:
- Correcting Erase Suspend Hang Ups (page 20)
- Resolving the Delay After Resume Issue (page 22)

Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
4728744
Harald Nordgard-Hansen mtd: fix recovery after failed write-buffer operation in cfi_cmdset_0…
…002.c

When working on a problem with some flash chips that lock up during
write-buffer operations, I think there may be a bug in the linux
handling of chips using cfi_cmdset_0002.c.

The datasheets I have found for a number of these chips all specify that
when aborting a write-buffer command, it is not enough to use the
standard reset.  Rather a "write-to-buffer-reset command" is needed.
This command is quite similar for all chips, the main variance seem to
be if the final 0xF0 can go to any address or must go to addr_unlock1.

The bug is then in the recovery handling when timing out at the end of
do_write_buffer, where using the normal reset command is not sufficient.

Without this change, if the write-buffer command fails then any
following operations on the flash also fail.

Signed-off-by: Harald Nordgard-Hansen <hhansen@pvv.org>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
dc5e48a
Terry Lv ENGR00256417: MLB: can't receive data in wait mode
For MLB uses iram for data transfer, and there's a missing of dependency
on iram in MLB's clock setting, MLB can't receive data in wait mode.
We need to add ocram clock dependency in MLB clock.

Signed-off-by: Terry Lv <r65388@freescale.com>
cb9bf3f
Ranjani Vaidyanathan ENGR00257847-1 MX6Q/DL-Fix Ethernet performance issue when WAIT mode …
…is active

All of the interrupts from the ENET block are not routed to
the GPC block. Hence ENET interrupts are not able to wake
up the SOC when the system is in WAIT mode. And the ENET
interrupt gets serviced only when another interrupt causes
the SOC to exit WAIT mode. This impacts the ENET performance.

To fix the issue two options:
1. Route the ENET interrupt to a GPIO. Need to enable the
CONFIG_MX6_ENET_IRQ_TO_GPIO in the config.
This patch provides support for routing the ENET interrupt
to GPIO_1_6. Routing to this GPIO requires no HW board mods.
If the GPIO_1_6 is being used for some other peripheral,
this patch can be followed to route the ENET interrupt to
any other GPIO though a HW mode maybe required.
2. If the GPIO mechanism cannot be used and is not enabled
by the above mentioned config, the patch will disable entry
to WAIT mode until ENET clock is active. When the ENET clock
is disabled, WAIT mode will be automatically enetered.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
8088638
Ranjani Vaidyanathan ENGR00257847-2 MX6Q/DL-Fix Ethernet performance issue when WAIT mode …
…is active

All of the interrupts from the ENET block are not routed to
the GPC block. Hence ENET interrupts are not able to wake
up the SOC when the system is in WAIT mode. And the ENET
interrupt gets serviced only when another interrupt causes
the SOC to exit WAIT mode. This impacts the ENET performance.

To fix the issue two options:
1. Route the ENET interrupt to a GPIO. Need to enable the
CONFIG_MX6_ENET_IRQ_TO_GPIO in the config.
2. If the GPIO mechanism cannot be used and is not enabled
by the above mentioned config, the patch will disable entry
to WAIT mode until ENET clock is active. When the ENET clock
is disabled, WAIT mode will be automatically enetered.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
bae4d40
Terry Lv ENGR00258357-1: mlb: Remove MLB150_ from macro define names
Remove MLB150_ from macro define names to make code clean.

Signed-off-by: Terry Lv <r65388@freescale.com>
5b1d340
Terry Lv ENGR00258357-2: mlb: Add more debug msgs in DEBUG mode
Changes are:
1. Use print_hex_dump to print buffer in DEBUG mode.
2. Add more debug msgs.

Signed-off-by: Terry Lv <r65388@freescale.com>
b297cf9
Terry Lv ENGR00258357-3: mlb: Reset whole CDR in init function
Reset whole CDR in init function. This will make mlb connection to MITB
more stable.
This is a missed part in mx6 rm's mlb section, but new in mlb's latest
spec DS62420AP2.pdf 12.1.1-1.
Without this patch, mlb may receive irq from MITB during initialization.
It might cause some connection issue that mlb can't receive data
sometimes. It was treat to be MITB's fault before we get the latest
spec.

Signed-off-by: Terry Lv <r65388@freescale.com>
5f4d5dc
Terry Lv ENGR00258357-4: mlb: Group static variables to structure mlb_data
Group static variables to structure mlb_data.
Use mlb_data as platform data to be passed to file operation
functions.
Change accordingly functions for this change.

Signed-off-by: Terry Lv <r65388@freescale.com>
b4570bd
Terry Lv ENGR00258357-5: mlb: Use circle buf macros to replace old ringbuf mec…
…hanism

Use circle buf to replace old ringbuf mechanism.
Change to use circle buffer in read, write, rx isr and tx isr functions.
In first design of MLB, it's using it's own mechanism to manage ring
buffer, like in mxc_mlb.c.
And then, I saw that kernel already had a serials of circ buffer macros
which can be used to manage ring buffers.
This patch is to use circle buffer macros to manage mlb internal ring
buffers.
For detail of circle buffers, you can refer to
linux-2.6-imx/Documentation/circular-buffers.txt.

Signed-off-by: Terry Lv <r65388@freescale.com>
f8f1b81
Huang Shijie ENGR00258733 WEIM-NOR: mtd: cfi_cmdset_0002: Do not release the mutex…
… lock

The NOR may suffers a write-buffer timeout during the bonnie++/ubifs stress
test. This patch is just a workaround to fix this issue.

With this patch, the read/write/erase will do in the synchronous way.

Signed-off-by: Huang Shijie <b32955@freescale.com>
25af359
Marc Kleine-Budde marckleinebudde can: dev: let can_get_echo_skb() return dlc of CAN frame
can_get_echo_skb() is usually called in the TX complete handler.
The stats->tx_packets and stats->tx_bytes should be updated there, too.
This patch simplifies to figure out the size of the sent CAN frame.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
9410819
Reuben Dowle can: flexcan: Fix CAN_RAW_RECV_OWN_MSGS and CAN_RAW_LOOPBACK
Currently the flexcan driver uses hardware local echo. This blindly
echos all transmitted frames to all receiving sockets, regardless what
CAN_RAW_RECV_OWN_MSGS and CAN_RAW_LOOPBACK are set to.

This patch now submits transmitted frames to be echoed in the transmit
complete interrupt, preserving the reference to the sending
socket. This allows the can protocol to correctly handle the local
echo.

Further this patch moves tx_bytes statistic accounting into the tx_complete
handler.

Signed-off-by: Reuben Dowle <reuben.dowle@navico.com>
[mkl: move tx_bytes accounting into tx_complete handler; cleanups]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2bb0d04
Dong Aisheng ENGR00258885 flexcan: fix errata ERR005641 that MB may fail to be sent
This is an issue from IC errata ERR005641 which is described as follows:
----------------------------------------------------------
FlexCAN does not transmit a message that is enabled to be transmitted
in a specific moment during the arbitration process. The following
conditions are necessary to have the issue.
- Only one MB is configured to be transmitted
- The write which enables the MB to be transmitted (write on Control status
  word) happens during a specific clock during the arbitration process.

After this arbitration process occurs, the bus goes to Idle state and no
new message is received on bus.

For example:
1) MB13 is deactivated on RxIntermission (write 0x0 on CODE field from Control
Status word) - First write on CODE
2) Reconfigure the ID and data fields
3) Enable the MB13 to be transmitted on BusIdle (write 0xC on Code
field) - Second write on code
4) CAN bus keeps in Idle state
5) No write on Control status from any MB happens.
During the second write on code (step 3), the write must happen one clock
before the current MB13 is to be scanned by arbitration process.
In this case, it does not detect the new code (0xC) and no new arbitration is
scheduled.

The suggested workaround which is implemented in this patch is:
The workaround consists of executing two extra steps:
6. Reserve the first valid mailbox as an inactive mailbox (CODE=0b1000).
If RX FIFO is disabled, this mailbox must be MB0. Otherwise, the first
valid mailbox can be found by using table "RX FIFO filters" on FlexCAN3 chapter.
7. Write twice INACTIVE code (0b1000) into the first valid mailbox.
Note: The first mailbox cannot be used for reception or transmission process.
-------------------------------------------------------------

Note: Although the currently flexcan driver does not have the step 1 to run,
it's also possible to meet this issue in theory because we can not predict
when the arbitration is scheduled.

With a modified can-utils/canfdttest tool simulating Pingpong test, we were
able to reproduce this issue after running a about one day.
After applying this patch, we ran six days and did not see the issue happen
again on two mx6q sabrelite boards.

Signed-off-by: Dong Aisheng <b29396@freescale.com>
4344b2d
Terry Lv ENGR00259008: mlb: reduce iram usage amount in async mode
In testing async mode on mx6q ard and mx6dl ard, driver always said "can
not alloc rx buffer".
Change async's ring buffer size from 2048 to 1536(MEP package size) and
reduce the extra ring buffer for drop package, now the iram usage amount
in async mode reduced from 34816 to 24576.

Signed-off-by: Terry Lv <r65388@freescale.com>
556681e
Wayne Zou ENGR00259593 IPU/V4L2 output: Fix video ouput to video16 can not work
Revert"ENGR00254931 IPUv3 Fb: Fix display twinkling issue during suspend/resume"

This reverts commit 4bd475b.

That patch will lead to kernel crash when doing video playback on video16 with
overlay on. The reason is that fb driver doesn't reallocate larger DMA buffer
requested by V4L2 driver, while IPU hardware write to large DMA address.
Other solution is needed for the original issue.

kernel BUG at arch/arm/mm/dma-mapping.c:478!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = 80004000
[00000000] *pgd=00000000
Internal error: Oops: 817 [#1] PREEMPT SMP
Modules linked in: mxc_v4l2_capture ipu_csi_enc ipu_prp_enc ipu_fg_overlay_sdc
ipu_bg_overlay_sdc ipu_still ov5640_camera_mipi ov5640_camera
CPU: 0    Not tainted  (3.0.35-2506-g556681e #1)
PC is at __bug+0x1c/0x28
LR is at __bug+0x18/0x28
pc : [<800442ac>]    lr : [<800442a8>]    psr: 20000113
sp : 80a8fe88  ip : c09b2000  fp : 80aa3a70
r10: 80a90080  r9 : 00000040  r8 : bffecec4
r7 : 00000001  r6 : 00000002  r5 : 00000800  r4 : ce5c5e65
r3 : 00000000  r2 : 00000104  r1 : 0bfcf000  r0 : 00000033
Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c53c7d  Table: 4a97404a  DAC: 00000015
Process swapper (pid: 0, stack limit = 0x80a8e2f0)
Stack: (0x80a8fe88 to 0x80a90000)
fe80:                   80afde30 8004a464 00000880 ffdfd6b0 bffec000 802fa678
fea0: bffec000 00000060 5e5c5e65 ce5c5e65 bffec250 80ad4c88 bffece4c 00000001
fec0: bffecec4 00000040 0000012c 8c009480 8c009488 80a90080 ffff9527 80423f58
fee0: 00000001 80a8e000 00000096 00000001 80a9004c 80a8e000 00000103 80af77e0
ff00: 00000000 80a90040 00000003 8007a034 00000096 00000000 80a8e000 0000000a
ff20: 80a94c4c 80a8e000 80039c00 80a8e000 00000096 00000000 80a8e000 00000000
ff40: 00000000 8007a570 80aa3cc0 80041874 ffffffff f2a00100 00000096 00000002
ff60: 00000001 80040a0c 80af9140 80000093 00000001 00000000 80a8e000 80af1ce4
ff80: 80511044 80aa6e7c 1000406a 412fc09a 00000000 00000000 00000000 80a8ffb0
ffa0: 8004f648 80041b04 40000013 ffffffff 80041ae0 80041d08 00000001 80aa3b3c
ffc0: 80af1c40 8002f538 8c005160 80008868 800082f8 00000000 00000000 8002f538
ffe0: 00000000 10c53c7d 80aa3a6c 8002f534 80aa6e74 10008040 00000000 00000000
[<800442ac>] (__bug+0x1c/0x28) from [<8004a464>]
		(___dma_single_dev_to_cpu+0x84/0x94)
[<8004a464>] (___dma_single_dev_to_cpu+0x84/0x94) from [<802fa678>]
		(fec_rx_poll+0x228/0x2c8)
[<802fa678>] (fec_rx_poll+0x228/0x2c8) from [<80423f58>]
		(net_rx_action+0xb0/0x17c)
[<80423f58>] (net_rx_action+0xb0/0x17c) from [<8007a034>]
		(__do_softirq+0xac/0x140)
[<8007a034>] (__do_softirq+0xac/0x140) from [<8007a570>] (irq_exit+0x94/0x9c)
[<8007a570>] (irq_exit+0x94/0x9c) from [<80041874>] (handle_IRQ+0x50/0xac)
[<80041874>] (handle_IRQ+0x50/0xac) from [<80040a0c>] (__irq_svc+0x4c/0xe8)
[<80040a0c>] (__irq_svc+0x4c/0xe8) from [<80041b04>] (default_idle+0x24/0x28)
[<80041d08>] (cpu_idle+0xc8/0x108) from [<80008868>] (start_kernel+0x248/0x288)
[<80008868>] (start_kernel+0x248/0x288) from [<10008040>] (0x10008040)

Signed-off-by: Wayne Zou <b36644@freescale.com>
f14e8ea
Ranjani Vaidyanathan ENGR00259693 MX6DL/S-Enable routing of ENET interrupt to GPIO
In order to fix the performance issue on ENET when WAIT mode
is activated, route the ENET interrupts to a GPIO on all MX6DL boards.

This patch must be applied on top of:
MX6Q/DL-Fix Ethernet performance issue when WAIT mode is active
8088638
bae4d40

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
54750ff
Markus Trippelsdorf perf tools: Fix getrusage() related build failure on glibc trunk
On a system running glibc trunk perf doesn't build:

    CC builtin-sched.o
builtin-sched.c: In function ‘get_cpu_usage_nsec_parent’: builtin-sched.c:399:16: error: storage size of ‘ru’ isn’t known builtin-sched.c:403:2: error: implicit declaration of function ‘getrusage’ [-Werror=implicit-function-declaration]
    [...]

Fix it by including sys/resource.h.

Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20120404084527.GA294@x4
Signed-off-by: Ingo Molnar <mingo@kernel.org>
572fd62
John Weber johnweber wandboard: Add board support b9f4134
John Weber johnweber gpu-viv: Avoid using uninitialized variables c0fceed
John Weber johnweber ssi: add header file 7efa8c6
Tapani- Tapani- Remove brcm config option from staging area
(cherry picked from commit 70a61be)
0548d75
Tapani- Tapani- Remove brcm from staging area Makefile
(cherry picked from commit 48df1ff)
8bd6da5
Tapani- Tapani- Remove old staging driver for Broadcom bcm4329 wifi
(cherry picked from commit 076ad8b)
e69afb0
Tapani- Tapani- Add Broadcom FullMAC wireless driver, backported from kernel 3.5rc6 1e97b6f
John Weber johnweber wandboard: Add wireless support to defconfig f32736c
John Weber johnweber wandboard: add mipi csi support
Adds MIPI-CSI support for Wandboard

Upstream-Status: Inappropriate
06e4d85
Sapphire Haoning referenced this pull request from a commit
Filipe Manana fdmanana Btrfs: fix deadlock when iterating inode refs and running delayed inodes
While running btrfs/004 from xfstests, after 503 iterations, dmesg reported
a deadlock between tasks iterating inode refs and tasks running delayed inodes
(during a transaction commit).

It turns out that iterating inode refs implies doing one tree search and
release all nodes in the path except the leaf node, and then passing that
leaf node to btrfs_ref_to_path(), which in turn does another tree search
without releasing the lock on the leaf node it received as parameter.

This is a problem when other task wants to write to the btree as well and
ends up updating the leaf that is read locked - the writer task locks the
parent of the leaf and then blocks waiting for the leaf's lock to be
released - at the same time, the task executing btrfs_ref_to_path()
does a second tree search, without releasing the lock on the first leaf,
and wants to access a leaf (the same or another one) that is a child of
the same parent, resulting in a deadlock.

The trace reported by lockdep follows.

[84314.936373] INFO: task fsstress:11930 blocked for more than 120 seconds.
[84314.936381]       Tainted: G        W  O 3.12.0-fdm-btrfs-next-16+ #70
[84314.936383] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[84314.936386] fsstress        D ffff8806e1bf8000     0 11930  11926 0x00000000
[84314.936393]  ffff8804d6d89b78 0000000000000046 ffff8804d6d89b18 ffffffff810bd8bd
[84314.936399]  ffff8806e1bf8000 ffff8804d6d89fd8 ffff8804d6d89fd8 ffff8804d6d89fd8
[84314.936405]  ffff880806308000 ffff8806e1bf8000 ffff8804d6d89c08 ffff8804deb8f190
[84314.936410] Call Trace:
[84314.936421]  [<ffffffff810bd8bd>] ? trace_hardirqs_on+0xd/0x10
[84314.936428]  [<ffffffff81774269>] schedule+0x29/0x70
[84314.936451]  [<ffffffffa0715bf5>] btrfs_tree_lock+0x75/0x270 [btrfs]
[84314.936457]  [<ffffffff810715c0>] ? __init_waitqueue_head+0x60/0x60
[84314.936470]  [<ffffffffa06ba231>] btrfs_search_slot+0x7f1/0x930 [btrfs]
[84314.936489]  [<ffffffffa0731c2a>] ? __btrfs_run_delayed_items+0x13a/0x1e0 [btrfs]
[84314.936504]  [<ffffffffa06d2e1f>] btrfs_lookup_inode+0x2f/0xa0 [btrfs]
[84314.936510]  [<ffffffff810bd6ef>] ? trace_hardirqs_on_caller+0x1f/0x1e0
[84314.936528]  [<ffffffffa073173c>] __btrfs_update_delayed_inode+0x4c/0x1d0 [btrfs]
[84314.936543]  [<ffffffffa0731c2a>] ? __btrfs_run_delayed_items+0x13a/0x1e0 [btrfs]
[84314.936558]  [<ffffffffa0731c2a>] ? __btrfs_run_delayed_items+0x13a/0x1e0 [btrfs]
[84314.936573]  [<ffffffffa0731c82>] __btrfs_run_delayed_items+0x192/0x1e0 [btrfs]
[84314.936589]  [<ffffffffa0731d03>] btrfs_run_delayed_items+0x13/0x20 [btrfs]
[84314.936604]  [<ffffffffa06dbcd4>] btrfs_flush_all_pending_stuffs+0x24/0x80 [btrfs]
[84314.936620]  [<ffffffffa06ddc13>] btrfs_commit_transaction+0x223/0xa20 [btrfs]
[84314.936630]  [<ffffffffa06ae5ae>] btrfs_sync_fs+0x6e/0x110 [btrfs]
[84314.936635]  [<ffffffff811d0b50>] ? __sync_filesystem+0x60/0x60
[84314.936639]  [<ffffffff811d0b50>] ? __sync_filesystem+0x60/0x60
[84314.936643]  [<ffffffff811d0b70>] sync_fs_one_sb+0x20/0x30
[84314.936648]  [<ffffffff811a3541>] iterate_supers+0xf1/0x100
[84314.936652]  [<ffffffff811d0c45>] sys_sync+0x55/0x90
[84314.936658]  [<ffffffff8177ef12>] system_call_fastpath+0x16/0x1b
[84314.936660] INFO: lockdep is turned off.
[84314.936663] INFO: task btrfs:11955 blocked for more than 120 seconds.
[84314.936666]       Tainted: G        W  O 3.12.0-fdm-btrfs-next-16+ #70
[84314.936668] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[84314.936670] btrfs           D ffff880541729a88     0 11955  11608 0x00000000
[84314.936674]  ffff880541729a38 0000000000000046 ffff8805417299d8 ffffffff810bd8bd
[84314.936680]  ffff88075430c8a0 ffff880541729fd8 ffff880541729fd8 ffff880541729fd8
[84314.936685]  ffffffff81c104e0 ffff88075430c8a0 ffff8804de8b00b8 ffff8804de8b0000
[84314.936690] Call Trace:
[84314.936695]  [<ffffffff810bd8bd>] ? trace_hardirqs_on+0xd/0x10
[84314.936700]  [<ffffffff81774269>] schedule+0x29/0x70
[84314.936717]  [<ffffffffa0715815>] btrfs_tree_read_lock+0xd5/0x140 [btrfs]
[84314.936721]  [<ffffffff810715c0>] ? __init_waitqueue_head+0x60/0x60
[84314.936733]  [<ffffffffa06ba201>] btrfs_search_slot+0x7c1/0x930 [btrfs]
[84314.936746]  [<ffffffffa06bd505>] btrfs_find_item+0x55/0x160 [btrfs]
[84314.936763]  [<ffffffffa06ff689>] ? free_extent_buffer+0x49/0xc0 [btrfs]
[84314.936780]  [<ffffffffa073c9ca>] btrfs_ref_to_path+0xba/0x1e0 [btrfs]
[84314.936797]  [<ffffffffa06f9719>] ? release_extent_buffer+0xb9/0xe0 [btrfs]
[84314.936813]  [<ffffffffa06ff689>] ? free_extent_buffer+0x49/0xc0 [btrfs]
[84314.936830]  [<ffffffffa073cb50>] inode_to_path+0x60/0xd0 [btrfs]
[84314.936846]  [<ffffffffa073d365>] paths_from_inode+0x115/0x3c0 [btrfs]
[84314.936851]  [<ffffffff8118dd44>] ? kmem_cache_alloc_trace+0x114/0x200
[84314.936868]  [<ffffffffa0714494>] btrfs_ioctl+0xf14/0x2030 [btrfs]
[84314.936873]  [<ffffffff817762db>] ? _raw_spin_unlock+0x2b/0x50
[84314.936877]  [<ffffffff8116598f>] ? handle_mm_fault+0x34f/0xb00
[84314.936882]  [<ffffffff81075563>] ? up_read+0x23/0x40
[84314.936886]  [<ffffffff8177a41c>] ? __do_page_fault+0x20c/0x5a0
[84314.936892]  [<ffffffff811b2946>] do_vfs_ioctl+0x96/0x570
[84314.936896]  [<ffffffff81776e23>] ? error_sti+0x5/0x6
[84314.936901]  [<ffffffff810b71e8>] ? trace_hardirqs_off_caller+0x28/0xd0
[84314.936906]  [<ffffffff81776a09>] ? retint_swapgs+0xe/0x13
[84314.936910]  [<ffffffff811b2eb1>] SyS_ioctl+0x91/0xb0
[84314.936915]  [<ffffffff813eecde>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[84314.936920]  [<ffffffff8177ef12>] system_call_fastpath+0x16/0x1b
[84314.936922] INFO: lockdep is turned off.
[84434.866873] INFO: task btrfs-transacti:11921 blocked for more than 120 seconds.
[84434.866881]       Tainted: G        W  O 3.12.0-fdm-btrfs-next-16+ #70
[84434.866883] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[84434.866886] btrfs-transacti D ffff880755b6a478     0 11921      2 0x00000000
[84434.866893]  ffff8800735b9ce8 0000000000000046 ffff8800735b9c88 ffffffff810bd8bd
[84434.866899]  ffff8805a1b848a0 ffff8800735b9fd8 ffff8800735b9fd8 ffff8800735b9fd8
[84434.866904]  ffffffff81c104e0 ffff8805a1b848a0 ffff880755b6a478 ffff8804cece78f0
[84434.866910] Call Trace:
[84434.866920]  [<ffffffff810bd8bd>] ? trace_hardirqs_on+0xd/0x10
[84434.866927]  [<ffffffff81774269>] schedule+0x29/0x70
[84434.866948]  [<ffffffffa06dd2ef>] wait_current_trans.isra.33+0xbf/0x120 [btrfs]
[84434.866954]  [<ffffffff810715c0>] ? __init_waitqueue_head+0x60/0x60
[84434.866970]  [<ffffffffa06dec18>] start_transaction+0x388/0x5a0 [btrfs]
[84434.866985]  [<ffffffffa06db9b5>] ? transaction_kthread+0xb5/0x280 [btrfs]
[84434.866999]  [<ffffffffa06dee97>] btrfs_attach_transaction+0x17/0x20 [btrfs]
[84434.867012]  [<ffffffffa06dba9e>] transaction_kthread+0x19e/0x280 [btrfs]
[84434.867026]  [<ffffffffa06db900>] ? open_ctree+0x2260/0x2260 [btrfs]
[84434.867030]  [<ffffffff81070dad>] kthread+0xed/0x100
[84434.867035]  [<ffffffff81070cc0>] ? flush_kthread_worker+0x190/0x190
[84434.867040]  [<ffffffff8177ee6c>] ret_from_fork+0x7c/0xb0
[84434.867044]  [<ffffffff81070cc0>] ? flush_kthread_worker+0x190/0x190

Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
3fe81ce
Sapphire Haoning referenced this pull request from a commit
Filipe Manana fdmanana Btrfs: fix tree mod logging
While running the test btrfs/004 from xfstests in a loop, it failed
about 1 time out of 20 runs in my desktop. The failure happened in
the backref walking part of the test, and the test's error message was
like this:

  btrfs/004 93s ... [failed, exit status 1] - output mismatch (see /home/fdmanana/git/hub/xfstests_2/results//btrfs/004.out.bad)
      --- tests/btrfs/004.out	2013-11-26 18:25:29.263333714 +0000
      +++ /home/fdmanana/git/hub/xfstests_2/results//btrfs/004.out.bad	2013-12-10 15:25:10.327518516 +0000
      @@ -1,3 +1,8 @@
       QA output created by 004
       *** test backref walking
      -*** done
      +unexpected output from
      +	/home/fdmanana/git/hub/btrfs-progs/btrfs inspect-internal logical-resolve -P 141512704 /home/fdmanana/btrfs-tests/scratch_1
      +expected inum: 405, expected address: 454656, file: /home/fdmanana/btrfs-tests/scratch_1/snap1/p0/d6/d3d/d156/fce, got:
      +
       ...
       (Run 'diff -u tests/btrfs/004.out /home/fdmanana/git/hub/xfstests_2/results//btrfs/004.out.bad' to see the entire diff)
  Ran: btrfs/004
  Failures: btrfs/004
  Failed 1 of 1 tests

But immediately after the test finished, the btrfs inspect-internal command
returned the expected output:

  $ btrfs inspect-internal logical-resolve -P 141512704 /home/fdmanana/btrfs-tests/scratch_1
  inode 405 offset 454656 root 258
  inode 405 offset 454656 root 5

It turned out this was because the btrfs_search_old_slot() calls performed
during backref walking (backref.c:__resolve_indirect_ref) were not finding
anything. The reason for this turned out to be that the tree mod logging
code was not logging some node multi-step operations atomically, therefore
btrfs_search_old_slot() callers iterated often over an incomplete tree that
wasn't fully consistent with any tree state from the past. Besides missing
items, this often (but not always) resulted in -EIO errors during old slot
searches, reported in dmesg like this:

[ 4299.933936] ------------[ cut here ]------------
[ 4299.933949] WARNING: CPU: 0 PID: 23190 at fs/btrfs/ctree.c:1343 btrfs_search_old_slot+0x57b/0xab0 [btrfs]()
[ 4299.933950] Modules linked in: btrfs raid6_pq xor pci_stub vboxpci(O) vboxnetadp(O) vboxnetflt(O) vboxdrv(O) bnep rfcomm bluetooth parport_pc ppdev binfmt_misc joydev snd_hda_codec_h
[ 4299.933977] CPU: 0 PID: 23190 Comm: btrfs Tainted: G        W  O 3.12.0-fdm-btrfs-next-16+ #70
[ 4299.933978] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./Z77 Pro4, BIOS P1.50 09/04/2012
[ 4299.933979]  000000000000053f ffff8806f3fd98f8 ffffffff8176d284 0000000000000007
[ 4299.933982]  0000000000000000 ffff8806f3fd9938 ffffffff8104a81c ffff880659c64b70
[ 4299.933984]  ffff880659c643d0 ffff8806599233d8 ffff880701e2e938 0000160000000000
[ 4299.933987] Call Trace:
[ 4299.933991]  [<ffffffff8176d284>] dump_stack+0x55/0x76
[ 4299.933994]  [<ffffffff8104a81c>] warn_slowpath_common+0x8c/0xc0
[ 4299.933997]  [<ffffffff8104a86a>] warn_slowpath_null+0x1a/0x20
[ 4299.934003]  [<ffffffffa065d3bb>] btrfs_search_old_slot+0x57b/0xab0 [btrfs]
[ 4299.934005]  [<ffffffff81775f3b>] ? _raw_read_unlock+0x2b/0x50
[ 4299.934010]  [<ffffffffa0655001>] ? __tree_mod_log_search+0x81/0xc0 [btrfs]
[ 4299.934019]  [<ffffffffa06dd9b0>] __resolve_indirect_refs+0x130/0x5f0 [btrfs]
[ 4299.934027]  [<ffffffffa06a21f1>] ? free_extent_buffer+0x61/0xc0 [btrfs]
[ 4299.934034]  [<ffffffffa06de39c>] find_parent_nodes+0x1fc/0xe40 [btrfs]
[ 4299.934042]  [<ffffffffa06b13e0>] ? defrag_lookup_extent+0xe0/0xe0 [btrfs]
[ 4299.934048]  [<ffffffffa06b13e0>] ? defrag_lookup_extent+0xe0/0xe0 [btrfs]
[ 4299.934056]  [<ffffffffa06df980>] iterate_extent_inodes+0xe0/0x250 [btrfs]
[ 4299.934058]  [<ffffffff817762db>] ? _raw_spin_unlock+0x2b/0x50
[ 4299.934065]  [<ffffffffa06dfb82>] iterate_inodes_from_logical+0x92/0xb0 [btrfs]
[ 4299.934071]  [<ffffffffa06b13e0>] ? defrag_lookup_extent+0xe0/0xe0 [btrfs]
[ 4299.934078]  [<ffffffffa06b7015>] btrfs_ioctl+0xf65/0x1f60 [btrfs]
[ 4299.934080]  [<ffffffff811658b8>] ? handle_mm_fault+0x278/0xb00
[ 4299.934083]  [<ffffffff81075563>] ? up_read+0x23/0x40
[ 4299.934085]  [<ffffffff8177a41c>] ? __do_page_fault+0x20c/0x5a0
[ 4299.934088]  [<ffffffff811b2946>] do_vfs_ioctl+0x96/0x570
[ 4299.934090]  [<ffffffff81776e23>] ? error_sti+0x5/0x6
[ 4299.934093]  [<ffffffff810b71e8>] ? trace_hardirqs_off_caller+0x28/0xd0
[ 4299.934096]  [<ffffffff81776a09>] ? retint_swapgs+0xe/0x13
[ 4299.934098]  [<ffffffff811b2eb1>] SyS_ioctl+0x91/0xb0
[ 4299.934100]  [<ffffffff813eecde>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[ 4299.934102]  [<ffffffff8177ef12>] system_call_fastpath+0x16/0x1b
[ 4299.934102]  [<ffffffff8177ef12>] system_call_fastpath+0x16/0x1b
[ 4299.934104] ---[ end trace 48f0cfc902491414 ]---
[ 4299.934378] btrfs bad fsid on block 0

These tree mod log operations that must be performed atomically, tree_mod_log_free_eb,
tree_mod_log_eb_copy, tree_mod_log_insert_root and tree_mod_log_insert_move, used to
be performed atomically before the following commit:

  c8cc634
  (Btrfs: stop using GFP_ATOMIC for the tree mod log allocations)

That change removed the atomicity of such operations. This patch restores the
atomicity while still not doing the GFP_ATOMIC allocations of tree_mod_elem
structures, so it has to do the allocations using GFP_NOFS before acquiring
the mod log lock.

This issue has been experienced by several users recently, such as for example:

  http://www.spinics.net/lists/linux-btrfs/msg28574.html

After running the btrfs/004 test for 679 consecutive iterations with this
patch applied, I didn't ran into the issue anymore.

Cc: stable@vger.kernel.org
Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
5de865e
Preeti U Murthy preeti-u-murthy referenced this pull request from a commit in preeti-u-murthy/linux
Fan Du {pktgen, xfrm} Correct xfrm state lock usage when transforming
xfrm_state lock protects its state, i.e., VALID/DEAD and statistics,
not the transforming procedure, as both mode/type output functions
are reentrant.

Another issue is state lock can be used in BH context when state timer
alarmed, after transformation in pktgen, update state statistics acquiring
state lock should disabled BH context for a moment. Otherwise LOCKDEP
critisize this:

[   62.354339] pktgen: Packet Generator for packet performance testing. Version: 2.74
[   62.655444]
[   62.655448] =================================
[   62.655451] [ INFO: inconsistent lock state ]
[   62.655455] 3.13.0-rc2+ #70 Not tainted
[   62.655457] ---------------------------------
[   62.655459] inconsistent {IN-SOFTIRQ-W} -> {SOFTIRQ-ON-W} usage.
[   62.655463] kpktgend_0/2764 [HC0[0]:SC0[0]:HE1:SE1] takes:
[   62.655466]  (&(&x->lock)->rlock){+.?...}, at: [<ffffffffa00886f6>] pktgen_thread_worker+0x1796/0x1860 [pktgen]
[   62.655479] {IN-SOFTIRQ-W} state was registered at:
[   62.655484]   [<ffffffff8109a61d>] __lock_acquire+0x62d/0x1d70
[   62.655492]   [<ffffffff8109c3c7>] lock_acquire+0x97/0x130
[   62.655498]   [<ffffffff81774af6>] _raw_spin_lock+0x36/0x70
[   62.655505]   [<ffffffff816dc3a3>] xfrm_timer_handler+0x43/0x290
[   62.655511]   [<ffffffff81059437>] __tasklet_hrtimer_trampoline+0x17/0x40
[   62.655519]   [<ffffffff8105a1b7>] tasklet_hi_action+0xd7/0xf0
[   62.655523]   [<ffffffff81059ac6>] __do_softirq+0xe6/0x2d0
[   62.655526]   [<ffffffff8105a026>] irq_exit+0x96/0xc0
[   62.655530]   [<ffffffff8177fd0a>] smp_apic_timer_interrupt+0x4a/0x60
[   62.655537]   [<ffffffff8177e96f>] apic_timer_interrupt+0x6f/0x80
[   62.655541]   [<ffffffff8100b7c6>] arch_cpu_idle+0x26/0x30
[   62.655547]   [<ffffffff810ace28>] cpu_startup_entry+0x88/0x2b0
[   62.655552]   [<ffffffff81761c3c>] rest_init+0xbc/0xd0
[   62.655557]   [<ffffffff81ea5e5e>] start_kernel+0x3c4/0x3d1
[   62.655583]   [<ffffffff81ea55a8>] x86_64_start_reservations+0x2a/0x2c
[   62.655588]   [<ffffffff81ea569f>] x86_64_start_kernel+0xf5/0xfc
[   62.655592] irq event stamp: 77
[   62.655594] hardirqs last  enabled at (77): [<ffffffff810ab7f2>] vprintk_emit+0x1b2/0x520
[   62.655597] hardirqs last disabled at (76): [<ffffffff810ab684>] vprintk_emit+0x44/0x520
[   62.655601] softirqs last  enabled at (22): [<ffffffff81059b57>] __do_softirq+0x177/0x2d0
[   62.655605] softirqs last disabled at (15): [<ffffffff8105a026>] irq_exit+0x96/0xc0
[   62.655609]
[   62.655609] other info that might help us debug this:
[   62.655613]  Possible unsafe locking scenario:
[   62.655613]
[   62.655616]        CPU0
[   62.655617]        ----
[   62.655618]   lock(&(&x->lock)->rlock);
[   62.655622]   <Interrupt>
[   62.655623]     lock(&(&x->lock)->rlock);
[   62.655626]
[   62.655626]  *** DEADLOCK ***
[   62.655626]
[   62.655629] no locks held by kpktgend_0/2764.
[   62.655631]
[   62.655631] stack backtrace:
[   62.655636] CPU: 0 PID: 2764 Comm: kpktgend_0 Not tainted 3.13.0-rc2+ #70
[   62.655638] Hardware name: innotek GmbH VirtualBox, BIOS VirtualBox 12/01/2006
[   62.655642]  ffffffff8216b7b0 ffff88001be43ab8 ffffffff8176af37 0000000000000007
[   62.655652]  ffff88001c8d4fc0 ffff88001be43b18 ffffffff81766d78 0000000000000000
[   62.655663]  ffff880000000001 ffff880000000001 ffffffff8101025f ffff88001be43b18
[   62.655671] Call Trace:
[   62.655680]  [<ffffffff8176af37>] dump_stack+0x46/0x58
[   62.655685]  [<ffffffff81766d78>] print_usage_bug+0x1f1/0x202
[   62.655691]  [<ffffffff8101025f>] ? save_stack_trace+0x2f/0x50
[   62.655696]  [<ffffffff81099f8c>] mark_lock+0x28c/0x2f0
[   62.655700]  [<ffffffff810994b0>] ? check_usage_forwards+0x150/0x150
[   62.655704]  [<ffffffff8109a67a>] __lock_acquire+0x68a/0x1d70
[   62.655712]  [<ffffffff81115b09>] ? irq_work_queue+0x69/0xb0
[   62.655717]  [<ffffffff810ab7f2>] ? vprintk_emit+0x1b2/0x520
[   62.655722]  [<ffffffff8109cec5>] ? trace_hardirqs_on_caller+0x105/0x1d0
[   62.655730]  [<ffffffffa00886f6>] ? pktgen_thread_worker+0x1796/0x1860 [pktgen]
[   62.655734]  [<ffffffff8109c3c7>] lock_acquire+0x97/0x130
[   62.655741]  [<ffffffffa00886f6>] ? pktgen_thread_worker+0x1796/0x1860 [pktgen]
[   62.655745]  [<ffffffff81774af6>] _raw_spin_lock+0x36/0x70
[   62.655752]  [<ffffffffa00886f6>] ? pktgen_thread_worker+0x1796/0x1860 [pktgen]
[   62.655758]  [<ffffffffa00886f6>] pktgen_thread_worker+0x1796/0x1860 [pktgen]
[   62.655766]  [<ffffffffa0087a79>] ? pktgen_thread_worker+0xb19/0x1860 [pktgen]
[   62.655771]  [<ffffffff8109cf9d>] ? trace_hardirqs_on+0xd/0x10
[   62.655777]  [<ffffffff81775410>] ? _raw_spin_unlock_irq+0x30/0x40
[   62.655785]  [<ffffffff8151faa0>] ? e1000_clean+0x9d0/0x9d0
[   62.655791]  [<ffffffff81094310>] ? __init_waitqueue_head+0x60/0x60
[   62.655795]  [<ffffffff81094310>] ? __init_waitqueue_head+0x60/0x60
[   62.655800]  [<ffffffffa0086f60>] ? mod_cur_headers+0x7f0/0x7f0 [pktgen]
[   62.655806]  [<ffffffff81078f84>] kthread+0xe4/0x100
[   62.655813]  [<ffffffff81078ea0>] ? flush_kthread_worker+0x170/0x170
[   62.655819]  [<ffffffff8177dc6c>] ret_from_fork+0x7c/0xb0
[   62.655824]  [<ffffffff81078ea0>] ? flush_kthread_worker+0x170/0x170

Signed-off-by: Fan Du <fan.du@windriver.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
0af0a41
Stephen Warren swarren referenced this pull request from a commit in swarren/linux-tegra
Andrew Morton kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2-checkpa…
…tch-fixes

WARNING: line over 80 characters
#67: FILE: kernel/kmod.c:214:
+	 * Kthreadd can be restricted to a set of processors if the user wants to

WARNING: line over 80 characters
#69: FILE: kernel/kmod.c:216:
+	 * we do not want to disturb the other processors here either so we start

WARNING: line over 80 characters
#70: FILE: kernel/kmod.c:217:
+	 * the usermode helper threads only on the processors allowed for kthreadd.

total: 0 errors, 3 warnings, 44 lines checked

./patches/kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Christoph Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
93ba3a4
Kronat kronat referenced this pull request from a commit in kronat/linux
Borislav Petkov x86/boot: Further compress CPUs bootup message
Turn it into (for example):

[    0.073380] x86: Booting SMP configuration:
[    0.074005] .... node   #0, CPUs:          #1   #2   #3   #4   #5   #6   #7
[    0.603005] .... node   #1, CPUs:     #8   #9  #10  #11  #12  #13  #14  #15
[    1.200005] .... node   #2, CPUs:    #16  #17  #18  #19  #20  #21  #22  #23
[    1.796005] .... node   #3, CPUs:    #24  #25  #26  #27  #28  #29  #30  #31
[    2.393005] .... node   #4, CPUs:    #32  #33  #34  #35  #36  #37  #38  #39
[    2.996005] .... node   #5, CPUs:    #40  #41  #42  #43  #44  #45  #46  #47
[    3.600005] .... node   #6, CPUs:    #48  #49  #50  #51  #52  #53  #54  #55
[    4.202005] .... node   #7, CPUs:    #56  #57  #58  #59  #60  #61  #62  #63
[    4.811005] .... node   #8, CPUs:    #64  #65  #66  #67  #68  #69  #70  #71
[    5.421006] .... node   #9, CPUs:    #72  #73  #74  #75  #76  #77  #78  #79
[    6.032005] .... node  #10, CPUs:    #80  #81  #82  #83  #84  #85  #86  #87
[    6.648006] .... node  #11, CPUs:    #88  #89  #90  #91  #92  #93  #94  #95
[    7.262005] .... node  #12, CPUs:    #96  #97  #98  #99 #100 #101 #102 #103
[    7.865005] .... node  #13, CPUs:   #104 #105 #106 #107 #108 #109 #110 #111
[    8.466005] .... node  #14, CPUs:   #112 #113 #114 #115 #116 #117 #118 #119
[    9.073006] .... node  #15, CPUs:   #120 #121 #122 #123 #124 #125 #126 #127
[    9.679901] x86: Booted up 16 nodes, 128 CPUs

and drop useless elements.

Change num_digits() to hpa's division-avoiding, cell-phone-typed
version which he went at great lengths and pains to submit on a
Saturday evening.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: huawei.libin@huawei.com
Cc: wangyijing@huawei.com
Cc: fenghua.yu@intel.com
Cc: guohanjun@huawei.com
Cc: paul.gortmaker@windriver.com
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20130930095624.GB16383@pd.tnic
Signed-off-by: Ingo Molnar <mingo@kernel.org>
a17bce4
Stephen Warren swarren referenced this pull request from a commit in swarren/linux-tegra
Andrew Morton kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2-checkpa…
…tch-fixes

WARNING: line over 80 characters
#67: FILE: kernel/kmod.c:214:
+	 * Kthreadd can be restricted to a set of processors if the user wants to

WARNING: line over 80 characters
#69: FILE: kernel/kmod.c:216:
+	 * we do not want to disturb the other processors here either so we start

WARNING: line over 80 characters
#70: FILE: kernel/kmod.c:217:
+	 * the usermode helper threads only on the processors allowed for kthreadd.

total: 0 errors, 3 warnings, 44 lines checked

./patches/kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Christoph Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
1962be7
Stephen Warren swarren referenced this pull request from a commit in swarren/linux-tegra
Andrew Morton kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2-checkpa…
…tch-fixes

WARNING: line over 80 characters
#67: FILE: kernel/kmod.c:214:
+	 * Kthreadd can be restricted to a set of processors if the user wants to

WARNING: line over 80 characters
#69: FILE: kernel/kmod.c:216:
+	 * we do not want to disturb the other processors here either so we start

WARNING: line over 80 characters
#70: FILE: kernel/kmod.c:217:
+	 * the usermode helper threads only on the processors allowed for kthreadd.

total: 0 errors, 3 warnings, 44 lines checked

./patches/kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Christoph Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
f80e1c7
Naoya Horiguchi Naoya-Horiguchi referenced this pull request from a commit
Andrew Morton kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2-checkpa…
…tch-fixes

WARNING: line over 80 characters
#67: FILE: kernel/kmod.c:214:
+	 * Kthreadd can be restricted to a set of processors if the user wants to

WARNING: line over 80 characters
#69: FILE: kernel/kmod.c:216:
+	 * we do not want to disturb the other processors here either so we start

WARNING: line over 80 characters
#70: FILE: kernel/kmod.c:217:
+	 * the usermode helper threads only on the processors allowed for kthreadd.

total: 0 errors, 3 warnings, 44 lines checked

./patches/kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Christoph Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
5388713
chandan chandanr referenced this pull request from a commit in chandanr/linux
Filipe Manana fdmanana Btrfs: fix deadlock when iterating inode refs and running delayed inodes
While running btrfs/004 from xfstests, after 503 iterations, dmesg reported
a deadlock between tasks iterating inode refs and tasks running delayed inodes
(during a transaction commit).

It turns out that iterating inode refs implies doing one tree search and
release all nodes in the path except the leaf node, and then passing that
leaf node to btrfs_ref_to_path(), which in turn does another tree search
without releasing the lock on the leaf node it received as parameter.

This is a problem when other task wants to write to the btree as well and
ends up updating the leaf that is read locked - the writer task locks the
parent of the leaf and then blocks waiting for the leaf's lock to be
released - at the same time, the task executing btrfs_ref_to_path()
does a second tree search, without releasing the lock on the first leaf,
and wants to access a leaf (the same or another one) that is a child of
the same parent, resulting in a deadlock.

The trace reported by lockdep follows.

[84314.936373] INFO: task fsstress:11930 blocked for more than 120 seconds.
[84314.936381]       Tainted: G        W  O 3.12.0-fdm-btrfs-next-16+ #70
[84314.936383] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[84314.936386] fsstress        D ffff8806e1bf8000     0 11930  11926 0x00000000
[84314.936393]  ffff8804d6d89b78 0000000000000046 ffff8804d6d89b18 ffffffff810bd8bd
[84314.936399]  ffff8806e1bf8000 ffff8804d6d89fd8 ffff8804d6d89fd8 ffff8804d6d89fd8
[84314.936405]  ffff880806308000 ffff8806e1bf8000 ffff8804d6d89c08 ffff8804deb8f190
[84314.936410] Call Trace:
[84314.936421]  [<ffffffff810bd8bd>] ? trace_hardirqs_on+0xd/0x10
[84314.936428]  [<ffffffff81774269>] schedule+0x29/0x70
[84314.936451]  [<ffffffffa0715bf5>] btrfs_tree_lock+0x75/0x270 [btrfs]
[84314.936457]  [<ffffffff810715c0>] ? __init_waitqueue_head+0x60/0x60
[84314.936470]  [<ffffffffa06ba231>] btrfs_search_slot+0x7f1/0x930 [btrfs]
[84314.936489]  [<ffffffffa0731c2a>] ? __btrfs_run_delayed_items+0x13a/0x1e0 [btrfs]
[84314.936504]  [<ffffffffa06d2e1f>] btrfs_lookup_inode+0x2f/0xa0 [btrfs]
[84314.936510]  [<ffffffff810bd6ef>] ? trace_hardirqs_on_caller+0x1f/0x1e0
[84314.936528]  [<ffffffffa073173c>] __btrfs_update_delayed_inode+0x4c/0x1d0 [btrfs]
[84314.936543]  [<ffffffffa0731c2a>] ? __btrfs_run_delayed_items+0x13a/0x1e0 [btrfs]
[84314.936558]  [<ffffffffa0731c2a>] ? __btrfs_run_delayed_items+0x13a/0x1e0 [btrfs]
[84314.936573]  [<ffffffffa0731c82>] __btrfs_run_delayed_items+0x192/0x1e0 [btrfs]
[84314.936589]  [<ffffffffa0731d03>] btrfs_run_delayed_items+0x13/0x20 [btrfs]
[84314.936604]  [<ffffffffa06dbcd4>] btrfs_flush_all_pending_stuffs+0x24/0x80 [btrfs]
[84314.936620]  [<ffffffffa06ddc13>] btrfs_commit_transaction+0x223/0xa20 [btrfs]
[84314.936630]  [<ffffffffa06ae5ae>] btrfs_sync_fs+0x6e/0x110 [btrfs]
[84314.936635]  [<ffffffff811d0b50>] ? __sync_filesystem+0x60/0x60
[84314.936639]  [<ffffffff811d0b50>] ? __sync_filesystem+0x60/0x60
[84314.936643]  [<ffffffff811d0b70>] sync_fs_one_sb+0x20/0x30
[84314.936648]  [<ffffffff811a3541>] iterate_supers+0xf1/0x100
[84314.936652]  [<ffffffff811d0c45>] sys_sync+0x55/0x90
[84314.936658]  [<ffffffff8177ef12>] system_call_fastpath+0x16/0x1b
[84314.936660] INFO: lockdep is turned off.
[84314.936663] INFO: task btrfs:11955 blocked for more than 120 seconds.
[84314.936666]       Tainted: G        W  O 3.12.0-fdm-btrfs-next-16+ #70
[84314.936668] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[84314.936670] btrfs           D ffff880541729a88     0 11955  11608 0x00000000
[84314.936674]  ffff880541729a38 0000000000000046 ffff8805417299d8 ffffffff810bd8bd
[84314.936680]  ffff88075430c8a0 ffff880541729fd8 ffff880541729fd8 ffff880541729fd8
[84314.936685]  ffffffff81c104e0 ffff88075430c8a0 ffff8804de8b00b8 ffff8804de8b0000
[84314.936690] Call Trace:
[84314.936695]  [<ffffffff810bd8bd>] ? trace_hardirqs_on+0xd/0x10
[84314.936700]  [<ffffffff81774269>] schedule+0x29/0x70
[84314.936717]  [<ffffffffa0715815>] btrfs_tree_read_lock+0xd5/0x140 [btrfs]
[84314.936721]  [<ffffffff810715c0>] ? __init_waitqueue_head+0x60/0x60
[84314.936733]  [<ffffffffa06ba201>] btrfs_search_slot+0x7c1/0x930 [btrfs]
[84314.936746]  [<ffffffffa06bd505>] btrfs_find_item+0x55/0x160 [btrfs]
[84314.936763]  [<ffffffffa06ff689>] ? free_extent_buffer+0x49/0xc0 [btrfs]
[84314.936780]  [<ffffffffa073c9ca>] btrfs_ref_to_path+0xba/0x1e0 [btrfs]
[84314.936797]  [<ffffffffa06f9719>] ? release_extent_buffer+0xb9/0xe0 [btrfs]
[84314.936813]  [<ffffffffa06ff689>] ? free_extent_buffer+0x49/0xc0 [btrfs]
[84314.936830]  [<ffffffffa073cb50>] inode_to_path+0x60/0xd0 [btrfs]
[84314.936846]  [<ffffffffa073d365>] paths_from_inode+0x115/0x3c0 [btrfs]
[84314.936851]  [<ffffffff8118dd44>] ? kmem_cache_alloc_trace+0x114/0x200
[84314.936868]  [<ffffffffa0714494>] btrfs_ioctl+0xf14/0x2030 [btrfs]
[84314.936873]  [<ffffffff817762db>] ? _raw_spin_unlock+0x2b/0x50
[84314.936877]  [<ffffffff8116598f>] ? handle_mm_fault+0x34f/0xb00
[84314.936882]  [<ffffffff81075563>] ? up_read+0x23/0x40
[84314.936886]  [<ffffffff8177a41c>] ? __do_page_fault+0x20c/0x5a0
[84314.936892]  [<ffffffff811b2946>] do_vfs_ioctl+0x96/0x570
[84314.936896]  [<ffffffff81776e23>] ? error_sti+0x5/0x6
[84314.936901]  [<ffffffff810b71e8>] ? trace_hardirqs_off_caller+0x28/0xd0
[84314.936906]  [<ffffffff81776a09>] ? retint_swapgs+0xe/0x13
[84314.936910]  [<ffffffff811b2eb1>] SyS_ioctl+0x91/0xb0
[84314.936915]  [<ffffffff813eecde>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[84314.936920]  [<ffffffff8177ef12>] system_call_fastpath+0x16/0x1b
[84314.936922] INFO: lockdep is turned off.
[84434.866873] INFO: task btrfs-transacti:11921 blocked for more than 120 seconds.
[84434.866881]       Tainted: G        W  O 3.12.0-fdm-btrfs-next-16+ #70
[84434.866883] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[84434.866886] btrfs-transacti D ffff880755b6a478     0 11921      2 0x00000000
[84434.866893]  ffff8800735b9ce8 0000000000000046 ffff8800735b9c88 ffffffff810bd8bd
[84434.866899]  ffff8805a1b848a0 ffff8800735b9fd8 ffff8800735b9fd8 ffff8800735b9fd8
[84434.866904]  ffffffff81c104e0 ffff8805a1b848a0 ffff880755b6a478 ffff8804cece78f0
[84434.866910] Call Trace:
[84434.866920]  [<ffffffff810bd8bd>] ? trace_hardirqs_on+0xd/0x10
[84434.866927]  [<ffffffff81774269>] schedule+0x29/0x70
[84434.866948]  [<ffffffffa06dd2ef>] wait_current_trans.isra.33+0xbf/0x120 [btrfs]
[84434.866954]  [<ffffffff810715c0>] ? __init_waitqueue_head+0x60/0x60
[84434.866970]  [<ffffffffa06dec18>] start_transaction+0x388/0x5a0 [btrfs]
[84434.866985]  [<ffffffffa06db9b5>] ? transaction_kthread+0xb5/0x280 [btrfs]
[84434.866999]  [<ffffffffa06dee97>] btrfs_attach_transaction+0x17/0x20 [btrfs]
[84434.867012]  [<ffffffffa06dba9e>] transaction_kthread+0x19e/0x280 [btrfs]
[84434.867026]  [<ffffffffa06db900>] ? open_ctree+0x2260/0x2260 [btrfs]
[84434.867030]  [<ffffffff81070dad>] kthread+0xed/0x100
[84434.867035]  [<ffffffff81070cc0>] ? flush_kthread_worker+0x190/0x190
[84434.867040]  [<ffffffff8177ee6c>] ret_from_fork+0x7c/0xb0
[84434.867044]  [<ffffffff81070cc0>] ? flush_kthread_worker+0x190/0x190

Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
8e27c3e
chandan chandanr referenced this pull request from a commit in chandanr/linux
Filipe Manana fdmanana Btrfs: fix tree mod logging
While running the test btrfs/004 from xfstests in a loop, it failed
about 1 time out of 20 runs in my desktop. The failure happened in
the backref walking part of the test, and the test's error message was
like this:

  btrfs/004 93s ... [failed, exit status 1] - output mismatch (see /home/fdmanana/git/hub/xfstests_2/results//btrfs/004.out.bad)
      --- tests/btrfs/004.out	2013-11-26 18:25:29.263333714 +0000
      +++ /home/fdmanana/git/hub/xfstests_2/results//btrfs/004.out.bad	2013-12-10 15:25:10.327518516 +0000
      @@ -1,3 +1,8 @@
       QA output created by 004
       *** test backref walking
      -*** done
      +unexpected output from
      +	/home/fdmanana/git/hub/btrfs-progs/btrfs inspect-internal logical-resolve -P 141512704 /home/fdmanana/btrfs-tests/scratch_1
      +expected inum: 405, expected address: 454656, file: /home/fdmanana/btrfs-tests/scratch_1/snap1/p0/d6/d3d/d156/fce, got:
      +
       ...
       (Run 'diff -u tests/btrfs/004.out /home/fdmanana/git/hub/xfstests_2/results//btrfs/004.out.bad' to see the entire diff)
  Ran: btrfs/004
  Failures: btrfs/004
  Failed 1 of 1 tests

But immediately after the test finished, the btrfs inspect-internal command
returned the expected output:

  $ btrfs inspect-internal logical-resolve -P 141512704 /home/fdmanana/btrfs-tests/scratch_1
  inode 405 offset 454656 root 258
  inode 405 offset 454656 root 5

It turned out this was because the btrfs_search_old_slot() calls performed
during backref walking (backref.c:__resolve_indirect_ref) were not finding
anything. The reason for this turned out to be that the tree mod logging
code was not logging some node multi-step operations atomically, therefore
btrfs_search_old_slot() callers iterated often over an incomplete tree that
wasn't fully consistent with any tree state from the past. Besides missing
items, this often (but not always) resulted in -EIO errors during old slot
searches, reported in dmesg like this:

[ 4299.933936] ------------[ cut here ]------------
[ 4299.933949] WARNING: CPU: 0 PID: 23190 at fs/btrfs/ctree.c:1343 btrfs_search_old_slot+0x57b/0xab0 [btrfs]()
[ 4299.933950] Modules linked in: btrfs raid6_pq xor pci_stub vboxpci(O) vboxnetadp(O) vboxnetflt(O) vboxdrv(O) bnep rfcomm bluetooth parport_pc ppdev binfmt_misc joydev snd_hda_codec_h
[ 4299.933977] CPU: 0 PID: 23190 Comm: btrfs Tainted: G        W  O 3.12.0-fdm-btrfs-next-16+ #70
[ 4299.933978] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./Z77 Pro4, BIOS P1.50 09/04/2012
[ 4299.933979]  000000000000053f ffff8806f3fd98f8 ffffffff8176d284 0000000000000007
[ 4299.933982]  0000000000000000 ffff8806f3fd9938 ffffffff8104a81c ffff880659c64b70
[ 4299.933984]  ffff880659c643d0 ffff8806599233d8 ffff880701e2e938 0000160000000000
[ 4299.933987] Call Trace:
[ 4299.933991]  [<ffffffff8176d284>] dump_stack+0x55/0x76
[ 4299.933994]  [<ffffffff8104a81c>] warn_slowpath_common+0x8c/0xc0
[ 4299.933997]  [<ffffffff8104a86a>] warn_slowpath_null+0x1a/0x20
[ 4299.934003]  [<ffffffffa065d3bb>] btrfs_search_old_slot+0x57b/0xab0 [btrfs]
[ 4299.934005]  [<ffffffff81775f3b>] ? _raw_read_unlock+0x2b/0x50
[ 4299.934010]  [<ffffffffa0655001>] ? __tree_mod_log_search+0x81/0xc0 [btrfs]
[ 4299.934019]  [<ffffffffa06dd9b0>] __resolve_indirect_refs+0x130/0x5f0 [btrfs]
[ 4299.934027]  [<ffffffffa06a21f1>] ? free_extent_buffer+0x61/0xc0 [btrfs]
[ 4299.934034]  [<ffffffffa06de39c>] find_parent_nodes+0x1fc/0xe40 [btrfs]
[ 4299.934042]  [<ffffffffa06b13e0>] ? defrag_lookup_extent+0xe0/0xe0 [btrfs]
[ 4299.934048]  [<ffffffffa06b13e0>] ? defrag_lookup_extent+0xe0/0xe0 [btrfs]
[ 4299.934056]  [<ffffffffa06df980>] iterate_extent_inodes+0xe0/0x250 [btrfs]
[ 4299.934058]  [<ffffffff817762db>] ? _raw_spin_unlock+0x2b/0x50
[ 4299.934065]  [<ffffffffa06dfb82>] iterate_inodes_from_logical+0x92/0xb0 [btrfs]
[ 4299.934071]  [<ffffffffa06b13e0>] ? defrag_lookup_extent+0xe0/0xe0 [btrfs]
[ 4299.934078]  [<ffffffffa06b7015>] btrfs_ioctl+0xf65/0x1f60 [btrfs]
[ 4299.934080]  [<ffffffff811658b8>] ? handle_mm_fault+0x278/0xb00
[ 4299.934083]  [<ffffffff81075563>] ? up_read+0x23/0x40
[ 4299.934085]  [<ffffffff8177a41c>] ? __do_page_fault+0x20c/0x5a0
[ 4299.934088]  [<ffffffff811b2946>] do_vfs_ioctl+0x96/0x570
[ 4299.934090]  [<ffffffff81776e23>] ? error_sti+0x5/0x6
[ 4299.934093]  [<ffffffff810b71e8>] ? trace_hardirqs_off_caller+0x28/0xd0
[ 4299.934096]  [<ffffffff81776a09>] ? retint_swapgs+0xe/0x13
[ 4299.934098]  [<ffffffff811b2eb1>] SyS_ioctl+0x91/0xb0
[ 4299.934100]  [<ffffffff813eecde>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[ 4299.934102]  [<ffffffff8177ef12>] system_call_fastpath+0x16/0x1b
[ 4299.934102]  [<ffffffff8177ef12>] system_call_fastpath+0x16/0x1b
[ 4299.934104] ---[ end trace 48f0cfc902491414 ]---
[ 4299.934378] btrfs bad fsid on block 0

These tree mod log operations that must be performed atomically, tree_mod_log_free_eb,
tree_mod_log_eb_copy, tree_mod_log_insert_root and tree_mod_log_insert_move, used to
be performed atomically before the following commit:

  c8cc634
  (Btrfs: stop using GFP_ATOMIC for the tree mod log allocations)

That change removed the atomicity of such operations. This patch restores the
atomicity while still not doing the GFP_ATOMIC allocations of tree_mod_elem
structures, so it has to do the allocations using GFP_NOFS before acquiring
the mod log lock.

This issue has been experienced by several users recently, such as for example:

  http://www.spinics.net/lists/linux-btrfs/msg28574.html

After running the btrfs/004 test for 679 consecutive iterations with this
patch applied, I didn't ran into the issue anymore.

Cc: stable@vger.kernel.org
Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
5d15716
Brian Lilly brianlilly referenced this pull request from a commit in crystalfontz/cfa_10036_kernel
Filipe Manana fdmanana Btrfs: fix tree mod logging
commit 5de865e upstream.

While running the test btrfs/004 from xfstests in a loop, it failed
about 1 time out of 20 runs in my desktop. The failure happened in
the backref walking part of the test, and the test's error message was
like this:

  btrfs/004 93s ... [failed, exit status 1] - output mismatch (see /home/fdmanana/git/hub/xfstests_2/results//btrfs/004.out.bad)
      --- tests/btrfs/004.out	2013-11-26 18:25:29.263333714 +0000
      +++ /home/fdmanana/git/hub/xfstests_2/results//btrfs/004.out.bad	2013-12-10 15:25:10.327518516 +0000
      @@ -1,3 +1,8 @@
       QA output created by 004
       *** test backref walking
      -*** done
      +unexpected output from
      +	/home/fdmanana/git/hub/btrfs-progs/btrfs inspect-internal logical-resolve -P 141512704 /home/fdmanana/btrfs-tests/scratch_1
      +expected inum: 405, expected address: 454656, file: /home/fdmanana/btrfs-tests/scratch_1/snap1/p0/d6/d3d/d156/fce, got:
      +
       ...
       (Run 'diff -u tests/btrfs/004.out /home/fdmanana/git/hub/xfstests_2/results//btrfs/004.out.bad' to see the entire diff)
  Ran: btrfs/004
  Failures: btrfs/004
  Failed 1 of 1 tests

But immediately after the test finished, the btrfs inspect-internal command
returned the expected output:

  $ btrfs inspect-internal logical-resolve -P 141512704 /home/fdmanana/btrfs-tests/scratch_1
  inode 405 offset 454656 root 258
  inode 405 offset 454656 root 5

It turned out this was because the btrfs_search_old_slot() calls performed
during backref walking (backref.c:__resolve_indirect_ref) were not finding
anything. The reason for this turned out to be that the tree mod logging
code was not logging some node multi-step operations atomically, therefore
btrfs_search_old_slot() callers iterated often over an incomplete tree that
wasn't fully consistent with any tree state from the past. Besides missing
items, this often (but not always) resulted in -EIO errors during old slot
searches, reported in dmesg like this:

[ 4299.933936] ------------[ cut here ]------------
[ 4299.933949] WARNING: CPU: 0 PID: 23190 at fs/btrfs/ctree.c:1343 btrfs_search_old_slot+0x57b/0xab0 [btrfs]()
[ 4299.933950] Modules linked in: btrfs raid6_pq xor pci_stub vboxpci(O) vboxnetadp(O) vboxnetflt(O) vboxdrv(O) bnep rfcomm bluetooth parport_pc ppdev binfmt_misc joydev snd_hda_codec_h
[ 4299.933977] CPU: 0 PID: 23190 Comm: btrfs Tainted: G        W  O 3.12.0-fdm-btrfs-next-16+ #70
[ 4299.933978] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./Z77 Pro4, BIOS P1.50 09/04/2012
[ 4299.933979]  000000000000053f ffff8806f3fd98f8 ffffffff8176d284 0000000000000007
[ 4299.933982]  0000000000000000 ffff8806f3fd9938 ffffffff8104a81c ffff880659c64b70
[ 4299.933984]  ffff880659c643d0 ffff8806599233d8 ffff880701e2e938 0000160000000000
[ 4299.933987] Call Trace:
[ 4299.933991]  [<ffffffff8176d284>] dump_stack+0x55/0x76
[ 4299.933994]  [<ffffffff8104a81c>] warn_slowpath_common+0x8c/0xc0
[ 4299.933997]  [<ffffffff8104a86a>] warn_slowpath_null+0x1a/0x20
[ 4299.934003]  [<ffffffffa065d3bb>] btrfs_search_old_slot+0x57b/0xab0 [btrfs]
[ 4299.934005]  [<ffffffff81775f3b>] ? _raw_read_unlock+0x2b/0x50
[ 4299.934010]  [<ffffffffa0655001>] ? __tree_mod_log_search+0x81/0xc0 [btrfs]
[ 4299.934019]  [<ffffffffa06dd9b0>] __resolve_indirect_refs+0x130/0x5f0 [btrfs]
[ 4299.934027]  [<ffffffffa06a21f1>] ? free_extent_buffer+0x61/0xc0 [btrfs]
[ 4299.934034]  [<ffffffffa06de39c>] find_parent_nodes+0x1fc/0xe40 [btrfs]
[ 4299.934042]  [<ffffffffa06b13e0>] ? defrag_lookup_extent+0xe0/0xe0 [btrfs]
[ 4299.934048]  [<ffffffffa06b13e0>] ? defrag_lookup_extent+0xe0/0xe0 [btrfs]
[ 4299.934056]  [<ffffffffa06df980>] iterate_extent_inodes+0xe0/0x250 [btrfs]
[ 4299.934058]  [<ffffffff817762db>] ? _raw_spin_unlock+0x2b/0x50
[ 4299.934065]  [<ffffffffa06dfb82>] iterate_inodes_from_logical+0x92/0xb0 [btrfs]
[ 4299.934071]  [<ffffffffa06b13e0>] ? defrag_lookup_extent+0xe0/0xe0 [btrfs]
[ 4299.934078]  [<ffffffffa06b7015>] btrfs_ioctl+0xf65/0x1f60 [btrfs]
[ 4299.934080]  [<ffffffff811658b8>] ? handle_mm_fault+0x278/0xb00
[ 4299.934083]  [<ffffffff81075563>] ? up_read+0x23/0x40
[ 4299.934085]  [<ffffffff8177a41c>] ? __do_page_fault+0x20c/0x5a0
[ 4299.934088]  [<ffffffff811b2946>] do_vfs_ioctl+0x96/0x570
[ 4299.934090]  [<ffffffff81776e23>] ? error_sti+0x5/0x6
[ 4299.934093]  [<ffffffff810b71e8>] ? trace_hardirqs_off_caller+0x28/0xd0
[ 4299.934096]  [<ffffffff81776a09>] ? retint_swapgs+0xe/0x13
[ 4299.934098]  [<ffffffff811b2eb1>] SyS_ioctl+0x91/0xb0
[ 4299.934100]  [<ffffffff813eecde>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[ 4299.934102]  [<ffffffff8177ef12>] system_call_fastpath+0x16/0x1b
[ 4299.934102]  [<ffffffff8177ef12>] system_call_fastpath+0x16/0x1b
[ 4299.934104] ---[ end trace 48f0cfc902491414 ]---
[ 4299.934378] btrfs bad fsid on block 0

These tree mod log operations that must be performed atomically, tree_mod_log_free_eb,
tree_mod_log_eb_copy, tree_mod_log_insert_root and tree_mod_log_insert_move, used to
be performed atomically before the following commit:

  c8cc634
  (Btrfs: stop using GFP_ATOMIC for the tree mod log allocations)

That change removed the atomicity of such operations. This patch restores the
atomicity while still not doing the GFP_ATOMIC allocations of tree_mod_elem
structures, so it has to do the allocations using GFP_NOFS before acquiring
the mod log lock.

This issue has been experienced by several users recently, such as for example:

  http://www.spinics.net/lists/linux-btrfs/msg28574.html

After running the btrfs/004 test for 679 consecutive iterations with this
patch applied, I didn't ran into the issue anymore.

Cc: stable@vger.kernel.org
Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
3939448
Andreas Rohner zeitgeist87 referenced this pull request from a commit in zeitgeist87/linux
Andrew Morton kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2-checkpa…
…tch-fixes

WARNING: line over 80 characters
#67: FILE: kernel/kmod.c:214:
+	 * Kthreadd can be restricted to a set of processors if the user wants to

WARNING: line over 80 characters
#69: FILE: kernel/kmod.c:216:
+	 * we do not want to disturb the other processors here either so we start

WARNING: line over 80 characters
#70: FILE: kernel/kmod.c:217:
+	 * the usermode helper threads only on the processors allowed for kthreadd.

total: 0 errors, 3 warnings, 44 lines checked

./patches/kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Christoph Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
9a49037
Stephen Warren swarren referenced this pull request from a commit in swarren/linux-tegra
Andrew Morton kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2-checkpa…
…tch-fixes

WARNING: line over 80 characters
#67: FILE: kernel/kmod.c:214:
+	 * Kthreadd can be restricted to a set of processors if the user wants to

WARNING: line over 80 characters
#69: FILE: kernel/kmod.c:216:
+	 * we do not want to disturb the other processors here either so we start

WARNING: line over 80 characters
#70: FILE: kernel/kmod.c:217:
+	 * the usermode helper threads only on the processors allowed for kthreadd.

total: 0 errors, 3 warnings, 44 lines checked

./patches/kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Christoph Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
c334b7f
Дамјан Георгиевски gdamjan referenced this pull request from a commit in gdamjan/linux
Filipe Manana fdmanana Btrfs: fix tree mod logging
commit 5de865e upstream.

While running the test btrfs/004 from xfstests in a loop, it failed
about 1 time out of 20 runs in my desktop. The failure happened in
the backref walking part of the test, and the test's error message was
like this:

#  btrfs/004 93s ... [failed, exit status 1] - output mismatch (see /home/fdmanana/git/hub/xfstests_2/results//btrfs/004.out.bad)
#      --- tests/btrfs/004.out	2013-11-26 18:25:29.263333714 +0000
#      +++ /home/fdmanana/git/hub/xfstests_2/results//btrfs/004.out.bad	2013-12-10 15:25:10.327518516 +0000
#      @@ -1,3 +1,8 @@
#       QA output created by 004
#       *** test backref walking
#      -*** done
#      +unexpected output from
#      +	/home/fdmanana/git/hub/btrfs-progs/btrfs inspect-internal logical-resolve -P 141512704 /home/fdmanana/btrfs-tests/scratch_1
#      +expected inum: 405, expected address: 454656, file: /home/fdmanana/btrfs-tests/scratch_1/snap1/p0/d6/d3d/d156/fce, got:
#      +
       ...
       (Run 'diff -u tests/btrfs/004.out /home/fdmanana/git/hub/xfstests_2/results//btrfs/004.out.bad' to see the entire diff)
  Ran: btrfs/004
  Failures: btrfs/004
  Failed 1 of 1 tests

But immediately after the test finished, the btrfs inspect-internal command
returned the expected output:

  $ btrfs inspect-internal logical-resolve -P 141512704 /home/fdmanana/btrfs-tests/scratch_1
  inode 405 offset 454656 root 258
  inode 405 offset 454656 root 5

It turned out this was because the btrfs_search_old_slot() calls performed
during backref walking (backref.c:__resolve_indirect_ref) were not finding
anything. The reason for this turned out to be that the tree mod logging
code was not logging some node multi-step operations atomically, therefore
btrfs_search_old_slot() callers iterated often over an incomplete tree that
wasn't fully consistent with any tree state from the past. Besides missing
items, this often (but not always) resulted in -EIO errors during old slot
searches, reported in dmesg like this:

[ 4299.933936] ------------[ cut here ]------------
[ 4299.933949] WARNING: CPU: 0 PID: 23190 at fs/btrfs/ctree.c:1343 btrfs_search_old_slot+0x57b/0xab0 [btrfs]()
[ 4299.933950] Modules linked in: btrfs raid6_pq xor pci_stub vboxpci(O) vboxnetadp(O) vboxnetflt(O) vboxdrv(O) bnep rfcomm bluetooth parport_pc ppdev binfmt_misc joydev snd_hda_codec_h
[ 4299.933977] CPU: 0 PID: 23190 Comm: btrfs Tainted: G        W  O 3.12.0-fdm-btrfs-next-16+ #70
[ 4299.933978] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./Z77 Pro4, BIOS P1.50 09/04/2012
[ 4299.933979]  000000000000053f ffff8806f3fd98f8 ffffffff8176d284 0000000000000007
[ 4299.933982]  0000000000000000 ffff8806f3fd9938 ffffffff8104a81c ffff880659c64b70
[ 4299.933984]  ffff880659c643d0 ffff8806599233d8 ffff880701e2e938 0000160000000000
[ 4299.933987] Call Trace:
[ 4299.933991]  [<ffffffff8176d284>] dump_stack+0x55/0x76
[ 4299.933994]  [<ffffffff8104a81c>] warn_slowpath_common+0x8c/0xc0
[ 4299.933997]  [<ffffffff8104a86a>] warn_slowpath_null+0x1a/0x20
[ 4299.934003]  [<ffffffffa065d3bb>] btrfs_search_old_slot+0x57b/0xab0 [btrfs]
[ 4299.934005]  [<ffffffff81775f3b>] ? _raw_read_unlock+0x2b/0x50
[ 4299.934010]  [<ffffffffa0655001>] ? __tree_mod_log_search+0x81/0xc0 [btrfs]
[ 4299.934019]  [<ffffffffa06dd9b0>] __resolve_indirect_refs+0x130/0x5f0 [btrfs]
[ 4299.934027]  [<ffffffffa06a21f1>] ? free_extent_buffer+0x61/0xc0 [btrfs]
[ 4299.934034]  [<ffffffffa06de39c>] find_parent_nodes+0x1fc/0xe40 [btrfs]
[ 4299.934042]  [<ffffffffa06b13e0>] ? defrag_lookup_extent+0xe0/0xe0 [btrfs]
[ 4299.934048]  [<ffffffffa06b13e0>] ? defrag_lookup_extent+0xe0/0xe0 [btrfs]
[ 4299.934056]  [<ffffffffa06df980>] iterate_extent_inodes+0xe0/0x250 [btrfs]
[ 4299.934058]  [<ffffffff817762db>] ? _raw_spin_unlock+0x2b/0x50
[ 4299.934065]  [<ffffffffa06dfb82>] iterate_inodes_from_logical+0x92/0xb0 [btrfs]
[ 4299.934071]  [<ffffffffa06b13e0>] ? defrag_lookup_extent+0xe0/0xe0 [btrfs]
[ 4299.934078]  [<ffffffffa06b7015>] btrfs_ioctl+0xf65/0x1f60 [btrfs]
[ 4299.934080]  [<ffffffff811658b8>] ? handle_mm_fault+0x278/0xb00
[ 4299.934083]  [<ffffffff81075563>] ? up_read+0x23/0x40
[ 4299.934085]  [<ffffffff8177a41c>] ? __do_page_fault+0x20c/0x5a0
[ 4299.934088]  [<ffffffff811b2946>] do_vfs_ioctl+0x96/0x570
[ 4299.934090]  [<ffffffff81776e23>] ? error_sti+0x5/0x6
[ 4299.934093]  [<ffffffff810b71e8>] ? trace_hardirqs_off_caller+0x28/0xd0
[ 4299.934096]  [<ffffffff81776a09>] ? retint_swapgs+0xe/0x13
[ 4299.934098]  [<ffffffff811b2eb1>] SyS_ioctl+0x91/0xb0
[ 4299.934100]  [<ffffffff813eecde>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[ 4299.934102]  [<ffffffff8177ef12>] system_call_fastpath+0x16/0x1b
[ 4299.934102]  [<ffffffff8177ef12>] system_call_fastpath+0x16/0x1b
[ 4299.934104] ---[ end trace 48f0cfc902491414 ]---
[ 4299.934378] btrfs bad fsid on block 0

These tree mod log operations that must be performed atomically, tree_mod_log_free_eb,
tree_mod_log_eb_copy, tree_mod_log_insert_root and tree_mod_log_insert_move, used to
be performed atomically before the following commit:

  c8cc634
  (Btrfs: stop using GFP_ATOMIC for the tree mod log allocations)

That change removed the atomicity of such operations. This patch restores the
atomicity while still not doing the GFP_ATOMIC allocations of tree_mod_elem
structures, so it has to do the allocations using GFP_NOFS before acquiring
the mod log lock.

This issue has been experienced by several users recently, such as for example:

  http://www.spinics.net/lists/linux-btrfs/msg28574.html

After running the btrfs/004 test for 679 consecutive iterations with this
patch applied, I didn't ran into the issue anymore.

Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fc2345d
Andreas Rohner zeitgeist87 referenced this pull request from a commit in zeitgeist87/linux
Andrew Morton kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2-checkpa…
…tch-fixes

WARNING: line over 80 characters
#67: FILE: kernel/kmod.c:214:
+	 * Kthreadd can be restricted to a set of processors if the user wants to

WARNING: line over 80 characters
#69: FILE: kernel/kmod.c:216:
+	 * we do not want to disturb the other processors here either so we start

WARNING: line over 80 characters
#70: FILE: kernel/kmod.c:217:
+	 * the usermode helper threads only on the processors allowed for kthreadd.

total: 0 errors, 3 warnings, 44 lines checked

./patches/kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Christoph Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
6655e58
ddstreet ddstreet referenced this pull request from a commit in ddstreet/linux
Andrew Morton kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2-checkpa…
…tch-fixes

WARNING: line over 80 characters
#67: FILE: kernel/kmod.c:214:
+	 * Kthreadd can be restricted to a set of processors if the user wants to

WARNING: line over 80 characters
#69: FILE: kernel/kmod.c:216:
+	 * we do not want to disturb the other processors here either so we start

WARNING: line over 80 characters
#70: FILE: kernel/kmod.c:217:
+	 * the usermode helper threads only on the processors allowed for kthreadd.

total: 0 errors, 3 warnings, 44 lines checked

./patches/kmod-run-usermodehelpers-only-on-cpus-allowed-for-kthreadd-v2.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Christoph Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
ee2bbd7
Homer Simpson gregnietsky referenced this pull request from a commit in Distrotech/linux
Johan Hovold jhovold USB: serial: fix race between probe and open
commit a65a6f1 upstream.

Fix race between probe and open by making sure that the disconnected
flag is not cleared until all ports have been registered.

A call to tty_open while probe is running may get a reference to the
serial structure in serial_install before its ports have been
registered. This may lead to usb_serial_core calling driver open before
port is fully initialised.

With ftdi_sio this result in the following NULL-pointer dereference as
the private data has not been initialised at open:

[  199.698286] IP: [<f811a089>] ftdi_open+0x59/0xe0 [ftdi_sio]
[  199.698297] *pde = 00000000
[  199.698303] Oops: 0000 [#1] PREEMPT SMP
[  199.698313] Modules linked in: ftdi_sio usbserial
[  199.698323]
[  199.698327] Pid: 1146, comm: ftdi_open Not tainted 3.2.11 #70 Dell Inc. Vostro 1520/0T816J
[  199.698339] EIP: 0060:[<f811a089>] EFLAGS: 00010286 CPU: 0
[  199.698344] EIP is at ftdi_open+0x59/0xe0 [ftdi_sio]
[  199.698348] EAX: 0000003e EBX: f5067000 ECX: 00000000 EDX: 80000600
[  199.698352] ESI: f48d8800 EDI: 00000001 EBP: f515dd54 ESP: f515dcfc
[  199.698356]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[  199.698361] Process ftdi_open (pid: 1146, ti=f515c000 task=f481e040 task.ti=f515c000)
[  199.698364] Stack:
[  199.698368]  f811a9fe f811a9e0 f811b3ef 00000000 00000000 00001388 00000000 f4a86800
[  199.698387]  00000002 00000000 f806e68e 00000000 f532765c f481e040 00000246 22222222
[  199.698479]  22222222 22222222 22222222 f5067004 f5327600 f5327638 f515dd74 f806e6ab
[  199.698496] Call Trace:
[  199.698504]  [<f806e68e>] ? serial_activate+0x2e/0x70 [usbserial]
[  199.698511]  [<f806e6ab>] serial_activate+0x4b/0x70 [usbserial]
[  199.698521]  [<c126380c>] tty_port_open+0x7c/0xd0
[  199.698527]  [<f806e660>] ? serial_set_termios+0xa0/0xa0 [usbserial]
[  199.698534]  [<f806e76f>] serial_open+0x2f/0x70 [usbserial]
[  199.698540]  [<c125d07c>] tty_open+0x20c/0x510
[  199.698546]  [<c10e9eb7>] chrdev_open+0xe7/0x230
[  199.698553]  [<c10e48f2>] __dentry_open+0x1f2/0x390
[  199.698559]  [<c144bfec>] ? _raw_spin_unlock+0x2c/0x50
[  199.698565]  [<c10e4b76>] nameidata_to_filp+0x66/0x80
[  199.698570]  [<c10e9dd0>] ? cdev_put+0x20/0x20
[  199.698576]  [<c10f3e08>] do_last+0x198/0x730
[  199.698581]  [<c10f4440>] path_openat+0xa0/0x350
[  199.698587]  [<c10f47d5>] do_filp_open+0x35/0x80
[  199.698593]  [<c144bfec>] ? _raw_spin_unlock+0x2c/0x50
[  199.698599]  [<c10ff110>] ? alloc_fd+0xc0/0x100
[  199.698605]  [<c10f0b72>] ? getname_flags+0x72/0x120
[  199.698611]  [<c10e4450>] do_sys_open+0xf0/0x1c0
[  199.698617]  [<c11fcc08>] ? trace_hardirqs_on_thunk+0xc/0x10
[  199.698623]  [<c10e458e>] sys_open+0x2e/0x40
[  199.698628]  [<c144c990>] sysenter_do_call+0x12/0x36
[  199.698632] Code: 85 89 00 00 00 8b 16 8b 4d c0 c1 e2 08 c7 44 24 14 88 13 00 00 81 ca 00 00 00 80 c7 44 24 10 00 00 00 00 c7 44 24 0c 00 00 00 00 <0f> b7 41 78 31 c9 89 44 24 08 c7 44 24 04 00 00 00 00 c7 04 24
[  199.698884] EIP: [<f811a089>] ftdi_open+0x59/0xe0 [ftdi_sio] SS:ESP 0068:f515dcfc
[  199.698893] CR2: 0000000000000078
[  199.698925] ---[ end trace 77c43ec023940cff ]---

Reported-and-tested-by: Ken Huang <csuhgw@gmail.com>
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
93206d0
ddstreet ddstreet referenced this pull request from a commit in ddstreet/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
1ec6d7d
ddstreet ddstreet referenced this pull request from a commit in ddstreet/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
cb4fe5c
ddstreet ddstreet referenced this pull request from a commit in ddstreet/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
07df509
Stephen Warren swarren referenced this pull request from a commit in swarren/linux-tegra
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
d61a727
Tomasz Figa tom3q referenced this pull request from a commit in tom3q/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
015a312
ddstreet ddstreet referenced this pull request from a commit in ddstreet/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
7385a31
Alexandre Courbot Gnurou referenced this pull request from a commit in Gnurou/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
dde974d
Karthik Nayak KarthikNayak referenced this pull request from a commit in KarthikNayak/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
3556f5b
Stephen Warren swarren referenced this pull request from a commit in swarren/linux-tegra
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
0481503
Alexandre Courbot Gnurou referenced this pull request from a commit in Gnurou/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
757eb04
JoonsooKim JoonsooKim referenced this pull request from a commit in JoonsooKim/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
c942c6a
Andrey Utkin krieger-od referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
Mikko Perttunen cyndis referenced this pull request from a commit in cyndis/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
6993cf5
Mikko Perttunen cyndis referenced this pull request from a commit in cyndis/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
d01da6b
ddstreet ddstreet referenced this pull request from a commit in ddstreet/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
bed51b6
Andrey Utkin krieger-od referenced this pull request from a commit in krieger-od/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
31bc2e9
Andrey Utkin krieger-od referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
Andrey Utkin krieger-od referenced this pull request from a commit in krieger-od/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
f70e7bb
ddstreet ddstreet referenced this pull request from a commit in ddstreet/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
383c099
Stephen Warren swarren referenced this pull request from a commit in swarren/linux-tegra
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
1386c4d
Andrey Utkin krieger-od referenced this pull request from a commit in krieger-od/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
7273d2e
JoonsooKim JoonsooKim referenced this pull request from a commit in JoonsooKim/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
1972f1c
ddstreet ddstreet referenced this pull request from a commit in ddstreet/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
4e241d7
Naoya Horiguchi Naoya-Horiguchi referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
Stephen Warren swarren referenced this pull request from a commit in swarren/linux-tegra
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
b7c7c8a
Andrey Ryabinin aryabinin referenced this pull request from a commit in aryabinin/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
eb66b86
Andrey Ryabinin aryabinin referenced this pull request from a commit in aryabinin/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
0977ac0
Andrey Ryabinin aryabinin referenced this pull request from a commit in aryabinin/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
ed456ba
Andy Shevchenko andy-shev referenced this pull request from a commit in andy-shev/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
9fcb2df
Andrey Ryabinin aryabinin referenced this pull request from a commit in aryabinin/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
5c29b37
Stephen Warren swarren referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
Andy Shevchenko andy-shev referenced this pull request from a commit in andy-shev/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
3a794b5
Andrey Ryabinin aryabinin referenced this pull request from a commit in aryabinin/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
a01dd1d
Konstantin Khlebnikov koct9i referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
Andrey Ryabinin aryabinin referenced this pull request from a commit in aryabinin/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
189c5c3
ddstreet ddstreet referenced this pull request from a commit in ddstreet/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
e951d5a
Konstantin Khlebnikov koct9i referenced this pull request from a commit in koct9i/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
224ef30
Tomasz Figa tom3q referenced this pull request from a commit in tom3q/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
98470fc
Andrey Ryabinin aryabinin referenced this pull request from a commit in aryabinin/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
4b2facd
bengal bengal referenced this pull request from a commit in bengal/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
6456615
Mikko Perttunen cyndis referenced this pull request from a commit in cyndis/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
60e93f2
Stephen Warren swarren referenced this pull request from a commit in swarren/linux-tegra
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
31d520d
Andrey Ryabinin aryabinin referenced this pull request from a commit in aryabinin/linux
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
45bd311
Romain Perier rperier referenced this pull request from a commit in rperier/linux-rockchip
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
8a1ebf2
Romain Perier rperier referenced this pull request from a commit in rperier/linux-rockchip
Andrew Morton kernel-posix-timersc-code-clean-up-checkpatch-fixes
WARNING: space prohibited between function name and open parenthesis '('
#55: FILE: kernel/posix-timers.c:345:
+					       sizeof (struct k_itimer), 0,

ERROR: do not use assignment in if condition
#70: FILE: kernel/posix-timers.c:504:
+	if ((event->sigev_notify & SIGEV_THREAD_ID) &&

total: 1 errors, 1 warnings, 192 lines checked

./patches/kernel-posix-timersc-code-clean-up.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Fabian Frederick <fabf@skynet.be>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
7da0fbb
Linus Torvalds torvalds referenced this pull request from a commit
Paolo Bonzini bonzini KVM: vmx: defer load of APIC access page address during reset
Most call paths to vmx_vcpu_reset do not hold the SRCU lock.  Defer loading
the APIC access page to the next vmentry.

This avoids the following lockdep splat:

[ INFO: suspicious RCU usage. ]
3.18.0-rc2-test2+ #70 Not tainted
-------------------------------
include/linux/kvm_host.h:474 suspicious rcu_dereference_check() usage!

other info that might help us debug this:

rcu_scheduler_active = 1, debug_locks = 0
1 lock held by qemu-system-x86/2371:
 #0:  (&vcpu->mutex){+.+...}, at: [<ffffffffa037d800>] vcpu_load+0x20/0xd0 [kvm]

stack backtrace:
CPU: 4 PID: 2371 Comm: qemu-system-x86 Not tainted 3.18.0-rc2-test2+ #70
Hardware name: Dell Inc. OptiPlex 9010/0M9KCM, BIOS A12 01/10/2013
 0000000000000001 ffff880209983ca8 ffffffff816f514f 0000000000000000
 ffff8802099b8990 ffff880209983cd8 ffffffff810bd687 00000000000fee00
 ffff880208a2c000 ffff880208a10000 ffff88020ef50040 ffff880209983d08
Call Trace:
 [<ffffffff816f514f>] dump_stack+0x4e/0x71
 [<ffffffff810bd687>] lockdep_rcu_suspicious+0xe7/0x120
 [<ffffffffa037d055>] gfn_to_memslot+0xd5/0xe0 [kvm]
 [<ffffffffa03807d3>] __gfn_to_pfn+0x33/0x60 [kvm]
 [<ffffffffa0380885>] gfn_to_page+0x25/0x90 [kvm]
 [<ffffffffa038aeec>] kvm_vcpu_reload_apic_access_page+0x3c/0x80 [kvm]
 [<ffffffffa08f0a9c>] vmx_vcpu_reset+0x20c/0x460 [kvm_intel]
 [<ffffffffa039ab8e>] kvm_vcpu_reset+0x15e/0x1b0 [kvm]
 [<ffffffffa039ac0c>] kvm_arch_vcpu_setup+0x2c/0x50 [kvm]
 [<ffffffffa037f7e0>] kvm_vm_ioctl+0x1d0/0x780 [kvm]
 [<ffffffff810bc664>] ? __lock_is_held+0x54/0x80
 [<ffffffff812231f0>] do_vfs_ioctl+0x300/0x520
 [<ffffffff8122ee45>] ? __fget+0x5/0x250
 [<ffffffff8122f0fa>] ? __fget_light+0x2a/0xe0
 [<ffffffff81223491>] SyS_ioctl+0x81/0xa0
 [<ffffffff816fed6d>] system_call_fastpath+0x16/0x1b

Reported-by: Takashi Iwai <tiwai@suse.de>
Reported-by: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Reviewed-by: Wanpeng Li <wanpeng.li@linux.intel.com>
Tested-by: Wanpeng Li <wanpeng.li@linux.intel.com>
Fixes: 38b9917
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
a73896c
Alban Browaeys prahal referenced this pull request from a commit in prahal/linux
Alban Browaeys prahal drm: exynos: G2D : Fix cmdlist free collision
The cmdlist was freed twice:
[  372.563832] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
[  372.570508] Modules linked in: cfg80211 bnep nfsd auth_rpcgss[  372.570601] CPU: 0 PID: 71 Comm: kworker/u8:2 Tainted: G         C O   3.18.0-rc3-00168-gd9d00f7-dirty #70
[  372.570730] Workqueue: g2d g2d_runqueue_worker [exynosdrm]
[  372.570741] task: ed300000 ti: eb6a4000 task.ti: eb6a4000
[  372.570800] PC is at g2d_unmap_cmdlist_gem+0x3c/0xe8 [exynosdrm]
[  372.570814] LR is at vprintk_emit+0x4ec/0x570
[  372.570820] pc : [<bf059908>]    lr : [<c007bf58>]    psr: 000f0053
[  372.570820] sp : eb6a5e38  ip : eb6a5da0  fp : eb6a5e74
[  372.570824] r10: 00000000  r9 : 00000000  r8 : eafdcca4
[  372.570828] r7 : 6b6b6b6b  r6 : e3ae3000  r5 : e3ae3008  r4 : 6b6b6b6b
[  372.570832] r3 : 6b6b6b7b  r2 : 00000000  r1 : c0864ac4  r0 : 00000017
[  372.570838] Flags: nzcv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
[  372.570843] Control: 10c5387d  Table: 67a6c04a  DAC: 00000015
[  372.570847] Process kworker/u8:2 (pid: 71, stack limit = 0xeb6a4248)
[  372.570851] Stack: (0xeb6a5e38 to 0xeb6a6000)
[  372.570857] 5e20:                                                       e3ae3000 6b6b6b6b
[  372.570865] 5e40: 6b6b6b7b eafdcc50 00000000 6b6b6b6b e3ae3008 e3ae3000 eafdcc50 eafdcca4
[  372.570873] 5e60: 00000000 00000000 eb6a5e9c eb6a5e78 bf059a00 bf0598d8 a56b6b6b eafdcc64
[  372.570881] 5e80: eafdcce4 eafdcc50 eb6a4000 eddad400 eb6a5ebc eb6a5ea0 bf05a5b4 bf0599c0
[  372.570889] 5ea0: bf05a55c eafdcc64 eb67f400 edc15580 eb6a5efc eb6a5ec0 c003fa58 bf05a568
[  372.570896] 5ec0: edc15580 eb6a4000 eb6a4000 00000000 eb67f400 edc15580 edc155a0 eb6a4000
[  372.570904] 5ee0: eb6a4000 eb67f418 eb67f400 00000088 eb6a5f44 eb6a5f00 c00405d4 c003f828
[  372.570912] 5f00: eb6a5f24 eb6a5f10 c06cc3c4 c0a0f100 00000000 c0a728f7 c00402bc eb68af00
[  372.570922] 5f20: 00000000 eb67f400 c00402bc 00000000 00000000 00000000 eb6a5fac eb6a5f48
[  372.570929] 5f40: c0045544 c00402c8 c0a2e138 00000000 eb6a5f6c eb67f400 00000000 00000000
[  372.570937] 5f60: dead4ead ffffffff ffffffff eb6a5f6c eb6a5f6c 00000000 00000000 dead4ead
[  372.570944] 5f80: ffffffff ffffffff eb6a5f88 eb6a5f88 eb68af00 c0045450 00000000 00000000
[  372.570951] 5fa0: 00000000 eb6a5fb0 c000f918 c004545c 00000000 00000000 00000000 00000000
[  372.570958] 5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[  372.570965] 5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 5a5a5a5a 5a5a5a5a
[  372.571087] [<bf059908>] (g2d_unmap_cmdlist_gem [exynosdrm]) from [<bf059a00>] (g2d_free_runqueue_node+0x4c/0xa8 [exynosdrm])
[  372.571195] [<bf059a00>] (g2d_free_runqueue_node [exynosdrm]) from [<bf05a5b4>] (g2d_runqueue_worker+0x58/0x80 [exynosdrm])
[  372.571258] [<bf05a5b4>] (g2d_runqueue_worker [exynosdrm]) from [<c003fa58>] (process_one_work+0x23c/0x44c)
[  372.571269] [<c003fa58>] (process_one_work) from [<c00405d4>] (worker_thread+0x318/0x51c)
[  372.571282] [<c00405d4>] (worker_thread) from [<c0045544>] (kthread+0xf4/0xfc)
[  372.571297] [<c0045544>] (kthread) from [<c000f918>] (ret_from_fork+0x14/0x20)
[  372.571306] Code: eb59a21a e2973010 e50b3034 0a00000c (e5973010)
90b21bc
Don Brace dabrace referenced this pull request from a commit in dabrace/linux
Paolo Bonzini bonzini KVM: vmx: defer load of APIC access page address during reset
Most call paths to vmx_vcpu_reset do not hold the SRCU lock.  Defer loading
the APIC access page to the next vmentry.

This avoids the following lockdep splat:

[ INFO: suspicious RCU usage. ]
3.18.0-rc2-test2+ #70 Not tainted
-------------------------------
include/linux/kvm_host.h:474 suspicious rcu_dereference_check() usage!

other info that might help us debug this:

rcu_scheduler_active = 1, debug_locks = 0
1 lock held by qemu-system-x86/2371:
 #0:  (&vcpu->mutex){+.+...}, at: [<ffffffffa037d800>] vcpu_load+0x20/0xd0 [kvm]

stack backtrace:
CPU: 4 PID: 2371 Comm: qemu-system-x86 Not tainted 3.18.0-rc2-test2+ #70
Hardware name: Dell Inc. OptiPlex 9010/0M9KCM, BIOS A12 01/10/2013
 0000000000000001 ffff880209983ca8 ffffffff816f514f 0000000000000000
 ffff8802099b8990 ffff880209983cd8 ffffffff810bd687 00000000000fee00
 ffff880208a2c000 ffff880208a10000 ffff88020ef50040 ffff880209983d08
Call Trace:
 [<ffffffff816f514f>] dump_stack+0x4e/0x71
 [<ffffffff810bd687>] lockdep_rcu_suspicious+0xe7/0x120
 [<ffffffffa037d055>] gfn_to_memslot+0xd5/0xe0 [kvm]
 [<ffffffffa03807d3>] __gfn_to_pfn+0x33/0x60 [kvm]
 [<ffffffffa0380885>] gfn_to_page+0x25/0x90 [kvm]
 [<ffffffffa038aeec>] kvm_vcpu_reload_apic_access_page+0x3c/0x80 [kvm]
 [<ffffffffa08f0a9c>] vmx_vcpu_reset+0x20c/0x460 [kvm_intel]
 [<ffffffffa039ab8e>] kvm_vcpu_reset+0x15e/0x1b0 [kvm]
 [<ffffffffa039ac0c>] kvm_arch_vcpu_setup+0x2c/0x50 [kvm]
 [<ffffffffa037f7e0>] kvm_vm_ioctl+0x1d0/0x780 [kvm]
 [<ffffffff810bc664>] ? __lock_is_held+0x54/0x80
 [<ffffffff812231f0>] do_vfs_ioctl+0x300/0x520
 [<ffffffff8122ee45>] ? __fget+0x5/0x250
 [<ffffffff8122f0fa>] ? __fget_light+0x2a/0xe0
 [<ffffffff81223491>] SyS_ioctl+0x81/0xa0
 [<ffffffff816fed6d>] system_call_fastpath+0x16/0x1b

Reported-by: Takashi Iwai <tiwai@suse.de>
Reported-by: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Reviewed-by: Wanpeng Li <wanpeng.li@linux.intel.com>
Tested-by: Wanpeng Li <wanpeng.li@linux.intel.com>
Fixes: 38b9917
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5356c2d
Tobias Jakobi tobiasjakobi referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
Tobias Jakobi tobiasjakobi referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
Tobias Jakobi tobiasjakobi referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
Tobias Jakobi tobiasjakobi referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
Tobias Jakobi tobiasjakobi referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
Tobias Jakobi tobiasjakobi referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
Tobias Jakobi tobiasjakobi referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
Tobias Jakobi tobiasjakobi referenced this pull request from a commit in tobiasjakobi/linux-odroid
Alban Browaeys prahal drm: exynos/g2d: Fix cmdlist free collision
The cmdlist was freed twice:
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Modules linked in: cfg80211 bnep nfsd auth_rpcgss[  372.570601] CPU: 0 PID: 71 Comm: kworker/u8:2 Tainted: G         C O   3.18.0-rc3-00168-gd9d00f7-dirty #70
Workqueue: g2d g2d_runqueue_worker [exynosdrm]
task: ed300000 ti: eb6a4000 task.ti: eb6a4000
PC is at g2d_unmap_cmdlist_gem+0x3c/0xe8 [exynosdrm]
LR is at vprintk_emit+0x4ec/0x570
pc : [<bf059908>]    lr : [<c007bf58>]    psr: 000f0053
sp : eb6a5e38  ip : eb6a5da0  fp : eb6a5e74
r10: 00000000  r9 : 00000000  r8 : eafdcca4
r7 : 6b6b6b6b  r6 : e3ae3000  r5 : e3ae3008  r4 : 6b6b6b6b
r3 : 6b6b6b7b  r2 : 00000000  r1 : c0864ac4  r0 : 00000017
Flags: nzcv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c5387d  Table: 67a6c04a  DAC: 00000015
Process kworker/u8:2 (pid: 71, stack limit = 0xeb6a4248)
Stack: (0xeb6a5e38 to 0xeb6a6000)
5e20:                                                       e3ae3000 6b6b6b6b
5e40: 6b6b6b7b eafdcc50 00000000 6b6b6b6b e3ae3008 e3ae3000 eafdcc50 eafdcca4
5e60: 00000000 00000000 eb6a5e9c eb6a5e78 bf059a00 bf0598d8 a56b6b6b eafdcc64
5e80: eafdcce4 eafdcc50 eb6a4000 eddad400 eb6a5ebc eb6a5ea0 bf05a5b4 bf0599c0
5ea0: bf05a55c eafdcc64 eb67f400 edc15580 eb6a5efc eb6a5ec0 c003fa58 bf05a568
5ec0: edc15580 eb6a4000 eb6a4000 00000000 eb67f400 edc15580 edc155a0 eb6a4000
5ee0: eb6a4000 eb67f418 eb67f400 00000088 eb6a5f44 eb6a5f00 c00405d4 c003f828
5f00: eb6a5f24 eb6a5f10 c06cc3c4 c0a0f100 00000000 c0a728f7 c00402bc eb68af00
5f20: 00000000 eb67f400 c00402bc 00000000 00000000 00000000 eb6a5fac eb6a5f48
5f40: c0045544 c00402c8 c0a2e138 00000000 eb6a5f6c eb67f400 00000000 00000000
5f60: dead4ead ffffffff ffffffff eb6a5f6c eb6a5f6c 00000000 00000000 dead4ead
5f80: ffffffff ffffffff eb6a5f88 eb6a5f88 eb68af00 c0045450 00000000 00000000
5fa0: 00000000 eb6a5fb0 c000f918 c004545c 00000000 00000000 00000000 00000000
5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 5a5a5a5a 5a5a5a5a
[<bf059908>] (g2d_unmap_cmdlist_gem [exynosdrm]) from [<bf059a00>] (g2d_free_runqueue_node+0x4c/0xa8 [exynosdrm])
[<bf059a00>] (g2d_free_runqueue_node [exynosdrm]) from [<bf05a5b4>] (g2d_runqueue_worker+0x58/0x80 [exynosdrm])
[<bf05a5b4>] (g2d_runqueue_worker [exynosdrm]) from [<c003fa58>] (process_one_work+0x23c/0x44c)
[<c003fa58>] (process_one_work) from [<c00405d4>] (worker_thread+0x318/0x51c)
[<c00405d4>] (worker_thread) from [<c0045544>] (kthread+0xf4/0xfc)
[<c0045544>] (kthread) from [<c000f918>] (ret_from_fork+0x14/0x20)
Code: eb59a21a e2973010 e50b3034 0a00000c (e5973010)
1ac1c95
Tobias Jakobi tobiasjakobi referenced this pull request from a commit in tobiasjakobi/linux-odroid
Alban Browaeys prahal drm: exynos/g2d: Fix cmdlist free collision
The cmdlist was freed twice:
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Modules linked in: cfg80211 bnep nfsd auth_rpcgss[  372.570601] CPU: 0 PID: 71 Comm: kworker/u8:2 Tainted: G         C O   3.18.0-rc3-00168-gd9d00f7-dirty #70
Workqueue: g2d g2d_runqueue_worker [exynosdrm]
task: ed300000 ti: eb6a4000 task.ti: eb6a4000
PC is at g2d_unmap_cmdlist_gem+0x3c/0xe8 [exynosdrm]
LR is at vprintk_emit+0x4ec/0x570
pc : [<bf059908>]    lr : [<c007bf58>]    psr: 000f0053
sp : eb6a5e38  ip : eb6a5da0  fp : eb6a5e74
r10: 00000000  r9 : 00000000  r8 : eafdcca4
r7 : 6b6b6b6b  r6 : e3ae3000  r5 : e3ae3008  r4 : 6b6b6b6b
r3 : 6b6b6b7b  r2 : 00000000  r1 : c0864ac4  r0 : 00000017
Flags: nzcv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c5387d  Table: 67a6c04a  DAC: 00000015
Process kworker/u8:2 (pid: 71, stack limit = 0xeb6a4248)
Stack: (0xeb6a5e38 to 0xeb6a6000)
5e20:                                                       e3ae3000 6b6b6b6b
5e40: 6b6b6b7b eafdcc50 00000000 6b6b6b6b e3ae3008 e3ae3000 eafdcc50 eafdcca4
5e60: 00000000 00000000 eb6a5e9c eb6a5e78 bf059a00 bf0598d8 a56b6b6b eafdcc64
5e80: eafdcce4 eafdcc50 eb6a4000 eddad400 eb6a5ebc eb6a5ea0 bf05a5b4 bf0599c0
5ea0: bf05a55c eafdcc64 eb67f400 edc15580 eb6a5efc eb6a5ec0 c003fa58 bf05a568
5ec0: edc15580 eb6a4000 eb6a4000 00000000 eb67f400 edc15580 edc155a0 eb6a4000
5ee0: eb6a4000 eb67f418 eb67f400 00000088 eb6a5f44 eb6a5f00 c00405d4 c003f828
5f00: eb6a5f24 eb6a5f10 c06cc3c4 c0a0f100 00000000 c0a728f7 c00402bc eb68af00
5f20: 00000000 eb67f400 c00402bc 00000000 00000000 00000000 eb6a5fac eb6a5f48
5f40: c0045544 c00402c8 c0a2e138 00000000 eb6a5f6c eb67f400 00000000 00000000
5f60: dead4ead ffffffff ffffffff eb6a5f6c eb6a5f6c 00000000 00000000 dead4ead
5f80: ffffffff ffffffff eb6a5f88 eb6a5f88 eb68af00 c0045450 00000000 00000000
5fa0: 00000000 eb6a5fb0 c000f918 c004545c 00000000 00000000 00000000 00000000
5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 5a5a5a5a 5a5a5a5a
[<bf059908>] (g2d_unmap_cmdlist_gem [exynosdrm]) from [<bf059a00>] (g2d_free_runqueue_node+0x4c/0xa8 [exynosdrm])
[<bf059a00>] (g2d_free_runqueue_node [exynosdrm]) from [<bf05a5b4>] (g2d_runqueue_worker+0x58/0x80 [exynosdrm])
[<bf05a5b4>] (g2d_runqueue_worker [exynosdrm]) from [<c003fa58>] (process_one_work+0x23c/0x44c)
[<c003fa58>] (process_one_work) from [<c00405d4>] (worker_thread+0x318/0x51c)
[<c00405d4>] (worker_thread) from [<c0045544>] (kthread+0xf4/0xfc)
[<c0045544>] (kthread) from [<c000f918>] (ret_from_fork+0x14/0x20)
Code: eb59a21a e2973010 e50b3034 0a00000c (e5973010)
9e2fa35
Tobias Jakobi tobiasjakobi referenced this pull request from a commit in tobiasjakobi/linux-odroid
Alban Browaeys prahal drm: exynos/g2d: Fix cmdlist free collision
The cmdlist was freed twice:
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Modules linked in: cfg80211 bnep nfsd auth_rpcgss[  372.570601] CPU: 0 PID: 71 Comm: kworker/u8:2 Tainted: G         C O   3.18.0-rc3-00168-gd9d00f7-dirty #70
Workqueue: g2d g2d_runqueue_worker [exynosdrm]
task: ed300000 ti: eb6a4000 task.ti: eb6a4000
PC is at g2d_unmap_cmdlist_gem+0x3c/0xe8 [exynosdrm]
LR is at vprintk_emit+0x4ec/0x570
pc : [<bf059908>]    lr : [<c007bf58>]    psr: 000f0053
sp : eb6a5e38  ip : eb6a5da0  fp : eb6a5e74
r10: 00000000  r9 : 00000000  r8 : eafdcca4
r7 : 6b6b6b6b  r6 : e3ae3000  r5 : e3ae3008  r4 : 6b6b6b6b
r3 : 6b6b6b7b  r2 : 00000000  r1 : c0864ac4  r0 : 00000017
Flags: nzcv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c5387d  Table: 67a6c04a  DAC: 00000015
Process kworker/u8:2 (pid: 71, stack limit = 0xeb6a4248)
Stack: (0xeb6a5e38 to 0xeb6a6000)
5e20:                                                       e3ae3000 6b6b6b6b
5e40: 6b6b6b7b eafdcc50 00000000 6b6b6b6b e3ae3008 e3ae3000 eafdcc50 eafdcca4
5e60: 00000000 00000000 eb6a5e9c eb6a5e78 bf059a00 bf0598d8 a56b6b6b eafdcc64
5e80: eafdcce4 eafdcc50 eb6a4000 eddad400 eb6a5ebc eb6a5ea0 bf05a5b4 bf0599c0
5ea0: bf05a55c eafdcc64 eb67f400 edc15580 eb6a5efc eb6a5ec0 c003fa58 bf05a568
5ec0: edc15580 eb6a4000 eb6a4000 00000000 eb67f400 edc15580 edc155a0 eb6a4000
5ee0: eb6a4000 eb67f418 eb67f400 00000088 eb6a5f44 eb6a5f00 c00405d4 c003f828
5f00: eb6a5f24 eb6a5f10 c06cc3c4 c0a0f100 00000000 c0a728f7 c00402bc eb68af00
5f20: 00000000 eb67f400 c00402bc 00000000 00000000 00000000 eb6a5fac eb6a5f48
5f40: c0045544 c00402c8 c0a2e138 00000000 eb6a5f6c eb67f400 00000000 00000000
5f60: dead4ead ffffffff ffffffff eb6a5f6c eb6a5f6c 00000000 00000000 dead4ead
5f80: ffffffff ffffffff eb6a5f88 eb6a5f88 eb68af00 c0045450 00000000 00000000
5fa0: 00000000 eb6a5fb0 c000f918 c004545c 00000000 00000000 00000000 00000000
5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 5a5a5a5a 5a5a5a5a
[<bf059908>] (g2d_unmap_cmdlist_gem [exynosdrm]) from [<bf059a00>] (g2d_free_runqueue_node+0x4c/0xa8 [exynosdrm])
[<bf059a00>] (g2d_free_runqueue_node [exynosdrm]) from [<bf05a5b4>] (g2d_runqueue_worker+0x58/0x80 [exynosdrm])
[<bf05a5b4>] (g2d_runqueue_worker [exynosdrm]) from [<c003fa58>] (process_one_work+0x23c/0x44c)
[<c003fa58>] (process_one_work) from [<c00405d4>] (worker_thread+0x318/0x51c)
[<c00405d4>] (worker_thread) from [<c0045544>] (kthread+0xf4/0xfc)
[<c0045544>] (kthread) from [<c000f918>] (ret_from_fork+0x14/0x20)
Code: eb59a21a e2973010 e50b3034 0a00000c (e5973010)
eb30057
Tobias Jakobi tobiasjakobi referenced this pull request from a commit in tobiasjakobi/linux-odroid
Alban Browaeys prahal drm: exynos/g2d: Fix cmdlist free collision
The cmdlist was freed twice:
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Modules linked in: cfg80211 bnep nfsd auth_rpcgss[  372.570601] CPU: 0 PID: 71 Comm: kworker/u8:2 Tainted: G         C O   3.18.0-rc3-00168-gd9d00f7-dirty #70
Workqueue: g2d g2d_runqueue_worker [exynosdrm]
task: ed300000 ti: eb6a4000 task.ti: eb6a4000
PC is at g2d_unmap_cmdlist_gem+0x3c/0xe8 [exynosdrm]
LR is at vprintk_emit+0x4ec/0x570
pc : [<bf059908>]    lr : [<c007bf58>]    psr: 000f0053
sp : eb6a5e38  ip : eb6a5da0  fp : eb6a5e74
r10: 00000000  r9 : 00000000  r8 : eafdcca4
r7 : 6b6b6b6b  r6 : e3ae3000  r5 : e3ae3008  r4 : 6b6b6b6b
r3 : 6b6b6b7b  r2 : 00000000  r1 : c0864ac4  r0 : 00000017
Flags: nzcv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c5387d  Table: 67a6c04a  DAC: 00000015
Process kworker/u8:2 (pid: 71, stack limit = 0xeb6a4248)
Stack: (0xeb6a5e38 to 0xeb6a6000)
5e20:                                                       e3ae3000 6b6b6b6b
5e40: 6b6b6b7b eafdcc50 00000000 6b6b6b6b e3ae3008 e3ae3000 eafdcc50 eafdcca4
5e60: 00000000 00000000 eb6a5e9c eb6a5e78 bf059a00 bf0598d8 a56b6b6b eafdcc64
5e80: eafdcce4 eafdcc50 eb6a4000 eddad400 eb6a5ebc eb6a5ea0 bf05a5b4 bf0599c0
5ea0: bf05a55c eafdcc64 eb67f400 edc15580 eb6a5efc eb6a5ec0 c003fa58 bf05a568
5ec0: edc15580 eb6a4000 eb6a4000 00000000 eb67f400 edc15580 edc155a0 eb6a4000
5ee0: eb6a4000 eb67f418 eb67f400 00000088 eb6a5f44 eb6a5f00 c00405d4 c003f828
5f00: eb6a5f24 eb6a5f10 c06cc3c4 c0a0f100 00000000 c0a728f7 c00402bc eb68af00
5f20: 00000000 eb67f400 c00402bc 00000000 00000000 00000000 eb6a5fac eb6a5f48
5f40: c0045544 c00402c8 c0a2e138 00000000 eb6a5f6c eb67f400 00000000 00000000
5f60: dead4ead ffffffff ffffffff eb6a5f6c eb6a5f6c 00000000 00000000 dead4ead
5f80: ffffffff ffffffff eb6a5f88 eb6a5f88 eb68af00 c0045450 00000000 00000000
5fa0: 00000000 eb6a5fb0 c000f918 c004545c 00000000 00000000 00000000 00000000
5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 5a5a5a5a 5a5a5a5a
[<bf059908>] (g2d_unmap_cmdlist_gem [exynosdrm]) from [<bf059a00>] (g2d_free_runqueue_node+0x4c/0xa8 [exynosdrm])
[<bf059a00>] (g2d_free_runqueue_node [exynosdrm]) from [<bf05a5b4>] (g2d_runqueue_worker+0x58/0x80 [exynosdrm])
[<bf05a5b4>] (g2d_runqueue_worker [exynosdrm]) from [<c003fa58>] (process_one_work+0x23c/0x44c)
[<c003fa58>] (process_one_work) from [<c00405d4>] (worker_thread+0x318/0x51c)
[<c00405d4>] (worker_thread) from [<c0045544>] (kthread+0xf4/0xfc)
[<c0045544>] (kthread) from [<c000f918>] (ret_from_fork+0x14/0x20)
Code: eb59a21a e2973010 e50b3034 0a00000c (e5973010)
2ee4b7f
Tobias Jakobi tobiasjakobi referenced this pull request from a commit in tobiasjakobi/linux-odroid
Alban Browaeys prahal drm: exynos/g2d: Fix cmdlist free collision
The cmdlist was freed twice:
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Modules linked in: cfg80211 bnep nfsd auth_rpcgss[  372.570601] CPU: 0 PID: 71 Comm: kworker/u8:2 Tainted: G         C O   3.18.0-rc3-00168-gd9d00f7-dirty #70
Workqueue: g2d g2d_runqueue_worker [exynosdrm]
task: ed300000 ti: eb6a4000 task.ti: eb6a4000
PC is at g2d_unmap_cmdlist_gem+0x3c/0xe8 [exynosdrm]
LR is at vprintk_emit+0x4ec/0x570
pc : [<bf059908>]    lr : [<c007bf58>]    psr: 000f0053
sp : eb6a5e38  ip : eb6a5da0  fp : eb6a5e74
r10: 00000000  r9 : 00000000  r8 : eafdcca4
r7 : 6b6b6b6b  r6 : e3ae3000  r5 : e3ae3008  r4 : 6b6b6b6b
r3 : 6b6b6b7b  r2 : 00000000  r1 : c0864ac4  r0 : 00000017
Flags: nzcv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c5387d  Table: 67a6c04a  DAC: 00000015
Process kworker/u8:2 (pid: 71, stack limit = 0xeb6a4248)
Stack: (0xeb6a5e38 to 0xeb6a6000)
5e20:                                                       e3ae3000 6b6b6b6b
5e40: 6b6b6b7b eafdcc50 00000000 6b6b6b6b e3ae3008 e3ae3000 eafdcc50 eafdcca4
5e60: 00000000 00000000 eb6a5e9c eb6a5e78 bf059a00 bf0598d8 a56b6b6b eafdcc64
5e80: eafdcce4 eafdcc50 eb6a4000 eddad400 eb6a5ebc eb6a5ea0 bf05a5b4 bf0599c0
5ea0: bf05a55c eafdcc64 eb67f400 edc15580 eb6a5efc eb6a5ec0 c003fa58 bf05a568
5ec0: edc15580 eb6a4000 eb6a4000 00000000 eb67f400 edc15580 edc155a0 eb6a4000
5ee0: eb6a4000 eb67f418 eb67f400 00000088 eb6a5f44 eb6a5f00 c00405d4 c003f828
5f00: eb6a5f24 eb6a5f10 c06cc3c4 c0a0f100 00000000 c0a728f7 c00402bc eb68af00
5f20: 00000000 eb67f400 c00402bc 00000000 00000000 00000000 eb6a5fac eb6a5f48
5f40: c0045544 c00402c8 c0a2e138 00000000 eb6a5f6c eb67f400 00000000 00000000
5f60: dead4ead ffffffff ffffffff eb6a5f6c eb6a5f6c 00000000 00000000 dead4ead
5f80: ffffffff ffffffff eb6a5f88 eb6a5f88 eb68af00 c0045450 00000000 00000000
5fa0: 00000000 eb6a5fb0 c000f918 c004545c 00000000 00000000 00000000 00000000
5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 5a5a5a5a 5a5a5a5a
[<bf059908>] (g2d_unmap_cmdlist_gem [exynosdrm]) from [<bf059a00>] (g2d_free_runqueue_node+0x4c/0xa8 [exynosdrm])
[<bf059a00>] (g2d_free_runqueue_node [exynosdrm]) from [<bf05a5b4>] (g2d_runqueue_worker+0x58/0x80 [exynosdrm])
[<bf05a5b4>] (g2d_runqueue_worker [exynosdrm]) from [<c003fa58>] (process_one_work+0x23c/0x44c)
[<c003fa58>] (process_one_work) from [<c00405d4>] (worker_thread+0x318/0x51c)
[<c00405d4>] (worker_thread) from [<c0045544>] (kthread+0xf4/0xfc)
[<c0045544>] (kthread) from [<c000f918>] (ret_from_fork+0x14/0x20)
Code: eb59a21a e2973010 e50b3034 0a00000c (e5973010)
e1b3b16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.