xref: /freebsd/sys/compat/linuxkpi/common/include/linux/hardirq.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
18d59ecb2SHans Petter Selasky /*-
28d59ecb2SHans Petter Selasky  * Copyright (c) 2010 Isilon Systems, Inc.
38d59ecb2SHans Petter Selasky  * Copyright (c) 2010 iX Systems, Inc.
48d59ecb2SHans Petter Selasky  * Copyright (c) 2010 Panasas, Inc.
58d59ecb2SHans Petter Selasky  * Copyright (c) 2013 Mellanox Technologies, Ltd.
68d59ecb2SHans Petter Selasky  * All rights reserved.
78d59ecb2SHans Petter Selasky  *
88d59ecb2SHans Petter Selasky  * Redistribution and use in source and binary forms, with or without
98d59ecb2SHans Petter Selasky  * modification, are permitted provided that the following conditions
108d59ecb2SHans Petter Selasky  * are met:
118d59ecb2SHans Petter Selasky  * 1. Redistributions of source code must retain the above copyright
128d59ecb2SHans Petter Selasky  *    notice unmodified, this list of conditions, and the following
138d59ecb2SHans Petter Selasky  *    disclaimer.
148d59ecb2SHans Petter Selasky  * 2. Redistributions in binary form must reproduce the above copyright
158d59ecb2SHans Petter Selasky  *    notice, this list of conditions and the following disclaimer in the
168d59ecb2SHans Petter Selasky  *    documentation and/or other materials provided with the distribution.
178d59ecb2SHans Petter Selasky  *
188d59ecb2SHans Petter Selasky  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
198d59ecb2SHans Petter Selasky  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
208d59ecb2SHans Petter Selasky  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
218d59ecb2SHans Petter Selasky  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
228d59ecb2SHans Petter Selasky  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
238d59ecb2SHans Petter Selasky  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
248d59ecb2SHans Petter Selasky  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
258d59ecb2SHans Petter Selasky  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
268d59ecb2SHans Petter Selasky  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
278d59ecb2SHans Petter Selasky  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
288d59ecb2SHans Petter Selasky  */
29307f78f3SVladimir Kondratyev #ifndef _LINUXKPI_LINUX_HARDIRQ_H_
30307f78f3SVladimir Kondratyev #define	_LINUXKPI_LINUX_HARDIRQ_H_
318d59ecb2SHans Petter Selasky 
328d59ecb2SHans Petter Selasky #include <linux/types.h>
33f12af2b3SEmmanuel Vadot #include <linux/lockdep.h>
348d59ecb2SHans Petter Selasky 
358d59ecb2SHans Petter Selasky #include <sys/param.h>
368d59ecb2SHans Petter Selasky #include <sys/bus.h>
378d59ecb2SHans Petter Selasky #include <sys/interrupt.h>
388d59ecb2SHans Petter Selasky 
398d59ecb2SHans Petter Selasky #define	synchronize_irq(irq)	_intr_drain((irq))
408d59ecb2SHans Petter Selasky 
41*a609ed79SJean-Sébastien Pédron /*
42*a609ed79SJean-Sébastien Pédron  * FIXME: In the i915 driver's `intel_engine_cs.c` file,
43*a609ed79SJean-Sébastien Pédron  * `synchronize_hardirq()` was replaced by `synchronize_rcu()` with the
44*a609ed79SJean-Sébastien Pédron  * following comment:
45*a609ed79SJean-Sébastien Pédron  *   "Is it enough to wait that all cpu have context-switched?"
46*a609ed79SJean-Sébastien Pédron  *
47*a609ed79SJean-Sébastien Pédron  * See commit f6d50b7af554e21c380486d6f41c8537b265c777 in drm-kmod.
48*a609ed79SJean-Sébastien Pédron  */
49*a609ed79SJean-Sébastien Pédron #define	synchronize_hardirq(irq) _intr_drain((irq))
50*a609ed79SJean-Sébastien Pédron 
51307f78f3SVladimir Kondratyev #endif	/* _LINUXKPI_LINUX_HARDIRQ_H_ */
52