irq_ctx
union irq_ctx *irqctx;
irqctx = (union irq_ctx *)&hardirq_stack[cpu * THREAD_SIZE];
irqctx = (union irq_ctx *)&softirq_stack[cpu * THREAD_SIZE];
union irq_ctx *irqctx;
static union irq_ctx *hardirq_ctx[NR_CPUS] __read_mostly;
static union irq_ctx *softirq_ctx[NR_CPUS] __read_mostly;
union irq_ctx *curctx, *irqctx;
curctx = (union irq_ctx *)current_thread_info();
irq = feature->irq_ctx[idx].irq;
if (feature->irq_ctx[idx].trigger) {
free_irq(irq, feature->irq_ctx[idx].trigger);
kfree(feature->irq_ctx[idx].name);
eventfd_ctx_put(feature->irq_ctx[idx].trigger);
feature->irq_ctx[idx].trigger = NULL;
feature->irq_ctx[idx].name =
if (!feature->irq_ctx[idx].name)
feature->irq_ctx[idx].name, trigger);
feature->irq_ctx[idx].trigger = trigger;
kfree(feature->irq_ctx[idx].name);
ddev->irqs[i] = feature->irq_ctx[i].irq;
feature->irq_ctx = ctx;
struct dfl_feature_irq_ctx *irq_ctx;
struct i2c_acpi_irq_context *irq_ctx = data;
if (irq_ctx->irq > 0)
irq_ctx->irq = i2c_dev_irq_from_resources(&r, 1);
irq_ctx->wake_capable = r.flags & IORESOURCE_IRQ_WAKECAPABLE;
struct i2c_acpi_irq_context irq_ctx = {
i2c_acpi_add_irq_resource, &irq_ctx);
if (irq_ctx.irq == -ENOENT)
irq_ctx.irq = acpi_dev_gpio_irq_wake_get(adev, 0, &irq_ctx.wake_capable);
if (irq_ctx.irq < 0)
return irq_ctx.irq;
*wake_capable = irq_ctx.wake_capable;
return irq_ctx.irq;
mdev->irq_ctx[usr] = mbox_read_reg(mdev, reg);
mbox_write_reg(mdev, mdev->irq_ctx[usr], reg);
mdev->irq_ctx = devm_kcalloc(&pdev->dev, num_users, sizeof(u32),
if (!mdev->irq_ctx)
u32 *irq_ctx;
struct ntb_epf_irq_ctx irq_ctx[NTB_EPF_MAX_DB_COUNT + 1];
ndev->irq_ctx[i].ndev = ndev;
ndev->irq_ctx[i].irq_no = i;
0, "ntb_epf", &ndev->irq_ctx[i]);
free_irq(pci_irq_vector(pdev, i), &ndev->irq_ctx[i]);
free_irq(pci_irq_vector(pdev, i), &ndev->irq_ctx[i]);
struct megasas_irq_context *irq_ctx;
irq_ctx = &instance->irq_context[i];
irq_ctx->os_irq = pci_irq_vector(instance->pdev, i);
irq_ctx->irq_poll_scheduled = false;
irq_poll_init(&irq_ctx->irqpoll,
struct megasas_irq_context *irq_ctx;
irq_ctx = &instance->irq_context[i];
irq_poll_disable(&irq_ctx->irqpoll);
struct megasas_irq_context *irq_ctx;
irq_ctx = &instance->irq_context[i];
irq_poll_enable(&irq_ctx->irqpoll);
struct megasas_irq_context *irq_ctx;
irq_ctx = &instance->irq_context[i];
irq_poll_disable(&irq_ctx->irqpoll);
if (irq_ctx->irq_poll_scheduled) {
irq_ctx->irq_poll_scheduled = false;
enable_irq(irq_ctx->os_irq);
complete_cmd_fusion(instance, irq_ctx->MSIxIndex, irq_ctx);
struct megasas_irq_context *irq_ctx;
irq_ctx = container_of(irqpoll, struct megasas_irq_context, irqpoll);
instance = irq_ctx->instance;
if (irq_ctx->irq_line_enable) {
disable_irq_nosync(irq_ctx->os_irq);
irq_ctx->irq_line_enable = false;
num_entries = complete_cmd_fusion(instance, irq_ctx->MSIxIndex, irq_ctx);
irq_ctx->irq_poll_scheduled = false;
enable_irq(irq_ctx->os_irq);
complete_cmd_fusion(instance, irq_ctx->MSIxIndex, irq_ctx);
struct megasas_irq_context *irq_ctx = NULL;
irq_ctx = &instance->irq_context[MSIxIndex];
complete_cmd_fusion(instance, MSIxIndex, irq_ctx);
static void vfio_send_eventfd(struct vfio_platform_irq *irq_ctx)
if (likely(irq_ctx->trigger))
eventfd_signal(irq_ctx->trigger);
struct vfio_platform_irq *irq_ctx = dev_id;
spin_lock_irqsave(&irq_ctx->lock, flags);
if (!irq_ctx->masked) {
disable_irq_nosync(irq_ctx->hwirq);
irq_ctx->masked = true;
spin_unlock_irqrestore(&irq_ctx->lock, flags);
vfio_send_eventfd(irq_ctx);
struct vfio_platform_irq *irq_ctx = dev_id;
vfio_send_eventfd(irq_ctx);
static void vfio_platform_mask(struct vfio_platform_irq *irq_ctx)
spin_lock_irqsave(&irq_ctx->lock, flags);
if (!irq_ctx->masked) {
disable_irq_nosync(irq_ctx->hwirq);
irq_ctx->masked = true;
spin_unlock_irqrestore(&irq_ctx->lock, flags);
struct vfio_platform_irq *irq_ctx = opaque;
vfio_platform_mask(irq_ctx);
static void vfio_platform_unmask(struct vfio_platform_irq *irq_ctx)
spin_lock_irqsave(&irq_ctx->lock, flags);
if (irq_ctx->masked) {
enable_irq(irq_ctx->hwirq);
irq_ctx->masked = false;
spin_unlock_irqrestore(&irq_ctx->lock, flags);
struct vfio_platform_irq *irq_ctx = opaque;
vfio_platform_unmask(irq_ctx);
struct irq_sim_irq_ctx *irq_ctx = irq_data_get_irq_chip_data(data);
struct irq_sim_work_ctx *work_ctx = irq_ctx->work_ctx;
struct irq_sim_irq_ctx *irq_ctx;
irq_ctx = kzalloc_obj(*irq_ctx);
if (!irq_ctx)
irq_set_chip_data(virq, irq_ctx);
irq_ctx->work_ctx = work_ctx;
struct irq_sim_irq_ctx *irq_ctx;
irq_ctx = irq_data_get_irq_chip_data(irqd);
kfree(irq_ctx);
struct irq_sim_irq_ctx *irq_ctx = irq_data_get_irq_chip_data(data);
irq_ctx->enabled = false;
struct irq_sim_irq_ctx *irq_ctx = irq_data_get_irq_chip_data(data);
irq_ctx->enabled = true;
struct irq_sim_irq_ctx *irq_ctx = irq_data_get_irq_chip_data(data);
if (irq_ctx->enabled)
*state = test_bit(hwirq, irq_ctx->work_ctx->pending);
struct irq_sim_irq_ctx *irq_ctx = irq_data_get_irq_chip_data(data);
if (irq_ctx->enabled) {
assign_bit(hwirq, irq_ctx->work_ctx->pending, state);
irq_work_queue(&irq_ctx->work_ctx->work);
struct irq_sim_irq_ctx *irq_ctx = irq_data_get_irq_chip_data(data);
struct irq_sim_work_ctx *work_ctx = irq_ctx->work_ctx;