RE: [PATCH V1 1/1] X86: Probe for PIC and set legacy_pic appropriately

From: KY Srinivasan
Date: Fri Apr 11 2014 - 22:47:23 EST




> -----Original Message-----
> From: H. Peter Anvin [mailto:hpa@xxxxxxxxx]
> Sent: Friday, April 11, 2014 4:59 PM
> To: KY Srinivasan; x86@xxxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; devel@xxxxxxxxxxxxxxxxxxxxxx; olaf@xxxxxxxxx;
> apw@xxxxxxxxxxxxx; jasowang@xxxxxxxxxx; tglx@xxxxxxxxxxxxx;
> JBeulich@xxxxxxxx
> Subject: Re: [PATCH V1 1/1] X86: Probe for PIC and set legacy_pic
> appropriately
>
> On 04/11/2014 05:50 PM, K. Y. Srinivasan wrote:
> >
> > + /*
> > + * Check to see if we have a PIC.
> > + * Mask all except the cascade and read
> > + * back the value we just wrote. If we don't
> > + * have a PIC, we will read 0xff as opposed to the
> > + * value we wrote.
> > + */
> > + outb(probe_val, PIC_MASTER_IMR);
> > + probe_val = inb(PIC_MASTER_IMR);
> > + if (probe_val == 0xff) {
> > + printk(KERN_INFO "Using NULL legacy PIC\n");
> > + legacy_pic = &null_legacy_pic;
> > + raw_spin_unlock_irqrestore(&i8259A_lock, flags);
> > + return;
> > + }
> > +
> > outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */
> > outb(0xff, PIC_SLAVE_IMR); /* mask all of 8259A-2 */
> >
>
> Again, I would do at least the slave masking above the probe.
>
> Also, I would compare to make sure we get the probe_val back and compare
> with != instead of comparing with ==.

Will do.

Thanks,

K. Y