Print this page
8626 make pcplusmp and apix warning-free
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

*** 106,115 **** --- 106,117 ---- static int apic_disable_intr(processorid_t cpun); static void apic_enable_intr(processorid_t cpun); static int apic_get_ipivect(int ipl, int type); static void apic_post_cyclic_setup(void *arg); + #define UCHAR_MAX UINT8_MAX + /* * The following vector assignments influence the value of ipltopri and * vectortoipl. Note that vectors 0 - 0x1f are not used. We can program * idle to 0 and IPL 0 to 0xf to differentiate idle in case * we care to do so in future. Note some IPLs which are rarely used
*** 1066,1076 **** apic_alloc_msi_vectors(dev_info_t *dip, int inum, int count, int pri, int behavior) { int rcount, i; uchar_t start, irqno; ! uint32_t cpu; major_t major; apic_irq_t *irqptr; DDI_INTR_IMPLDBG((CE_CONT, "apic_alloc_msi_vectors: dip=0x%p " "inum=0x%x pri=0x%x count=0x%x behavior=%d\n", --- 1068,1078 ---- apic_alloc_msi_vectors(dev_info_t *dip, int inum, int count, int pri, int behavior) { int rcount, i; uchar_t start, irqno; ! uint32_t cpu = 0; major_t major; apic_irq_t *irqptr; DDI_INTR_IMPLDBG((CE_CONT, "apic_alloc_msi_vectors: dip=0x%p " "inum=0x%x pri=0x%x count=0x%x behavior=%d\n",
*** 1138,1148 **** apic_vector_to_irq[start + i] = (uchar_t)irqno; irqptr->airq_vector = (uchar_t)(start + i); irqptr->airq_ioapicindex = (uchar_t)inum; /* start */ irqptr->airq_intin_no = (uchar_t)rcount; ! irqptr->airq_ipl = pri; irqptr->airq_vector = start + i; irqptr->airq_origirq = (uchar_t)(inum + i); irqptr->airq_share_id = 0; irqptr->airq_mps_intr_index = MSI_INDEX; irqptr->airq_dip = dip; --- 1140,1151 ---- apic_vector_to_irq[start + i] = (uchar_t)irqno; irqptr->airq_vector = (uchar_t)(start + i); irqptr->airq_ioapicindex = (uchar_t)inum; /* start */ irqptr->airq_intin_no = (uchar_t)rcount; ! ASSERT(pri >= 0 && pri <= UCHAR_MAX); ! irqptr->airq_ipl = (uchar_t)pri; irqptr->airq_vector = start + i; irqptr->airq_origirq = (uchar_t)(inum + i); irqptr->airq_share_id = 0; irqptr->airq_mps_intr_index = MSI_INDEX; irqptr->airq_dip = dip;
*** 1215,1225 **** } apic_max_device_irq = max(irqno, apic_max_device_irq); apic_min_device_irq = min(irqno, apic_min_device_irq); irqptr = apic_irq_table[irqno]; irqptr->airq_vector = (uchar_t)vector; ! irqptr->airq_ipl = pri; irqptr->airq_origirq = (uchar_t)(inum + i); irqptr->airq_share_id = 0; irqptr->airq_mps_intr_index = MSIX_INDEX; irqptr->airq_dip = dip; irqptr->airq_major = major; --- 1218,1229 ---- } apic_max_device_irq = max(irqno, apic_max_device_irq); apic_min_device_irq = min(irqno, apic_min_device_irq); irqptr = apic_irq_table[irqno]; irqptr->airq_vector = (uchar_t)vector; ! ASSERT(pri >= 0 && pri <= UCHAR_MAX); ! irqptr->airq_ipl = (uchar_t)pri; irqptr->airq_origirq = (uchar_t)(inum + i); irqptr->airq_share_id = 0; irqptr->airq_mps_intr_index = MSIX_INDEX; irqptr->airq_dip = dip; irqptr->airq_major = major;
*** 1257,1267 **** for (i = lowest; i <= highest; i++) { if (APIC_CHECK_RESERVE_VECTORS(i)) continue; if (apic_vector_to_irq[i] == APIC_RESV_IRQ) { apic_vector_to_irq[i] = (uchar_t)irq; ! return (i); } } return (0); } --- 1261,1272 ---- for (i = lowest; i <= highest; i++) { if (APIC_CHECK_RESERVE_VECTORS(i)) continue; if (apic_vector_to_irq[i] == APIC_RESV_IRQ) { apic_vector_to_irq[i] = (uchar_t)irq; ! ASSERT(i >= 0 && i <= UCHAR_MAX); ! return ((uchar_t)i); } } return (0); }