| /linux/drivers/infiniband/hw/hfi1/ |
| H A D | mmu_rb.c | 45 struct mmu_rb_handler **handler) in hfi1_mmu_rb_register() argument 74 *handler = h; in hfi1_mmu_rb_register() 78 void hfi1_mmu_rb_unregister(struct mmu_rb_handler *handler) in hfi1_mmu_rb_unregister() argument 86 mmgrab(handler->mn.mm); in hfi1_mmu_rb_unregister() 89 mmu_notifier_unregister(&handler->mn, handler->mn.mm); in hfi1_mmu_rb_unregister() 92 * Make sure the wq delete handler is finished running. It will not in hfi1_mmu_rb_unregister() 95 flush_work(&handler->del_work); in hfi1_mmu_rb_unregister() 99 spin_lock_irqsave(&handler->lock, flags); in hfi1_mmu_rb_unregister() 100 while ((node = rb_first_cached(&handler->root))) { in hfi1_mmu_rb_unregister() 102 rb_erase_cached(node, &handler->root); in hfi1_mmu_rb_unregister() [all …]
|
| /linux/net/ipv4/ |
| H A D | tunnel4.c | 31 int xfrm4_tunnel_register(struct xfrm_tunnel *handler, unsigned short family) in xfrm4_tunnel_register() argument 37 int priority = handler->priority; in xfrm4_tunnel_register() 51 handler->next = *pprev; in xfrm4_tunnel_register() 52 rcu_assign_pointer(*pprev, handler); in xfrm4_tunnel_register() 63 int xfrm4_tunnel_deregister(struct xfrm_tunnel *handler, unsigned short family) in xfrm4_tunnel_deregister() argument 75 if (t == handler) { in xfrm4_tunnel_deregister() 76 *pprev = handler->next; in xfrm4_tunnel_deregister() 90 #define for_each_tunnel_rcu(head, handler) \ argument 91 for (handler = rcu_dereference(head); \ 92 handler != NULL; \ [all …]
|
| /linux/net/ipv6/ |
| H A D | tunnel6.c | 32 int xfrm6_tunnel_register(struct xfrm6_tunnel *handler, unsigned short family) in xfrm6_tunnel_register() argument 37 int priority = handler->priority; in xfrm6_tunnel_register() 64 handler->next = *pprev; in xfrm6_tunnel_register() 65 rcu_assign_pointer(*pprev, handler); in xfrm6_tunnel_register() 76 int xfrm6_tunnel_deregister(struct xfrm6_tunnel *handler, unsigned short family) in xfrm6_tunnel_deregister() argument 101 if (t == handler) { in xfrm6_tunnel_deregister() 102 *pprev = handler->next; in xfrm6_tunnel_deregister() 117 #define for_each_tunnel_rcu(head, handler) \ argument 118 for (handler = rcu_dereference(head); \ 119 handler != NULL; \ [all …]
|
| H A D | xfrm6_protocol.c | 41 #define for_each_protocol_rcu(head, handler) \ argument 42 for (handler = rcu_dereference(head); \ 43 handler != NULL; \ 44 handler = rcu_dereference(handler->next)) \ 49 struct xfrm6_protocol *handler; in xfrm6_rcv_cb() local 55 for_each_protocol_rcu(*proto_handlers(protocol), handler) in xfrm6_rcv_cb() 56 if ((ret = handler->cb_handler(skb, err)) <= 0) in xfrm6_rcv_cb() 66 struct xfrm6_protocol *handler; in xfrm6_rcv_encap() local 98 for_each_protocol_rcu(*head, handler) in xfrm6_rcv_encap() 99 if ((ret = handler->input_handler(skb, nexthdr, spi, encap_type)) != -EINVAL) in xfrm6_rcv_encap() [all …]
|
| /linux/drivers/irqchip/ |
| H A D | irq-sifive-plic.c | 108 static void __plic_toggle(struct plic_handler *handler, int hwirq, int enable) in __plic_toggle() argument 110 u32 __iomem *base = handler->enable_base; in __plic_toggle() 122 handler->enable_save[group] = value; in __plic_toggle() 126 static void plic_toggle(struct plic_handler *handler, int hwirq, int enable) in plic_toggle() argument 130 raw_spin_lock_irqsave(&handler->enable_lock, flags); in plic_toggle() 131 __plic_toggle(handler, hwirq, enable); in plic_toggle() 132 raw_spin_unlock_irqrestore(&handler->enable_lock, flags); in plic_toggle() 141 struct plic_handler *handler = per_cpu_ptr(&plic_handlers, cpu); in plic_irq_toggle() local 143 plic_toggle(handler, d->hwirq, enable); in plic_irq_toggle() 174 struct plic_handler *handler = this_cpu_ptr(&plic_handlers); in plic_irq_eoi() local [all …]
|
| /linux/drivers/soc/fsl/qbman/ |
| H A D | qman_test_stash.c | 43 * moves it from one cpu to another. (The use of more than one handler per cpu 49 * each forwarding action. To achieve this, each handler will be assigned a 51 * received by a handler, the mixer of the expected sender is XOR'd into all 54 * the current handler. Apart from validating that the frame is taking the 57 * conditional branching. There is a "special" handler designated to act as the 65 * handlers and link-list them (but do no other handler setup). 68 * hp_cpu's 'iterator' to point to its first handler. With each loop, 69 * allocate rx/tx FQIDs and mixer values to the hp_cpu's iterator handler 71 * which connects the last handler to the first (and which is why phase 2 75 * hp_cpu's 'iterator' to point to its first handler. With each loop, [all …]
|
| /linux/kernel/ |
| H A D | reboot.c | 175 * @nb: Info about handler function to be called 176 * @nb->priority: Handler priority. Handlers should follow the 178 * 0: Restart handler of last resort, 180 * 128: Default restart handler; use if no other 181 * restart handler is expected to be available, 184 * 255: Highest priority restart handler, will 195 * If more than one function is registered, the restart handler priority 201 * restart handlers may exist; for example, one restart handler might 203 * In such cases, the restart handler which only restarts part of the 218 * restart handler [all …]
|
| /linux/drivers/acpi/ |
| H A D | wakeup.c | 102 * acpi_register_wakeup_handler - Register wakeup handler 104 * @wakeup: Wakeup-handler to call when the SCI has triggered a wakeup 105 * @context: Context to pass to the handler when calling it 108 * a handler which returns true when the device they are managing wants 114 struct acpi_wakeup_handler *handler; in acpi_register_wakeup_handler() local 118 * need to register the handler. in acpi_register_wakeup_handler() 123 handler = kmalloc_obj(*handler); in acpi_register_wakeup_handler() 124 if (!handler) in acpi_register_wakeup_handler() 127 handler->wakeup = wakeup; in acpi_register_wakeup_handler() 128 handler->context = context; in acpi_register_wakeup_handler() [all …]
|
| /linux/drivers/scsi/ |
| H A D | scsi_dh.c | 3 * SCSI device handler infrastructure. 120 * scsi_dh_handler_attach - Attach a device handler to a device 121 * @sdev - SCSI device the device handler should attach to 122 * @scsi_dh - The device handler to attach 154 sdev->handler = scsi_dh; in scsi_dh_handler_attach() 160 * scsi_dh_handler_detach - Detach a device handler from a device 161 * @sdev - SCSI device the device handler should be detached from 165 sdev->handler->detach(sdev); in scsi_dh_handler_detach() 166 sdev_printk(KERN_NOTICE, sdev, "%s: Detached\n", sdev->handler->name); in scsi_dh_handler_detach() 167 module_put(sdev->handler->module); in scsi_dh_handler_detach() [all …]
|
| /linux/rust/kernel/irq/ |
| H A D | request.rs | 24 /// The value that can be returned from a [`Handler`] or a [`ThreadedHandler`]. 34 /// Callbacks for an IRQ handler. 35 pub trait Handler: Sync { 36 /// The hard IRQ handler. 42 /// interrupt context, should be deferred to a threaded handler. 81 /// A registration of an IRQ handler for a given IRQ line. in drop() 87 /// handler and process context. [`Completion`] uses interior mutability, so the in drop() 88 /// handler can signal with [`Completion::complete_all()`] and the process 118 /// impl irq::Handler for Data { 126 /// // Registers an IRQ handler fo 30 pub trait Handler: Sync { global() interface 189 handler: T, global() field 239 pub fn handler(&self) -> &T { handler() method 409 handler: T, global() field 460 pub fn handler(&self) -> &T { handler() method [all...] |
| /linux/arch/arm/probes/uprobes/ |
| H A D | actions-arm.c | 195 [PROBES_PRELOAD_IMM] = {.handler = probes_simulate_nop}, 196 [PROBES_PRELOAD_REG] = {.handler = probes_simulate_nop}, 197 [PROBES_BRANCH_IMM] = {.handler = simulate_blx1}, 198 [PROBES_MRS] = {.handler = simulate_mrs}, 199 [PROBES_BRANCH_REG] = {.handler = simulate_blx2bx}, 200 [PROBES_CLZ] = {.handler = probes_simulate_nop}, 201 [PROBES_SATURATING_ARITHMETIC] = {.handler = probes_simulate_nop}, 202 [PROBES_MUL1] = {.handler = probes_simulate_nop}, 203 [PROBES_MUL2] = {.handler = probes_simulate_nop}, 204 [PROBES_SWP] = {.handler = probes_simulate_nop}, [all …]
|
| /linux/drivers/gpu/drm/amd/display/amdgpu_dm/ |
| H A D | amdgpu_dm_irq.c | 41 * The base driver provides IRQ source registration with DRM, handler 42 * registration into the base driver's IRQ table, and a handler callback 44 * handler looks up the IRQ table, and calls the respective 55 * are all set to the DM generic handler amdgpu_dm_irq_handler(), which looks up 72 * @list: Linked list entry referencing the next/previous handler 73 * @handler: Handler function 74 * @handler_arg: Argument passed to the handler when triggered 75 * @dm: DM which this handler belongs to 76 * @irq_source: DC interrupt source that this handler is registered for 81 interrupt_handler handler; member [all …]
|
| /linux/arch/xtensa/kernel/ |
| H A D | vectors.S | 22 * fast handler or the default handler, if no fast handler was registered. 23 * The default handler sets up a C-stack and dispatches the exception to a 24 * registerd C handler in the second-level dispatch table. 26 * Fast handler entry condition: 41 * Note: Neither the kernel nor the user exception handler generate literals. 63 * We switch to the kernel stack and jump to the first level handler 81 l32i a0, a0, EXC_TABLE_FAST_USER # load handler 92 * jump to the first-level handler associated with the exception cause. 108 l32i a0, a0, EXC_TABLE_FAST_KERNEL # load handler address 134 * vmalloc memory, possibly requiring repair in a double exception handler. [all …]
|
| /linux/arch/arm/probes/kprobes/ |
| H A D | actions-arm.c | 23 * setting a handler for it to run the instruction. 25 * In the execution phase by an instruction's handler: 31 * directly executed. Its handler calls the 298 [PROBES_PRELOAD_IMM] = {.handler = probes_simulate_nop}, 299 [PROBES_PRELOAD_REG] = {.handler = probes_simulate_nop}, 300 [PROBES_BRANCH_IMM] = {.handler = simulate_blx1}, 301 [PROBES_MRS] = {.handler = simulate_mrs}, 302 [PROBES_BRANCH_REG] = {.handler = simulate_blx2bx}, 303 [PROBES_CLZ] = {.handler = emulate_rd12rm0_noflags_nopc}, 305 .handler = emulate_rd12rn16rm0_rwflags_nopc}, [all …]
|
| H A D | actions-thumb.c | 621 [PROBES_T16_ADD_SP] = {.handler = t16_simulate_add_sp_imm}, 622 [PROBES_T16_CBZ] = {.handler = t16_simulate_cbz}, 623 [PROBES_T16_SIGN_EXTEND] = {.handler = t16_emulate_loregs_rwflags}, 626 [PROBES_T16_SEV] = {.handler = probes_emulate_none}, 627 [PROBES_T16_WFE] = {.handler = probes_simulate_nop}, 629 [PROBES_T16_CMP] = {.handler = t16_emulate_loregs_rwflags}, 630 [PROBES_T16_ADDSUB] = {.handler = t16_emulate_loregs_noitrwflags}, 631 [PROBES_T16_LOGICAL] = {.handler = t16_emulate_loregs_noitrwflags}, 632 [PROBES_T16_LDR_LIT] = {.handler = t16_simulate_ldr_literal}, 633 [PROBES_T16_BLX] = {.handler = t16_simulate_bxblx}, [all …]
|
| /linux/tools/testing/selftests/signal/ |
| H A D | mangle_uc_sigmask.c | 18 * that, in case of registering a handler and catching the corresponding 19 * signal, that state is before what was jumping into the handler. 22 * just during the execution of the handler, by mangling with uc_sigmask 23 * from inside the handler. 26 * signal for which the handler was installed, is S2. When S2 is sent to the 28 * signal and jump to the handler. Any instances of S1 or S2 raised, while the 29 * program is executing inside the handler, will be blocked; they will be 30 * delivered immediately upon termination of the handler. 54 * exit from handler in handler_verify_ucontext() 80 * from inside the handler in handler_usr() [all …]
|
| /linux/drivers/s390/crypto/ |
| H A D | pkey_base.c | 3 * pkey base: debug feature, pkey handler registry 30 * pkey handler registry 36 int pkey_handler_register(struct pkey_handler *handler) in pkey_handler_register() argument 40 if (!handler || in pkey_handler_register() 41 !handler->is_supported_key || in pkey_handler_register() 42 !handler->is_supported_keytype) in pkey_handler_register() 45 if (!try_module_get(handler->module)) in pkey_handler_register() 52 if (h == handler) { in pkey_handler_register() 55 module_put(handler->module); in pkey_handler_register() 61 list_add_rcu(&handler->list, &handler_list); in pkey_handler_register() [all …]
|
| /linux/Documentation/arch/arm/ |
| H A D | interrupts.rst | 39 SA1111 IRQ handler, SA1111 IRQs can hold off SMC9196 IRQs indefinitely. 45 to the Neponset handler, the "parent" is GPIO25, and the "children"d 90 the hardware IRQ if possible. If not, may call the handler 104 - per-IRQ handler 107 The handler can be one of the 3 standard handlers - "level", "edge" and 108 "simple", or your own specific handler if you need to do something special. 110 The "level" handler is what we currently have - its pretty simple. 114 "simple" handler is very basic, and does not perform any hardware 131 set_irq_handler(irq,handler) 132 Set the handler for this IRQ (level, edge, simple) [all …]
|
| /linux/Documentation/RCU/ |
| H A D | NMI-RCU.rst | 21 The dummy_nmi_callback() function is a "dummy" NMI handler that does 23 the NMI handler to take the default machine-specific action:: 28 NMI handler:: 47 count of NMIs. It then invokes the NMI handler stored in the nmi_callback 48 function pointer. If this handler returns zero, do_nmi() invokes the 70 The set_nmi_callback() function registers an NMI handler. Note that any 73 writes, the rcu_assign_pointer() ensures that the NMI handler sees the 81 This function unregisters an NMI handler, restoring the original 82 dummy_nmi_handler(). However, there may well be an NMI handler 84 up any data structures used by the old NMI handler until execution [all …]
|
| /linux/kernel/irq/ |
| H A D | devres.c | 34 irq_handler_t handler, irq_handler_t thread_fn, in devm_request_result() argument 41 irq, handler, thread_fn, devname ? : ""); in devm_request_result() 45 irq_handler_t handler, in __devm_request_threaded_irq() argument 61 rc = request_threaded_irq(irq, handler, thread_fn, irqflags, devname, in __devm_request_threaded_irq() 79 * @handler: Function to be called when the interrupt occurs 81 * for devices which handle everything in @handler 84 * @dev_id: A cookie passed back to the handler function 95 * information (device name, interrupt number, handler functions and 101 irq_handler_t handler, irq_handler_t thread_fn, in devm_request_threaded_irq() argument 105 int rc = __devm_request_threaded_irq(dev, irq, handler, thread_fn, in devm_request_threaded_irq() [all …]
|
| /linux/drivers/input/rmi4/ |
| H A D | rmi_bus.c | 150 const struct rmi_function_handler *handler = to_rmi_function_handler(drv); in rmi_function_match() local 153 return fn->fd.function_number == handler->func; in rmi_function_match() 176 struct rmi_function_handler *handler) in rmi_create_function_irq() argument 193 handler->attention, IRQF_ONESHOT, in rmi_create_function_irq() 207 struct rmi_function_handler *handler = in rmi_function_probe() local 213 if (handler->probe) { in rmi_function_probe() 214 error = handler->probe(fn); in rmi_function_probe() 219 if (fn->num_of_irqs && handler->attention) { in rmi_function_probe() 220 error = rmi_create_function_irq(fn, handler); in rmi_function_probe() 231 struct rmi_function_handler *handler = in rmi_function_remove() local [all …]
|
| /linux/arch/um/include/shared/ |
| H A D | irq_kern.h | 17 irq_handler_t handler, unsigned long irqflags, 22 * um_request_irq_tt - request an IRQ with timetravel handler 27 * @handler: the (generic style) IRQ handler 30 * @dev_id: data pointer to pass to the IRQ handler 31 * @timetravel_handler: the timetravel interrupt handler, invoked with the IRQ 36 * Note that the timetravel handler is invoked only if the time_travel_mode is 46 * it to pass such a message to the @handler in whichever way it can. 49 * not be invoked at all and the @handler must handle the FD becoming 56 irq_handler_t handler, unsigned long irqflags, 63 irq_handler_t handler, unsigned long irqflags, in um_request_irq_tt() argument [all …]
|
| /linux/kernel/trace/ |
| H A D | rethook.c | 46 * all running rethook handler before calling rethook_free(), you need to 51 rcu_assign_pointer(rh->handler, NULL); in rethook_stop() 59 * @rh::data is cleaned if needed (or, the handler can access it after 87 return (rethook_handler_t)rcu_dereference_check(rh->handler, in rethook_get_handler() 93 * @data: a data to pass the @handler when hooking the return. 94 * @handler: the return hook callback function, must NOT be NULL 98 * Allocate and initialize a new rethook with @data and @handler. 101 * Note that @handler == NULL means this rethook is going to be freed. 103 struct rethook *rethook_alloc(void *data, rethook_handler_t handler, in rethook_alloc() argument 108 if (!handler || num <= 0 || size < sizeof(struct rethook_node)) in rethook_alloc() [all …]
|
| /linux/fs/btrfs/ |
| H A D | props.c | 70 const struct prop_handler *handler; in btrfs_validate_prop() local 75 handler = find_prop_handler(name, NULL); in btrfs_validate_prop() 76 if (!handler) in btrfs_validate_prop() 82 return handler->validate(inode, value, value_len); in btrfs_validate_prop() 99 const struct prop_handler *handler; in btrfs_ignore_prop() local 101 handler = find_prop_handler(name, NULL); in btrfs_ignore_prop() 102 ASSERT(handler != NULL); in btrfs_ignore_prop() 104 return handler->ignore(inode); in btrfs_ignore_prop() 111 const struct prop_handler *handler; in btrfs_set_prop() local 114 handler = find_prop_handler(name, NULL); in btrfs_set_prop() [all …]
|
| /linux/Documentation/core-api/ |
| H A D | genericirq.rst | 29 __do_IRQ() super-handler, which is able to deal with every type of 33 a quite universal set for the ARM interrupt handler implementation in 46 In the SMP world of the __do_IRQ() super-handler another type was 58 the flow control in the super-handler. This leads to a mix of flow logic 74 Each interrupt descriptor is assigned its own high-level flow handler, 76 flow handler implementation also makes it simple to provide 86 of existing implementations, the __do_IRQ() super-handler is still 219 Default flow handler implementations 222 Default Level IRQ flow handler 235 Default Fast EOI IRQ flow handler [all …]
|