Patchwork [PULL,00/15] s390 patch queue 2013-01-25

login
register
mail settings
Submitter Cornelia Huck
Date Jan. 28, 2013, 4:06 p.m.
Message ID <20130128170621.0548a953@gondolin>
Download mbox | patch
Permalink /patch/216236/
State New
Headers show

Comments

Cornelia Huck - Jan. 28, 2013, 4:06 p.m.
On Sat, 26 Jan 2013 14:17:36 +0000
Blue Swirl <blauwirbel@gmail.com> wrote:

> On Fri, Jan 25, 2013 at 12:48 PM, Alexander Graf <agraf@suse.de> wrote:
> > Hi Blue / Aurelien,
> >
> > This is my current patch queue for s390.  Please pull.
> >
> > Alex
> >
> >
> > The following changes since commit 11c29918be32be5b00f367c7da9724a5cddbbb0f:
> >   Anthony Liguori (1):
> >         Merge remote-tracking branch 'bonzini/scsi-next' into staging
> >
> > are available in the git repository at:
> >
> >   git://repo.or.cz/qemu/agraf.git s390-for-upstream
> >
> > Alexander Graf (3):
> >       s390: Add default support for SCLP console
> >       s390: Make typeinfo const
> >       s390: Move hw files to hw/s390x
> >
> > Andreas Färber (1):
> >       s390-virtio: Check for NULL device in reset hypercall
> >
> > Cornelia Huck (10):
> >       s390: Lowcore mapping helper.
> >       s390: Add mapping helper functions.
> >       s390: Channel I/O basic definitions.
> >       s390: I/O interrupt and machine check injection.
> >       s390: Add channel I/O instructions.
> >       s390: Virtual channel subsystem support.
> 
> This would break build on mingw32:
>   CC    s390x-softmmu/hw/s390x/css.o
> /src/qemu/hw/s390x/css.c: In function 'css_interpret_ccw':
> /src/qemu/hw/s390x/css.c:226:17: error: 'ERESTART' undeclared (first
> use in this function)
> /src/qemu/hw/s390x/css.c:226:17: note: each undeclared identifier is
> reported only once for each function it appears in
> /src/qemu/hw/s390x/css.c:294:20: error: 'EOPNOTSUPP' undeclared (first
> use in this function)
> /src/qemu/hw/s390x/css.c: In function 'sch_handle_start_func':
> /src/qemu/hw/s390x/css.c:350:15: error: 'EOPNOTSUPP' undeclared (first
> use in this function)
> /src/qemu/hw/s390x/css.c:375:15: error: 'ERESTART' undeclared (first
> use in this function)

The following patch might help for now, as those error codes already
seem to be used in generic code.

From a32da08a8474aa6fde65d7bc1616b42dce9d7252 Mon Sep 17 00:00:00 2001
From: Cornelia Huck <cornelia.huck@de.ibm.com>
Date: Mon, 28 Jan 2013 17:01:30 +0100
Subject: [PATCH] s390: css error codes.

Changed error codes in the channel subsystem / virtio-ccw code
(-EOPNOTSUPP -> -ENOSYS, -ERESTART -> -EINPROGRESS).

This should hopefully fix building on mingw32.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
 hw/s390x/css.c        |    8 ++++----
 hw/s390x/virtio-ccw.c |    2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)
