On 29 August 2014 11:26, Stefan Fritsch <s...@sfritsch.de> wrote: > On Fri, 29 Aug 2014, Miod Vallat wrote: >> > sc->sc_xfer_max is computed according to the host's capabilities. What I >> > want to simulate with this diff is a host adapter that can only cope with >> > transfers < 64k == MAXPHYS. >> >> Back to your original problem, you might want to print the sc_link >> struct as well the scsi_adapter struct it points to, when you detect a >> transfer larger than MAXPHYS. It has likely been overriden or reset to >> NULL by mistake at some point. > > OK, I will try that. Will take a bit until I have time, though. > > But I have also read the code and I could not find a place in the path > from bread() to the scsi adapter cmd function where the minphys function > is called. >
correct me if i'm wrong, but what happens is that bread being a block read reads up to MAXBSIZE which is conveniently set to 64k and you can't create a filesystem with a larger block size. physio (raw device io) however doesn't go through bread and need to know how split the provided buffer in separate transactions hence minphys.