xl: Some clean-up
PATCH 1/1 xl: Some clean-up
xl: Some clean-up
* Use libxl_device_pci_init instead of memset
* Call xlu_cfg_destroy when necessary
Signed-off-by George Dunlap <[email protected]>
PATCH 1/1 xl: Replace memset with libxl_device_pci_init
Signed-off-by George Dunlap <[email protected]>
tools/libxl/xl_cmdimpl.c +2 -2
@@ -2264,7 +2264,7 @@ static void pcidetach(const char *dom, cfind_domain (dom); -memset (&pcidev,0x00 ,sizeof (pcidev)); +libxl_device_pci_init (&pcidev); config =xlu_cfg_init (stderr,"command line" );if (!config) {perror ("xlu_cfg_inig" );exit (-1 ); }
@@ -2309,7 +2309,7 @@ static void pciattach(const char *dom, cfind_domain (dom); -memset (&pcidev,0x00 ,sizeof (pcidev)); +libxl_device_pci_init (&pcidev); config =xlu_cfg_init (stderr,"command line" );if (!config) {perror ("xlu_cfg_inig" );exit (-1 ); }
PATCH 1/1 xl: Call xlu_cfg_destroy in the pciattach and pcidetach
In reply to George DunlapSigned-off-by George Dunlap <[email protected]>
tools/libxl/xl_cmdimpl.c +4 -0
@@ -2277,7 +2277,9 @@ static void pcidetach(const char *dom, clibxl_device_pci_destroy (ctx, domid, &pcidev); else libxl_device_pci_remove(ctx, domid, &pcidev); +libxl_device_pci_dispose (&pcidev); +xlu_cfg_destroy (config); }int main_pcidetach (int argc,char **argv)
@@ -2319,7 +2321,9 @@ static void pciattach(const char *dom, cexit (2 ); }libxl_device_pci_add (ctx, domid, &pcidev); +libxl_device_pci_dispose (&pcidev); +xlu_cfg_destroy (config); }int main_pciattach (int argc,char **argv)
PATCH 1/1 xl: Call xlu_cfg_destroy in main_cpupoolcreate
In reply to George DunlapThis involves making a goto clean-up path, rather than calling return directly.
Signed-off-by George Dunlap <[email protected]>
tools/libxl/xl_cmdimpl.c +30 -25
@@ -5677,6 +5677,7 @@ int main_cpupoolcreate(int argc, char **libxl_cpumap cpumap;libxl_uuid uuid;libxl_cputopology *topology; +int rc = -ERROR_FAIL ;while (1 ) { opt =getopt_long (argc, argv,"hnf:" , long_options, &option_index);
@@ -5710,7 +5711,7 @@ int main_cpupoolcreate(int argc, char ** filename = argv[optind]; }else {help ("cpupool-create" ); -return -ERROR_FAIL ; + goto out; } optind++; }
@@ -5721,7 +5722,7 @@ int main_cpupoolcreate(int argc, char ** &config_len)) {fprintf (stderr,"Failed to read config file: %s: %s\n" , filename,strerror (errno)); -return -ERROR_FAIL ; + goto out; } config_src=filename; }
@@ -5731,13 +5732,13 @@ int main_cpupoolcreate(int argc, char **if (strlen (extra_config)) {if (config_len >INT_MAX - (strlen (extra_config) +2 )) {fprintf (stderr,"Failed to attach extra configration\n" ); -return -ERROR_FAIL ; + goto out; } config_data =xrealloc (config_data, config_len +strlen (extra_config) +2 );if (!config_data) {fprintf (stderr,"Failed to realloc config_data\n" ); -return -ERROR_FAIL ; + goto out; } config_data[config_len] =0 ;strcat (config_data, extra_config);
@@ -5748,13 +5749,13 @@ int main_cpupoolcreate(int argc, char ** config =xlu_cfg_init (stderr, config_src);if (!config) {fprintf (stderr,"Failed to allocate for configuration\n" ); -return -ERROR_FAIL ; + goto out; } ret =xlu_cfg_readdata (config, config_data, config_len);if (ret) {fprintf (stderr,"Failed to parse config file: %s\n" ,strerror (ret)); -return -ERROR_FAIL ; + goto out_cfg; }if (!xlu_cfg_get_string (config,"name" , &buf,0 ))
@@ -5763,32 +5764,32 @@ int main_cpupoolcreate(int argc, char ** name =libxl_basename (filename); else {fprintf (stderr,"Missing cpupool name!\n" ); -return -ERROR_FAIL ; + goto out_cfg; }if (!libxl_name_to_cpupoolid (ctx, name, &poolid)) {fprintf (stderr,"Pool name \"%s\" already exists\n" , name); -return -ERROR_FAIL ; + goto out_cfg; }if (!xlu_cfg_get_string (config,"sched" , &buf,0 )) {if ((libxl_scheduler_from_string (buf, &sched)) <0 ) {fprintf (stderr,"Unknown scheduler\n" ); -return -ERROR_FAIL ; + goto out_cfg; } }else {if ((sched =libxl_get_scheduler (ctx)) <0 ) {fprintf (stderr,"get_scheduler sysctl failed.\n" ); -return -ERROR_FAIL ; + goto out_cfg; } }if (libxl_get_freecpus (ctx, &freemap)) {fprintf (stderr,"libxl_get_freecpus failed\n" ); -return -ERROR_FAIL ; + goto out_cfg; }if (libxl_cpumap_alloc (ctx, &cpumap)) {fprintf (stderr,"Failed to allocate cpumap\n" ); -return -ERROR_FAIL ; + goto out_cfg; }if (!xlu_cfg_get_list (config,"nodes" , &nodes,0 ,0 )) {int nr;
@@ -5797,7 +5798,7 @@ int main_cpupoolcreate(int argc, char ** topology =libxl_get_cpu_topology (ctx, &nr);if (topology ==NULL ) {fprintf (stderr,"libxl_get_topologyinfo failed\n" ); -return -ERROR_FAIL ; + goto out_cfg; }while ((buf =xlu_cfg_get_listitem (nodes, n_nodes)) !=NULL ) { n =atoi (buf);
@@ -5815,7 +5816,7 @@ int main_cpupoolcreate(int argc, char **if (n_cpus ==0 ) {fprintf (stderr,"no free cpu found\n" ); -return -ERROR_FAIL ; + goto out_cfg; } }else if (!xlu_cfg_get_list (config,"cpus" , &cpus,0 ,0 )) { n_cpus =0 ;
@@ -5824,7 +5825,7 @@ int main_cpupoolcreate(int argc, char **if ((i <0 ) || (i >= freemap.size *8 ) || !libxl_cpumap_test (&freemap, i)) {fprintf (stderr,"cpu %d illegal or not free\n" , i); -return -ERROR_FAIL ; + goto out_cfg; }libxl_cpumap_set (&cpumap, i); n_cpus++;
@@ -5839,16 +5840,20 @@ int main_cpupoolcreate(int argc, char **printf ("scheduler: %s\n" ,libxl_scheduler_to_string (sched));printf ("number of cpus: %d\n" , n_cpus); -if (dryrun_only) -return 0 ; - - poolid =0 ; -if (libxl_cpupool_create (ctx, name, sched, cpumap, &uuid, &poolid)) { -fprintf (stderr,"error on creating cpupool\n" ); -return -ERROR_FAIL ; - } - -return 0 ; +if (!dryrun_only) { + poolid =0 ; +if (libxl_cpupool_create (ctx, name, sched, cpumap, &uuid, &poolid)) { +fprintf (stderr,"error on creating cpupool\n" ); + goto out_cfg; + } + } +/* We made it! */ + rc =0 ; + +out_cfg: +xlu_cfg_destroy (config); +out: +return rc; }int main_cpupoollist (int argc,char **argv)
George Dunlap writes ("[Xen-devel] [PATCH 0 of 3] xl: Some clean-up"):
Quoted 6 lines
xl: Some clean-up
* Use
libxl_device_pci_initinstead of memset
* Callxlu_cfg_destroywhen necessarySigned-off-by George Dunlap <[email protected]>
Acked-by Ian Jackson <[email protected]>
Committed-by Ian Jackson <[email protected]>
All 3.
Ian.