Stefan Weil - Jan. 28, 2013, 5:08 p.m.
Am 28.01.2013 17:06, schrieb Cornelia Huck:
> On Sat, 26 Jan 2013 14:17:36 +0000
> Blue Swirl <blauwirbel@gmail.com> wrote:
>
>> On Fri, Jan 25, 2013 at 12:48 PM, Alexander Graf <agraf@suse.de> wrote:
>>> Hi Blue / Aurelien,
>>>
>>> This is my current patch queue for s390.  Please pull.
>>>
>>> Alex
>>>
>>>
>>> The following changes since commit 11c29918be32be5b00f367c7da9724a5cddbbb0f:
>>>   Anthony Liguori (1):
>>>         Merge remote-tracking branch 'bonzini/scsi-next' into staging
>>>
>>> are available in the git repository at:
>>>
>>>   git://repo.or.cz/qemu/agraf.git s390-for-upstream
>>>
>>> Alexander Graf (3):
>>>       s390: Add default support for SCLP console
>>>       s390: Make typeinfo const
>>>       s390: Move hw files to hw/s390x
>>>
>>> Andreas Färber (1):
>>>       s390-virtio: Check for NULL device in reset hypercall
>>>
>>> Cornelia Huck (10):
>>>       s390: Lowcore mapping helper.
>>>       s390: Add mapping helper functions.
>>>       s390: Channel I/O basic definitions.
>>>       s390: I/O interrupt and machine check injection.
>>>       s390: Add channel I/O instructions.
>>>       s390: Virtual channel subsystem support.
>> This would break build on mingw32:
>>   CC    s390x-softmmu/hw/s390x/css.o
>> /src/qemu/hw/s390x/css.c: In function 'css_interpret_ccw':
>> /src/qemu/hw/s390x/css.c:226:17: error: 'ERESTART' undeclared (first
>> use in this function)
>> /src/qemu/hw/s390x/css.c:226:17: note: each undeclared identifier is
>> reported only once for each function it appears in
>> /src/qemu/hw/s390x/css.c:294:20: error: 'EOPNOTSUPP' undeclared (first
>> use in this function)
>> /src/qemu/hw/s390x/css.c: In function 'sch_handle_start_func':
>> /src/qemu/hw/s390x/css.c:350:15: error: 'EOPNOTSUPP' undeclared (first
>> use in this function)
>> /src/qemu/hw/s390x/css.c:375:15: error: 'ERESTART' undeclared (first
>> use in this function)
> The following patch might help for now, as those error codes already
> seem to be used in generic code.
>
> From a32da08a8474aa6fde65d7bc1616b42dce9d7252 Mon Sep 17 00:00:00 2001
> From: Cornelia Huck <cornelia.huck@de.ibm.com>
> Date: Mon, 28 Jan 2013 17:01:30 +0100
> Subject: [PATCH] s390: css error codes.
>
> Changed error codes in the channel subsystem / virtio-ccw code
> (-EOPNOTSUPP -> -ENOSYS, -ERESTART -> -EINPROGRESS).
>
> This should hopefully fix building on mingw32.
>
> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
> ---
>  hw/s390x/css.c        |    8 ++++----
>  hw/s390x/virtio-ccw.c |    2 +-
>  2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/hw/s390x/css.c b/hw/s390x/css.c
> index 84efd4a..3244201 100644
> --- a/hw/s390x/css.c
> +++ b/hw/s390x/css.c
> @@ -223,7 +223,7 @@ static int css_interpret_ccw(SubchDev *sch, hwaddr ccw_addr)
>      }
>  
>      if (ccw.flags & CCW_FLAG_SUSPEND) {
> -        return -ERESTART;
> +        return -EINPROGRESS;
>      }
>  
>      check_len = !((ccw.flags & CCW_FLAG_SLI) && !(ccw.flags & CCW_FLAG_DC));
> @@ -291,7 +291,7 @@ static int css_interpret_ccw(SubchDev *sch, hwaddr ccw_addr)
>              /* Handle device specific commands. */
>              ret = sch->ccw_cb(sch, ccw);
>          } else {
> -            ret = -EOPNOTSUPP;
> +            ret = -ENOSYS;
>          }
>          break;
>      }
> @@ -347,7 +347,7 @@ static void sch_handle_start_func(SubchDev *sch)
>                      SCSW_STCTL_STATUS_PEND;
>              s->dstat = SCSW_DSTAT_CHANNEL_END | SCSW_DSTAT_DEVICE_END;
>              break;
> -        case -EOPNOTSUPP:
> +        case -ENOSYS:
>              /* unsupported command, generate unit check (command reject) */
>              s->ctrl &= ~SCSW_ACTL_START_PEND;
>              s->dstat = SCSW_DSTAT_UNIT_CHECK;
> @@ -372,7 +372,7 @@ static void sch_handle_start_func(SubchDev *sch)
>              s->ctrl &= ~SCSW_CTRL_MASK_STCTL;
>              s->ctrl |= SCSW_STCTL_ALERT | SCSW_STCTL_STATUS_PEND;
>              break;
> -        case -ERESTART:
> +        case -EINPROGRESS:
>              /* channel program has been suspended */
>              s->ctrl &= ~SCSW_ACTL_START_PEND;
>              s->ctrl |= SCSW_ACTL_SUSP;
> diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
> index 8c9b745..7d7f336 100644
> --- a/hw/s390x/virtio-ccw.c
> +++ b/hw/s390x/virtio-ccw.c
> @@ -384,7 +384,7 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
>          }
>          break;
>      default:
> -        ret = -EOPNOTSUPP;
> +        ret = -ENOSYS;
>          break;
>      }
>      return ret;

