# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.541   -> 1.542  
#	drivers/usb/storage/jumpshot.c	1.9     -> 1.10   
#	drivers/usb/storage/datafab.c	1.8     -> 1.9    
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/05/11	greg@kroah.com	1.542
# USB storage drivers
# 
# fix for scsi memory address changes.  Now the datafab and jumpshot drivers build properly.
# --------------------------------------------
#
diff -Nru a/drivers/usb/storage/datafab.c b/drivers/usb/storage/datafab.c
--- a/drivers/usb/storage/datafab.c	Sat May 11 22:29:06 2002
+++ b/drivers/usb/storage/datafab.c	Sat May 11 22:29:06 2002
@@ -265,7 +265,7 @@
 			while (sg_idx < use_sg && transferred < len) {
 				if (len - transferred >= sg[sg_idx].length - current_sg_offset) {
 					US_DEBUGP("datafab_read_data:  adding %d bytes to %d byte sg buffer\n", sg[sg_idx].length - current_sg_offset, sg[sg_idx].length);
-					memcpy(sg[sg_idx].address + current_sg_offset,
+					memcpy(page_address(sg[sg_idx].page) + sg[sg_idx].offset + current_sg_offset,
 					       buffer + transferred,
 					       sg[sg_idx].length - current_sg_offset);
 					transferred += sg[sg_idx].length - current_sg_offset;
@@ -274,7 +274,7 @@
 					++sg_idx;
 				} else {
 					US_DEBUGP("datafab_read_data:  adding %d bytes to %d byte sg buffer\n", len - transferred, sg[sg_idx].length);
-					memcpy(sg[sg_idx].address + current_sg_offset,
+					memcpy(page_address(sg[sg_idx].page) + sg[sg_idx].offset + current_sg_offset,
 					       buffer + transferred,
 					       len - transferred);
 					current_sg_offset += len - transferred;
@@ -356,7 +356,7 @@
 				if (len - transferred >= sg[sg_idx].length - current_sg_offset) {
 					US_DEBUGP("datafab_write_data:  getting %d bytes from %d byte sg buffer\n", sg[sg_idx].length - current_sg_offset, sg[sg_idx].length);
 					memcpy(ptr + transferred,
-					       sg[sg_idx].address + current_sg_offset,
+					       page_address(sg[sg_idx].page) + sg[sg_idx].offset + current_sg_offset,
 					       sg[sg_idx].length - current_sg_offset);
 					transferred += sg[sg_idx].length - current_sg_offset;
 					current_sg_offset = 0;
@@ -365,7 +365,7 @@
 				} else {
 					US_DEBUGP("datafab_write_data:  getting %d bytes from %d byte sg buffer\n", len - transferred, sg[sg_idx].length);
 					memcpy(ptr + transferred,
-					       sg[sg_idx].address + current_sg_offset,
+					       page_address(sg[sg_idx].page) + sg[sg_idx].offset + current_sg_offset,
 					       len - transferred);
 					current_sg_offset += len - transferred;
 					// we only copied part of this sg buffer
diff -Nru a/drivers/usb/storage/jumpshot.c b/drivers/usb/storage/jumpshot.c
--- a/drivers/usb/storage/jumpshot.c	Sat May 11 22:29:06 2002
+++ b/drivers/usb/storage/jumpshot.c	Sat May 11 22:29:06 2002
@@ -341,7 +341,7 @@
                         while (sg_idx < use_sg && transferred < len) {
                                 if (len - transferred >= sg[sg_idx].length - current_sg_offset) {
                                         US_DEBUGP("jumpshot_read_data:  adding %d bytes to %d byte sg buffer\n", sg[sg_idx].length - current_sg_offset, sg[sg_idx].length);
-                                        memcpy(sg[sg_idx].address + current_sg_offset,
+                                        memcpy(page_address(sg[sg_idx].page) + sg[sg_idx].offset + current_sg_offset,
                                                buffer + transferred,
                                                sg[sg_idx].length - current_sg_offset);
                                         transferred += sg[sg_idx].length - current_sg_offset;
@@ -350,7 +350,7 @@
                                         ++sg_idx;
                                 } else {
                                         US_DEBUGP("jumpshot_read_data:  adding %d bytes to %d byte sg buffer\n", len - transferred, sg[sg_idx].length);
-                                        memcpy(sg[sg_idx].address + current_sg_offset,
+                                        memcpy(page_address(sg[sg_idx].page) + sg[sg_idx].offset + current_sg_offset,
                                                buffer + transferred,
                                                len - transferred);
                                         current_sg_offset += len - transferred;
@@ -423,7 +423,7 @@
                                 if (len - transferred >= sg[sg_idx].length - current_sg_offset) {
                                         US_DEBUGP("jumpshot_write_data:  getting %d bytes from %d byte sg buffer\n", sg[sg_idx].length - current_sg_offset, sg[sg_idx].length);
                                         memcpy(ptr + transferred,
-                                               sg[sg_idx].address + current_sg_offset,
+                                               page_address(sg[sg_idx].page) + sg[sg_idx].offset + current_sg_offset,
                                                sg[sg_idx].length - current_sg_offset);
                                         transferred += sg[sg_idx].length - current_sg_offset;
                                         current_sg_offset = 0;
@@ -432,7 +432,7 @@
                                 } else {
                                         US_DEBUGP("jumpshot_write_data:  getting %d bytes from %d byte sg buffer\n", len - transferred, sg[sg_idx].length);
                                         memcpy(ptr + transferred,
-                                               sg[sg_idx].address + current_sg_offset,
+                                               page_address(sg[sg_idx].page) + sg[sg_idx].offset + current_sg_offset,
                                                len - transferred);
                                         current_sg_offset += len - transferred;
                                         // we only copied part of this sg buffer
