Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RK3328 - ROCK64 Support #38

Closed
ChBirender opened this issue Oct 15, 2017 · 29 comments
Closed

RK3328 - ROCK64 Support #38

ChBirender opened this issue Oct 15, 2017 · 29 comments

Comments

@ChBirender
Copy link

ChBirender commented Oct 15, 2017

ROCK64 mentioned as device on http://opensource.rock-chips.com/wiki_RK3328
But no dedicated dts file in
https://github.com/rockchip-linux/kernel/tree/release-4.4/arch/arm64/boot/dts/rockchip .
Please help by expert hands.

Please help to port
https://github.com/rock64-android/kernel/blob/thzy_develop/arch/arm64/boot/dts/rk3328-rock64.dts

@dalmatele
Copy link

dalmatele commented Oct 15, 2017

one vote for this support.
I use rock64 to encode/decode video but not successful, gstreammer can not run,...

@wzyy2
Copy link
Contributor

wzyy2 commented Oct 16, 2017

It's better if someone can send us a pull request.
; )

@ayufan
Copy link

ayufan commented Oct 17, 2017

You can always see all my changes to "be compatible with Rock64" here: release-4.4...ayufan-rock64:release-4.4 :)

@dalmatele
Copy link

@ayufan: did it support encode/decode? Because I still have seen that it can not encoded/decoded in RK3328.

@ayufan
Copy link

ayufan commented Oct 17, 2017 via email

@dalmatele
Copy link

dalmatele commented Oct 17, 2017

@ayufan Yes, by VPU. When I run mpp encode, in the kern.log file I've seen this:
mpp_dev_ioctl:545: unknown mpp ioctl cmd 40086c04
Then output is blank frame ( zero value when using hexdump to see).
What board you've used? I use rock64 with RK3328: https://www.pine64.org/?product=rock64-media-board-computer

@ChBirender
Copy link
Author

ChBirender commented Oct 20, 2017

I have requested the merge.
But Please read carefully I'm looking Android kernel v4.4 support for Rock64.
https://github.com/rock64-android/kernel/blob/thzy_develop/arch/arm64/boot/dts/rk3328-rock64.dts
Thanks Ayufan.

Regards,
Birender Singh

@hizukiayaka
Copy link
Contributor

We have had an internal version, please wait it release

@ChBirender
Copy link
Author

Hello Dear hizukiayaka,

Should wait more ?

Regards.

@ChBirender
Copy link
Author

Dear All,

In https://github.com/torvalds/linux/ source tree we have

https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts file.

Can we refer to this after kernel version release v4.14/ ?

Release.

@wzyy2
Copy link
Contributor

wzyy2 commented Nov 10, 2017

@yanghanxing It seems many people want a rock64 dts in relase-4.4 kernel, could you help sending it?

@ChBirender
Copy link
Author

Congratulation to all,

Mr. Linus Torvalds, turn out to be faster.

4.14 having default support for ROCK64.

Regards.

@ChBirender
Copy link
Author

ChBirender commented Dec 3, 2017

Dear Mr. @wzyy2

Please help to propagate my query to Mr. Xinhuang Li in below commit.

1934ca1

Regards.

@ChBirender
Copy link
Author

Dear Mr. @ayufan ,

Please help to provide kernel version 4.4 for Android.

Regards.

@ChBirender
Copy link
Author

ChBirender commented Dec 8, 2017

Dear Mr. @wzyy2 ,

But we started this issue to include ROCK64 board default support in offcial git directory provided by Rock-Chip.

Regards.

@ChBirender
Copy link
Author

Dear Mr. @ayufan ,

Can you please check reply of Mr. Jacob Chen in
1934ca1

Regards,
Birender Singh

@ChBirender
Copy link
Author

ChBirender commented Jan 15, 2018

Dear Mr. @hizukiayaka ,

Thank you for your support.

I have compiled the kernel.

Will test it and update here.

Regards.

@hizukiayaka
Copy link
Contributor

Hi, man, I have a penis as well.

@ChBirender
Copy link
Author

ChBirender commented Jan 17, 2018

Dear All,

Raised new issue
ayufan-rock64/android-7.1#16

Tested kernel build using
make ARCH=arm64 rockchip_defconfig
make -j8 ARCH=arm64 rk3328-rock64.img
It goes to infinite boot loop.

I have replaced
https://github.com/rockchip-linux/kernel
source with
https://github.com/ayufan-rock64/android-kernel
As used in steps
https://forum.pine64.org/showthread.php?tid=5036

Now Meting boot loop.
Please check both logs

  1. Error with 4.4 kernel.
  2. Normal working with 3.10.104

Error.txt
normaldbg.txt

Mr. @hizukiayaka , Its for you.
Its seems to be SDMMC not supported,
as image flashed on Micro SD card.
[ 2.005855] init: SDMMC OR EMMC ?s1=(null)
[ 2.005982] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=0
[ 2.006052] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=1
[ 2.006122] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=2
[ 2.006195] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=3
[ 2.006265] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=4
[ 2.006334] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=5
[ 2.006420] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=6
[ 2.006489] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=7
[ 2.006559] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=8
[ 2.006632] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=9
[ 2.006702] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=10
[ 2.006772] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=11
[ 2.006843] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=12
[ 2.006913] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=13
[ 2.006983] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=14
[ 2.007053] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=15
[ 2.007123] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=16
[ 2.007193] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=17
[ 2.007264] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=18
[ 2.007335] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=19

Regards.

@mcerveny
Copy link

mcerveny commented Jan 24, 2018

At least this patch ayufan-rock64/linux-kernel@b158cf1 is essential to get ethernet working. Maybe other patches for RTL8211F should be useful.

@ayufan
Copy link

ayufan commented Jan 24, 2018

@mcerveny they are not needed

@mcerveny
Copy link

@ayufan my ethernet is not stable (after few packets hungs) without ayufan-rock64/linux-kernel@b158cf1 or do you mean RTL8211F series ?

@ayufan
Copy link

ayufan commented Jan 24, 2018

We need only ayufan-rock64@b158cf1. The RTL8211F series is not needed.

@ChBirender
Copy link
Author

ChBirender commented Jan 25, 2018

Same state
Error2.txt

rk3328-rock64.dts.tar.gz
&gmac2io {
phy-supply = <&vcc_io>;
phy-mode = "rgmii";
assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
clock_in_out = "input";
snps,reset-gpio = <&gpio1 18 GPIO_ACTIVE_LOW>;
snps,reset-active-low;
snps,reset-delays-us = <0 10000 50000>;
snps,force_thresh_dma_mode;
pinctrl-names = "default";
pinctrl-0 = <&rgmiim1_pins>;
tx_delay = <0x24>;
rx_delay = <0x18>;
status = "okay";
};

