local_disable_irq后,gic再产生的中断,ARM Core不会去处理,也就不会清除gic寄存器中的中断状态. 等到 local_enable_irq后, 该中断还会再送给ARM Core. 所以这种情况中断不会丢失… 所以在某一时刻屏蔽了IPI_RESCHEDULE,也只是屏蔽,也没有去清gic中相关寄存器。所以等到恢复屏蔽后,应该也不会丢中断...
void (*irq_shutdown)(struct irq_data *data); void (*irq_enable)(struct irq_data *data); void (*irq_disable)(struct irq_data *data); void (*irq_ack)(struct irq_data *data); void (*irq_mask)(struct irq_data *data); void (*irq_mask_ack)(struct irq_data *data); void (*irq...
为每个irq_desc结构安装irq_chip指针,使他指向正确的中断控制器所对应的irq_chip结构的实例,同时,如果该平台中的中断线有多路复用(多个中断公用一个irq中断线)的情况,还应该初始化irq_desc中相应的字段和标志,以便实现中断控制器的级联。
unsigned int (*irq_startup)(struct irq_data *data); void (*irq_shutdown)(struct irq_data *data); void (*irq_enable)(struct irq_data *data); void (*irq_disable)(struct irq_data *data); void (*irq_ack)(struct irq_data *data); void (*irq_mask)(struct irq_data *data)...
vector_stub irq, IRQ_MODE, 4 以上这一句把宏展开后实际上就是定义了vector_irq,根据进入中断前的cpu模式,分别跳转到__irq_usr或__irq_svc。 [plain]view plaincopy vector_stub dabt, ABT_MODE, 8 以上这一句把宏展开后实际上就是定义了vector_dabt,根据进入中断前的cpu模式,分别跳转到__dabt_usr或__da...
*/local_irq_disable(); arch_spin_lock(&sun8i_mcpm_lock); sun8i_cpu_use_count[cluster][cpu]++; sun8i_cluster_use_count[cluster]++;arch_spin_unlock(&sun8i_mcpm_lock); local_irq_enable(); clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &dev->cpu);//cpu_cluster_pm_exit();cpu_...
* out to the console drivers */mdelay(500);/* Disable interrupts first */local_irq_disable(); local_fiq_disable();/* *FIXME:Do not turn off cache before ldrex/strex! *//* * Now call the architecture specific reboot code. */arch_reset(mode, cmd);/* ...
下面是回溯 (gdb) bt #0 arch_local_irq_enable () at /home/sami/linux/arch/arm64/include/asm/irqflags.h:37 #1 arch_cpu_idle () at /home/sami/linux/arch/arm64/kernel/process.c:126 #2 0xffff8000106eb8d4 in default_idle_call () at /home/sami/linux/kernel/sched/idle.c:94 #3 ...
(&userspace_irqchip_in_use)) kvm_timer_sync_user(vcpu); kvm_vgic_sync_hwstate(vcpu); local_irq_enable(); preempt_enable(); continue; } kvm_arm_setup_debug(vcpu); kvm_arch_vcpu_ctxflush_fp(vcpu); /*** * Enter the guest */ trace_kvm_entry(*vcpu_pc(vcpu)); guest_timing_enter...
CONFIG_PCI_MSI_IRQ_DOMAIN=y # CONFIG_PCI_DEBUG is not set # CONFIG_PCI_REALLOC_ENABLE_AUTO is not set # CONFIG_PCI_STUB is not set # CONFIG_PCI_IOV is not set # CONFIG_PCI_PRI is not set # CONFIG_PCI_PASID is not set CONFIG_PCI_MSM=y # CONFIG_HOTPLUG_PCI is not set # #...