diff options
author | Fernando Guzman Lugo <x0095840@ti.com> | 2010-10-05 16:35:42 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-05 18:30:58 -0400 |
commit | db348ca36e5881cd1d2e5caa6eee7d0237d07a3d (patch) | |
tree | 56e9be2fe55d66d2b178ed17ba9fd41885e9f217 /drivers/staging | |
parent | b5a44939231d6e3b0354624289507bfa1432a7b1 (diff) |
staging: tidspbridge - remove reserved memory clean up
Now iommv module keeps track of iommu memory used,
we do not need resource cleanup for reserved
memories anymore.
Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/tidspbridge/include/dspbridge/drv.h | 4 | ||||
-rw-r--r-- | drivers/staging/tidspbridge/rmgr/drv.c | 11 | ||||
-rw-r--r-- | drivers/staging/tidspbridge/rmgr/drv_interface.c | 2 | ||||
-rw-r--r-- | drivers/staging/tidspbridge/rmgr/proc.c | 36 |
4 files changed, 0 insertions, 53 deletions
diff --git a/drivers/staging/tidspbridge/include/dspbridge/drv.h b/drivers/staging/tidspbridge/include/dspbridge/drv.h index c1f363ec9af..427f38b7b43 100644 --- a/drivers/staging/tidspbridge/include/dspbridge/drv.h +++ b/drivers/staging/tidspbridge/include/dspbridge/drv.h | |||
@@ -165,10 +165,6 @@ struct process_context { | |||
165 | struct list_head dmm_map_list; | 165 | struct list_head dmm_map_list; |
166 | spinlock_t dmm_map_lock; | 166 | spinlock_t dmm_map_lock; |
167 | 167 | ||
168 | /* DMM reserved memory resources */ | ||
169 | struct list_head dmm_rsv_list; | ||
170 | spinlock_t dmm_rsv_lock; | ||
171 | |||
172 | /* DSP Heap resources */ | 168 | /* DSP Heap resources */ |
173 | struct dspheap_res_object *pdspheap_list; | 169 | struct dspheap_res_object *pdspheap_list; |
174 | 170 | ||
diff --git a/drivers/staging/tidspbridge/rmgr/drv.c b/drivers/staging/tidspbridge/rmgr/drv.c index 0c857b93416..91cc168516e 100644 --- a/drivers/staging/tidspbridge/rmgr/drv.c +++ b/drivers/staging/tidspbridge/rmgr/drv.c | |||
@@ -146,7 +146,6 @@ int drv_remove_all_dmm_res_elements(void *process_ctxt) | |||
146 | struct process_context *ctxt = (struct process_context *)process_ctxt; | 146 | struct process_context *ctxt = (struct process_context *)process_ctxt; |
147 | int status = 0; | 147 | int status = 0; |
148 | struct dmm_map_object *temp_map, *map_obj; | 148 | struct dmm_map_object *temp_map, *map_obj; |
149 | struct dmm_rsv_object *temp_rsv, *rsv_obj; | ||
150 | 149 | ||
151 | /* Free DMM mapped memory resources */ | 150 | /* Free DMM mapped memory resources */ |
152 | list_for_each_entry_safe(map_obj, temp_map, &ctxt->dmm_map_list, link) { | 151 | list_for_each_entry_safe(map_obj, temp_map, &ctxt->dmm_map_list, link) { |
@@ -156,16 +155,6 @@ int drv_remove_all_dmm_res_elements(void *process_ctxt) | |||
156 | pr_err("%s: proc_un_map failed!" | 155 | pr_err("%s: proc_un_map failed!" |
157 | " status = 0x%xn", __func__, status); | 156 | " status = 0x%xn", __func__, status); |
158 | } | 157 | } |
159 | |||
160 | /* Free DMM reserved memory resources */ | ||
161 | list_for_each_entry_safe(rsv_obj, temp_rsv, &ctxt->dmm_rsv_list, link) { | ||
162 | status = proc_un_reserve_memory(ctxt->hprocessor, (void *) | ||
163 | rsv_obj->dsp_reserved_addr, | ||
164 | ctxt); | ||
165 | if (status) | ||
166 | pr_err("%s: proc_un_reserve_memory failed!" | ||
167 | " status = 0x%xn", __func__, status); | ||
168 | } | ||
169 | return status; | 158 | return status; |
170 | } | 159 | } |
171 | 160 | ||
diff --git a/drivers/staging/tidspbridge/rmgr/drv_interface.c b/drivers/staging/tidspbridge/rmgr/drv_interface.c index 5d0670c7af0..63052b0e342 100644 --- a/drivers/staging/tidspbridge/rmgr/drv_interface.c +++ b/drivers/staging/tidspbridge/rmgr/drv_interface.c | |||
@@ -509,8 +509,6 @@ static int bridge_open(struct inode *ip, struct file *filp) | |||
509 | pr_ctxt->res_state = PROC_RES_ALLOCATED; | 509 | pr_ctxt->res_state = PROC_RES_ALLOCATED; |
510 | spin_lock_init(&pr_ctxt->dmm_map_lock); | 510 | spin_lock_init(&pr_ctxt->dmm_map_lock); |
511 | INIT_LIST_HEAD(&pr_ctxt->dmm_map_list); | 511 | INIT_LIST_HEAD(&pr_ctxt->dmm_map_list); |
512 | spin_lock_init(&pr_ctxt->dmm_rsv_lock); | ||
513 | INIT_LIST_HEAD(&pr_ctxt->dmm_rsv_list); | ||
514 | 512 | ||
515 | pr_ctxt->node_id = kzalloc(sizeof(struct idr), GFP_KERNEL); | 513 | pr_ctxt->node_id = kzalloc(sizeof(struct idr), GFP_KERNEL); |
516 | if (pr_ctxt->node_id) { | 514 | if (pr_ctxt->node_id) { |
diff --git a/drivers/staging/tidspbridge/rmgr/proc.c b/drivers/staging/tidspbridge/rmgr/proc.c index 59c946bb3ed..e5fec572903 100644 --- a/drivers/staging/tidspbridge/rmgr/proc.c +++ b/drivers/staging/tidspbridge/rmgr/proc.c | |||
@@ -1515,7 +1515,6 @@ int proc_reserve_memory(void *hprocessor, u32 ul_size, | |||
1515 | struct dmm_object *dmm_mgr; | 1515 | struct dmm_object *dmm_mgr; |
1516 | int status = 0; | 1516 | int status = 0; |
1517 | struct proc_object *p_proc_object = (struct proc_object *)hprocessor; | 1517 | struct proc_object *p_proc_object = (struct proc_object *)hprocessor; |
1518 | struct dmm_rsv_object *rsv_obj; | ||
1519 | 1518 | ||
1520 | if (!p_proc_object) { | 1519 | if (!p_proc_object) { |
1521 | status = -EFAULT; | 1520 | status = -EFAULT; |
@@ -1529,22 +1528,6 @@ int proc_reserve_memory(void *hprocessor, u32 ul_size, | |||
1529 | } | 1528 | } |
1530 | 1529 | ||
1531 | status = dmm_reserve_memory(dmm_mgr, ul_size, (u32 *) pp_rsv_addr); | 1530 | status = dmm_reserve_memory(dmm_mgr, ul_size, (u32 *) pp_rsv_addr); |
1532 | if (status != 0) | ||
1533 | goto func_end; | ||
1534 | |||
1535 | /* | ||
1536 | * A successful reserve should be followed by insertion of rsv_obj | ||
1537 | * into dmm_rsv_list, so that reserved memory resource tracking | ||
1538 | * remains uptodate | ||
1539 | */ | ||
1540 | rsv_obj = kmalloc(sizeof(struct dmm_rsv_object), GFP_KERNEL); | ||
1541 | if (rsv_obj) { | ||
1542 | rsv_obj->dsp_reserved_addr = (u32) *pp_rsv_addr; | ||
1543 | spin_lock(&pr_ctxt->dmm_rsv_lock); | ||
1544 | list_add(&rsv_obj->link, &pr_ctxt->dmm_rsv_list); | ||
1545 | spin_unlock(&pr_ctxt->dmm_rsv_lock); | ||
1546 | } | ||
1547 | |||
1548 | func_end: | 1531 | func_end: |
1549 | dev_dbg(bridge, "%s: hprocessor: 0x%p ul_size: 0x%x pp_rsv_addr: 0x%p " | 1532 | dev_dbg(bridge, "%s: hprocessor: 0x%p ul_size: 0x%x pp_rsv_addr: 0x%p " |
1550 | "status 0x%x\n", __func__, hprocessor, | 1533 | "status 0x%x\n", __func__, hprocessor, |
@@ -1756,7 +1739,6 @@ int proc_un_reserve_memory(void *hprocessor, void *prsv_addr, | |||
1756 | struct dmm_object *dmm_mgr; | 1739 | struct dmm_object *dmm_mgr; |
1757 | int status = 0; | 1740 | int status = 0; |
1758 | struct proc_object *p_proc_object = (struct proc_object *)hprocessor; | 1741 | struct proc_object *p_proc_object = (struct proc_object *)hprocessor; |
1759 | struct dmm_rsv_object *rsv_obj; | ||
1760 | 1742 | ||
1761 | if (!p_proc_object) { | 1743 | if (!p_proc_object) { |
1762 | status = -EFAULT; | 1744 | status = -EFAULT; |
@@ -1770,24 +1752,6 @@ int proc_un_reserve_memory(void *hprocessor, void *prsv_addr, | |||
1770 | } | 1752 | } |
1771 | 1753 | ||
1772 | status = dmm_un_reserve_memory(dmm_mgr, (u32) prsv_addr); | 1754 | status = dmm_un_reserve_memory(dmm_mgr, (u32) prsv_addr); |
1773 | if (status != 0) | ||
1774 | goto func_end; | ||
1775 | |||
1776 | /* | ||
1777 | * A successful unreserve should be followed by removal of rsv_obj | ||
1778 | * from dmm_rsv_list, so that reserved memory resource tracking | ||
1779 | * remains uptodate | ||
1780 | */ | ||
1781 | spin_lock(&pr_ctxt->dmm_rsv_lock); | ||
1782 | list_for_each_entry(rsv_obj, &pr_ctxt->dmm_rsv_list, link) { | ||
1783 | if (rsv_obj->dsp_reserved_addr == (u32) prsv_addr) { | ||
1784 | list_del(&rsv_obj->link); | ||
1785 | kfree(rsv_obj); | ||
1786 | break; | ||
1787 | } | ||
1788 | } | ||
1789 | spin_unlock(&pr_ctxt->dmm_rsv_lock); | ||
1790 | |||
1791 | func_end: | 1755 | func_end: |
1792 | dev_dbg(bridge, "%s: hprocessor: 0x%p prsv_addr: 0x%p status: 0x%x\n", | 1756 | dev_dbg(bridge, "%s: hprocessor: 0x%p prsv_addr: 0x%p status: 0x%x\n", |
1793 | __func__, hprocessor, prsv_addr, status); | 1757 | __func__, hprocessor, prsv_addr, status); |