@mcerveny
Copy link

As I wrote this repair is for gmac ethernet for (generic) release-4.4. I am using this release-4.4 from this repository without any problem to boot rock64 from sdcard to debian/stretch/linaro builded with rockchip build system (better to boot over SPI-NOR with patched uboot - https://github.com/ayufan-rock64/linux-build/releases - u-boot-flash-spi.img.xz). It is something bad in your private build system/parameters setup for release-4.4 for android. For example "androidboot.hardware=rk30board" ? I am not able to help you with android build.

@ChBirender
Copy link
Author

Dear Martin Cerveny(@mcerveny ),

I have simply replaced kernel code as setup by Mr. Kamil Trzciński(@ayufan )
using https://github.com/ayufan-rock64/android-7.1/releases

I´m also looking for standard code provided by https://github.com/rockchip-linux/kernel
for rock64.
But for android system, not Linux system.

As per my understanding code setup done by Mr. Kamil Trzciński, is the one internally provided by RockChip Corporation for ROCK64 board.

But we need official code setup provided under
http://opensource.rock-chips.com/wiki_Main_Page project.

Regards.

@ChBirender
Copy link
Author

ChBirender commented Jan 27, 2018

Dear All,

After applying logs in
"android"/system/core/init/init.cpp

} else {
for (int i = 0; i < EMMC_RETRY_COUNT_SD; i++) {
proc_read( "/proc/cmdline", cmdline, sizeof(cmdline) );
NOTICE("cmdline=%s\n",cmdline);
s1 = strstr(cmdline, STORAGE_MEDIA_SD);
s2 = strstr(cmdline, "androidboot.mode=sd");
s3 = strstr(cmdline, " androidboot.hardware=rkd");
ERROR("s1=%s\n",s1);
ERROR("s2=%s\n",s2);
ERROR("s3=%s\n",s3);
if ((s1 > 0) && (s2 > 0)) {
ERROR("OK,SDMMC DRIVERS INIT OK\n");
property_set("ro.boot.mode", "sd");
break;
} else {
ERROR("ERROR,SDMMC DRIVERS NOT READY, RERRY=%d\n", i);
}
}
}

Working:
https://github.com/ayufan-rock64/linux-kernel
[ 4.175317] [0: init: 1] init: init first stage started!
[ 4.230871] [0: init: 1] type=1403 audit(1.710:2): policy loaded auid=4294967295 ses=4294967295
[ 4.231410] [0: init: 1] init: (Initializing SELinux non-enforcing took 0.06s.)
[ 4.234403] [0: init: 1] init: init second stage started!
[ 4.234484] [0: init: 1] init: init: 1111
[ 4.237798] [0: init: 1] init: init: 2222
[ 4.237994] [0: init: 1] init: init: 3333
[ 4.238271] [0: init: 1] init: init: 4444
[ 4.238334] [0: init: 1] init: SDMMC OR EMMC ?s1=(null)
[ 4.238385] [0: init: 1] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rkd
[ 4.238385] [0: init: 1]
[ 4.238445] [0: init: 1] init: s1=storagemedia=sd uboot_logo=0x02000000@0x3dc00000:0x01000000 loader.timestamp=2017-10-06_09:09:16 hdmi.vic=16 tve.format=-1 SecureBootCheckOk=0 androidbod
[ 4.238445] [0: init: 1]
[ 4.238474] [0: init: 1] init: s2=androidboot.mode=sd
[ 4.238474] [0: init: 1]
[ 4.238500] [0: init: 1] init: s3=(null)
[ 4.238517] [0: init: 1] init: OK,SDMMC DRIVERS INIT OK
[ 4.238544] [0: init: 1] init: property_set("ro.boot.mode", "sd") failed
[ 4.238614] [0: init: 1] init: property_set("ro.hardware", "rk30board") failed
[ 4.238687] [0: init: 1] init: init: 5555
[ 4.238816] [0: init: 1] init: -----set_soc_if_need,get soc=rk3328,len = 6
[ 4.238837] [0: init: 1] init: ---ready to set ro.rk.soc to rk3328
[ 4.238864] [0: init: 1] init: init: 6666
[ 4.247544] [0: init: 1] init: Running restorecon...

Error:
https://github.com/rockchip-linux/kernel
[ 1.934507] init: init first stage started!
[ 1.995553] audit: type=1403 audit(1.990:2): policy loaded auid=4294967295 ses=4294967295
[ 1.996389] init: (Initializing SELinux non-enforcing took 0.06s.)
[ 2.000382] init: init second stage started!
[ 2.000515] init: init: 1111
[ 2.004918] init: init: 2222
[ 2.005220] init: init: 3333
[ 2.005550] init: init: 4444
[ 2.005651] init: SDMMC OR EMMC ?s1=(null)
[ 2.005701] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.005701]
[ 2.005744] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.005744]
[ 2.005757] init: s2=(null)
[ 2.005767] init: s3=(null)
[ 2.005779] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=0
[ 2.005827] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.005827]
[ 2.005869] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.005869]
[ 2.005882] init: s2=(null)
[ 2.005891] init: s3=(null)
[ 2.005903] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=1
[ 2.005949] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.005949]
[ 2.005991] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.005991]
[ 2.006003] init: s2=(null)
[ 2.006013] init: s3=(null)
[ 2.006025] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=2
[ 2.006072] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.006072]
[ 2.006132] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.006132]
[ 2.006147] init: s2=(null)
[ 2.006156] init: s3=(null)
[ 2.006169] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=3
[ 2.006216] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.006216]
[ 2.006258] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.006258]
[ 2.006272] init: s2=(null)
[ 2.006281] init: s3=(null)
[ 2.006295] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=4
[ 2.006343] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.006343]
[ 2.006384] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.006384]
[ 2.006397] init: s2=(null)
[ 2.006407] init: s3=(null)
[ 2.006419] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=5
[ 2.006473] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.006473]
[ 2.006514] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.006514]
[ 2.006527] init: s2=(null)
[ 2.006536] init: s3=(null)
[ 2.006549] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=6
[ 2.006596] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.006596]
[ 2.006638] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.006638]
[ 2.006651] init: s2=(null)
[ 2.006660] init: s3=(null)
[ 2.006673] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=7
[ 2.006719] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.006719]
[ 2.006760] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.006760]
[ 2.006773] init: s2=(null)
[ 2.006782] init: s3=(null)
[ 2.006794] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=8
[ 2.006841] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.006841]
[ 2.006884] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.006884]
[ 2.006898] init: s2=(null)
[ 2.006907] init: s3=(null)
[ 2.006919] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=9
[ 2.006967] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.006967]
[ 2.007008] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.007008]
[ 2.007021] init: s2=(null)
[ 2.007030] init: s3=(null)
[ 2.007044] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=10
[ 2.007091] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.007091]
[ 2.007133] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.007133]
[ 2.007145] init: s2=(null)
[ 2.007155] init: s3=(null)
[ 2.007167] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=11
[ 2.007216] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.007216]
[ 2.007257] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.007257]
[ 2.007270] init: s2=(null)
[ 2.007279] init: s3=(null)
[ 2.007291] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=12
[ 2.007339] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.007339]
[ 2.007439] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.007439]
[ 2.007453] init: s2=(null)
[ 2.007463] init: s3=(null)
[ 2.007476] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=13
[ 2.007528] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.007528]
[ 2.007569] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.007569]
[ 2.007582] init: s2=(null)
[ 2.007591] init: s3=(null)
[ 2.007605] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=14
[ 2.007652] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.007652]
[ 2.007693] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.007693]
[ 2.007706] init: s2=(null)
[ 2.007716] init: s3=(null)
[ 2.007730] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=15
[ 2.007777] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.007777]
[ 2.007818] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.007818]
[ 2.007831] init: s2=(null)
[ 2.007841] init: s3=(null)
[ 2.007853] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=16
[ 2.007900] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.007900]
[ 2.007941] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.007941]
[ 2.007955] init: s2=(null)
[ 2.007964] init: s3=(null)
[ 2.007977] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=17
[ 2.008053] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.008053]
[ 2.008094] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.008094]
[ 2.008108] init: s2=(null)
[ 2.008117] init: s3=(null)
[ 2.008130] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=18
[ 2.008178] init: cmdline=rockchip_jtag earlyprintk=uart8250-32bit,0xff130000 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console0
[ 2.008178]
[ 2.008219] init: s1=storagemedia=sd loader.timestamp=2017-10-06_09:09:16 hdmi.vic=-1 tve.format=-1 SecureBootCheckOk=0
[ 2.008219]
[ 2.008232] init: s2=(null)
[ 2.008241] init: s3=(null)
[ 2.008254] init: ERROR,SDMMC DRIVERS NOT READY, RERRY=19
[ 2.008354] init: property_set("ro.hardware", "rk30board") failed
[ 2.008490] init: init: 5555
[ 2.008640] init: init: 6666
[ 2.011215] init: Running restorecon...

