diff options
author | Brian Behlendorf <[email protected]> | 2012-12-18 17:02:27 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2012-12-19 09:06:35 -0800 |
commit | 034f1b331e2c152e8e8954d715fa9a84f7b48d64 (patch) | |
tree | a7101b1b0e87624f60dc88ffa34c6993e6f31c23 /include/linux/kallsyms_compat.h | |
parent | 30196bfd42567a9bc3fccac8650dc2cd9f0f7c0a (diff) |
Fix spl_kmem_init_kallsyms_lookup() panic
Due to I/O buffering the helper may return successfully before
the proc handler has a chance to execute. To catch this case
wait up to 1 second to verify spl_kallsyms_lookup_name_fn was
updated to a non SYMBOL_POISON value.
Signed-off-by: Brian Behlendorf <[email protected]>
Closes zfsonlinux/zfs#699
Closes zfsonlinux/zfs#859
Diffstat (limited to 'include/linux/kallsyms_compat.h')
-rw-r--r-- | include/linux/kallsyms_compat.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/kallsyms_compat.h b/include/linux/kallsyms_compat.h index 34c45ea3a..fbe33e8e6 100644 --- a/include/linux/kallsyms_compat.h +++ b/include/linux/kallsyms_compat.h @@ -34,6 +34,7 @@ #else +extern wait_queue_head_t spl_kallsyms_lookup_name_waitq; typedef unsigned long (*kallsyms_lookup_name_t)(const char *); extern kallsyms_lookup_name_t spl_kallsyms_lookup_name_fn; #define spl_kallsyms_lookup_name(name) spl_kallsyms_lookup_name_fn(name) |