Horrible ugliness in V.2 readi/writei.

Phil Chadwick phil at qfdts.oz
Tue Jul 30 15:41:34 AEST 1985


In article <150 at neology.OZ> chris at neology.OZ (Chris Maltby) says:

    >The problem turned out to be this
    >revolting code in the 5.2 readi/writei code:
    >
    >	if (cdevsw[major(dev)].d_tty != NULL)
    >	{
    >		tp = &cdevsw[major(dev)].d_tty[minor(dev)];
    >		(*linesw[tp->t_ldisc].l_write)(tp);
    >	}
    >	else
    >		(*cdevsw[major(dev)].d_write)(minor(dev));
    >
    >This part of the system has no right to assume what the code in a
    >driver's read/write routine does, even if it seems to be a tty driver.

Here, here!

I tripped over this some time ago while writing a pseudo dn11 driver.
Code put into the tty's write routine did nothing (not surprising -
once you realise it's being bypassed).  To the best of my recollection
it's been there since the very first System V release.

----
Phil Chadwick		  Australia: (07) 2296500
Department of Forestry	  International: +61 7 2296500
PO Box 5		  ACSnet: phil at qfdts.oz
Brisbane, Roma Street	  ARPA: decvax!mulga!qfdts.oz!phil at UCB-VAX.ARPA
AUSTRALIA	4001	  UUCP: {decvax,vax135,eagle,pesnta}!mulga!qfdts.oz!phil



More information about the Net.bugs.usg mailing list