Kernel - Restore the 64KB max. IO size limit
authorFrançois Tigeot <ftigeot@wolfpond.org>
Sat, 31 Mar 2012 18:23:56 +0000 (20:23 +0200)
committerFrançois Tigeot <ftigeot@wolfpond.org>
Sat, 31 Mar 2012 18:31:43 +0000 (20:31 +0200)
* Some drivers and part of the kernel are dependent on an implicit
  64KB maximum IO size limit

* Explicitely set it to 64KB (or MAXPHYS if it is smaller) for devices
  which do not report a default value

* This should fix ATA DMA errors reported in issue #2342

sys/vfs/devfs/devfs_vnops.c

index 89bca79..31716ad 100644 (file)
@@ -907,7 +907,8 @@ devfs_spec_open(struct vop_open_args *ap)
         * Make this field valid before any I/O in ->d_open
         */
        if (!dev->si_iosize_max)
-               dev->si_iosize_max = MAXPHYS;
+               /* XXX: old DFLTPHYS == 64KB dependency */
+               dev->si_iosize_max = min(MAXPHYS,64*1024);
 
        if (dev_dflags(dev) & D_TTY)
                vsetflags(vp, VISTTY);