diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-03-23 19:51:55 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-03-23 19:51:55 -0400 |
| commit | a607a1143a58dcd31396649812df5cd3bb0d4294 (patch) | |
| tree | 1468ffca95ce7b3048d671568ae43580de1fcaa4 /drivers/target/iscsi/iscsi_target_auth.c | |
| parent | 22c3f2fff68abf1ccf88e1a72f61bfede7b91da0 (diff) | |
| parent | 8f27d487bcc2bd603c2d87e1729abcbc301f15db (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
Pull SCSI target fixes from Nicholas Bellinger:
"These are mostly minor fixes this time around. The iscsi-target CHAP
big-endian bugfix and bump FD_MAX_SECTORS=2048 default patch to allow
1MB sized I/Os for FILEIO backends on >= v3.5 code are both CC'ed to
stable.
Also, there is a persistent reservations regression that has recently
been reported for >= v3.8.x code, that is currently being tracked down
for v3.9."
* git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
target/pscsi: Reject cross page boundary case in pscsi_map_sg
target/file: Bump FD_MAX_SECTORS to 2048 to handle 1M sized I/Os
tcm_vhost: Flush vhost_work in vhost_scsi_flush()
tcm_vhost: Add missed lock in vhost_scsi_clear_endpoint()
target: fix possible memory leak in core_tpg_register()
target/iscsi: Fix mutual CHAP auth on big-endian arches
target_core_sbc: use noop for SYNCHRONIZE_CACHE
Diffstat (limited to 'drivers/target/iscsi/iscsi_target_auth.c')
| -rw-r--r-- | drivers/target/iscsi/iscsi_target_auth.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/target/iscsi/iscsi_target_auth.c b/drivers/target/iscsi/iscsi_target_auth.c index db0cf7c8adde..a0fc7b9eea65 100644 --- a/drivers/target/iscsi/iscsi_target_auth.c +++ b/drivers/target/iscsi/iscsi_target_auth.c | |||
| @@ -166,6 +166,7 @@ static int chap_server_compute_md5( | |||
| 166 | { | 166 | { |
| 167 | char *endptr; | 167 | char *endptr; |
| 168 | unsigned long id; | 168 | unsigned long id; |
| 169 | unsigned char id_as_uchar; | ||
| 169 | unsigned char digest[MD5_SIGNATURE_SIZE]; | 170 | unsigned char digest[MD5_SIGNATURE_SIZE]; |
| 170 | unsigned char type, response[MD5_SIGNATURE_SIZE * 2 + 2]; | 171 | unsigned char type, response[MD5_SIGNATURE_SIZE * 2 + 2]; |
| 171 | unsigned char identifier[10], *challenge = NULL; | 172 | unsigned char identifier[10], *challenge = NULL; |
| @@ -355,7 +356,9 @@ static int chap_server_compute_md5( | |||
| 355 | goto out; | 356 | goto out; |
| 356 | } | 357 | } |
| 357 | 358 | ||
| 358 | sg_init_one(&sg, &id, 1); | 359 | /* To handle both endiannesses */ |
| 360 | id_as_uchar = id; | ||
| 361 | sg_init_one(&sg, &id_as_uchar, 1); | ||
| 359 | ret = crypto_hash_update(&desc, &sg, 1); | 362 | ret = crypto_hash_update(&desc, &sg, 1); |
| 360 | if (ret < 0) { | 363 | if (ret < 0) { |
| 361 | pr_err("crypto_hash_update() failed for id\n"); | 364 | pr_err("crypto_hash_update() failed for id\n"); |
