mirror of
				https://github.com/choff/anbox-modules.git
				synced 2025-11-04 07:42:37 +08:00 
			
		
		
		
	Fixes for kernel 6.8
This commit is contained in:
		
							parent
							
								
									13a93a4f7c
								
							
						
					
					
						commit
						d430cd5d2b
					
				@ -2236,7 +2236,9 @@ static void binder_deferred_fd_close(int fd)
 | 
				
			|||||||
	if (!twcb)
 | 
						if (!twcb)
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
	init_task_work(&twcb->twork, binder_do_fd_close);
 | 
						init_task_work(&twcb->twork, binder_do_fd_close);
 | 
				
			||||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0))
 | 
					#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,8,0))
 | 
				
			||||||
 | 
					    twcb->file = file_close_fd(fd);
 | 
				
			||||||
 | 
					#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0))
 | 
				
			||||||
    twcb->file = close_fd_get_file(fd);
 | 
					    twcb->file = close_fd_get_file(fd);
 | 
				
			||||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0))
 | 
					#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0))
 | 
				
			||||||
	close_fd_get_file(fd, &twcb->file);
 | 
						close_fd_get_file(fd, &twcb->file);
 | 
				
			||||||
 | 
				
			|||||||
@ -235,7 +235,11 @@ static int binder_update_page_range(struct binder_alloc *alloc, int allocate,
 | 
				
			|||||||
		if (page->page_ptr) {
 | 
							if (page->page_ptr) {
 | 
				
			||||||
			trace_binder_alloc_lru_start(alloc, index);
 | 
								trace_binder_alloc_lru_start(alloc, index);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,8,0))
 | 
				
			||||||
 | 
								on_lru = list_lru_del_obj(&binder_alloc_lru, &page->lru);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
			on_lru = list_lru_del(&binder_alloc_lru, &page->lru);
 | 
								on_lru = list_lru_del(&binder_alloc_lru, &page->lru);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
			WARN_ON(!on_lru);
 | 
								WARN_ON(!on_lru);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			trace_binder_alloc_lru_end(alloc, index);
 | 
								trace_binder_alloc_lru_end(alloc, index);
 | 
				
			||||||
@ -286,7 +290,11 @@ free_range:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		trace_binder_free_lru_start(alloc, index);
 | 
							trace_binder_free_lru_start(alloc, index);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,8,0))
 | 
				
			||||||
 | 
							ret = list_lru_add_obj(&binder_alloc_lru, &page->lru);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
		ret = list_lru_add(&binder_alloc_lru, &page->lru);
 | 
							ret = list_lru_add(&binder_alloc_lru, &page->lru);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
		WARN_ON(!ret);
 | 
							WARN_ON(!ret);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		trace_binder_free_lru_end(alloc, index);
 | 
							trace_binder_free_lru_end(alloc, index);
 | 
				
			||||||
@ -846,8 +854,13 @@ void binder_alloc_deferred_release(struct binder_alloc *alloc)
 | 
				
			|||||||
			if (!alloc->pages[i].page_ptr)
 | 
								if (!alloc->pages[i].page_ptr)
 | 
				
			||||||
				continue;
 | 
									continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,8,0))
 | 
				
			||||||
 | 
								on_lru = list_lru_del_obj(&binder_alloc_lru,
 | 
				
			||||||
 | 
										      &alloc->pages[i].lru);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
			on_lru = list_lru_del(&binder_alloc_lru,
 | 
								on_lru = list_lru_del(&binder_alloc_lru,
 | 
				
			||||||
					      &alloc->pages[i].lru);
 | 
										      &alloc->pages[i].lru);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
			page_addr = alloc->buffer + i * PAGE_SIZE;
 | 
								page_addr = alloc->buffer + i * PAGE_SIZE;
 | 
				
			||||||
			binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC,
 | 
								binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC,
 | 
				
			||||||
				     "%s: %d: page %d at %pK %s\n",
 | 
									     "%s: %d: page %d at %pK %s\n",
 | 
				
			||||||
 | 
				
			|||||||
@ -77,7 +77,9 @@ 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(6,8,0))
 | 
				
			||||||
 | 
					struct file *file_close_fd(unsigned int fd)
 | 
				
			||||||
 | 
					#elif (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)
 | 
				
			||||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0))
 | 
					#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0))
 | 
				
			||||||
int close_fd_get_file(unsigned int fd, struct file **res)
 | 
					int close_fd_get_file(unsigned int fd, struct file **res)
 | 
				
			||||||
@ -86,7 +88,9 @@ int __close_fd_get_file(unsigned int fd, struct file **res)
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (!close_fd_get_file_ptr)
 | 
						if (!close_fd_get_file_ptr)
 | 
				
			||||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0))
 | 
					#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,8,0))
 | 
				
			||||||
 | 
							close_fd_get_file_ptr = kallsyms_lookup_name_wrapper("file_close_fd");
 | 
				
			||||||
 | 
					#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0))
 | 
				
			||||||
		close_fd_get_file_ptr = kallsyms_lookup_name_wrapper("close_fd_get_file");
 | 
							close_fd_get_file_ptr = kallsyms_lookup_name_wrapper("close_fd_get_file");
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
		close_fd_get_file_ptr = kallsyms_lookup_name_wrapper("__close_fd_get_file");
 | 
							close_fd_get_file_ptr = kallsyms_lookup_name_wrapper("__close_fd_get_file");
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user