Re: [1/1 take 2] HIFN: preliminary HIFN 795x driver for new async cryptoapi.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Evgeniey:

Sorry for taking so long to get back to you.  I've been busy lately.

On Mon, Jun 04, 2007 at 05:42:48PM +0400, Evgeniy Polyakov wrote:
>
> +static int hifn_setup_crypto(struct ablkcipher_request *req, u8 op, u8 type, u8 mode)
> +{
> +	struct hifn_device *dev = ablkcipher_request_ctx(req);
> +	int err = -EBUSY;
> +	unsigned long flags;
> +
> +	spin_lock_irqsave(&dev->lock, flags);
> +	if (dev->started < HIFN_QUEUE_LENGTH) {
> +		err = hifn_setup_session(dev, req->src, 1, req->dst, 1, 
> +				(dev->flags & HIFN_FLAG_OLD_KEY)?NULL:dev->current_key, dev->current_key_len,
> +				NULL, 0, 
> +				op, type, mode, dev->snum, req);
> +		dev->snum++;
> +		dev->started++;
> +	}
> +	spin_unlock_irqrestore(&dev->lock, flags);
> +
> +	/*
> +	 * HEAVY TODO: needs to kick Herbert XU to write documentation.
> +	 * HEAVY TODO: needs to kick Herbert XU to write documentation.
> +	 * HEAVY TODO: needs to kick Herbert XU to write documentation.
> +	 *
> +	 * Actually I need to think about how to handle the case, when queue is full.
> +	 * So far error (-EINVAL) is returned.
> +	 */

OK you need to provide a software queue here.  Since you already
have a hardware queue, you may choose to have a queue with a
(advisory) maximum length of zero.  However, a queue is still
necessary since requests with the MAY_BACKLOG flag must never
be discarded.

This is (or will be) used by users such as dm-crypt that must be
able to add at least one request but can throttle themselves
afterwards .

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux