On 10/02/2013 04:33 AM, Michael Mueller wrote: > +/* set a specific bit in facility set */ > +static void set_facility(unsigned int nr, void *facilities) > +{ > + unsigned char *ptr; > + > + if (nr >= MAX_S390_FACILITY_BIT) { > + return; > + } > + ptr = (unsigned char *) facilities + (nr >> 3); > + *ptr |= (0x80 >> (nr & 7)); > +}
I'd like to see this done in a host endian independent way. See my recent patch set to add facility support to the tcg side of target-s390, with which this patch set is going to conflict. Is there a good reason not to compute these facility masks at compile-time? See http://patchwork.ozlabs.org/patch/279534/ where I have pre-computed (possibly incomplete) facilities lists for the major cpu revisions. It just seems like your facility_availability array is the wrong way to go about things, taking up more memory and startup time than necessary. r~