|  | @@ -893,11 +893,21 @@ void scsiDiskPoll()
 | 
	
		
			
				|  |  |                  // use sg_dd from sg_utils3 tools to test.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  uint32_t rem = totalSDSectors - i;
 | 
	
		
			
				|  |  | -                uint32_t sectors = rem < maxSectors ? rem : maxSectors;
 | 
	
		
			
				|  |  | +                uint32_t sectors;
 | 
	
		
			
				|  |  | +                if (rem <= maxSectors)
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    sectors = rem;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                else
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    sectors = maxSectors;
 | 
	
		
			
				|  |  | +                    while (sectors % sdPerScsi) sectors--;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  if (useSlowDataCount)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  | -                    scsiSetDataCount(sectors * bytesPerSector);
 | 
	
		
			
				|  |  | +                    scsiSetDataCount((sectors / sdPerScsi) * bytesPerSector);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  for (int scsiSector = i; scsiSector < i + sectors; ++scsiSector)
 |