Signed-off-by: Goldwyn Rodrigues <[email protected]>
---
drivers/infiniband/core/cache.c | 193 --------------------------------------
drivers/infiniband/core/device.c | 10 --
2 files changed, 0 insertions(+), 203 deletions(-)
diff --git a/drivers/infiniband/core/cache.c b/drivers/infiniband/core/cache.c
index 532d442..3e410fe 100644
--- a/drivers/infiniband/core/cache.c
+++ b/drivers/infiniband/core/cache.c
@@ -260,121 +260,6 @@ int ib_update_cached_gid(struct ib_cache *cache,
}
EXPORT_SYMBOL(ib_update_cached_gid);
-static void ib_cache_update(struct ib_device *device,
- u8 port)
-{
- struct ib_port_attr *tprops = NULL;
- struct ib_pkey_cache *pkey_cache = NULL, *old_pkey_cache;
- struct ib_gid_cache *gid_cache = NULL, *old_gid_cache;
- int i;
- int ret;
-
- tprops = kmalloc(sizeof *tprops, GFP_KERNEL);
- if (!tprops)
- return;
-
- ret = ib_query_port(device, port, tprops);
- if (ret) {
- printk(KERN_WARNING "ib_query_port failed (%d) for %s\n",
- ret, device->name);
- goto err;
- }
-
- pkey_cache = kmalloc(sizeof *pkey_cache + tprops->pkey_tbl_len *
- sizeof *pkey_cache->table, GFP_KERNEL);
- if (!pkey_cache)
- goto err;
-
- pkey_cache->table_len = tprops->pkey_tbl_len;
- pkey_cache->valid_bm = kzalloc(BITS_TO_LONGS(pkey_cache->table_len),
- GFP_KERNEL);
- if (!pkey_cache->valid_bm)
- goto err;
-
-
- gid_cache = kmalloc(sizeof *gid_cache + tprops->gid_tbl_len *
- sizeof *gid_cache->table, GFP_KERNEL);
- if (!gid_cache)
- goto err;
-
- gid_cache->table_len = tprops->gid_tbl_len;
- gid_cache->valid_bm = kzalloc(BITS_TO_LONGS(gid_cache->table_len),
- GFP_KERNEL);
- if (!gid_cache->valid_bm)
- goto err;
-
- for (i = 0; i < pkey_cache->table_len; ++i) {
- ret = ib_query_pkey(device, port, i, pkey_cache->table + i);
- if (ret) {
- printk(KERN_WARNING "ib_query_pkey failed (%d) for %s
(index %d)\n",
- ret, device->name, i);
- goto err;
- }
- set_bit(i, pkey_cache->valid_bm);
- }
-
- for (i = 0; i < gid_cache->table_len; ++i) {
- ret = ib_query_gid(device, port, i, gid_cache->table + i);
- if (ret) {
- printk(KERN_WARNING "ib_query_gid failed (%d) for %s
(index %d)\n",
- ret, device->name, i);
- goto err;
- }
- set_bit(i, gid_cache->valid_bm);
- }
-
- write_lock_irq(&device->cache.lock);
-
- old_pkey_cache = device->cache.pkey_cache[port - start_port(device)];
- old_gid_cache = device->cache.gid_cache [port - start_port(device)];
-
- device->cache.pkey_cache[port - start_port(device)] = pkey_cache;
- device->cache.gid_cache [port - start_port(device)] = gid_cache;
-
- write_unlock_irq(&device->cache.lock);
-
- kfree(old_pkey_cache);
- kfree(old_gid_cache);
- kfree(tprops);
- return;
-
-err:
- kfree(pkey_cache);
- kfree(gid_cache);
- kfree(tprops);
-}
-
-static void ib_cache_task(struct work_struct *_work)
-{
- struct ib_update_work *work =
- container_of(_work, struct ib_update_work, work);
-
- ib_cache_update(work->device, work->port_num);
- kfree(work);
-}
-
-static void ib_cache_event(struct ib_event_handler *handler,
- struct ib_event *event)
-{
- struct ib_update_work *work;
-
- if (event->event == IB_EVENT_PORT_ERR ||
- event->event == IB_EVENT_PORT_ACTIVE ||
- event->event == IB_EVENT_LID_CHANGE ||
- event->event == IB_EVENT_PKEY_CHANGE ||
- event->event == IB_EVENT_SM_CHANGE ||
- event->event == IB_EVENT_CLIENT_REREGISTER ||
- event->event == IB_EVENT_GID_CHANGE) {
- work = kmalloc(sizeof *work, GFP_ATOMIC);
- if (work) {
- INIT_WORK(&work->work, ib_cache_task);
- work->device = event->device;
- work->port_num = event->element.port_num;
- queue_work(ib_wq, &work->work);
- }
- }
-}
-
static struct ib_pkey_cache *ib_cache_pkey_alloc(int size)
{
struct ib_pkey_cache *pc;
@@ -504,81 +389,3 @@ void ib_cache_free(struct ib_cache *cache)
kfree(cache->gid_cache);
}
EXPORT_SYMBOL(ib_cache_free);
-
-static void ib_cache_setup_one(struct ib_device *device)
-{
- int p;
-
- device->cache.start_port = start_port(device);
- device->cache.end_port = end_port(device);
-
- rwlock_init(&device->cache.lock);
-
- device->cache.pkey_cache =
- kmalloc(sizeof *device->cache.pkey_cache *
- (end_port(device) - start_port(device) + 1),
GFP_KERNEL);
- device->cache.gid_cache =
- kmalloc(sizeof *device->cache.gid_cache *
- (end_port(device) - start_port(device) + 1),
GFP_KERNEL);
-
- if (!device->cache.pkey_cache || !device->cache.gid_cache) {
- printk(KERN_WARNING "Couldn't allocate cache "
- "for %s\n", device->name);
- goto err;
- }
-
- for (p = 0; p <= end_port(device) - start_port(device); ++p) {
- device->cache.pkey_cache[p] = NULL;
- device->cache.gid_cache [p] = NULL;
- ib_cache_update(device, p + start_port(device));
- }
-
- INIT_IB_EVENT_HANDLER(&device->cache.event_handler,
- device, ib_cache_event);
- if (ib_register_event_handler(&device->cache.event_handler))
- goto err_cache;
-
- return;
-
-err_cache:
- for (p = 0; p <= end_port(device) - start_port(device); ++p) {
- kfree(device->cache.pkey_cache[p]);
- kfree(device->cache.gid_cache[p]);
- }
-
-err:
- kfree(device->cache.pkey_cache);
- kfree(device->cache.gid_cache);
-}
-
-static void ib_cache_cleanup_one(struct ib_device *device)
-{
- int p;
-
- ib_unregister_event_handler(&device->cache.event_handler);
- flush_workqueue(ib_wq);
-
- for (p = 0; p <= end_port(device) - start_port(device); ++p) {
- kfree(device->cache.pkey_cache[p]);
- kfree(device->cache.gid_cache[p]);
- }
-
- kfree(device->cache.pkey_cache);
- kfree(device->cache.gid_cache);
-}
-
-static struct ib_client cache_client = {
- .name = "cache",
- .add = ib_cache_setup_one,
- .remove = ib_cache_cleanup_one
-};
-
-int __init ib_cache_setup(void)
-{
- return ib_register_client(&cache_client);
-}
-
-void __exit ib_cache_cleanup(void)
-{
- ib_unregister_client(&cache_client);
-}
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index 5ea7652..52793ee 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -766,17 +766,8 @@ static int __init ib_core_init(void)
goto err_sysfs;
}
- ret = ib_cache_setup();
- if (ret) {
- printk(KERN_WARNING "Couldn't set up InfiniBand P_Key/GID
cache\n");
- goto err_nl;
- }
-
return 0;
-err_nl:
- ibnl_cleanup();
-
err_sysfs:
ib_sysfs_cleanup();
@@ -787,7 +778,6 @@ err:
static void __exit ib_core_cleanup(void)
{
- ib_cache_cleanup();
ibnl_cleanup();
ib_sysfs_cleanup();
/* Make sure that any pending umem accounting work is done. */
--
1.7.6
--
Goldwyn
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html