Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F97642267
D30520.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D30520.diff
View Options
diff --git a/sys/compat/linuxkpi/common/include/linux/dmapool.h b/sys/compat/linuxkpi/common/include/linux/dmapool.h
--- a/sys/compat/linuxkpi/common/include/linux/dmapool.h
+++ b/sys/compat/linuxkpi/common/include/linux/dmapool.h
@@ -41,6 +41,7 @@
struct dma_pool *linux_dma_pool_create(char *name, struct device *dev,
size_t size, size_t align, size_t boundary);
void linux_dma_pool_destroy(struct dma_pool *pool);
+void lkpi_dmam_pool_destroy(struct device *, void *);
void *linux_dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags,
dma_addr_t *handle);
void linux_dma_pool_free(struct dma_pool *pool, void *vaddr,
@@ -54,6 +55,25 @@
return (linux_dma_pool_create(name, dev, size, align, boundary));
}
+static inline struct dma_pool *
+dmam_pool_create(/* const */ char *name, struct device *dev, size_t size,
+ size_t align, size_t boundary)
+{
+ struct dma_pool **pp;
+
+ pp = devres_alloc(lkpi_dmam_pool_destroy, sizeof(*pp), GFP_KERNEL);
+ if (pp == NULL)
+ return (NULL);
+ *pp = linux_dma_pool_create(name, dev, size, align, boundary);
+ if (*pp == NULL) {
+ devres_free(pp);
+ return (NULL);
+ }
+
+ devres_add(dev, pp);
+ return (*pp);
+}
+
static inline void
dma_pool_destroy(struct dma_pool *pool)
{
diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c
--- a/sys/compat/linuxkpi/common/src/linux_pci.c
+++ b/sys/compat/linuxkpi/common/src/linux_pci.c
@@ -997,6 +997,16 @@
kfree(pool);
}
+void
+lkpi_dmam_pool_destroy(struct device *dev, void *p)
+{
+ struct dma_pool *pool;
+
+ pool = *(struct dma_pool **)p;
+ LINUX_DMA_PCTRIE_RECLAIM(&pool->pool_ptree);
+ linux_dma_pool_destroy(pool);
+}
+
void *
linux_dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags,
dma_addr_t *handle)
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Oct 1, 1:22 PM (21 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
13252865
Default Alt Text
D30520.diff (1 KB)
Attached To
Mode
D30520: LinuxKPI: add dmam_pool_create() support
Attached
Detach File
Event Timeline
Log In to Comment