cec8546638
Receiving cc=3 from store subchannel means 2 things: * the subchannel is not provided * there are no further subchannels in this subchannel set With this patch we abort the store subchannel loop after cc=3 (or an exception) and clear the subsequent bits in the subchannel id set. Reported-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Acked-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
26 lines
819 B
C
26 lines
819 B
C
/*
|
|
* Copyright IBM Corp. 2007, 2012
|
|
* Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
|
|
*/
|
|
|
|
#ifndef S390_IDSET_H
|
|
#define S390_IDSET_H S390_IDSET_H
|
|
|
|
#include <asm/schid.h>
|
|
|
|
struct idset;
|
|
|
|
void idset_free(struct idset *set);
|
|
void idset_clear(struct idset *set);
|
|
void idset_fill(struct idset *set);
|
|
|
|
struct idset *idset_sch_new(void);
|
|
void idset_sch_add(struct idset *set, struct subchannel_id id);
|
|
void idset_sch_del(struct idset *set, struct subchannel_id id);
|
|
void idset_sch_del_subseq(struct idset *set, struct subchannel_id schid);
|
|
int idset_sch_contains(struct idset *set, struct subchannel_id id);
|
|
int idset_sch_get_first(struct idset *set, struct subchannel_id *id);
|
|
int idset_is_empty(struct idset *set);
|
|
void idset_add_set(struct idset *to, struct idset *from);
|
|
|
|
#endif /* S390_IDSET_H */
|