spin_lock_irqsave(&dev->lock, flags);
        while ((async_req = crypto_dequeue_request(&dev->queue))) {
-               req = container_of(async_req, struct ablkcipher_request, base);
+               req = ablkcipher_request_cast(async_req);
                spin_unlock_irqrestore(&dev->lock, flags);
 
                hifn_process_ready(req, -ENODEV);
                if (backlog)
                        backlog->complete(backlog, -EINPROGRESS);
 
-               req = container_of(async_req, struct ablkcipher_request, base);
+               req = ablkcipher_request_cast(async_req);
 
                err = hifn_handle_req(req);
                if (err)
 
 
 static void spacc_ablk_complete(struct spacc_req *req)
 {
-       struct ablkcipher_request *ablk_req =
-               container_of(req->req, struct ablkcipher_request, base);
+       struct ablkcipher_request *ablk_req = ablkcipher_request_cast(req->req);
 
        if (ablk_req->src != ablk_req->dst) {
                spacc_free_ddt(req, req->src_ddt, req->src_addr, ablk_req->src,