Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c1addbc authored by Tony Luck's avatar Tony Luck
Browse files

[IA64] Fix breakage from irq change



A few missed spots in ia64-land from this gigantic commit:

7d12e780

Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent 49f19ce4
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -194,8 +194,11 @@ void fixup_irqs(void)
	 */
	 */
	for (irq=0; irq < NR_IRQS; irq++) {
	for (irq=0; irq < NR_IRQS; irq++) {
		if (vectors_in_migration[irq]) {
		if (vectors_in_migration[irq]) {
			struct pt_regs *old_regs = set_irq_regs(NULL);

			vectors_in_migration[irq]=0;
			vectors_in_migration[irq]=0;
			__do_IRQ(irq, NULL);
			__do_IRQ(irq);
			set_irq_regs(old_regs);
		}
		}
	}
	}


+5 −2
Original line number Original line Diff line number Diff line
@@ -226,6 +226,8 @@ void ia64_process_pending_intr(void)
	  */
	  */
	while (vector != IA64_SPURIOUS_INT_VECTOR) {
	while (vector != IA64_SPURIOUS_INT_VECTOR) {
		if (!IS_RESCHEDULE(vector)) {
		if (!IS_RESCHEDULE(vector)) {
			struct pt_regs *old_regs = set_irq_regs(NULL);

			ia64_setreg(_IA64_REG_CR_TPR, vector);
			ia64_setreg(_IA64_REG_CR_TPR, vector);
			ia64_srlz_d();
			ia64_srlz_d();


@@ -236,7 +238,8 @@ void ia64_process_pending_intr(void)
			 * Probably could shared code.
			 * Probably could shared code.
			 */
			 */
			vectors_in_migration[local_vector_to_irq(vector)]=0;
			vectors_in_migration[local_vector_to_irq(vector)]=0;
			__do_IRQ(local_vector_to_irq(vector), NULL);
			__do_IRQ(local_vector_to_irq(vector));
			set_irq_regs(old_regs);


			/*
			/*
			 * Disable interrupts and send EOI
			 * Disable interrupts and send EOI
@@ -253,7 +256,7 @@ void ia64_process_pending_intr(void)




#ifdef CONFIG_SMP
#ifdef CONFIG_SMP
extern irqreturn_t handle_IPI (int irq, void *dev_id, struct pt_regs *regs);
extern irqreturn_t handle_IPI (int irq, void *dev_id);


static struct irqaction ipi_irqaction = {
static struct irqaction ipi_irqaction = {
	.handler =	handle_IPI,
	.handler =	handle_IPI,
+1 −1
Original line number Original line Diff line number Diff line
@@ -36,7 +36,7 @@ extern irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs);


#define SN_LB_INT_WAR_INTERVAL 100
#define SN_LB_INT_WAR_INTERVAL 100


void sn_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
void sn_timer_interrupt(int irq, void *dev_id)
{
{
	/* LED blinking */
	/* LED blinking */
	if (!pda->hb_count--) {
	if (!pda->hb_count--) {
+1 −1
Original line number Original line Diff line number Diff line
@@ -674,7 +674,7 @@ static void sn_sal_timer_poll(unsigned long data)
	if (!port->sc_port.irq) {
	if (!port->sc_port.irq) {
		spin_lock_irqsave(&port->sc_port.lock, flags);
		spin_lock_irqsave(&port->sc_port.lock, flags);
		if (sn_process_input)
		if (sn_process_input)
			sn_receive_chars(port, NULL, flags);
			sn_receive_chars(port, flags);
		sn_transmit_chars(port, TRANSMIT_RAW);
		sn_transmit_chars(port, TRANSMIT_RAW);
		spin_unlock_irqrestore(&port->sc_port.lock, flags);
		spin_unlock_irqrestore(&port->sc_port.lock, flags);
		mod_timer(&port->sc_timer,
		mod_timer(&port->sc_timer,