ENOSYS is available for MinGW, but EINPROGRESS isn't.

Here is a copy of MinGW's errno.h with all available values for errno:

http://gitorious.org/mingw/mingw-runtime/blobs/752105f6b9df42a806fd4c310757e7782b9f9a9c/include/errno.h

You can either choose a supported value, or you can add a
new definition to qemu-common.h (like it was done for
ENOMEDIUM, ENOTSUP and others).Note that you won't get
a valid error string with strerror for any new definition.

Regards

Stefan W.
Cornelia Huck - Jan. 28, 2013, 5:34 p.m.
On Mon, 28 Jan 2013 18:08:10 +0100
Stefan Weil <sw@weilnetz.de> wrote:

> Am 28.01.2013 17:06, schrieb Cornelia Huck:
> > On Sat, 26 Jan 2013 14:17:36 +0000
> > Blue Swirl <blauwirbel@gmail.com> wrote:
> >
> >> On Fri, Jan 25, 2013 at 12:48 PM, Alexander Graf <agraf@suse.de> wrote:
> >>> Hi Blue / Aurelien,
> >>>
> >>> This is my current patch queue for s390.  Please pull.
> >>>
> >>> Alex
> >>>
> >>>
> >>> The following changes since commit 11c29918be32be5b00f367c7da9724a5cddbbb0f:
> >>>   Anthony Liguori (1):
> >>>         Merge remote-tracking branch 'bonzini/scsi-next' into staging
> >>>
> >>> are available in the git repository at:
> >>>
> >>>   git://repo.or.cz/qemu/agraf.git s390-for-upstream
> >>>
> >>> Alexander Graf (3):
> >>>       s390: Add default support for SCLP console
> >>>       s390: Make typeinfo const
> >>>       s390: Move hw files to hw/s390x
> >>>
> >>> Andreas Färber (1):
> >>>       s390-virtio: Check for NULL device in reset hypercall
> >>>
> >>> Cornelia Huck (10):
> >>>       s390: Lowcore mapping helper.
> >>>       s390: Add mapping helper functions.
> >>>       s390: Channel I/O basic definitions.
> >>>       s390: I/O interrupt and machine check injection.
> >>>       s390: Add channel I/O instructions.
> >>>       s390: Virtual channel subsystem support.
> >> This would break build on mingw32:
> >>   CC    s390x-softmmu/hw/s390x/css.o
> >> /src/qemu/hw/s390x/css.c: In function 'css_interpret_ccw':
> >> /src/qemu/hw/s390x/css.c:226:17: error: 'ERESTART' undeclared (first
> >> use in this function)
> >> /src/qemu/hw/s390x/css.c:226:17: note: each undeclared identifier is
> >> reported only once for each function it appears in
> >> /src/qemu/hw/s390x/css.c:294:20: error: 'EOPNOTSUPP' undeclared (first
> >> use in this function)
> >> /src/qemu/hw/s390x/css.c: In function 'sch_handle_start_func':
> >> /src/qemu/hw/s390x/css.c:350:15: error: 'EOPNOTSUPP' undeclared (first
> >> use in this function)
> >> /src/qemu/hw/s390x/css.c:375:15: error: 'ERESTART' undeclared (first
> >> use in this function)
> > The following patch might help for now, as those error codes already
> > seem to be used in generic code.
> >
> > From a32da08a8474aa6fde65d7bc1616b42dce9d7252 Mon Sep 17 00:00:00 2001
> > From: Cornelia Huck <cornelia.huck@de.ibm.com>
> > Date: Mon, 28 Jan 2013 17:01:30 +0100
> > Subject: [PATCH] s390: css error codes.
> >
> > Changed error codes in the channel subsystem / virtio-ccw code
> > (-EOPNOTSUPP -> -ENOSYS, -ERESTART -> -EINPROGRESS).
> >
> > This should hopefully fix building on mingw32.
> >
> > Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
> > ---
> >  hw/s390x/css.c        |    8 ++++----
> >  hw/s390x/virtio-ccw.c |    2 +-
> >  2 files changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/hw/s390x/css.c b/hw/s390x/css.c
> > index 84efd4a..3244201 100644
> > --- a/hw/s390x/css.c
> > +++ b/hw/s390x/css.c
> > @@ -223,7 +223,7 @@ static int css_interpret_ccw(SubchDev *sch, hwaddr ccw_addr)
> >      }
> >  
> >      if (ccw.flags & CCW_FLAG_SUSPEND) {
> > -        return -ERESTART;
> > +        return -EINPROGRESS;
> >      }
> >  
> >      check_len = !((ccw.flags & CCW_FLAG_SLI) && !(ccw.flags & CCW_FLAG_DC));
> > @@ -291,7 +291,7 @@ static int css_interpret_ccw(SubchDev *sch, hwaddr ccw_addr)
> >              /* Handle device specific commands. */
> >              ret = sch->ccw_cb(sch, ccw);
> >          } else {
> > -            ret = -EOPNOTSUPP;
> > +            ret = -ENOSYS;
> >          }
> >          break;
> >      }
> > @@ -347,7 +347,7 @@ static void sch_handle_start_func(SubchDev *sch)
> >                      SCSW_STCTL_STATUS_PEND;
> >              s->dstat = SCSW_DSTAT_CHANNEL_END | SCSW_DSTAT_DEVICE_END;
> >              break;
> > -        case -EOPNOTSUPP:
> > +        case -ENOSYS:
> >              /* unsupported command, generate unit check (command reject) */
> >              s->ctrl &= ~SCSW_ACTL_START_PEND;
> >              s->dstat = SCSW_DSTAT_UNIT_CHECK;
> > @@ -372,7 +372,7 @@ static void sch_handle_start_func(SubchDev *sch)
> >              s->ctrl &= ~SCSW_CTRL_MASK_STCTL;
> >              s->ctrl |= SCSW_STCTL_ALERT | SCSW_STCTL_STATUS_PEND;
> >              break;
> > -        case -ERESTART:
> > +        case -EINPROGRESS:
> >              /* channel program has been suspended */
> >              s->ctrl &= ~SCSW_ACTL_START_PEND;
> >              s->ctrl |= SCSW_ACTL_SUSP;
> > diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
> > index 8c9b745..7d7f336 100644
> > --- a/hw/s390x/virtio-ccw.c
> > +++ b/hw/s390x/virtio-ccw.c
> > @@ -384,7 +384,7 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
> >          }
> >          break;
> >      default:
> > -        ret = -EOPNOTSUPP;
> > +        ret = -ENOSYS;
> >          break;
> >      }
> >      return ret;
> 
> ENOSYS is available for MinGW, but EINPROGRESS isn't.
> 
> Here is a copy of MinGW's errno.h with all available values for errno:
> 
> http://gitorious.org/mingw/mingw-runtime/blobs/752105f6b9df42a806fd4c310757e7782b9f9a9c/include/errno.h
> 
> You can either choose a supported value, or you can add a
> new definition to qemu-common.h (like it was done for
> ENOMEDIUM, ENOTSUP and others).Note that you won't get
> a valid error string with strerror for any new definition.

