mirror of
				https://github.com/choff/anbox-modules.git
				synced 2025-11-04 07:42:37 +08:00 
			
		
		
		
	Fixed page fault by matching in-tree binder behavior
This commit is contained in:
		
							parent
							
								
									aa0064306b
								
							
						
					
					
						commit
						9510d2549e
					
				@ -2244,6 +2244,9 @@ static void binder_deferred_fd_close(int fd)
 | 
				
			|||||||
	__close_fd_get_file(fd, &twcb->file);
 | 
						__close_fd_get_file(fd, &twcb->file);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	if (twcb->file) {
 | 
						if (twcb->file) {
 | 
				
			||||||
 | 
					#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0))
 | 
				
			||||||
 | 
					        get_file(twcb->file);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
		filp_close(twcb->file, current->files);
 | 
							filp_close(twcb->file, current->files);
 | 
				
			||||||
		task_work_add(current, &twcb->twork, TWA_RESUME);
 | 
							task_work_add(current, &twcb->twork, TWA_RESUME);
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
 | 
				
			|||||||
@ -70,11 +70,12 @@ static unsigned long kallsyms_lookup_name_wrapper(const char *name)
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int (*close_fd_get_file_ptr)(unsigned int fd
 | 
					#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0))
 | 
				
			||||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,19,0))
 | 
					static struct file *(*close_fd_get_file_ptr)(unsigned int fd)
 | 
				
			||||||
        , struct file **res
 | 
					#else
 | 
				
			||||||
 | 
					static int (*close_fd_get_file_ptr)(unsigned int fd, struct file **res)
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
        ) = NULL;
 | 
					        = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0))
 | 
					#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0))
 | 
				
			||||||
struct file *close_fd_get_file(unsigned int fd)
 | 
					struct file *close_fd_get_file(unsigned int fd)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user