Re: [PATCH v1 1/1] KVM: s390: Don't cast parameter in bit operations

Yury Norov
2022-03-02T18:43:59Z

On Wed, Mar 02, 2022 at 07:31:58PM +0200, Andy Shevchenko wrote:
> On Wed, Mar 02, 2022 at 09:18:35AM -0800, Yury Norov wrote:
> > On Wed, Mar 02, 2022 at 05:44:03PM +0200, Andy Shevchenko wrote:
> > > On Thu, Feb 24, 2022 at 01:10:34PM +0100, Michael Mueller wrote:
> > > > On 24.02.22 12:36, Claudio Imbrenda wrote:
> > >
> > > ...
> > >
> > > > we do that at several places
> > >
> > > Thanks for pointing out.
> > >
> > > > arch/s390/kernel/processor.c: for_each_set_bit_inv(bit, (long
> > > > *)&stfle_fac_list, MAX_FACILITY_BIT)
> > >
> > > This one requires a separate change, not related to this patch.
> > >
> > > > arch/s390/kvm/interrupt.c: set_bit_inv(IPM_BIT_OFFSET + gisc, (unsigned long
> > > > *) gisa);
> > >
> > > This is done in the patch. Not sure how it appears in your list.
> > >
> > > > arch/s390/kvm/kvm-s390.c: set_bit_inv(vcpu->vcpu_id, (unsigned long *)
> > > > sca->mcn);
> > > > arch/s390/kvm/kvm-s390.c: set_bit_inv(vcpu->vcpu_id, (unsigned long *)
> > > > &sca->mcn);
> > >
> > > These two should be fixed in a separate change.
> > >
> > > Also this kind of stuff:
> > >
> > > bitmap_copy(kvm->arch.cpu_feat, (unsigned long *) data.feat,
> > > KVM_S390_VM_CPU_FEAT_NR_BITS);
> > >
> > > might require a new API like
> > >
> > > bitmap_from_u64_array()
> > > bitmap_to_u64_array()
> > >
> > > Yury?
> >
> > If BE32 is still the case then yes.
>
> The whole point is to get rid of the bad pattern, while it may still work
> in the particular case.

Then yes unconditionally. Is it already on table of s390 folks? If no,
I can do it myself.

We have bitmap_from_arr32 and bitmap_to_arr32, so for 64-bit versions,
we'd start from that.