Skip to content

Commit

Permalink
[SPARC64]: Move over to GENERIC_HARDIRQS.
Browse files Browse the repository at this point in the history
This is the long overdue conversion of sparc64 over to
the generic IRQ layer.

The kernel image is slightly larger, but the BSS is ~60K
smaller due to the reduced size of struct ino_bucket.

A lot of IRQ implementation details, including ino_bucket,
were moved out of asm-sparc64/irq.h and are now private to
arch/sparc64/kernel/irq.c, and most of the code in irq.c
totally disappeared.

One thing that's different at the moment is IRQ distribution,
we do it at enable_irq() time.  If the cpu mask is ALL then
we round-robin using a global rotating cpu counter, else
we pick the first cpu in the mask to support single cpu
targetting.  This is similar to what powerpc's XICS IRQ
support code does.

This works fine on my UP SB1000, and the SMP build goes
fine and runs on that machine, but lots of testing on
different setups is needed.

Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
David S. Miller committed Jun 20, 2006
1 parent 8047e24 commit e18e2a0
Show file tree
Hide file tree
Showing 15 changed files with 305 additions and 802 deletions.
4 changes: 4 additions & 0 deletions arch/sparc64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@ config SYSVIPC_COMPAT
depends on COMPAT && SYSVIPC
default y

config GENERIC_HARDIRQS
bool
default y

menu "General machine setup"

config SMP
Expand Down
2 changes: 1 addition & 1 deletion arch/sparc64/kernel/devices.c
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ unsigned int sun4v_vdev_device_interrupt(unsigned int dev_node)
return 0;
}

return sun4v_build_irq(sun4v_vdev_devhandle, irq, 0);
return sun4v_build_irq(sun4v_vdev_devhandle, irq);
}

static const char *cpu_mid_prop(void)
Expand Down
2 changes: 1 addition & 1 deletion arch/sparc64/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@ do_ivec:
membar #Sync

sethi %hi(ivector_table), %g2
sllx %g3, 5, %g3
sllx %g3, 3, %g3
or %g2, %lo(ivector_table), %g2
add %g2, %g3, %g3

Expand Down
Loading

0 comments on commit e18e2a0

Please sign in to comment.