• Okash Khawaja's avatar
    tty: export tty_open_by_driver · 12e84c71
    Okash Khawaja authored
    This exports tty_open_by_driver so that it can be called from other
    places inside the kernel. The checks for null file pointer are based on
    Alan Cox's patch here:
    http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1215095.html.
    Description below is quoted from it:
    
    "[RFC] tty_port: allow a port to be opened with a tty that has no file handle
    
        Let us create tty objects entirely in kernel space. Untested proposal to
        show why all the ideas around rewriting half the uart stack are not needed.
    
        With this a kernel created non file backed tty object could be used to handle
        data, and set terminal modes. Not all ldiscs can cope with this as N_TTY in
        particular has to work back to the fs/tty layer.
    
        The tty_port code is however otherwise clean of file handles as far as I can
        tell as is the low level tty port write path used by the ldisc, the
        configuration low level interfaces and most of the ldiscs.
    
        Currently you don't have any exposure to see tty hangups because those are
        built around the file layer. However a) it's a fixed port so you probably
        don't care about that b) if you do we can add a callback and c) you almost
        certainly don't want the userspace tear down/rebuild behaviour anyway.
    
        This should however be sufficient if we wanted for example to enumerate all
        the bluetooth bound fixed ports via ACPI and make them directly available.
    
        It doesn't deal with the case of a user opening a port that's also kernel
        opened and that would need some locking out (so it returned EBUSY if bound
        to a kernel device of some kind). That needs resolving along with how you
        "up" or "down" your new bluetooth device, or enumerate it while providing
        the existing tty API to avoid regressions (and to debug)."
    
    The exported funtion is used later in this patch set to gain access to tty_struct.
    
    [changed export symbol level - gkh]
    Signed-off-by: default avatarOkash Khawaja <okash.khawaja@gmail.com>
    Reviewed-by: default avatarSamuel Thibault <samuel.thibault@ens-lyon.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    12e84c71
tty_io.c 76.8 KB