diff options
-rw-r--r-- | .SRCINFO | 5 | ||||
-rw-r--r-- | 0006-kernel-5.15-alloc_tty_driver-put_tty_driver.patch | 44 | ||||
-rw-r--r-- | PKGBUILD | 16 |
3 files changed, 61 insertions, 4 deletions
@@ -1,7 +1,7 @@ pkgbase = perle-serial pkgdesc = kernel module driver for Perle UltraPort SI Express PCI-RAS modem SPEED LE multi I/O serial parallel RS-232 422 485 port pkgver = 3.9.2_4 - pkgrel = 3 + pkgrel = 4 url = https://www.perle.com/downloads/mp_speedle.shtml install = perle-serial-install.sh arch = i686 @@ -24,6 +24,7 @@ pkgbase = perle-serial source = 0003-kernel-5.12-tty-low_latency.patch source = 0004-tty_unregister_driver-void.patch source = 0005-kernel-5.14-unsigned-tty-flow-tty.patch + source = 0006-kernel-5.15-alloc_tty_driver-put_tty_driver.patch md5sums = 85e9617af62fcab55c684fa8e4b26987 md5sums = 52f87acfeb5f5820a74ad6aa74d18acf md5sums = 6dac46dc8f094dd8f8b760a68414bd0b @@ -31,6 +32,7 @@ pkgbase = perle-serial md5sums = d85366f7566046dbd580850fbfa640e0 md5sums = 7d7c57fc3a46599aebede7f940c5c5a8 md5sums = 47a81ca7f524a3e86abb72ae872bac74 + md5sums = 128ee03b62d13384a249f6f6244d0214 sha256sums = d9d61a941ecfd2ff41d5450557eb9071d934497dbd10229e97c8f88b48cb9a58 sha256sums = 691e0d8d348ab9f19f0398ff79e0d4780d5110e3dd11acf3261e3f73b2983ea1 sha256sums = 31e0d244d22b16d2c0b783e38bac2d96a53cbe0ce14f2fe11142a8691ce952aa @@ -38,5 +40,6 @@ pkgbase = perle-serial sha256sums = 3e2b44baf4d8e29ce5e084485f0882a8f06a1d1b045a93ffa5cdd2f8112d1bfa sha256sums = 7c0c4af907e68a2641beffd20bf487b47cf58ca79dea45276b5046fe81f436bc sha256sums = 0c942db9e9a5f41873cc2ba6edae3372da672e8f82ea5c1266a2c905d4373319 + sha256sums = 4c9e99b780353f270b96e57cd25e4ebf8e3058fa44105422ada42eb87cf798b2 pkgname = perle-serial diff --git a/0006-kernel-5.15-alloc_tty_driver-put_tty_driver.patch b/0006-kernel-5.15-alloc_tty_driver-put_tty_driver.patch new file mode 100644 index 000000000000..f701c0d4dd39 --- /dev/null +++ b/0006-kernel-5.15-alloc_tty_driver-put_tty_driver.patch @@ -0,0 +1,44 @@ +diff -pNaru5 perle-serial-3.9.2.orig-0006/pserial/perle-serial.c perle-serial-3.9.2/pserial/perle-serial.c +--- perle-serial-3.9.2.orig-0006/pserial/perle-serial.c 2021-11-20 16:06:52.656295643 -0500 ++++ perle-serial-3.9.2/pserial/perle-serial.c 2021-11-20 16:08:20.147780960 -0500 +@@ -4986,12 +4986,12 @@ static int __init ps_init(void) + { + panic("Couldn't register Perle's serial driver\n"); + } + + #else // At least 2.5.0 kernel. +- serial_driver = alloc_tty_driver(NR_PORTS); +- if (!serial_driver){ ++ serial_driver = tty_alloc_driver(NR_PORTS,0); ++ if (IS_ERR(serial_driver)){ + printk(KERN_ERR "Couldn't allocate Perle serial driver\n"); + return -ENOMEM; + } + serial_driver->owner = THIS_MODULE; + serial_driver->driver_name = "perle-serial"; +@@ -5006,11 +5006,11 @@ static int __init ps_init(void) + serial_driver->flags = TTY_DRIVER_REAL_RAW ; + + tty_set_operations(serial_driver, &ps_ops); + if( (rc = tty_register_driver(serial_driver)) < 0 ) + { +- put_tty_driver(serial_driver); ++ tty_driver_kref_put(serial_driver); + printk(KERN_ERR "Couldn't register Perle serial driver\n"); + return rc; + } + + #endif +@@ -5226,11 +5226,11 @@ static void __exit ps_fini(void) + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) + remove_bh( PERLE_SERIAL_BH ); + tty_unregister_driver(&serial_driver); + #else + tty_unregister_driver(serial_driver); +- put_tty_driver(serial_driver); ++ tty_driver_kref_put(serial_driver); + #endif + for (i = 0; i < NR_PORTS; i++) { + if ((info = ps_table[i].info)) { + // if (info->state->XRflatreg) // This code causes oops. Remove for now plus all other Sleep calls. + // ps_resetSLEEP(info); /* reset sleep mode for Exar uarts */ @@ -79,7 +79,7 @@ pkgname='perle-serial' #_pkgver='3.9.0-14' _pkgver='3.9.2-4' pkgver="${_pkgver//-/_}" -pkgrel='3' +pkgrel='4' pkgdesc='kernel module driver for Perle UltraPort SI Express PCI-RAS modem SPEED LE multi I/O serial parallel RS-232 422 485 port' arch=('i686' 'x86_64') url='https://www.perle.com/downloads/mp_speedle.shtml' @@ -97,6 +97,7 @@ source=( '0003-kernel-5.12-tty-low_latency.patch' '0004-tty_unregister_driver-void.patch' '0005-kernel-5.14-unsigned-tty-flow-tty.patch' + '0006-kernel-5.15-alloc_tty_driver-put_tty_driver.patch' ) md5sums=('85e9617af62fcab55c684fa8e4b26987' '52f87acfeb5f5820a74ad6aa74d18acf' @@ -104,14 +105,16 @@ md5sums=('85e9617af62fcab55c684fa8e4b26987' 'f97869736f93fb70b9f034106697c0a2' 'd85366f7566046dbd580850fbfa640e0' '7d7c57fc3a46599aebede7f940c5c5a8' - '47a81ca7f524a3e86abb72ae872bac74') + '47a81ca7f524a3e86abb72ae872bac74' + '128ee03b62d13384a249f6f6244d0214') sha256sums=('d9d61a941ecfd2ff41d5450557eb9071d934497dbd10229e97c8f88b48cb9a58' '691e0d8d348ab9f19f0398ff79e0d4780d5110e3dd11acf3261e3f73b2983ea1' '31e0d244d22b16d2c0b783e38bac2d96a53cbe0ce14f2fe11142a8691ce952aa' '8dcb2c32d641cef471fe45db1e122492a82b3439c55be8c530758d519eeae289' '3e2b44baf4d8e29ce5e084485f0882a8f06a1d1b045a93ffa5cdd2f8112d1bfa' '7c0c4af907e68a2641beffd20bf487b47cf58ca79dea45276b5046fe81f436bc' - '0c942db9e9a5f41873cc2ba6edae3372da672e8f82ea5c1266a2c905d4373319') + '0c942db9e9a5f41873cc2ba6edae3372da672e8f82ea5c1266a2c905d4373319' + '4c9e99b780353f270b96e57cd25e4ebf8e3058fa44105422ada42eb87cf798b2') _opt_SERIAL=1 # This is for bug testing dkms only. All cards have serial ports so this should always be enabled. @@ -207,6 +210,13 @@ prepare() { #cp -pr "${srcdir}/${_srcdir}"{,.orig-0005}; false #diff -pNaru5 perle-serial-3.9.2{.orig-0005,} > '0005-kernel-5.14-unsigned-tty-flow-tty.patch' patch -Nup1 -i "${srcdir}/0005-kernel-5.14-unsigned-tty-flow-tty.patch" + + # http://lkml.iu.edu/hypermail/linux/kernel/2107.2/08799.html [PATCH 5/8] tty: drop alloc_tty_driver + # http://lkml.iu.edu/hypermail/linux/kernel/2107.2/08801.html [PATCH 7/8] tty: drop put_tty_driver + #cp -pr "${srcdir}/${_srcdir}"{,.orig-0006}; false + #diff -pNaru5 perle-serial-3.9.2{.orig-0006,} > '0006-kernel-5.15-alloc_tty_driver-put_tty_driver.patch' + patch -Nup1 -i "${srcdir}/0006-kernel-5.15-alloc_tty_driver-put_tty_driver.patch" + set +u } |