/* Host sent us data. */ static void in_intr(struct virtqueue *vq) { struct crypto_device *crdev; debug("Entering\n"); crdev = vq->vdev->priv; crdev->inbuf = get_inbuf(crdev); wake_up_interruptible(&crdev->i_wq); debug("Leaving\n"); }
/* Host sent us data. */ static void in_intr(struct virtqueue *vq) { struct crypto_device *crdev; unsigned long flags; debug("Entering\n"); crdev = vq->vdev->priv; spin_lock_irqsave(&crdev->inbuf_lock, flags); crdev->inbuf = get_inbuf(crdev); spin_unlock_irqrestore(&crdev->inbuf_lock, flags); wake_up_interruptible(&crdev->i_wq); debug("Leaving\n"); }
bool device_has_data(struct crypto_device *crdev) { //unsigned long flags; bool ret; debug("Entering\n"); ret = false; //spin_lock_irqsave(&port->inbuf_lock, flags); crdev->inbuf = get_inbuf(crdev); if (crdev->inbuf) ret = true; debug("Leaving\n"); //spin_unlock_irqrestore(&port->inbuf_lock, flags); return ret; }