From: Andrew Morton Stupid fix for this, on arm: fs/built-in.o(.text+0x45f44): In function `proc_sys_readdir': : undefined reference to `__cmpdi2' fs/built-in.o(.text+0x45f68): In function `proc_sys_readdir': : undefined reference to `__cmpdi2' Cc: Eric W. Biederman Cc: Russell King Signed-off-by: Andrew Morton --- fs/proc/proc_sysctl.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff -puN fs/proc/proc_sysctl.c~sysctl-reimplement-the-sysctl-proc-support-fix-2 fs/proc/proc_sysctl.c --- a/fs/proc/proc_sysctl.c~sysctl-reimplement-the-sysctl-proc-support-fix-2 +++ a/fs/proc/proc_sysctl.c @@ -321,21 +321,20 @@ static int proc_sys_readdir(struct file goto out; ret = 0; - switch(filp->f_pos) { - case 0: - if (filldir(dirent, ".", 1, filp->f_pos, inode->i_ino, DT_DIR) < 0) + /* Avoid a switch here: arm builds fail with missing __cmpdi2 */ + if (filp->f_pos == 0) { + if (filldir(dirent, ".", 1, filp->f_pos, + inode->i_ino, DT_DIR) < 0) goto out; filp->f_pos++; - /* fall through */ - case 1: - if (filldir(dirent, "..", 2, filp->f_pos, parent_ino(dentry), DT_DIR) < 0) + } + if (filp->f_pos == 1) { + if (filldir(dirent, "..", 2, filp->f_pos, + parent_ino(dentry), DT_DIR) < 0) goto out; filp->f_pos++; - /* fall through */ - default: - pos = 2; - break; } + pos = 2; /* - Find each instance of the directory * - Read all entries in each instance _