Cause:
proc_read( "/proc/cmdline", cmdline, sizeof(cmdline) );
not having androidboot.mode=sd

@ChBirender
Copy link
Author

Dear Zhangbin Tong.

I will test :
c170469
And will update here.

Regards.

@ChBirender
Copy link
Author

Dear All,

It is having SD-MMC issue as mentioned above.

Regards.

Kwiboo pushed a commit to Kwiboo/linux-rockchip that referenced this issue Mar 12, 2018
pppol2tp_release uses call_rcu to put the final ref on its socket. But
the session object doesn't hold a ref on the session socket so may be
freed while the pppol2tp_put_sk RCU callback is scheduled. Fix this by
having the session hold a ref on its socket until the session is
destroyed. It is this ref that is dropped via call_rcu.

Sessions are also deleted via l2tp_tunnel_closeall. This must now also put
the final ref via call_rcu. So move the call_rcu call site into
pppol2tp_session_close so that this happens in both destroy paths. A
common destroy path should really be implemented, perhaps with
l2tp_tunnel_closeall calling l2tp_session_delete like pppol2tp_release
does, but this will be looked at later.

ODEBUG: activate active (active state 1) object type: rcu_head hint:           (null)
WARNING: CPU: 3 PID: 13407 at lib/debugobjects.c:291 debug_print_object+0x166/0x220
Modules linked in:
CPU: 3 PID: 13407 Comm: syzbot_19c09769 Not tainted 4.16.0-rc2+ rockchip-linux#38
Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
RIP: 0010:debug_print_object+0x166/0x220
RSP: 0018:ffff880013647a00 EFLAGS: 00010082
RAX: dffffc0000000008 RBX: 0000000000000003 RCX: ffffffff814d3333
RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff88001a59f6d0
RBP: ffff880013647a40 R08: 0000000000000000 R09: 0000000000000001
R10: ffff8800136479a8 R11: 0000000000000000 R12: 0000000000000001
R13: ffffffff86161420 R14: ffffffff85648b60 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffff88001a580000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020e77000 CR3: 0000000006022000 CR4: 00000000000006e0
Call Trace:
 debug_object_activate+0x38b/0x530
 ? debug_object_assert_init+0x3b0/0x3b0
 ? __mutex_unlock_slowpath+0x85/0x8b0
 ? pppol2tp_session_destruct+0x110/0x110
 __call_rcu.constprop.66+0x39/0x890
 ? __call_rcu.constprop.66+0x39/0x890
 call_rcu_sched+0x17/0x20
 pppol2tp_release+0x2c7/0x440
 ? fcntl_setlk+0xca0/0xca0
 ? sock_alloc_file+0x340/0x340
 sock_release+0x92/0x1e0
 sock_close+0x1b/0x20
 __fput+0x296/0x6e0
 ____fput+0x1a/0x20
 task_work_run+0x127/0x1a0
 do_exit+0x7f9/0x2ce0
 ? SYSC_connect+0x212/0x310
 ? mm_update_next_owner+0x690/0x690
 ? up_read+0x1f/0x40
 ? __do_page_fault+0x3c8/0xca0
 do_group_exit+0x10d/0x330
 ? do_group_exit+0x330/0x330
 SyS_exit_group+0x22/0x30
 do_syscall_64+0x1e0/0x730
 ? trace_hardirqs_off_thunk+0x1a/0x1c
 entry_SYSCALL_64_after_hwframe+0x42/0xb7
RIP: 0033:0x7f362e471259
RSP: 002b:00007ffe389abe08 EFLAGS: 00000202 ORIG_RAX: 00000000000000e7
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f362e471259
RDX: 00007f362e471259 RSI: 000000000000002e RDI: 0000000000000000
RBP: 00007ffe389abe30 R08: 0000000000000000 R09: 00007f362e944270
R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000400b60
R13: 00007ffe389abf50 R14: 0000000000000000 R15: 0000000000000000
Code: 8d 3c dd a0 8f 64 85 48 89 fa 48 c1 ea 03 80 3c 02 00 75 7b 48 8b 14 dd a0 8f 64 85 4c 89 f6 48 c7 c7 20 85 64 85 e
8 2a 55 14 ff <0f> 0b 83 05 ad 2a 68 04 01 48 83 c4 18 5b 41 5c 41 5d 41 5e 41

