mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	dma-debug: add kernel command line parameters
Impact: add dma_debug= and dma_debug_entries= kernel parameters Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
This commit is contained in:
		
							parent
							
								
									6bf078715c
								
							
						
					
					
						commit
						59d3daafa1
					
				
					 2 changed files with 48 additions and 0 deletions
				
			
		|  | @ -491,6 +491,16 @@ and is between 256 and 4096 characters. It is defined in the file | |||
| 			Range: 0 - 8192 | ||||
| 			Default: 64 | ||||
| 
 | ||||
| 	dma_debug=off	If the kernel is compiled with DMA_API_DEBUG support | ||||
| 			this option disables the debugging code at boot. | ||||
| 
 | ||||
| 	dma_debug_entries=<number> | ||||
| 			This option allows to tune the number of preallocated | ||||
| 			entries for DMA-API debugging code. One entry is | ||||
| 			required per DMA-API allocation. Use this if the | ||||
| 			DMA-API debugging code disables itself because the | ||||
| 			architectural default is too low. | ||||
| 
 | ||||
| 	hpet=		[X86-32,HPET] option to control HPET usage | ||||
| 			Format: { enable (default) | disable | force } | ||||
| 			disable: disable HPET and use PIT instead | ||||
|  |  | |||
|  | @ -64,6 +64,9 @@ static bool global_disable __read_mostly; | |||
| static u32 num_free_entries; | ||||
| static u32 min_free_entries; | ||||
| 
 | ||||
| /* number of preallocated entries requested by kernel cmdline */ | ||||
| static u32 req_entries; | ||||
| 
 | ||||
| /*
 | ||||
|  * Hash related functions | ||||
|  * | ||||
|  | @ -253,6 +256,9 @@ void dma_debug_init(u32 num_entries) | |||
| 		dma_entry_hash[i].lock = SPIN_LOCK_UNLOCKED; | ||||
| 	} | ||||
| 
 | ||||
| 	if (req_entries) | ||||
| 		num_entries = req_entries; | ||||
| 
 | ||||
| 	if (prealloc_memory(num_entries) != 0) { | ||||
| 		printk(KERN_ERR "DMA-API: debugging out of memory error " | ||||
| 				"- disabled\n"); | ||||
|  | @ -264,3 +270,35 @@ void dma_debug_init(u32 num_entries) | |||
| 	printk(KERN_INFO "DMA-API: debugging enabled by kernel config\n"); | ||||
| } | ||||
| 
 | ||||
| static __init int dma_debug_cmdline(char *str) | ||||
| { | ||||
| 	if (!str) | ||||
| 		return -EINVAL; | ||||
| 
 | ||||
| 	if (strncmp(str, "off", 3) == 0) { | ||||
| 		printk(KERN_INFO "DMA-API: debugging disabled on kernel " | ||||
| 				 "command line\n"); | ||||
| 		global_disable = true; | ||||
| 	} | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| static __init int dma_debug_entries_cmdline(char *str) | ||||
| { | ||||
| 	int res; | ||||
| 
 | ||||
| 	if (!str) | ||||
| 		return -EINVAL; | ||||
| 
 | ||||
| 	res = get_option(&str, &req_entries); | ||||
| 
 | ||||
| 	if (!res) | ||||
| 		req_entries = 0; | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| __setup("dma_debug=", dma_debug_cmdline); | ||||
| __setup("dma_debug_entries=", dma_debug_entries_cmdline); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Joerg Roedel
						Joerg Roedel