lkml.org 
[lkml]   [2007]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 33/40] Char: rocket, fix dynamic_dev tty

    -stable review patch. If anyone has any objections, please let us know.

    ------------------
    From: Jiri Slaby <jirislaby@gmail.com>

    patch ac6aec2f5683588361ab408cb3346b08c66bdfbe in mainline.

    - register_device unconditionally (non-pci dependent) to have also isa
    devices in /dev
    - unregister devices on module removal
    - don't set TTY_DRIVER_DYNAMIC_DEV twice (removed the one dependent on some
    macro)

    This is the substantial part of the patch and the previous point is for
    not checking which devices to unregister and which not (simply register
    and unregister all found no matter on which bus they are plugged).


    Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
    Cc: Ferenc Wagner <wferi@niif.hu>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/char/rocket.c | 14 +++++++++-----
    1 file changed, 9 insertions(+), 5 deletions(-)

    --- a/drivers/char/rocket.c
    +++ b/drivers/char/rocket.c
    @@ -699,8 +699,8 @@ static void init_r_port(int board, int a
    spin_lock_init(&info->slock);
    mutex_init(&info->write_mtx);
    rp_table[line] = info;
    - if (pci_dev)
    - tty_register_device(rocket_driver, line, &pci_dev->dev);
    + tty_register_device(rocket_driver, line, pci_dev ? &pci_dev->dev :
    + NULL);
    }

    /*
    @@ -2434,7 +2434,7 @@ static int __init rp_init(void)
    rocket_driver->init_termios.c_ispeed = 9600;
    rocket_driver->init_termios.c_ospeed = 9600;
    #ifdef ROCKET_SOFT_FLOW
    - rocket_driver->flags |= TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV;
    + rocket_driver->flags |= TTY_DRIVER_REAL_RAW;
    #endif
    tty_set_operations(rocket_driver, &rocket_ops);

    @@ -2491,10 +2491,14 @@ static void rp_cleanup_module(void)
    if (retval)
    printk(KERN_INFO "Error %d while trying to unregister "
    "rocketport driver\n", -retval);
    - put_tty_driver(rocket_driver);

    for (i = 0; i < MAX_RP_PORTS; i++)
    - kfree(rp_table[i]);
    + if (rp_table[i]) {
    + tty_unregister_device(rocket_driver, i);
    + kfree(rp_table[i]);
    + }
    +
    + put_tty_driver(rocket_driver);

    for (i = 0; i < NUM_BOARDS; i++) {
    if (rcktpt_io_addr[i] <= 0 || is_PCI[i])
    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-11-15 08:11    [W:2.401 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site