IB/ipath: Fix memory leak in init_shadow_tids() error path
[linux-2.6-block.git] / drivers / infiniband / hw / ipath / ipath_init_chip.c
index 3e5baa43fc822468b232819f62716a2aba1d8c1d..077879c0bdb51a63f19326b21cf6f5350f43f6fe 100644 (file)
@@ -229,6 +229,7 @@ static int init_chip_first(struct ipath_devdata *dd)
        spin_lock_init(&dd->ipath_kernel_tid_lock);
        spin_lock_init(&dd->ipath_user_tid_lock);
        spin_lock_init(&dd->ipath_sendctrl_lock);
+       spin_lock_init(&dd->ipath_uctxt_lock);
        spin_lock_init(&dd->ipath_sdma_lock);
        spin_lock_init(&dd->ipath_gpio_lock);
        spin_lock_init(&dd->ipath_eep_st_lock);
@@ -454,7 +455,7 @@ static void init_shadow_tids(struct ipath_devdata *dd)
        if (!addrs) {
                ipath_dev_err(dd, "failed to allocate shadow dma handle "
                              "array, no expected sends!\n");
-               vfree(dd->ipath_pageshadow);
+               vfree(pages);
                dd->ipath_pageshadow = NULL;
                return;
        }