mirror of
				https://github.com/choff/anbox-modules.git
				synced 2025-11-04 07:42:37 +08:00 
			
		
		
		
	Fix for kernel 6.13+
This commit is contained in:
		
							parent
							
								
									ee4c25f064
								
							
						
					
					
						commit
						d2f89a2b8a
					
				@ -3128,7 +3128,9 @@ static void binder_transaction(struct binder_proc *proc,
 | 
				
			|||||||
		u32 secid;
 | 
							u32 secid;
 | 
				
			||||||
		size_t added_size;
 | 
							size_t added_size;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 13, 0)
 | 
					#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 13, 0)
 | 
				
			||||||
 | 
							security_cred_getsecid(proc->cred, &secid);
 | 
				
			||||||
 | 
					#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 13, 0)
 | 
				
			||||||
		security_task_getsecid_obj(proc->tsk, &secid);
 | 
							security_task_getsecid_obj(proc->tsk, &secid);
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
		security_task_getsecid(proc->tsk, &secid);
 | 
							security_task_getsecid(proc->tsk, &secid);
 | 
				
			||||||
 | 
				
			|||||||
@ -1055,6 +1055,13 @@ err_get_alloc_mutex_failed:
 | 
				
			|||||||
	return LRU_SKIP;
 | 
						return LRU_SKIP;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum lru_status binder_alloc_free_page_no_lock(struct list_head *item,
 | 
				
			||||||
 | 
										   struct list_lru_one *lru,
 | 
				
			||||||
 | 
										   void *cb_arg)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return binder_alloc_free_page(item, lru, NULL, cb_arg);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static unsigned long
 | 
					static unsigned long
 | 
				
			||||||
binder_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
 | 
					binder_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -1066,9 +1073,13 @@ static unsigned long
 | 
				
			|||||||
binder_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
 | 
					binder_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	unsigned long ret;
 | 
						unsigned long ret;
 | 
				
			||||||
 | 
					#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 13, 0))
 | 
				
			||||||
 | 
						ret = list_lru_walk(&binder_alloc_lru, binder_alloc_free_page_no_lock,
 | 
				
			||||||
 | 
									NULL, sc->nr_to_scan);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
	ret = list_lru_walk(&binder_alloc_lru, binder_alloc_free_page,
 | 
						ret = list_lru_walk(&binder_alloc_lru, binder_alloc_free_page,
 | 
				
			||||||
			    NULL, sc->nr_to_scan);
 | 
									NULL, sc->nr_to_scan);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -117,6 +117,8 @@ static inline void binder_selftest_alloc(struct binder_alloc *alloc) {}
 | 
				
			|||||||
enum lru_status binder_alloc_free_page(struct list_head *item,
 | 
					enum lru_status binder_alloc_free_page(struct list_head *item,
 | 
				
			||||||
				       struct list_lru_one *lru,
 | 
									       struct list_lru_one *lru,
 | 
				
			||||||
				       spinlock_t *lock, void *cb_arg);
 | 
									       spinlock_t *lock, void *cb_arg);
 | 
				
			||||||
 | 
					enum lru_status binder_alloc_free_page_no_lock(struct list_head *item,
 | 
				
			||||||
 | 
										   struct list_lru_one *lru, void *cb_arg);
 | 
				
			||||||
extern struct binder_buffer *binder_alloc_new_buf(struct binder_alloc *alloc,
 | 
					extern struct binder_buffer *binder_alloc_new_buf(struct binder_alloc *alloc,
 | 
				
			||||||
						  size_t data_size,
 | 
											  size_t data_size,
 | 
				
			||||||
						  size_t offsets_size,
 | 
											  size_t offsets_size,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user