On 13.12.2012, at 12:13, Christian Borntraeger wrote:
> On 13/12/12 12:06, Alexander Graf wrote:
>>
>> On 12.12.2012, at 21:12, Christian Borntraeger wrote:
>>
>>> On 12/12/12 19:31, Alexander Graf wrote:
>>> +static inline long do_kvm_notify(struct subchannel_id schid,
>>>>> + unsigned long queue_index)
>>>>> +{
>>>>> + register unsigned long __nr asm("1") = KVM_S390_VIRTIO_CCW_NOTIFY;
>>>>> + register struct subchannel_id __schid asm("2") = schid;
>>>>
>>>> How does the compiler know that the struct fits within a register?
>>>>
>>>
>>> Well it knows that sizeof struct subchannel_id is 4.
>>
>> How so? The asm/ccwdev.h header simply says
>>
>> struct subchannel_id;
>
> see original patch:
>
>>>> +#include <asm/cio.h>
>>>> +#include <asm/ccwdev.h>
>>>> +#include <asm/schid.h>
>>>> +
>>>> +/*
>>>> + * virtio related functions
>>>> + */
>>>> +
>
> asm/schid.h includes uapi/asm/schid.h and that contains the definition.
My point is that the asm/schid.h include should be in asm/ccwdev.h then, not in
virtio_ccw.c. Because semantically you are creating a dependency due to the new
function that returns a struct schid.
Alex
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html