diff options
Diffstat (limited to 'drivers/scsi/scsi_debug.c')
-rw-r--r-- | drivers/scsi/scsi_debug.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c index 0a537a0515ca..d51bddde5b1f 100644 --- a/drivers/scsi/scsi_debug.c +++ b/drivers/scsi/scsi_debug.c | |||
@@ -1899,7 +1899,7 @@ static int prot_verify_write(struct scsi_cmnd *SCpnt, sector_t start_sec, | |||
1899 | daddr = kmap_atomic(sg_page(dsgl)) + dsgl->offset; | 1899 | daddr = kmap_atomic(sg_page(dsgl)) + dsgl->offset; |
1900 | 1900 | ||
1901 | /* For each sector-sized chunk in data page */ | 1901 | /* For each sector-sized chunk in data page */ |
1902 | for (j = 0 ; j < dsgl->length ; j += scsi_debug_sector_size) { | 1902 | for (j = 0; j < dsgl->length; j += scsi_debug_sector_size) { |
1903 | 1903 | ||
1904 | /* If we're at the end of the current | 1904 | /* If we're at the end of the current |
1905 | * protection page advance to the next one | 1905 | * protection page advance to the next one |
@@ -1917,11 +1917,11 @@ static int prot_verify_write(struct scsi_cmnd *SCpnt, sector_t start_sec, | |||
1917 | 1917 | ||
1918 | switch (scsi_debug_guard) { | 1918 | switch (scsi_debug_guard) { |
1919 | case 1: | 1919 | case 1: |
1920 | csum = ip_compute_csum(daddr, | 1920 | csum = ip_compute_csum(daddr + j, |
1921 | scsi_debug_sector_size); | 1921 | scsi_debug_sector_size); |
1922 | break; | 1922 | break; |
1923 | case 0: | 1923 | case 0: |
1924 | csum = cpu_to_be16(crc_t10dif(daddr, | 1924 | csum = cpu_to_be16(crc_t10dif(daddr + j, |
1925 | scsi_debug_sector_size)); | 1925 | scsi_debug_sector_size)); |
1926 | break; | 1926 | break; |
1927 | default: | 1927 | default: |
@@ -1938,7 +1938,7 @@ static int prot_verify_write(struct scsi_cmnd *SCpnt, sector_t start_sec, | |||
1938 | be16_to_cpu(sdt->guard_tag), | 1938 | be16_to_cpu(sdt->guard_tag), |
1939 | be16_to_cpu(csum)); | 1939 | be16_to_cpu(csum)); |
1940 | ret = 0x01; | 1940 | ret = 0x01; |
1941 | dump_sector(daddr, scsi_debug_sector_size); | 1941 | dump_sector(daddr + j, scsi_debug_sector_size); |
1942 | goto out; | 1942 | goto out; |
1943 | } | 1943 | } |
1944 | 1944 | ||
@@ -1949,7 +1949,7 @@ static int prot_verify_write(struct scsi_cmnd *SCpnt, sector_t start_sec, | |||
1949 | "%s: REF check failed on sector %lu\n", | 1949 | "%s: REF check failed on sector %lu\n", |
1950 | __func__, (unsigned long)sector); | 1950 | __func__, (unsigned long)sector); |
1951 | ret = 0x03; | 1951 | ret = 0x03; |
1952 | dump_sector(daddr, scsi_debug_sector_size); | 1952 | dump_sector(daddr + j, scsi_debug_sector_size); |
1953 | goto out; | 1953 | goto out; |
1954 | } | 1954 | } |
1955 | 1955 | ||
@@ -1959,7 +1959,7 @@ static int prot_verify_write(struct scsi_cmnd *SCpnt, sector_t start_sec, | |||
1959 | "%s: REF check failed on sector %lu\n", | 1959 | "%s: REF check failed on sector %lu\n", |
1960 | __func__, (unsigned long)sector); | 1960 | __func__, (unsigned long)sector); |
1961 | ret = 0x03; | 1961 | ret = 0x03; |
1962 | dump_sector(daddr, scsi_debug_sector_size); | 1962 | dump_sector(daddr + j, scsi_debug_sector_size); |
1963 | goto out; | 1963 | goto out; |
1964 | } | 1964 | } |
1965 | 1965 | ||
@@ -1977,7 +1977,6 @@ static int prot_verify_write(struct scsi_cmnd *SCpnt, sector_t start_sec, | |||
1977 | 1977 | ||
1978 | start_sec++; | 1978 | start_sec++; |
1979 | ei_lba++; | 1979 | ei_lba++; |
1980 | daddr += scsi_debug_sector_size; | ||
1981 | ppage_offset += sizeof(struct sd_dif_tuple); | 1980 | ppage_offset += sizeof(struct sd_dif_tuple); |
1982 | } | 1981 | } |
1983 | 1982 | ||