diff options
author | Joshua Bakita <bakitajoshua@gmail.com> | 2023-07-03 12:44:32 -0400 |
---|---|---|
committer | Joshua Bakita <bakitajoshua@gmail.com> | 2023-07-03 12:44:32 -0400 |
commit | 073e8978334a07e0053ee08310743ddf3046d7d2 (patch) | |
tree | f73583c3ea3fd3c9416313736a697254bc866fed /runlist_procfs.c | |
parent | a3fe3788535dd099d15e0ddca455be58e1d63156 (diff) |
Fix addressing, zero-init, and compatibility bugs in a3fe378
- Including missing dereference to finish getting the address of
the control register range
- Add zero-initialization to the proc_ops structure in copat_ops to
insure that all intentionally unset fields remain unset
- Set .llseek in all the file_operations structures, as recent
kernels require this to be explictly set
Diffstat (limited to 'runlist_procfs.c')
-rw-r--r-- | runlist_procfs.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/runlist_procfs.c b/runlist_procfs.c index a0e71b0..d9ec6eb 100644 --- a/runlist_procfs.c +++ b/runlist_procfs.c | |||
@@ -201,6 +201,7 @@ ssize_t preempt_tsg_file_write(struct file *f, const char __user *buffer, | |||
201 | 201 | ||
202 | struct file_operations preempt_tsg_file_ops = { | 202 | struct file_operations preempt_tsg_file_ops = { |
203 | .write = preempt_tsg_file_write, | 203 | .write = preempt_tsg_file_write, |
204 | .llseek = default_llseek, | ||
204 | }; | 205 | }; |
205 | 206 | ||
206 | ssize_t disable_channel_file_write(struct file *f, const char __user *buffer, | 207 | ssize_t disable_channel_file_write(struct file *f, const char __user *buffer, |
@@ -238,6 +239,7 @@ ssize_t disable_channel_file_write(struct file *f, const char __user *buffer, | |||
238 | 239 | ||
239 | struct file_operations disable_channel_file_ops = { | 240 | struct file_operations disable_channel_file_ops = { |
240 | .write = disable_channel_file_write, | 241 | .write = disable_channel_file_write, |
242 | .llseek = default_llseek, | ||
241 | }; | 243 | }; |
242 | 244 | ||
243 | ssize_t enable_channel_file_write(struct file *f, const char __user *buffer, | 245 | ssize_t enable_channel_file_write(struct file *f, const char __user *buffer, |
@@ -264,6 +266,7 @@ ssize_t enable_channel_file_write(struct file *f, const char __user *buffer, | |||
264 | 266 | ||
265 | struct file_operations enable_channel_file_ops = { | 267 | struct file_operations enable_channel_file_ops = { |
266 | .write = enable_channel_file_write, | 268 | .write = enable_channel_file_write, |
269 | .llseek = default_llseek, | ||
267 | }; | 270 | }; |
268 | 271 | ||
269 | ssize_t switch_to_tsg_file_write(struct file *f, const char __user *buffer, | 272 | ssize_t switch_to_tsg_file_write(struct file *f, const char __user *buffer, |
@@ -319,4 +322,5 @@ ssize_t switch_to_tsg_file_write(struct file *f, const char __user *buffer, | |||
319 | 322 | ||
320 | struct file_operations switch_to_tsg_file_ops = { | 323 | struct file_operations switch_to_tsg_file_ops = { |
321 | .write = switch_to_tsg_file_write, | 324 | .write = switch_to_tsg_file_write, |
325 | .llseek = default_llseek, | ||
322 | }; | 326 | }; |