Re: [PATCH 6/8] crypto: qat - Convert to new AEAD interface

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

 



On 08/04/2015 02:59 AM, Herbert Xu wrote:
> Good catch.  However it's not as simple as that.  We have a bigger
> problem here.
> 
> For software implementations it's really easy because we use the
> module reference count to prevent unregisters from happening while
> there are tfms using it.
> 
> However for hardware devices this breaks down because you can remove
> the device at any time.  So we'll have to come up with a way of
> handling this without causing live tfms to explode.
> 
> FWIW the current qat code (and possibly other drivers) is buggy
> because if you call unregister while there are still tfms using
> it, it will BUG in the unregister call.

The way we handle it in qat is as follows - when tfm allocates a
crypto "instance" on a qat dev it then calls qat_crypto_put_instance(),
which calls also adf_dev_put() on the appropriate qat device.
This then calls module_put() on accel_dev->owner.
This way, when any tfm is allocated on a device the attempts to rmmod
or ioctl shutdown returns -EBUSY. See adf_ctl_is_device_in_use()
One can only successfully shut down a device or rmmod qat_dh895 when
all tfms are freed.

The only possibility when we may try to restart a device when tfms are
allocated is when we handle HW uncorrectable errors, which in theory
should never happen :)


--
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