There's really nothing that matches what I want in there, so it would
need to be a new definition.

I see -EINPROGRESS being used in various parts of the tree, however,
and sysemu/os_win32.h contains a #define. Isn't that enough, or am I
misunderstanding?

> 
> Regards
> 
> Stefan W.
>
Stefan Weil - Jan. 28, 2013, 5:45 p.m.
Am 28.01.2013 18:34, schrieb Cornelia Huck:
> On Mon, 28 Jan 2013 18:08:10 +0100
> Stefan Weil <sw@weilnetz.de> wrote:
>
>> Am 28.01.2013 17:06, schrieb Cornelia Huck:
>>> On Sat, 26 Jan 2013 14:17:36 +0000
>>> Blue Swirl <blauwirbel@gmail.com> wrote:
>>>
>>>> On Fri, Jan 25, 2013 at 12:48 PM, Alexander Graf <agraf@suse.de> wrote:
>>>>> Hi Blue / Aurelien,
>>>>>
>>>>> This is my current patch queue for s390.  Please pull.
>>>>>
>>>>> Alex
>>>>>
>>>>>
>>>>> The following changes since commit 11c29918be32be5b00f367c7da9724a5cddbbb0f:
>>>>>   Anthony Liguori (1):
>>>>>         Merge remote-tracking branch 'bonzini/scsi-next' into staging
>>>>>
>>>>> are available in the git repository at:
>>>>>
>>>>>   git://repo.or.cz/qemu/agraf.git s390-for-upstream
>>>>>
>>>>> Alexander Graf (3):
>>>>>       s390: Add default support for SCLP console
>>>>>       s390: Make typeinfo const
>>>>>       s390: Move hw files to hw/s390x
>>>>>
>>>>> Andreas Färber (1):
>>>>>       s390-virtio: Check for NULL device in reset hypercall
>>>>>
>>>>> Cornelia Huck (10):
>>>>>       s390: Lowcore mapping helper.
>>>>>       s390: Add mapping helper functions.
>>>>>       s390: Channel I/O basic definitions.
>>>>>       s390: I/O interrupt and machine check injection.
>>>>>       s390: Add channel I/O instructions.
>>>>>       s390: Virtual channel subsystem support.
>>>> This would break build on mingw32:
>>>>   CC    s390x-softmmu/hw/s390x/css.o
>>>> /src/qemu/hw/s390x/css.c: In function 'css_interpret_ccw':
>>>> /src/qemu/hw/s390x/css.c:226:17: error: 'ERESTART' undeclared (first
>>>> use in this function)
>>>> /src/qemu/hw/s390x/css.c:226:17: note: each undeclared identifier is
>>>> reported only once for each function it appears in
>>>> /src/qemu/hw/s390x/css.c:294:20: error: 'EOPNOTSUPP' undeclared (first
>>>> use in this function)
>>>> /src/qemu/hw/s390x/css.c: In function 'sch_handle_start_func':
>>>> /src/qemu/hw/s390x/css.c:350:15: error: 'EOPNOTSUPP' undeclared (first
>>>> use in this function)
>>>> /src/qemu/hw/s390x/css.c:375:15: error: 'ERESTART' undeclared (first
>>>> use in this function)
>>> The following patch might help for now, as those error codes already
>>> seem to be used in generic code.
>>>
>>> From a32da08a8474aa6fde65d7bc1616b42dce9d7252 Mon Sep 17 00:00:00 2001
>>> From: Cornelia Huck <cornelia.huck@de.ibm.com>
>>> Date: Mon, 28 Jan 2013 17:01:30 +0100
>>> Subject: [PATCH] s390: css error codes.
>>>
>>> Changed error codes in the channel subsystem / virtio-ccw code
>>> (-EOPNOTSUPP -> -ENOSYS, -ERESTART -> -EINPROGRESS).
>>>
>>> This should hopefully fix building on mingw32.
>>>
>>> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
>>> ---
>>>  hw/s390x/css.c        |    8 ++++----
>>>  hw/s390x/virtio-ccw.c |    2 +-
>>>  2 files changed, 5 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/hw/s390x/css.c b/hw/s390x/css.c
>>> index 84efd4a..3244201 100644
>>> --- a/hw/s390x/css.c
>>> +++ b/hw/s390x/css.c
>>> @@ -223,7 +223,7 @@ static int css_interpret_ccw(SubchDev *sch, hwaddr ccw_addr)
>>>      }
>>>  
>>>      if (ccw.flags & CCW_FLAG_SUSPEND) {
>>> -        return -ERESTART;
>>> +        return -EINPROGRESS;
>>>      }
>>>  
>>>      check_len = !((ccw.flags & CCW_FLAG_SLI) && !(ccw.flags & CCW_FLAG_DC));
>>> @@ -291,7 +291,7 @@ static int css_interpret_ccw(SubchDev *sch, hwaddr ccw_addr)
>>>              /* Handle device specific commands. */
>>>              ret = sch->ccw_cb(sch, ccw);
>>>          } else {
>>> -            ret = -EOPNOTSUPP;
>>> +            ret = -ENOSYS;
>>>          }
>>>          break;
>>>      }
>>> @@ -347,7 +347,7 @@ static void sch_handle_start_func(SubchDev *sch)
>>>                      SCSW_STCTL_STATUS_PEND;
>>>              s->dstat = SCSW_DSTAT_CHANNEL_END | SCSW_DSTAT_DEVICE_END;
>>>              break;
>>> -        case -EOPNOTSUPP:
>>> +        case -ENOSYS:
>>>              /* unsupported command, generate unit check (command reject) */
>>>              s->ctrl &= ~SCSW_ACTL_START_PEND;
>>>              s->dstat = SCSW_DSTAT_UNIT_CHECK;
>>> @@ -372,7 +372,7 @@ static void sch_handle_start_func(SubchDev *sch)
>>>              s->ctrl &= ~SCSW_CTRL_MASK_STCTL;
>>>              s->ctrl |= SCSW_STCTL_ALERT | SCSW_STCTL_STATUS_PEND;
>>>              break;
>>> -        case -ERESTART:
>>> +        case -EINPROGRESS:
>>>              /* channel program has been suspended */
>>>              s->ctrl &= ~SCSW_ACTL_START_PEND;
>>>              s->ctrl |= SCSW_ACTL_SUSP;
>>> diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
>>> index 8c9b745..7d7f336 100644
>>> --- a/hw/s390x/virtio-ccw.c
>>> +++ b/hw/s390x/virtio-ccw.c
>>> @@ -384,7 +384,7 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
>>>          }
>>>          break;
>>>      default:
>>> -        ret = -EOPNOTSUPP;
>>> +        ret = -ENOSYS;
>>>          break;
>>>      }
>>>      return ret;
>> ENOSYS is available for MinGW, but EINPROGRESS isn't.
>>
>> Here is a copy of MinGW's errno.h with all available values for errno:
>>
>> http://gitorious.org/mingw/mingw-runtime/blobs/752105f6b9df42a806fd4c310757e7782b9f9a9c/include/errno.h
>>
>> You can either choose a supported value, or you can add a
>> new definition to qemu-common.h (like it was done for
>> ENOMEDIUM, ENOTSUP and others).Note that you won't get
>> a valid error string with strerror for any new definition.
> There's really nothing that matches what I want in there, so it would
> need to be a new definition.
>
> I see -EINPROGRESS being used in various parts of the tree, however,
> and sysemu/os_win32.h contains a #define. Isn't that enough, or am I
> misunderstanding?

