Right, but if you hand that malloc() pointer to any BIOS int calls, it's highly likely it won't work right. :)
-a On 20 May 2016 at 08:00, Allan Jude <allanj...@freebsd.org> wrote: > On 2016-05-20 10:48, John Baldwin wrote: >> On Friday, May 20, 2016 01:41:47 AM Allan Jude wrote: >>> Author: allanjude >>> Date: Fri May 20 01:41:47 2016 >>> New Revision: 300257 >>> URL: https://svnweb.freebsd.org/changeset/base/300257 >>> >>> Log: >>> Fixup the geliboot sector rounding code >>> >>> Replace all rounding with the round{up,down}2 macros >>> a missing set of braces caused the previous code to be incorrect >>> >>> replace alloca() with malloc() because alloca() can return an allocation >>> that is actually invalid, causing boot to fail >> >> No, you have to revert the malloc! malloc() can be anywhere. The alloca >> is _on purpose_ to get a bufer below 1MB so that it will work with all >> devices. Some BIOSes can only store data in the first 1MB. >> > > to be clear, the alloca() was something I added, not something that was > there before. And it was breaking, because ZFS was trying to allocate > too large a block of memory, that wouldn't fit below 1MB. > > -- > Allan Jude > _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"