hw/isa/piix3: Resolve redundant PIIX_NUM_PIC_IRQS
PIIX_NUM_PIC_IRQS is assumed to be the same as ISA_NUM_IRQS, otherwise inconsistencies can occur. Signed-off-by: Bernhard Beschow <shentey@gmail.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Message-Id: <20231007123843.127151-5-shentey@gmail.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
8b6cf5128e
commit
32f29b26ff
@ -48,7 +48,7 @@ static void piix3_set_irq_level_internal(PIIX3State *piix3, int pirq, int level)
|
||||
uint64_t mask;
|
||||
|
||||
pic_irq = piix3->dev.config[PIIX_PIRQCA + pirq];
|
||||
if (pic_irq >= PIIX_NUM_PIC_IRQS) {
|
||||
if (pic_irq >= ISA_NUM_IRQS) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ static void piix3_set_irq_level(PIIX3State *piix3, int pirq, int level)
|
||||
int pic_irq;
|
||||
|
||||
pic_irq = piix3->dev.config[PIIX_PIRQCA + pirq];
|
||||
if (pic_irq >= PIIX_NUM_PIC_IRQS) {
|
||||
if (pic_irq >= ISA_NUM_IRQS) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -83,7 +83,7 @@ static PCIINTxRoute piix3_route_intx_pin_to_irq(void *opaque, int pin)
|
||||
int irq = piix3->dev.config[PIIX_PIRQCA + pin];
|
||||
PCIINTxRoute route;
|
||||
|
||||
if (irq < PIIX_NUM_PIC_IRQS) {
|
||||
if (irq < ISA_NUM_IRQS) {
|
||||
route.mode = PCI_INTX_ENABLED;
|
||||
route.irq = irq;
|
||||
} else {
|
||||
@ -115,7 +115,7 @@ static void piix3_write_config(PCIDevice *dev,
|
||||
|
||||
pci_bus_fire_intx_routing_notifier(pci_get_bus(&piix3->dev));
|
||||
piix3_update_irq_levels(piix3);
|
||||
for (pic_irq = 0; pic_irq < PIIX_NUM_PIC_IRQS; pic_irq++) {
|
||||
for (pic_irq = 0; pic_irq < ISA_NUM_IRQS; pic_irq++) {
|
||||
piix3_set_irq_pic(piix3, pic_irq);
|
||||
}
|
||||
}
|
||||
|
@ -27,7 +27,6 @@
|
||||
*/
|
||||
#define PIIX_RCR_IOPORT 0xcf9
|
||||
|
||||
#define PIIX_NUM_PIC_IRQS 16 /* i8259 * 2 */
|
||||
#define PIIX_NUM_PIRQS 4ULL /* PIRQ[A-D] */
|
||||
|
||||
struct PIIXState {
|
||||
@ -39,10 +38,10 @@ struct PIIXState {
|
||||
* So one PIC level is tracked by PIIX_NUM_PIRQS bits.
|
||||
*
|
||||
* PIRQ is mapped to PIC pins, we track it by
|
||||
* PIIX_NUM_PIRQS * PIIX_NUM_PIC_IRQS = 64 bits with
|
||||
* PIIX_NUM_PIRQS * ISA_NUM_IRQS = 64 bits with
|
||||
* pic_irq * PIIX_NUM_PIRQS + pirq
|
||||
*/
|
||||
#if PIIX_NUM_PIC_IRQS * PIIX_NUM_PIRQS > 64
|
||||
#if ISA_NUM_IRQS * PIIX_NUM_PIRQS > 64
|
||||
#error "unable to encode pic state in 64bit in pic_levels."
|
||||
#endif
|
||||
uint64_t pic_levels;
|
||||
|
Loading…
x
Reference in New Issue
Block a user