Your analysis was better than mine:
yes, EINPROGRESS can be used, so your patch is good.

Reviewed-by: Stefan Weil <sw@weilnetz.de>
Alexander Graf - Jan. 29, 2013, 12:25 p.m.
On 01/28/2013 06:45 PM, Stefan Weil wrote:
> Am 28.01.2013 18:34, schrieb Cornelia Huck:
>> On Mon, 28 Jan 2013 18:08:10 +0100
>> Stefan Weil<sw@weilnetz.de>  wrote:
>>
>>> Am 28.01.2013 17:06, schrieb Cornelia Huck:
>>>> On Sat, 26 Jan 2013 14:17:36 +0000
>>>> Blue Swirl<blauwirbel@gmail.com>  wrote:
>>>>
>>>>> On Fri, Jan 25, 2013 at 12:48 PM, Alexander Graf<agraf@suse.de>  wrote:
>>>>>> Hi Blue / Aurelien,
>>>>>>
>>>>>> This is my current patch queue for s390.  Please pull.
>>>>>>
>>>>>> Alex
>>>>>>
>>>>>>
>>>>>> The following changes since commit 11c29918be32be5b00f367c7da9724a5cddbbb0f:
>>>>>>    Anthony Liguori (1):
>>>>>>          Merge remote-tracking branch 'bonzini/scsi-next' into staging
>>>>>>
>>>>>> are available in the git repository at:
>>>>>>
>>>>>>    git://repo.or.cz/qemu/agraf.git s390-for-upstream
>>>>>>
>>>>>> Alexander Graf (3):
>>>>>>        s390: Add default support for SCLP console
>>>>>>        s390: Make typeinfo const
>>>>>>        s390: Move hw files to hw/s390x
>>>>>>
>>>>>> Andreas Färber (1):
>>>>>>        s390-virtio: Check for NULL device in reset hypercall
>>>>>>
>>>>>> Cornelia Huck (10):
>>>>>>        s390: Lowcore mapping helper.
>>>>>>        s390: Add mapping helper functions.
>>>>>>        s390: Channel I/O basic definitions.
>>>>>>        s390: I/O interrupt and machine check injection.
>>>>>>        s390: Add channel I/O instructions.
>>>>>>        s390: Virtual channel subsystem support.
>>>>> This would break build on mingw32:
>>>>>    CC    s390x-softmmu/hw/s390x/css.o
>>>>> /src/qemu/hw/s390x/css.c: In function 'css_interpret_ccw':
>>>>> /src/qemu/hw/s390x/css.c:226:17: error: 'ERESTART' undeclared (first
>>>>> use in this function)
>>>>> /src/qemu/hw/s390x/css.c:226:17: note: each undeclared identifier is
>>>>> reported only once for each function it appears in
>>>>> /src/qemu/hw/s390x/css.c:294:20: error: 'EOPNOTSUPP' undeclared (first
>>>>> use in this function)
>>>>> /src/qemu/hw/s390x/css.c: In function 'sch_handle_start_func':
>>>>> /src/qemu/hw/s390x/css.c:350:15: error: 'EOPNOTSUPP' undeclared (first
>>>>> use in this function)
>>>>> /src/qemu/hw/s390x/css.c:375:15: error: 'ERESTART' undeclared (first
>>>>> use in this function)
>>>> The following patch might help for now, as those error codes already
>>>> seem to be used in generic code.
>>>>
>>>>  From a32da08a8474aa6fde65d7bc1616b42dce9d7252 Mon Sep 17 00:00:00 2001
>>>> From: Cornelia Huck<cornelia.huck@de.ibm.com>
>>>> Date: Mon, 28 Jan 2013 17:01:30 +0100
>>>> Subject: [PATCH] s390: css error codes.
>>>>
>>>> Changed error codes in the channel subsystem / virtio-ccw code
>>>> (-EOPNOTSUPP ->  -ENOSYS, -ERESTART ->  -EINPROGRESS).
>>>>
>>>> This should hopefully fix building on mingw32.
>>>>
>>>> Signed-off-by: Cornelia Huck<cornelia.huck@de.ibm.com>
>>>> ---
>>>>   hw/s390x/css.c        |    8 ++++----
>>>>   hw/s390x/virtio-ccw.c |    2 +-
>>>>   2 files changed, 5 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/hw/s390x/css.c b/hw/s390x/css.c
>>>> index 84efd4a..3244201 100644
>>>> --- a/hw/s390x/css.c
>>>> +++ b/hw/s390x/css.c
>>>> @@ -223,7 +223,7 @@ static int css_interpret_ccw(SubchDev *sch, hwaddr ccw_addr)
>>>>       }
>>>>
>>>>       if (ccw.flags&  CCW_FLAG_SUSPEND) {
>>>> -        return -ERESTART;
>>>> +        return -EINPROGRESS;
>>>>       }
>>>>
>>>>       check_len = !((ccw.flags&  CCW_FLAG_SLI)&&  !(ccw.flags&  CCW_FLAG_DC));
>>>> @@ -291,7 +291,7 @@ static int css_interpret_ccw(SubchDev *sch, hwaddr ccw_addr)
>>>>               /* Handle device specific commands. */
>>>>               ret = sch->ccw_cb(sch, ccw);
>>>>           } else {
>>>> -            ret = -EOPNOTSUPP;
>>>> +            ret = -ENOSYS;
>>>>           }
>>>>           break;
>>>>       }
>>>> @@ -347,7 +347,7 @@ static void sch_handle_start_func(SubchDev *sch)
>>>>                       SCSW_STCTL_STATUS_PEND;
>>>>               s->dstat = SCSW_DSTAT_CHANNEL_END | SCSW_DSTAT_DEVICE_END;
>>>>               break;
>>>> -        case -EOPNOTSUPP:
>>>> +        case -ENOSYS:
>>>>               /* unsupported command, generate unit check (command reject) */
>>>>               s->ctrl&= ~SCSW_ACTL_START_PEND;
>>>>               s->dstat = SCSW_DSTAT_UNIT_CHECK;
>>>> @@ -372,7 +372,7 @@ static void sch_handle_start_func(SubchDev *sch)
>>>>               s->ctrl&= ~SCSW_CTRL_MASK_STCTL;
>>>>               s->ctrl |= SCSW_STCTL_ALERT | SCSW_STCTL_STATUS_PEND;
>>>>               break;
>>>> -        case -ERESTART:
>>>> +        case -EINPROGRESS:
>>>>               /* channel program has been suspended */
>>>>               s->ctrl&= ~SCSW_ACTL_START_PEND;
>>>>               s->ctrl |= SCSW_ACTL_SUSP;
>>>> diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
>>>> index 8c9b745..7d7f336 100644
>>>> --- a/hw/s390x/virtio-ccw.c
>>>> +++ b/hw/s390x/virtio-ccw.c
>>>> @@ -384,7 +384,7 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
>>>>           }
>>>>           break;
>>>>       default:
>>>> -        ret = -EOPNOTSUPP;
>>>> +        ret = -ENOSYS;
>>>>           break;
>>>>       }
>>>>       return ret;
>>> ENOSYS is available for MinGW, but EINPROGRESS isn't.
>>>
>>> Here is a copy of MinGW's errno.h with all available values for errno:
>>>
>>> http://gitorious.org/mingw/mingw-runtime/blobs/752105f6b9df42a806fd4c310757e7782b9f9a9c/include/errno.h
>>>
>>> You can either choose a supported value, or you can add a
>>> new definition to qemu-common.h (like it was done for
>>> ENOMEDIUM, ENOTSUP and others).Note that you won't get
>>> a valid error string with strerror for any new definition.
>> There's really nothing that matches what I want in there, so it would
>> need to be a new definition.
>>
>> I see -EINPROGRESS being used in various parts of the tree, however,
>> and sysemu/os_win32.h contains a #define. Isn't that enough, or am I
>> misunderstanding?
> Your analysis was better than mine:
> yes, EINPROGRESS can be used, so your patch is good.
>
> Reviewed-by: Stefan Weil<sw@weilnetz.de>

