From 2ade659eb4f836931f10b69477657a054d743894 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Thu, 14 May 2020 20:45:16 -0700 Subject: Fix abd_enter/exit_critical wrappers Commit fc551d7 introduced the wrappers abd_enter_critical() and abd_exit_critical() to mark critical sections. On Linux these are implemented with the local_irq_save() and local_irq_restore() macros which set the 'flags' argument when saving. By wrapping them with a function the local variable is no longer set by the macro and is no longer properly restored. Convert abd_enter_critical() and abd_exit_critical() to macros to resolve this issue and ensure the flags are properly restored. Reviewed-by: Matthew Ahrens Reviewed-by: Brian Atkinson Signed-off-by: Brian Behlendorf Closes #10332 --- module/os/linux/zfs/abd_os.c | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'module/os/linux') diff --git a/module/os/linux/zfs/abd_os.c b/module/os/linux/zfs/abd_os.c index 57e415ef3..a8e8f404d 100644 --- a/module/os/linux/zfs/abd_os.c +++ b/module/os/linux/zfs/abd_os.c @@ -803,18 +803,6 @@ abd_iter_unmap(struct abd_iter *aiter) aiter->iter_mapsize = 0; } -void -abd_enter_critical(unsigned long flags) -{ - local_irq_save(flags); -} - -void -abd_exit_critical(unsigned long flags) -{ - local_irq_restore(flags); -} - #if defined(_KERNEL) /* * bio_nr_pages for ABD. -- cgit v1.2.3