hw/nvme: remove NvmeCtrl parameter from ns setup/check functions
The nvme_ns_setup and nvme_ns_check_constraints should not depend on the controller state. Refactor and remove it. Reviewed-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
This commit is contained in:
		
							parent
							
								
									1d6f147f04
								
							
						
					
					
						commit
						5e4f6bcc29
					
				| @ -6498,7 +6498,7 @@ static void nvme_realize(PCIDevice *pci_dev, Error **errp) | ||||
|         ns = &n->namespace; | ||||
|         ns->params.nsid = 1; | ||||
| 
 | ||||
|         if (nvme_ns_setup(n, ns, errp)) { | ||||
|         if (nvme_ns_setup(ns, errp)) { | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										37
									
								
								hw/nvme/ns.c
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								hw/nvme/ns.c
									
									
									
									
									
								
							| @ -346,8 +346,7 @@ static void nvme_zoned_ns_shutdown(NvmeNamespace *ns) | ||||
|     assert(ns->nr_open_zones == 0); | ||||
| } | ||||
| 
 | ||||
| static int nvme_ns_check_constraints(NvmeCtrl *n, NvmeNamespace *ns, | ||||
|                                      Error **errp) | ||||
| static int nvme_ns_check_constraints(NvmeNamespace *ns, Error **errp) | ||||
| { | ||||
|     if (!ns->blkconf.blk) { | ||||
|         error_setg(errp, "block backend not configured"); | ||||
| @ -366,20 +365,6 @@ static int nvme_ns_check_constraints(NvmeCtrl *n, NvmeNamespace *ns, | ||||
|         return -1; | ||||
|     } | ||||
| 
 | ||||
|     if (!n->subsys) { | ||||
|         if (ns->params.detached) { | ||||
|             error_setg(errp, "detached requires that the nvme device is " | ||||
|                        "linked to an nvme-subsys device"); | ||||
|             return -1; | ||||
|         } | ||||
| 
 | ||||
|         if (ns->params.shared) { | ||||
|             error_setg(errp, "shared requires that the nvme device is " | ||||
|                        "linked to an nvme-subsys device"); | ||||
|             return -1; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     if (ns->params.zoned) { | ||||
|         if (ns->params.max_active_zones) { | ||||
|             if (ns->params.max_open_zones > ns->params.max_active_zones) { | ||||
| @ -411,9 +396,9 @@ static int nvme_ns_check_constraints(NvmeCtrl *n, NvmeNamespace *ns, | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
| int nvme_ns_setup(NvmeCtrl *n, NvmeNamespace *ns, Error **errp) | ||||
| int nvme_ns_setup(NvmeNamespace *ns, Error **errp) | ||||
| { | ||||
|     if (nvme_ns_check_constraints(n, ns, errp)) { | ||||
|     if (nvme_ns_check_constraints(ns, errp)) { | ||||
|         return -1; | ||||
|     } | ||||
| 
 | ||||
| @ -465,7 +450,21 @@ static void nvme_ns_realize(DeviceState *dev, Error **errp) | ||||
|     uint32_t nsid = ns->params.nsid; | ||||
|     int i; | ||||
| 
 | ||||
|     if (nvme_ns_setup(n, ns, errp)) { | ||||
|     if (!n->subsys) { | ||||
|         if (ns->params.detached) { | ||||
|             error_setg(errp, "detached requires that the nvme device is " | ||||
|                        "linked to an nvme-subsys device"); | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         if (ns->params.shared) { | ||||
|             error_setg(errp, "shared requires that the nvme device is " | ||||
|                        "linked to an nvme-subsys device"); | ||||
|             return; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     if (nvme_ns_setup(ns, errp)) { | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|  | ||||
| @ -246,7 +246,7 @@ static inline void nvme_aor_dec_active(NvmeNamespace *ns) | ||||
| } | ||||
| 
 | ||||
| void nvme_ns_init_format(NvmeNamespace *ns); | ||||
| int nvme_ns_setup(NvmeCtrl *n, NvmeNamespace *ns, Error **errp); | ||||
| int nvme_ns_setup(NvmeNamespace *ns, Error **errp); | ||||
| void nvme_ns_drain(NvmeNamespace *ns); | ||||
| void nvme_ns_shutdown(NvmeNamespace *ns); | ||||
| void nvme_ns_cleanup(NvmeNamespace *ns); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Klaus Jensen
						Klaus Jensen