Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6e4b28b authored by Daniel Vetter's avatar Daniel Vetter Committed by Dave Airlie
Browse files

drm: inline drm_agp_destroy



Wrapping a kfree is pointless.

v2: Add a comment to the kerneldoc for drm_agp_init to explain where
the kfree happens as requested by David. Note that for modeset drivers
agp cleanup is fairly complicated anyway: The drm_agp_clear is a noop
and drivers must call drm_agp_release on their own. Which they all
seem to do properly.

Cc: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 2c695fa0
Loading
Loading
Loading
Loading
+3 −15
Original line number Diff line number Diff line
@@ -393,6 +393,9 @@ int drm_agp_free_ioctl(struct drm_device *dev, void *data,
 * Gets the drm_agp_t structure which is made available by the agpgart module
 * via the inter_module_* functions. Creates and initializes a drm_agp_head
 * structure.
 *
 * Note that final cleanup of the kmalloced structure is directly done in
 * drm_pci_agp_destroy.
 */
struct drm_agp_head *drm_agp_init(struct drm_device *dev)
{
@@ -459,21 +462,6 @@ void drm_agp_clear(struct drm_device *dev)
	dev->agp->enabled = 0;
}

/**
 * drm_agp_destroy - Destroy AGP head
 * @dev: DRM device
 *
 * Destroy resources that were previously allocated via drm_agp_initp. Caller
 * must ensure to clean up all AGP resources before calling this. See
 * drm_agp_clear().
 *
 * Call this to destroy AGP heads allocated via drm_agp_init().
 */
void drm_agp_destroy(struct drm_agp_head *agp)
{
	kfree(agp);
}

/**
 * Binds a collection of pages into AGP memory at the given offset, returning
 * the AGP memory structure containing them.
+1 −1
Original line number Diff line number Diff line
@@ -281,7 +281,7 @@ static void drm_pci_agp_destroy(struct drm_device *dev)
	if (dev->agp) {
		arch_phys_wc_del(dev->agp->agp_mtrr);
		drm_agp_clear(dev);
		drm_agp_destroy(dev->agp);
		kfree(dev->agp);
		dev->agp = NULL;
	}
}
+0 −5
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ DRM_AGP_MEM *drm_agp_bind_pages(struct drm_device *dev,
				uint32_t type);

struct drm_agp_head *drm_agp_init(struct drm_device *dev);
void drm_agp_destroy(struct drm_agp_head *agp);
void drm_agp_clear(struct drm_device *dev);
int drm_agp_acquire(struct drm_device *dev);
int drm_agp_acquire_ioctl(struct drm_device *dev, void *data,
@@ -76,10 +75,6 @@ static inline struct drm_agp_head *drm_agp_init(struct drm_device *dev)
	return NULL;
}

static inline void drm_agp_destroy(struct drm_agp_head *agp)
{
}

static inline void drm_agp_clear(struct drm_device *dev)
{
}