diff options
author | davem <davem> | 2002-02-10 00:44:10 +0000 |
---|---|---|
committer | davem <davem> | 2002-02-10 00:44:10 +0000 |
commit | a049347b868bcbbf1e4c20ee9c1cb2624e598a17 (patch) | |
tree | 39fa6b9168f8b7383f7b8fcbd0db98cb96a679cc | |
parent | eb4437a9904c7e0413ea54ab964db8c5b2fe6e6f (diff) | |
download | netdev-vger-cvs-a049347b868bcbbf1e4c20ee9c1cb2624e598a17.tar.gz |
Merge errors.
-rw-r--r-- | drivers/scsi/scsi_debug.c | 13 | ||||
-rw-r--r-- | drivers/scsi/sg.c | 11 |
2 files changed, 22 insertions, 2 deletions
diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c index 220f5aab8..48b82933b 100644 --- a/drivers/scsi/scsi_debug.c +++ b/drivers/scsi/scsi_debug.c @@ -89,6 +89,8 @@ static int scsi_debug_fake_blk0 = DEF_FAKE_BLK0; /* Only use this in the actual kernel, not in the simulator. */ #define IMMEDIATE +#define SDEBUG_SG_ADDRESS + #define START_PARTITION 4 /* Time to wait before completing a command */ @@ -511,9 +513,16 @@ unsigned char * sdebug_scatg2virt(const struct scatterlist * sclp) { if (NULL == sclp) return NULL; - else + else if (sclp->page) return (unsigned char *)page_address(sclp->page) + - sclp->offset; + sclp->offset; + else { +#ifdef SDEBUG_SG_ADDRESS + return sclp->address; +#else + return NULL; +#endif + } } static int scsi_debug_read(Scsi_Cmnd * SCpnt, int upper_blk, int block, diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index e59074258..62263c59d 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c @@ -76,6 +76,8 @@ static void sg_proc_cleanup(void); #include <linux/version.h> #endif /* LINUX_VERSION_CODE */ +#define SG_STILL_HAVE_ADDRESS_IN_SCATTERLIST + #define SG_ALLOW_DIO_DEF 0 #define SG_ALLOW_DIO_CODE /* compile out be commenting this define */ #ifdef SG_ALLOW_DIO_CODE @@ -1712,6 +1714,9 @@ static int sg_build_dir(Sg_request * srp, Sg_fd * sfp, int dxfer_len) rem_sz; sclp->page = kp->maplist[k]; sclp->offset = offset; +#ifdef SG_STILL_HAVE_ADDRESS_IN_SCATTERLIST + sclp->address = page_address(kp->maplist[k]) + offset; +#endif sclp->length = num; mem_src_arr[k] = SG_USER_MEM; rem_sz -= num; @@ -1799,6 +1804,9 @@ static int sg_build_indi(Sg_scatter_hold * schp, Sg_fd * sfp, int buff_size) } sclp->page = virt_to_page(p); sclp->offset = (unsigned long)p & ~PAGE_MASK; +#ifdef SG_STILL_HAVE_ADDRESS_IN_SCATTERLIST + sclp->address = p; +#endif sclp->length = ret_sz; mem_src_arr[k] = mem_src; @@ -1959,6 +1967,9 @@ static void sg_remove_scat(Sg_scatter_hold * schp) sg_free(sg_scatg2virt(sclp), sclp->length, mem_src); sclp->page = NULL; sclp->offset = 0; +#ifdef SG_STILL_HAVE_ADDRESS_IN_SCATTERLIST + sclp->address = 0; +#endif sclp->length = 0; } sg_free(schp->buffer, schp->sglist_len, schp->buffer_mem_src); |