[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:
Karen Xie 2009-01-10 19:06:07 -08:00 коммит произвёл James Bottomley
Родитель 2f4c782c2e
Коммит 2856830bd3
2 изменённых файлов: 2 добавлений и 2 удалений

Просмотреть файл

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