Thanks, applied to s390-next.


Alex

Patch

diff --git a/hw/s390x/css.c b/hw/s390x/css.c
index 84efd4a..3244201 100644
--- a/hw/s390x/css.c
+++ b/hw/s390x/css.c
@@ -223,7 +223,7 @@  static int css_interpret_ccw(SubchDev *sch, hwaddr ccw_addr)
     }
 
     if (ccw.flags & CCW_FLAG_SUSPEND) {
-        return -ERESTART;
+        return -EINPROGRESS;
     }
 
     check_len = !((ccw.flags & CCW_FLAG_SLI) && !(ccw.flags & CCW_FLAG_DC));
@@ -291,7 +291,7 @@  static int css_interpret_ccw(SubchDev *sch, hwaddr ccw_addr)
             /* Handle device specific commands. */
             ret = sch->ccw_cb(sch, ccw);
         } else {
-            ret = -EOPNOTSUPP;
+            ret = -ENOSYS;
         }
         break;
     }
@@ -347,7 +347,7 @@  static void sch_handle_start_func(SubchDev *sch)
                     SCSW_STCTL_STATUS_PEND;
             s->dstat = SCSW_DSTAT_CHANNEL_END | SCSW_DSTAT_DEVICE_END;
             break;
-        case -EOPNOTSUPP:
+        case -ENOSYS:
             /* unsupported command, generate unit check (command reject) */
             s->ctrl &= ~SCSW_ACTL_START_PEND;
             s->dstat = SCSW_DSTAT_UNIT_CHECK;
@@ -372,7 +372,7 @@  static void sch_handle_start_func(SubchDev *sch)
             s->ctrl &= ~SCSW_CTRL_MASK_STCTL;
             s->ctrl |= SCSW_STCTL_ALERT | SCSW_STCTL_STATUS_PEND;
             break;
-        case -ERESTART:
+        case -EINPROGRESS:
             /* channel program has been suspended */
             s->ctrl &= ~SCSW_ACTL_START_PEND;
             s->ctrl |= SCSW_ACTL_SUSP;
diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index 8c9b745..7d7f336 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -384,7 +384,7 @@  static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
         }
         break;
     default:
-        ret = -EOPNOTSUPP;
+        ret = -ENOSYS;
         break;
     }
     return ret;