spin_lock(&rc->pal_lock);
        list_for_each_entry(pal, &rc->pals, node) {
                if (pal->new_rsv)
-                       pal->new_rsv(rsv);
+                       pal->new_rsv(pal, rsv);
                if (rsv->state == UWB_RSV_STATE_T_ACCEPTED)
                        break;
        }
 
        .owner   = THIS_MODULE,
 };
 
-static void uwb_dbg_new_rsv(struct uwb_rsv *rsv)
+static void uwb_dbg_new_rsv(struct uwb_pal *pal, struct uwb_rsv *rsv)
 {
-       struct uwb_rc *rc = rsv->rc;
+       struct uwb_dbg *dbg = container_of(pal, struct uwb_dbg, pal);
 
-       if (rc->dbg->accept) {
-               list_add_tail(&rsv->pal_node, &rc->dbg->rsvs);
-               uwb_rsv_accept(rsv, uwb_dbg_rsv_cb, NULL);
+       if (dbg->accept) {
+               list_add_tail(&rsv->pal_node, &dbg->rsvs);
+               uwb_rsv_accept(rsv, uwb_dbg_rsv_cb, dbg);
        }
 }
 
 
        struct list_head node;
        const char *name;
        struct device *device;
-       void (*new_rsv)(struct uwb_rsv *rsv);
+       void (*new_rsv)(struct uwb_pal *pal, struct uwb_rsv *rsv);
 };
 
 void uwb_pal_init(struct uwb_pal *pal);