[parisc-linux] A fix for B2k and CONFIG_PDC_CONSOLE pb

Matthew Wilcox willy at debian.org
Mon Jan 26 10:25:05 MST 2004


On Mon, Jan 26, 2004 at 06:00:53PM +0100, Joel Soete wrote:
>  
>  	/* Bail if no console input device. */
> -	if (!PAGE0->mem_kbd.iodc_io)
> +	if ((PAGE0->mem_cons.cl_class != CL_DUPLEX) && !PAGE0->mem_kbd.iodc_io)
>  		return 0;
>  	
>  	/* wait for a keyboard (rs232)-input */
>  	spin_lock_irqsave(&pdc_lock, flags);
> -	real32_call(PAGE0->mem_kbd.iodc_io,
> -		    (unsigned long)PAGE0->mem_kbd.hpa, ENTRY_IO_CIN,
> -		    PAGE0->mem_kbd.spa, __pa(PAGE0->mem_kbd.dp.layers), 
> -		    __pa(iodc_retbuf), 0, __pa(iodc_dbuf), 1, 0);
> +	if (PAGE0->mem_cons.cl_class == CL_DUPLEX)

This doesn't make sense.  PAGE0->mem_cons.cl_class has to be CL_DUPLEX
otherwise the test above would have failed.  Do you perhaps mean that &&
above to be an || ?  If so, this would all read better as ...

	/* wait for a keyboard (rs232)-input */
	spin_lock_irqsave(&pdc_lock, flags);
	if (PAGE0->mem_cons.cl_class == CL_DUPLEX) {

		real32_call(PAGE0->mem_cons.iodc_io,
			    (unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_CIN,
			    PAGE0->mem_cons.spa, __pa(PAGE0->mem_cons.dp.layers), 
			    __pa(iodc_retbuf), 0, __pa(iodc_dbuf), 1, 0);
	} else if (PAGE0->mem_kbd.iodc_io) {
		real32_call(PAGE0->mem_kbd.iodc_io,
			    (unsigned long)PAGE0->mem_kbd.hpa, ENTRY_IO_CIN,
			    PAGE0->mem_kbd.spa, __pa(PAGE0->mem_kbd.dp.layers), 
			    __pa(iodc_retbuf), 0, __pa(iodc_dbuf), 1, 0);
	} else {
		spin_unlock_irqrestore(&pdc_lock, flags);
		return 0;
	}

Slightly ugly to have two unlocks for the same lock, but that's better
than duplicating the test.  I haven't looked at the code, maybe we could
use a goto instead.

-- 
"Next the statesmen will invent cheap lies, putting the blame upon 
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince 
himself that the war is just, and will thank God for the better sleep 
he enjoys after this process of grotesque self-deception." -- Mark Twain


More information about the parisc-linux mailing list