vgpu.c (04d348ae3f0aea6523bc3b0688b5fc90c1c60d0e) vgpu.c (8453d674ae7e63f629a91fe4124df7a7dc9c74cd)
1/*
2 * Copyright(c) 2011-2016 Intel Corporation. All rights reserved.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the

--- 207 unchanged lines hidden (view full) ---

216 if (ret)
217 goto out_clean_gtt;
218 }
219
220 ret = intel_vgpu_init_display(vgpu);
221 if (ret)
222 goto out_clean_opregion;
223
1/*
2 * Copyright(c) 2011-2016 Intel Corporation. All rights reserved.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the

--- 207 unchanged lines hidden (view full) ---

216 if (ret)
217 goto out_clean_gtt;
218 }
219
220 ret = intel_vgpu_init_display(vgpu);
221 if (ret)
222 goto out_clean_opregion;
223
224 ret = intel_vgpu_init_execlist(vgpu);
225 if (ret)
226 goto out_clean_display;
227
224 vgpu->active = true;
225 mutex_unlock(&gvt->lock);
226
227 return vgpu;
228
228 vgpu->active = true;
229 mutex_unlock(&gvt->lock);
230
231 return vgpu;
232
233out_clean_display:
234 intel_vgpu_clean_display(vgpu);
229out_clean_opregion:
230 intel_vgpu_clean_opregion(vgpu);
231out_clean_gtt:
232 intel_vgpu_clean_gtt(vgpu);
233out_detach_hypervisor_vgpu:
234 intel_gvt_hypervisor_detach_vgpu(vgpu);
235out_clean_vgpu_resource:
236 intel_vgpu_free_resource(vgpu);
237out_clean_vgpu_mmio:
238 clean_vgpu_mmio(vgpu);
239out_free_vgpu:
240 vfree(vgpu);
241 mutex_unlock(&gvt->lock);
242 return ERR_PTR(ret);
243}
235out_clean_opregion:
236 intel_vgpu_clean_opregion(vgpu);
237out_clean_gtt:
238 intel_vgpu_clean_gtt(vgpu);
239out_detach_hypervisor_vgpu:
240 intel_gvt_hypervisor_detach_vgpu(vgpu);
241out_clean_vgpu_resource:
242 intel_vgpu_free_resource(vgpu);
243out_clean_vgpu_mmio:
244 clean_vgpu_mmio(vgpu);
245out_free_vgpu:
246 vfree(vgpu);
247 mutex_unlock(&gvt->lock);
248 return ERR_PTR(ret);
249}