Fixes: ee40fb2 ("l2tp: protect sock pointer of struct pppol2tp_session with RCU")
Signed-off-by: James Chapman <jchapman@katalix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Kwiboo pushed a commit to Kwiboo/linux-rockchip that referenced this issue Nov 14, 2018
Configure io_bits with 2 and enable LFS mode, generic/013 reports below dmesg:

BUG: unable to handle kernel NULL pointer dereference at 00000104
*pdpt = 0000000029b7b001 *pde = 0000000000000000
Oops: 0002 [#1] PREEMPT SMP
Modules linked in: crc32_generic zram f2fs(O) rfcomm bnep bluetooth ecdh_generic snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq pcbc joydev snd_seq_device aesni_intel snd_timer aes_i586 snd crypto_simd cryptd soundcore i2c_piix4 serio_raw mac_hid video parport_pc ppdev lp parport hid_generic psmouse usbhid hid e1000
CPU: 0 PID: 11161 Comm: fsstress Tainted: G           O      4.17.0-rc2 rockchip-linux#38
Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
EIP: f2fs_submit_page_write+0x28d/0x550 [f2fs]
EFLAGS: 00010206 CPU: 0
EAX: e863dcd8 EBX: 00000000 ECX: 00000100 EDX: 00000200
ESI: e863dcf4 EDI: f6f82768 EBP: e863dbb0 ESP: e863db74
 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
CR0: 80050033 CR2: 00000104 CR3: 29a62020 CR4: 000406f0
Call Trace:
 do_write_page+0x6f/0xc0 [f2fs]
 write_data_page+0x4a/0xd0 [f2fs]
 do_write_data_page+0x327/0x630 [f2fs]
 __write_data_page+0x34b/0x820 [f2fs]
 __f2fs_write_data_pages+0x42d/0x8c0 [f2fs]
 f2fs_write_data_pages+0x27/0x30 [f2fs]
 do_writepages+0x1a/0x70
 __filemap_fdatawrite_range+0x94/0xd0
 filemap_write_and_wait_range+0x3d/0xa0
 __generic_file_write_iter+0x11a/0x1f0
 f2fs_file_write_iter+0xdd/0x3b0 [f2fs]
 __vfs_write+0xd2/0x150
 vfs_write+0x9b/0x190
 ksys_write+0x45/0x90
 sys_write+0x16/0x20
 do_fast_syscall_32+0xaa/0x22c
 entry_SYSENTER_32+0x4c/0x7b
EIP: 0xb7fc8c51
EFLAGS: 00000246 CPU: 0
EAX: ffffffda EBX: 00000003 ECX: 09cde000 EDX: 00001000
ESI: 00000003 EDI: 00001000 EBP: 00000000 ESP: bfbded38
 DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b
Code: e8 f9 77 34 c9 8b 45 e0 8b 80 b8 00 00 00 39 45 d8 0f 84 bb 02 00 00 8b 45 e0 8b 80 b8 00 00 00 8d 50 d8 8b 08 89 55 f0 8b 50 04 <89> 51 04 89 0a c7 00 00 01 00 00 c7 40 04 00 02 00 00 8b 45 dc
EIP: f2fs_submit_page_write+0x28d/0x550 [f2fs] SS:ESP: 0068:e863db74
CR2: 0000000000000104
---[ end trace 4cac79c0d1305ee6 ]---

allocate_data_block will submit all sequential pending IOs sorted by a
FIFO list, If we failed to submit other user's IO due to unaligned write,
we will retry to allocate new block address for current IO, then it will
initialize fio.list again, if fio was in the list before, it can break
FIFO list, result in above panic.

Thread A			Thread B
- do_write_page
 - allocate_data_block
  - list_add_tail
  : fioA cached in FIFO list.
				- do_write_page
				 - allocate_data_block
				  - list_add_tail
				  : fioB cached in FIFO list.
				 - f2fs_submit_page_write
				 : fail to submit IO
				 - allocate_data_block
				  - INIT_LIST_HEAD
 - f2fs_submit_page_write
  - list_del  <-- NULL pointer dereference

This patch adds fio.retry parameter to indicate failure status for each
IO, and avoid bailing out if there is still pending IO in FIFO list for
fixing.

Signed-off-by: Chao Yu <yuchao0@huawei.com>

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Kwiboo pushed a commit to Kwiboo/linux-rockchip that referenced this issue Nov 14, 2018
Configure io_bits with 2 and enable LFS mode, generic/017 reports below dmesg:

BUG: unable to handle kernel NULL pointer dereference at 00000039
*pdpt = 000000002fcb2001 *pde = 0000000000000000
Oops: 0000 [#1] PREEMPT SMP
Modules linked in: crc32_generic zram f2fs(O) bnep rfcomm bluetooth ecdh_generic snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_seq_midi snd_seq_midi_event snd_rawmidi pcbc snd_seq joydev aesni_intel aes_i586 snd_seq_device snd_timer crypto_simd cryptd snd soundcore i2c_piix4 serio_raw mac_hid video parport_pc ppdev lp parport hid_generic usbhid psmouse hid e1000
CPU: 2 PID: 20779 Comm: xfs_io Tainted: G           O      4.17.0-rc2 rockchip-linux#38
Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
EIP: is_checkpointed_data+0x84/0xd0 [f2fs]
EFLAGS: 00010207 CPU: 2
EAX: 00000000 EBX: f5cd7000 ECX: fffffe32 EDX: 00000039
ESI: 000001cd EDI: ec95fb6c EBP: e264bd80 ESP: e264bd6c
 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
CR0: 80050033 CR2: 00000039 CR3: 2fe55660 CR4: 000406f0
Call Trace:
 __exchange_data_block+0xb3f/0x1000 [f2fs]
 f2fs_fallocate+0xab9/0x16b0 [f2fs]
 vfs_fallocate+0x17c/0x2d0
 ksys_fallocate+0x42/0x70
 sys_fallocate+0x31/0x40
 do_fast_syscall_32+0xaa/0x22c
 entry_SYSENTER_32+0x4c/0x7b
EIP: 0xb7f98c51
EFLAGS: 00000293 CPU: 2
EAX: ffffffda EBX: 00000003 ECX: 00000008 EDX: 01001000
ESI: 00000000 EDI: 00001000 EBP: 00000000 ESP: bfc0357c
 DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b
Code: 00 00 d3 e8 8b 4d ec 2b 02 8b 55 f0 6b c0 1c 03 41 70 29 d6 8b 93 d0 06 00 00 8b 40 0c 83 ea 01 21 d6 89 f2 89 f1 c1 ea 03 f7 d1 <0f> be 14 10 83 e1 07 b8 01 00 00 00 d3 e0 85 c2 89 f8 0f 95 c3
EIP: is_checkpointed_data+0x84/0xd0 [f2fs] SS:ESP: 0068:e264bd6c
CR2: 0000000000000039
---[ end trace 9a4d4087cce6080a ]---

This is because in recovery flow of __exchange_data_block, we didn't pass olen to
__roll_back_blkaddrs, instead we passed len, which indicates wrong array size, result
in copying random block address into dnode page.

Later, once that random block address was accessed by is_checkpointed_data, it can
cause NULL pointer dereference.

Signed-off-by: Chao Yu <yuchao0@huawei.com>

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Kwiboo pushed a commit to Kwiboo/linux-rockchip that referenced this issue Dec 15, 2018
Increase kasan instrumented kernel stack size from 32k to 64k. Other
architectures seems to get away with just doubling kernel stack size under
kasan, but on s390 this appears to be not enough due to bigger frame size.
The particular pain point is kasan inlined checks (CONFIG_KASAN_INLINE
vs CONFIG_KASAN_OUTLINE). With inlined checks one particular case hitting
stack overflow is fs sync on xfs filesystem:

 #0 [9a0681e8]  704 bytes  check_usage at 34b1fc
 #1 [9a0684a8]  432 bytes  check_usage at 34c710
 #2 [9a068658]  1048 bytes  validate_chain at 35044a
 #3 [9a068a70]  312 bytes  __lock_acquire at 3559fe
 #4 [9a068ba8]  440 bytes  lock_acquire at 3576ee
 #5 [9a068d60]  104 bytes  _raw_spin_lock at 21b44e0
 #6 [9a068dc8]  1992 bytes  enqueue_entity at 2dbf72
 #7 [9a069590]  1496 bytes  enqueue_task_fair at 2df5f0
 #8 [9a069b68]  64 bytes  ttwu_do_activate at 28f438
 #9 [9a069ba8]  552 bytes  try_to_wake_up at 298c4c
 #10 [9a069dd0]  168 bytes  wake_up_worker at 23f97c
 #11 [9a069e78]  200 bytes  insert_work at 23fc2e
 #12 [9a069f40]  648 bytes  __queue_work at 2487c0
 #13 [9a06a1c8]  200 bytes  __queue_delayed_work at 24db28
 #14 [9a06a290]  248 bytes  mod_delayed_work_on at 24de84
 #15 [9a06a388]  24 bytes  kblockd_mod_delayed_work_on at 153e2a0
 #16 [9a06a3a0]  288 bytes  __blk_mq_delay_run_hw_queue at 158168c
 #17 [9a06a4c0]  192 bytes  blk_mq_run_hw_queue at 1581a3c
 #18 [9a06a580]  184 bytes  blk_mq_sched_insert_requests at 15a2192
 #19 [9a06a638]  1024 bytes  blk_mq_flush_plug_list at 1590f3a
 #20 [9a06aa38]  704 bytes  blk_flush_plug_list at 1555028
 #21 [9a06acf8]  320 bytes  schedule at 219e476
 #22 [9a06ae38]  760 bytes  schedule_timeout at 21b0aac
 #23 [9a06b130]  408 bytes  wait_for_common at 21a1706
 #24 [9a06b2c8]  360 bytes  xfs_buf_iowait at fa1540
 #25 [9a06b430]  256 bytes  __xfs_buf_submit at fadae6
 #26 [9a06b530]  264 bytes  xfs_buf_read_map at fae3f6
 #27 [9a06b638]  656 bytes  xfs_trans_read_buf_map at 10ac9a8
 #28 [9a06b8c8]  304 bytes  xfs_btree_kill_root at e72426
 #29 [9a06b9f8]  288 bytes  xfs_btree_lookup_get_block at e7bc5e
 #30 [9a06bb18]  624 bytes  xfs_btree_lookup at e7e1a6
 #31 [9a06bd88]  2664 bytes  xfs_alloc_ag_vextent_near at dfa070
 #32 [9a06c7f0]  144 bytes  xfs_alloc_ag_vextent at dff3ca
 #33 [9a06c880]  1128 bytes  xfs_alloc_vextent at e05fce
 #34 [9a06cce8]  584 bytes  xfs_bmap_btalloc at e58342
 #35 [9a06cf30]  1336 bytes  xfs_bmapi_write at e618de
 #36 [9a06d468]  776 bytes  xfs_iomap_write_allocate at ff678e
 #37 [9a06d770]  720 bytes  xfs_map_blocks at f82af8
 rockchip-linux#38 [9a06da40]  928 bytes  xfs_writepage_map at f83cd6
 rockchip-linux#39 [9a06dde0]  320 bytes  xfs_do_writepage at f85872
 rockchip-linux#40 [9a06df20]  1320 bytes  write_cache_pages at 73dfe8
 rockchip-linux#41 [9a06e448]  208 bytes  xfs_vm_writepages at f7f892
 rockchip-linux#42 [9a06e518]  88 bytes  do_writepages at 73fe6a
 rockchip-linux#43 [9a06e570]  872 bytes  __writeback_single_inode at a20cb6
 rockchip-linux#44 [9a06e8d8]  664 bytes  writeback_sb_inodes at a23be2
 rockchip-linux#45 [9a06eb70]  296 bytes  __writeback_inodes_wb at a242e0
 rockchip-linux#46 [9a06ec98]  928 bytes  wb_writeback at a2500e
 rockchip-linux#47 [9a06f038]  848 bytes  wb_do_writeback at a260ae
 rockchip-linux#48 [9a06f388]  536 bytes  wb_workfn at a28228
 rockchip-linux#49 [9a06f5a0]  1088 bytes  process_one_work at 24a234
 rockchip-linux#50 [9a06f9e0]  1120 bytes  worker_thread at 24ba26
 rockchip-linux#51 [9a06fe40]  104 bytes  kthread at 26545a
 rockchip-linux#52 [9a06fea8]             kernel_thread_starter at 21b6b62

To be able to increase the stack size to 64k reuse LLILL instruction
in __switch_to function to load 64k - STACK_FRAME_OVERHEAD - __PT_SIZE
(65192) value as unsigned.

Reported-by: Benjamin Block <bblock@linux.ibm.com>
Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Kwiboo pushed a commit to Kwiboo/linux-rockchip that referenced this issue Jan 19, 2019
commit 0711e8c upstream.

Please note that below oops is from an older kernel, but the same
race seems to be present in the upstream kernel too.

---8<---

The following panic was encountered during removing the ipmi_ssif
module:

[ 526.352555] Unable to handle kernel paging request at virtual address ffff000006923090
[ 526.360464] Mem abort info:
[ 526.363257] ESR = 0x86000007
[ 526.366304] Exception class = IABT (current EL), IL = 32 bits
[ 526.372221] SET = 0, FnV = 0
[ 526.375269] EA = 0, S1PTW = 0
[ 526.378405] swapper pgtable: 4k pages, 48-bit VAs, pgd = 000000008ae60416
[ 526.385185] [ffff000006923090] *pgd=000000bffcffe803, *pud=000000bffcffd803, *pmd=0000009f4731a003, *pte=0000000000000000
[ 526.396141] Internal error: Oops: 86000007 [#1] SMP
[ 526.401008] Modules linked in: nls_iso8859_1 ipmi_devintf joydev input_leds ipmi_msghandler shpchp sch_fq_codel ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ip_tables x_tables autofs4 btrfs zstd_compress raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear i2c_smbus hid_generic usbhid uas hid usb_storage ast aes_ce_blk i2c_algo_bit aes_ce_cipher qede ttm crc32_ce ptp crct10dif_ce drm_kms_helper ghash_ce syscopyarea sha2_ce sysfillrect sysimgblt pps_core fb_sys_fops sha256_arm64 sha1_ce mpt3sas qed drm raid_class ahci scsi_transport_sas libahci gpio_xlp i2c_xlp9xx aes_neon_bs aes_neon_blk crypto_simd cryptd aes_arm64 [last unloaded: ipmi_ssif]
[ 526.468085] CPU: 125 PID: 0 Comm: swapper/125 Not tainted 4.15.0-35-generic rockchip-linux#38~lp1775396+build.1
[ 526.476942] Hardware name: To be filled by O.E.M. Saber/Saber, BIOS 0ACKL022 08/14/2018
[ 526.484932] pstate: 00400009 (nzcv daif +PAN -UAO)
[ 526.489713] pc : 0xffff000006923090
[ 526.493198] lr : call_timer_fn+0x34/0x178
[ 526.497194] sp : ffff000009b0bdd0
[ 526.500496] x29: ffff000009b0bdd0 x28: 0000000000000082
[ 526.505796] x27: 0000000000000002 x26: ffff000009515188
[ 526.511096] x25: ffff000009515180 x24: ffff0000090f1018
[ 526.516396] x23: ffff000009519660 x22: dead000000000200
[ 526.521696] x21: ffff000006923090 x20: 0000000000000100
[ 526.526995] x19: ffff809eeb466a40 x18: 0000000000000000
[ 526.532295] x17: 000000000000000e x16: 0000000000000007
[ 526.537594] x15: 0000000000000000 x14: 071c71c71c71c71c
[ 526.542894] x13: 0000000000000000 x12: 0000000000000000
[ 526.548193] x11: 0000000000000001 x10: ffff000009b0be88
[ 526.553493] x9 : 0000000000000000 x8 : 0000000000000005
[ 526.558793] x7 : ffff80befc1f8528 x6 : 0000000000000020
[ 526.564092] x5 : 0000000000000040 x4 : 0000000020001b20
[ 526.569392] x3 : 0000000000000000 x2 : ffff809eeb466a40
[ 526.574692] x1 : ffff000006923090 x0 : ffff809eeb466a40
[ 526.579992] Process swapper/125 (pid: 0, stack limit = 0x000000002eb50acc)
[ 526.586854] Call trace:
[ 526.589289] 0xffff000006923090
[ 526.592419] expire_timers+0xc8/0x130
[ 526.596070] run_timer_softirq+0xec/0x1b0
[ 526.600070] __do_softirq+0x134/0x328
[ 526.603726] irq_exit+0xc8/0xe0
[ 526.606857] __handle_domain_irq+0x6c/0xc0
[ 526.610941] gic_handle_irq+0x84/0x188
[ 526.614679] el1_irq+0xe8/0x180
[ 526.617822] cpuidle_enter_state+0xa0/0x328
[ 526.621993] cpuidle_enter+0x34/0x48
[ 526.625564] call_cpuidle+0x44/0x70
[ 526.629040] do_idle+0x1b8/0x1f0
[ 526.632256] cpu_startup_entry+0x2c/0x30
[ 526.636174] secondary_start_kernel+0x11c/0x130
[ 526.640694] Code: bad PC value
[ 526.643800] ---[ end trace d020b0b8417c2498 ]---
[ 526.648404] Kernel panic - not syncing: Fatal exception in interrupt
[ 526.654778] SMP: stopping secondary CPUs
[ 526.658734] Kernel Offset: disabled
[ 526.662211] CPU features: 0x5800c38
[ 526.665688] Memory Limit: none
[ 526.668768] ---[ end Kernel panic - not syncing: Fatal exception in interrupt

Prevent mod_timer from arming a timer that was already removed by
del_timer during module unload.

Signed-off-by: Jan Glauber <jglauber@cavium.com>
Cc: <stable@vger.kernel.org> # 3.19
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
0lvin pushed a commit to free-z4u/roc-rk3328-cc-official that referenced this issue May 2, 2019
When locking a GPIO line as IRQ, we go to lengths to
double-check that the line is really set as input before
marking it as used for IRQ. This is not good on GPIO chips
that can sleep, because this function is called in IRQ-safe
context. Just skip this if it can't be checked quickly.

Currently this happens on sleeping expanders such as STMPE
or TC3589x:

BUG: scheduling while atomic: swapper/1/0x00000002
Modules linked in:
CPU: 0 PID: 1 Comm: swapper Not tainted 4.9.0-rc1+ rockchip-linux#38
Hardware name: Nomadik STn8815
[<c000f2e0>] (unwind_backtrace) from [<c000d244>] (show_stack+0x10/0x14)
[<c000d244>] (show_stack) from [<c0037b78>] (__schedule_bug+0x54/0x80)
[<c0037b78>] (__schedule_bug) from [<c042df14>] (__schedule+0x3a0/0x460)
[<c042df14>] (__schedule) from [<c042e028>] (schedule+0x54/0xb8)
(...)

This patch fixes that problem and relies on the direction
read from the chip when it was added.

Cc: stable@vger.kernel.org
Fixes: 9c10280 ("gpio: flush direction status in gpiochip_lock_as_irq()")
Cc: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
0lvin pushed a commit to free-z4u/roc-rk3328-cc-official that referenced this issue Jul 29, 2019
qxl_release_map will enter an atomic context, but since we still need to
alloc memory for BOs, we better delay that until we have everything we
need, in case we need to sleep inside the allocation.  This avoids the
Sleep in atomic state below, which was reported by Mike.

 [   43.910362] BUG: sleeping function called from invalid context at mm/slab.h:432
 [   43.910955] in_atomic(): 1, irqs_disabled(): 0, pid: 2077, name: Xorg
 [   43.911472] Preemption disabled at:
 [   43.911478] [<ffffffffa02b1c45>] qxl_bo_kmap_atomic_page+0xa5/0x100 [qxl]
 [   43.912103] CPU: 0 PID: 2077 Comm: Xorg Tainted: G            E   4.12.0-master rockchip-linux#38
 [ 43.912550] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
 rel-1.8.1-0-g4adadbd-20161202_174313-build11a 04/01/2014
 [   43.913202] Call Trace:
 [   43.913371]  dump_stack+0x65/0x89
 [   43.913581]  ? qxl_bo_kmap_atomic_page+0xa5/0x100 [qxl]
 [   43.913876]  ___might_sleep+0x11a/0x190
 [   43.914095]  __might_sleep+0x4a/0x80
 [   43.914319]  ? qxl_bo_create+0x50/0x190 [qxl]
 [   43.914565]  kmem_cache_alloc_trace+0x46/0x180
 [   43.914836]  qxl_bo_create+0x50/0x190 [qxl]
 [   43.915082]  ? refcount_dec_and_test+0x11/0x20
 [   43.915332]  ? ttm_mem_io_reserve+0x41/0xe0 [ttm]
 [   43.915595]  qxl_alloc_bo_reserved+0x37/0xb0 [qxl]
 [   43.915884]  qxl_cursor_atomic_update+0x8f/0x260 [qxl]
 [   43.916172]  ? drm_atomic_helper_update_legacy_modeset_state+0x1d6/0x210 [drm_kms_helper]
 [   43.916623]  drm_atomic_helper_commit_planes+0xec/0x230 [drm_kms_helper]
 [   43.916995]  drm_atomic_helper_commit_tail+0x2b/0x60 [drm_kms_helper]
 [   43.917398]  commit_tail+0x65/0x70 [drm_kms_helper]
 [   43.917693]  drm_atomic_helper_commit+0xa9/0x100 [drm_kms_helper]
 [   43.918039]  drm_atomic_commit+0x4b/0x50 [drm]
 [   43.918334]  drm_atomic_helper_update_plane+0xf1/0x110 [drm_kms_helper]
 [   43.918902]  __setplane_internal+0x19f/0x280 [drm]
 [   43.919240]  drm_mode_cursor_universal+0x101/0x1c0 [drm]
 [   43.919541]  drm_mode_cursor_common+0x15b/0x1d0 [drm]
 [   43.919858]  drm_mode_cursor2_ioctl+0xe/0x10 [drm]
 [   43.920157]  drm_ioctl+0x211/0x460 [drm]
 [   43.920383]  ? drm_mode_cursor_ioctl+0x50/0x50 [drm]
 [   43.920664]  ? handle_mm_fault+0x93/0x160
 [   43.920893]  do_vfs_ioctl+0x96/0x6e0
 [   43.921117]  ? __fget+0x73/0xa0
 [   43.921322]  SyS_ioctl+0x41/0x70
 [   43.921545]  entry_SYSCALL_64_fastpath+0x1a/0xa5
 [   43.922188] RIP: 0033:0x7f1145804bc7
 [   43.922526] RSP: 002b:00007ffcd3e50508 EFLAGS: 00003246 ORIG_RAX: 0000000000000010
 [   43.923367] RAX: ffffffffffffffda RBX: 0000000000000040 RCX: 00007f1145804bc7
 [   43.923852] RDX: 00007ffcd3e50540 RSI: 00000000c02464bb RDI: 000000000000000b
 [   43.924299] RBP: 0000000000000040 R08: 0000000000000040 R09: 000000000000000c
 [   43.924694] R10: 00007ffcd3e50340 R11: 0000000000003246 R12: 0000000000000018
 [   43.925128] R13: 00000000022bc390 R14: 0000000000000040 R15: 00007ffcd3e5062c

Reported-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/20170519175819.15682-1-krisman@collabora.co.uk
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
0lvin pushed a commit to free-z4u/roc-rk3328-cc-official that referenced this issue Aug 3, 2019
Correct these checkpatch.pl errors:

|ERROR: space required before that '-' (ctx:OxO)
|rockchip-linux#37: FILE: include/linux/bug.h:37:
|+#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))

|ERROR: space required before that '-' (ctx:OxO)
|rockchip-linux#38: FILE: include/linux/bug.h:38:
|+#define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); }))

I decided to wrap the bitfield expressions that begin with minus signs
in parentheses rather than insert spaces before the minus signs.

Link: http://lkml.kernel.org/r/20170525120316.24473-5-abbotti@mev.co.uk
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Jakub Kicinski <jakub.kicinski@netronome.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Kwiboo pushed a commit to Kwiboo/linux-rockchip that referenced this issue Aug 29, 2019
WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#15:
[1] https://lore.kernel.org/linux-arm-kernel/20190819114420.2535-1-walter-zh.wu@mediatek.com/

WARNING: Use #include <linux/io.h> instead of <asm/io.h>
rockchip-linux#38: FILE: lib/test_kasan.c:22:
+#include <asm/io.h>

total: 0 errors, 2 warnings, 59 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

./patches/lib-test_kasan-add-roundtrip-tests.patch has style problems, please review.

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

Please run checkpatch prior to sending patches

Cc: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
0lvin pushed a commit to free-z4u/roc-rk3328-cc-official that referenced this issue Oct 5, 2019
Configure io_bits with 2 and enable LFS mode, generic/013 reports below dmesg:

BUG: unable to handle kernel NULL pointer dereference at 00000104
*pdpt = 0000000029b7b001 *pde = 0000000000000000
Oops: 0002 [FireflyTeam#1] PREEMPT SMP
Modules linked in: crc32_generic zram f2fs(O) rfcomm bnep bluetooth ecdh_generic snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq pcbc joydev snd_seq_device aesni_intel snd_timer aes_i586 snd crypto_simd cryptd soundcore i2c_piix4 serio_raw mac_hid video parport_pc ppdev lp parport hid_generic psmouse usbhid hid e1000
CPU: 0 PID: 11161 Comm: fsstress Tainted: G           O      4.17.0-rc2 rockchip-linux#38
Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
EIP: f2fs_submit_page_write+0x28d/0x550 [f2fs]
EFLAGS: 00010206 CPU: 0
EAX: e863dcd8 EBX: 00000000 ECX: 00000100 EDX: 00000200
ESI: e863dcf4 EDI: f6f82768 EBP: e863dbb0 ESP: e863db74
 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
CR0: 80050033 CR2: 00000104 CR3: 29a62020 CR4: 000406f0
Call Trace:
 do_write_page+0x6f/0xc0 [f2fs]
 write_data_page+0x4a/0xd0 [f2fs]
 do_write_data_page+0x327/0x630 [f2fs]
 __write_data_page+0x34b/0x820 [f2fs]
 __f2fs_write_data_pages+0x42d/0x8c0 [f2fs]
 f2fs_write_data_pages+0x27/0x30 [f2fs]
 do_writepages+0x1a/0x70
 __filemap_fdatawrite_range+0x94/0xd0
 filemap_write_and_wait_range+0x3d/0xa0
 __generic_file_write_iter+0x11a/0x1f0
 f2fs_file_write_iter+0xdd/0x3b0 [f2fs]
 __vfs_write+0xd2/0x150
 vfs_write+0x9b/0x190
 ksys_write+0x45/0x90
 sys_write+0x16/0x20
 do_fast_syscall_32+0xaa/0x22c
 entry_SYSENTER_32+0x4c/0x7b
EIP: 0xb7fc8c51
EFLAGS: 00000246 CPU: 0
EAX: ffffffda EBX: 00000003 ECX: 09cde000 EDX: 00001000
ESI: 00000003 EDI: 00001000 EBP: 00000000 ESP: bfbded38
 DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b
Code: e8 f9 77 34 c9 8b 45 e0 8b 80 b8 00 00 00 39 45 d8 0f 84 bb 02 00 00 8b 45 e0 8b 80 b8 00 00 00 8d 50 d8 8b 08 89 55 f0 8b 50 04 <89> 51 04 89 0a c7 00 00 01 00 00 c7 40 04 00 02 00 00 8b 45 dc
EIP: f2fs_submit_page_write+0x28d/0x550 [f2fs] SS:ESP: 0068:e863db74
CR2: 0000000000000104
---[ end trace 4cac79c0d1305ee6 ]---

allocate_data_block will submit all sequential pending IOs sorted by a
FIFO list, If we failed to submit other user's IO due to unaligned write,
we will retry to allocate new block address for current IO, then it will
initialize fio.list again, if fio was in the list before, it can break
FIFO list, result in above panic.

Thread A			Thread B
- do_write_page
 - allocate_data_block
  - list_add_tail
  : fioA cached in FIFO list.
				- do_write_page
				 - allocate_data_block
				  - list_add_tail
				  : fioB cached in FIFO list.
				 - f2fs_submit_page_write
				 : fail to submit IO
				 - allocate_data_block
				  - INIT_LIST_HEAD
 - f2fs_submit_page_write
  - list_del  <-- NULL pointer dereference

This patch adds fio.retry parameter to indicate failure status for each
IO, and avoid bailing out if there is still pending IO in FIFO list for
fixing.

Signed-off-by: Chao Yu <yuchao0@huawei.com>

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
0lvin pushed a commit to free-z4u/roc-rk3328-cc-official that referenced this issue Oct 5, 2019
Configure io_bits with 2 and enable LFS mode, generic/017 reports below dmesg:

BUG: unable to handle kernel NULL pointer dereference at 00000039
*pdpt = 000000002fcb2001 *pde = 0000000000000000
Oops: 0000 [FireflyTeam#1] PREEMPT SMP
Modules linked in: crc32_generic zram f2fs(O) bnep rfcomm bluetooth ecdh_generic snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_seq_midi snd_seq_midi_event snd_rawmidi pcbc snd_seq joydev aesni_intel aes_i586 snd_seq_device snd_timer crypto_simd cryptd snd soundcore i2c_piix4 serio_raw mac_hid video parport_pc ppdev lp parport hid_generic usbhid psmouse hid e1000
CPU: 2 PID: 20779 Comm: xfs_io Tainted: G           O      4.17.0-rc2 rockchip-linux#38
Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
EIP: is_checkpointed_data+0x84/0xd0 [f2fs]
EFLAGS: 00010207 CPU: 2
EAX: 00000000 EBX: f5cd7000 ECX: fffffe32 EDX: 00000039
ESI: 000001cd EDI: ec95fb6c EBP: e264bd80 ESP: e264bd6c
 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
CR0: 80050033 CR2: 00000039 CR3: 2fe55660 CR4: 000406f0
Call Trace:
 __exchange_data_block+0xb3f/0x1000 [f2fs]
 f2fs_fallocate+0xab9/0x16b0 [f2fs]
 vfs_fallocate+0x17c/0x2d0
 ksys_fallocate+0x42/0x70
 sys_fallocate+0x31/0x40
 do_fast_syscall_32+0xaa/0x22c
 entry_SYSENTER_32+0x4c/0x7b
EIP: 0xb7f98c51
EFLAGS: 00000293 CPU: 2
EAX: ffffffda EBX: 00000003 ECX: 00000008 EDX: 01001000
ESI: 00000000 EDI: 00001000 EBP: 00000000 ESP: bfc0357c
 DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b
Code: 00 00 d3 e8 8b 4d ec 2b 02 8b 55 f0 6b c0 1c 03 41 70 29 d6 8b 93 d0 06 00 00 8b 40 0c 83 ea 01 21 d6 89 f2 89 f1 c1 ea 03 f7 d1 <0f> be 14 10 83 e1 07 b8 01 00 00 00 d3 e0 85 c2 89 f8 0f 95 c3
EIP: is_checkpointed_data+0x84/0xd0 [f2fs] SS:ESP: 0068:e264bd6c
CR2: 0000000000000039
---[ end trace 9a4d4087cce6080a ]---

This is because in recovery flow of __exchange_data_block, we didn't pass olen to
__roll_back_blkaddrs, instead we passed len, which indicates wrong array size, result
in copying random block address into dnode page.

Later, once that random block address was accessed by is_checkpointed_data, it can
cause NULL pointer dereference.

Signed-off-by: Chao Yu <yuchao0@huawei.com>

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Joern-P pushed a commit to Joern-P/kernel that referenced this issue Sep 6, 2020
SD Instability has been a commonly reported issue on RK3328 boards, the Rockchip default drive level of 4mA is unable to reliably drive any significant capacitive load (even within SD card specification) at 50MHz high speed, especially with 3.3V signalling.  Further testing may indicate a need for 12mA, but for now this patch has been shown to resolve SD boot and stability issues on several boards, including Rock64 and a Renegade.  The issue spanning multiple boards is why I didn't simply override the settings in the board specific DTS.

It may also be important to note the ASUS Tinker Board (RK3288) uses 8mA drive levels.  This may be worth evaluating for RK3399 as well.
FanX-Tek pushed a commit to FanX-Tek/kernel that referenced this issue Nov 21, 2022
Enable bluetooth for Intel, Broadcom and Qualcomm chips.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
Cassolette pushed a commit to Cassolette/rk-kernel that referenced this issue Dec 17, 2022
…linux#38)

Enable bluetooth for Intel, Broadcom and Qualcomm chips.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants