> Your problem is that you are using allocb() and when the requested size > is < FASTBUF, LiS (ala SVR 4.2 streams) uses a data buffer internal to > the combined message/data block structure.
Brian, Interestingly enough it is other way around. At least in my case. Since I compiled with the latest LiS the allochdr() defined there as lis_kmem_cache_allochdr() and is 8-bytes aligned. The data buffer offset inside this msg for cases len < FASTBUF turned out to be also 8-bytes aligned. Here is a printout from driver: len 53 mp dc252ca0 mp->b_wptr dc252ce0 mp->b_rptr dc252ce0 mp->b_datap->db_base dc252ce0 db_base is 0x40 bytes(header size) below mp. I.e. for small buffers everything is 8-bytes aligned. For sizes > 128 len 282 mp dc252f20 mp->b_wptr d9c66958 mp->b_rptr d9c66834 mp->b_datap->db_base d9c66834 it can be seen that db_base is allocated in separate area from mp header. and it is 4-bytes aligned. Puzzle. I know I'm missing something. The allocdb uses kmalloc() for data block allocations, so as you said it must be 32-bytes aligned. Are you sure it is always 32-bytes? thanks, -- Eugene __________________________________________________________________ New! Unlimited Netscape Internet Service. Only $9.95 a month -- Sign up today at http://isp.netscape.com/register Act now to get a personalized email address! Netscape. Just the Net You Need. _______________________________________________ Linux-streams mailing list [EMAIL PROTECTED] http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams