diff options
Diffstat (limited to '01-fix-alloc_tty_driver.patch')
-rw-r--r-- | 01-fix-alloc_tty_driver.patch | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/01-fix-alloc_tty_driver.patch b/01-fix-alloc_tty_driver.patch new file mode 100644 index 000000000000..25f6729abbc3 --- /dev/null +++ b/01-fix-alloc_tty_driver.patch @@ -0,0 +1,112 @@ +*** a/blackmagic-io-12.2a12/bmio_serial.c 2021-11-10 13:53:06.486238131 +0100 +--- b/blackmagic-io-12.2a12/bmio_serial.c 2021-11-10 13:53:12.872862463 +0100 +*************** int bmio_serial_driver_init(void) +*** 304,310 **** + { + int ret; + +! struct tty_driver* serial = alloc_tty_driver(MAX_SERIAL_LINES); + if (!serial) + return -ENOMEM; + +--- 304,316 ---- + { + int ret; + +! struct tty_driver* serial; +! #if KERNEL_VERSION_OR_LATER(5, 15, 0) +! serial = tty_alloc_driver(MAX_SERIAL_LINES, 0); +! #else +! serial = alloc_tty_driver(MAX_SERIAL_LINES); +! #endif +! + if (!serial) + return -ENOMEM; + +*************** int bmio_serial_driver_init(void) +*** 324,330 **** +--- 330,340 ---- + ret = tty_register_driver(serial); + if (ret) + { ++ #if KERNEL_VERSION_OR_LATER(5, 15, 0) ++ tty_driver_kref_put(serial); ++ #else + put_tty_driver(serial); ++ #endif + return ret; + } + +*************** void bmio_serial_driver_exit(void) +*** 340,346 **** +--- 350,362 ---- + if (serial_driver) + { + tty_unregister_driver(serial_driver); ++ ++ #if KERNEL_VERSION_OR_LATER(5, 15, 0) ++ tty_driver_kref_put(serial_driver); ++ #else + put_tty_driver(serial_driver); ++ #endif ++ + serial_driver = NULL; + } + } + +*** a/blackmagic-12.2a12/blackmagic_serial.c 2021-11-10 13:52:55.462977861 +0100 +--- b/blackmagic-12.2a12/blackmagic_serial.c 2021-11-10 13:53:12.872862463 +0100 +*************** int __init blackmagic_serial_init(void) +*** 613,619 **** +--- 613,623 ---- + int ret; + struct tty_driver *driver; + ++ #if KERNEL_VERSION_OR_LATER(5, 15, 0) ++ driver = tty_alloc_driver(BLACKMAGIC_SERIAL_MINORS, 0); ++ #else + driver = alloc_tty_driver(BLACKMAGIC_SERIAL_MINORS); ++ #endif + if (!driver) + return -ENOMEM; + +*************** int __init blackmagic_serial_init(void) +*** 639,645 **** + + abort: + printk(KERN_ERR "failed to register blackmagic serial driver"); +! put_tty_driver(driver); + return ret; + } + +--- 643,653 ---- + + abort: + printk(KERN_ERR "failed to register blackmagic serial driver"); +! #if KERNEL_VERSION_OR_LATER(5, 15, 0) +! tty_driver_kref_put(driver); +! #else +! put_tty_driver(driver); +! #endif + return ret; + } + +*************** void __exit blackmagic_serial_exit(void) +*** 648,653 **** + if (blackmagic_tty_driver) + { + tty_unregister_driver(blackmagic_tty_driver); +! put_tty_driver(blackmagic_tty_driver); + } + } +--- 656,665 ---- + if (blackmagic_tty_driver) + { + tty_unregister_driver(blackmagic_tty_driver); +! #if KERNEL_VERSION_OR_LATER(5, 15, 0) +! tty_driver_kref_put(blackmagic_tty_driver); +! #else +! put_tty_driver(blackmagic_tty_driver); +! #endif + } + } |