1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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
}
}
|