]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00162198 [MX6q_ARM2]filesystem: Kernel dump if unplug SD card during bonnie
authorTony Lin <tony.lin@freescale.com>
Thu, 17 Nov 2011 09:49:15 +0000 (17:49 +0800)
committerOliver Wendt <ow@karo-electronics.de>
Mon, 30 Sep 2013 12:10:04 +0000 (14:10 +0200)
add pointer check before accesssing to fix following problem

staErXtT 3'-efms. .(.mmcblk1p2): error: remounting filesystem read-only
Unable to handle kernel NULL pointer dereference at virtual address 00000010
pgd = df334000
[00000010] *pgd=71e85831, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1] PREEMPT SMP
last sysfs file: /sys/devices/platform/sdhci-esdhc-imx.2/mmc_host/mmc1/
mmc1:b368/serial
Modules linked in: ahci_platform ov3640_camera libahci libata
CPU: 1 Not tainted (2.6.38-daily-00808-g43b3e87 #1)
PC is at __mark_inode_dirty+0xc8/0x1b4
LR is at __mark_inode_dirty+0xb8/0x1b4
pc : [<800f7418>] lr : [<800f7408>] psr: 20000013
sp : df14dde0 ip : 00000062 fp : 00000000
r10: 003d2000 r9 : df14df38 r8 : 00000000
r7 : 4ec22acb r6 : 00000003 r5 : 00000000 r4 : e028c720
r3 : 00000001 r2 : 00000065 r1 : 804fe50c r0 : 00000001

Signed-off-by Tony Lin <tony.lin@freescale.com>

fs/fs-writeback.c

index fe190a8b0bc871e34a8387bdf0f21987e483bc45..5df6157e5bce6308695ee72b9516350ab745ce90 100644 (file)
@@ -1082,6 +1082,8 @@ void __mark_inode_dirty(struct inode *inode, int flags)
                if (!was_dirty) {
                        bool wakeup_bdi = false;
                        bdi = inode_to_bdi(inode);
+                       if (!bdi)
+                               goto out;
 
                        if (bdi_cap_writeback_dirty(bdi)) {
                                WARN(!test_bit(BDI_registered, &bdi->state),