[SCSI] iscsi_tcp: make padbuf non-static
virt_to_page() call should not be used on kernel text and data addresses. virt_to_page() is used by sg_init_one(). So change padbuf to be allocated within iscsi_segment. Signed-off-by: Karen Xie <kxie@chelsio.com> Acked-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
Родитель
2f4c782c2e
Коммит
2856830bd3
|
@ -177,7 +177,6 @@ int iscsi_tcp_segment_done(struct iscsi_tcp_conn *tcp_conn,
|
||||||
struct iscsi_segment *segment, int recv,
|
struct iscsi_segment *segment, int recv,
|
||||||
unsigned copied)
|
unsigned copied)
|
||||||
{
|
{
|
||||||
static unsigned char padbuf[ISCSI_PAD_LEN];
|
|
||||||
struct scatterlist sg;
|
struct scatterlist sg;
|
||||||
unsigned int pad;
|
unsigned int pad;
|
||||||
|
|
||||||
|
@ -233,7 +232,7 @@ int iscsi_tcp_segment_done(struct iscsi_tcp_conn *tcp_conn,
|
||||||
debug_tcp("consume %d pad bytes\n", pad);
|
debug_tcp("consume %d pad bytes\n", pad);
|
||||||
segment->total_size += pad;
|
segment->total_size += pad;
|
||||||
segment->size = pad;
|
segment->size = pad;
|
||||||
segment->data = padbuf;
|
segment->data = segment->padbuf;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ struct iscsi_segment {
|
||||||
unsigned int total_copied;
|
unsigned int total_copied;
|
||||||
|
|
||||||
struct hash_desc *hash;
|
struct hash_desc *hash;
|
||||||
|
unsigned char padbuf[ISCSI_PAD_LEN];
|
||||||
unsigned char recv_digest[ISCSI_DIGEST_SIZE];
|
unsigned char recv_digest[ISCSI_DIGEST_SIZE];
|
||||||
unsigned char digest[ISCSI_DIGEST_SIZE];
|
unsigned char digest[ISCSI_DIGEST_SIZE];
|
||||||
unsigned int digest_len;
|
unsigned int digest_len;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче