Right, I guess it's not serial_sa1100.c which matters because this is a tty ioctl.

But tty_ioctl itself also doesn't return EIO. That means it should be passing to n_tty_ioctl. n_tty_ioctl passes to set_termios. Neither (directly) can return EIO.

But... set_termios calls tty_check_change, where I see:
if (is_orphaned_pgrp(current->pgrp))
return -EIO;

So is 1 an orphaned pgrp? I'm still looking for the macro.