--- linux/drivers/scsi/scsi_debug.c 2004-10-19 07:59:14.966673272 +1000 +++ linux/drivers/scsi/scsi_debug.c174b 2004-10-19 07:58:46.044070176 +1000 @@ -56,7 +56,7 @@ #include "scsi_debug.h" #define SCSI_DEBUG_VERSION "1.74" -static const char * scsi_debug_version_date = "20041018"; +static const char * scsi_debug_version_date = "20041019"; /* Additional Sense Code (ASC) used */ #define NO_ADDED_SENSE 0x0 @@ -505,7 +505,8 @@ active = 1; for (k = 0, req_len = 0, act_len = 0; k < scp->use_sg; ++k, ++sgpnt) { if (active) { - kaddr = (unsigned char *)kmap(sgpnt->page); + kaddr = (unsigned char *) + kmap_atomic(sgpnt->page, KM_USER0); if (NULL == kaddr) return (DID_ERROR << 16); kaddr = (unsigned char *)kaddr + sgpnt->offset; @@ -515,7 +516,7 @@ len = arr_len - req_len; } memcpy(kaddr, arr + req_len, len); - kunmap(sgpnt->page); + kunmap_atomic(sgpnt->page, KM_USER0); act_len += len; } req_len += sgpnt->length; @@ -547,7 +548,7 @@ } sgpnt = (struct scatterlist *)scp->request_buffer; for (k = 0, req_len = 0, fin = 0; k < scp->use_sg; ++k, ++sgpnt) { - kaddr = (unsigned char *)kmap(sgpnt->page); + kaddr = (unsigned char *)kmap_atomic(sgpnt->page, KM_USER0); if (NULL == kaddr) return -1; kaddr = (unsigned char *)kaddr + sgpnt->offset; @@ -557,7 +558,7 @@ fin = 1; } memcpy(arr + req_len, kaddr, len); - kunmap(sgpnt->page); + kunmap_atomic(sgpnt->page, KM_USER0); if (fin) return req_len + len; req_len += sgpnt->length;