diff options
author | Eric Biggers <ebiggers@google.com> | 2020-06-09 23:39:42 -0700 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2020-06-18 17:26:43 +1000 |
commit | be924e0aaa315a179c25221685e3f1a35a70156e (patch) | |
tree | 9524713d98cae7cb7c4d50d6c8961ecc032f66d5 /block/blk-wbt.h | |
parent | 57b1aac1b426b7255afa195298ed691ffea204c6 (diff) | |
download | linux-be924e0aaa315a179c25221685e3f1a35a70156e.tar.gz linux-be924e0aaa315a179c25221685e3f1a35a70156e.tar.bz2 linux-be924e0aaa315a179c25221685e3f1a35a70156e.zip |
crc-t10dif: use fallback in initial state
Currently the crc-t10dif module starts out with the fallback disabled
and crct10dif_tfm == NULL. crc_t10dif_mod_init() tries to allocate
crct10dif_tfm, and if it fails it enables the fallback.
This is backwards because it means that any call to crc_t10dif() prior
to module_init (which could theoretically happen from built-in code)
will crash rather than use the fallback as expected. Also, it means
that if the initial tfm allocation fails, then the fallback stays
permanently enabled even if a crct10dif implementation is loaded later.
Change it to use the more logical solution of starting with the fallback
enabled, and disabling the fallback when a tfm gets allocated for the
first time. This change also ends up simplifying the code.
Also take the opportunity to convert the code to use the new static_key
API, which is much less confusing than the old and deprecated one.
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'block/blk-wbt.h')
0 files changed, 0 insertions, 0 deletions