Hi, I did it in slightly different way. If memlimit given by the driver fits in 32 bits then set GFP_DMA32. Otherwise allow full 64 bit range. This change is now in the hg.
Best regards, Hannu ------ Yair K. wrote: > On Monday, 8 בDecember 2008 21:57:38 Hannu Savolainen wrote: > >> Yair K. wrote: >> >>> On Saturday, 6 ?December 2008 22:33:19 Hannu Savolainen wrote: >>> >>>> Yair K. wrote: >>>> >>>>> On Saturday, 6 ?December 2008 16:23:21 Hannu Savolainen wrote: >>>>> >>>>>> Hi all, >>>>>> >>>>>> It appeared to be a good time to release the first OSS v4.1 build 1050 >>>>>> (AKA the ID6 version). This version is now available both from the hg >>>>>> server and the stable directory of the source code download server. >>>>>> >>>>> It would be nice if you can examine the attached patch. Main difference >>>>> is adding MEMLIMIT_31BITS to envy24ht and oss_sblive/Audigy cases. Some >>>>> posts at the forum suggest it may be necessary: >>>>> http://www.4front-tech.com/forum/viewtopic.php?t=2961 >>>>> http://www.4front-tech.com/forum/viewtopic.php?t=2963 >>>>> >>>> Envy24ht supports full 32 bit PCI address range. This has been verified >>>> under Solaris/x86 where system RAM is mapped to the top of the PCI >>>> address space. Using MEMLIMIT_31BITS will break envy24ht under Sparc so >>>> it's not possible to do this change. >>>> >>> How about reverting rev. 399 for osscore.c[1], since that caused all >>> these issues? See attached diff (which also adds the vmix_no_autoattach >>> parameter to FreeBSD osscore.c, allows alternative txt2man on Linux, and >>> adds overwrite checking to ossrecord). >>> >> Change 399 is correct. Before it drivers that support full 32 bit PCI >> DMA failed to allocate memory if all low memory was already allocated. >> >> If some devices have problems with full 4G of RAM then those drivers >> need to be fixed instead. However it's possible that OSS uses some >> obsolete memory allocation method under Linux and this causes problems. >> >> > > Well, per > http://fxr.watson.org/fxr/source/arch/x86/kernel/pci-dma_64.c?v=linux-2.6#L94 > using "<=" is fine in some cases on x86_64... > How about the attached diff then? It should follow the same lines as the > linked code. (All the reports I've seen of this issue are on x86_64 anyway). > > Yours, > Yair K. > > ------------------------------------------------------------------------ > > _______________________________________________ > oss-devel mailing list > oss-devel@mailman.opensound.com > http://mailman.opensound.com/mailman/listinfo/oss-devel _______________________________________________ oss-devel mailing list oss-devel@mailman.opensound.com http://mailman.opensound.com/mailman/listinfo/oss-devel