Skip to content

Commit

Permalink
Merge branch 's390-for-upstream' of git://github.com/agraf/qemu
Browse files Browse the repository at this point in the history
* 's390-for-upstream' of git://github.com/agraf/qemu:
  s390/virtio-ccw: remove redundant call to blockdev_mark_auto_del
  s390/css: Fix subchannel detection
  Allow virtio-net features for legacy s390 virtio bus
  s390: virtio-ccw maintainer
  s390: simplify kvm cpu init
  • Loading branch information
blueswirl committed Mar 9, 2013
2 parents 62e1aea + 8a7df84 commit eb83990
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 14 deletions.
14 changes: 14 additions & 0 deletions MAINTAINERS
Expand Up @@ -454,6 +454,14 @@ M: Alexander Graf <agraf@suse.de>
S: Maintained
F: hw/s390-*.c

S390 Virtio-ccw
M: Cornelia Huck <cornelia.huck@de.ibm.com>
M: Alexander Graf <agraf@suse.de>
S: Supported
F: hw/s390x/s390-virtio-ccw.c
F: hw/s390x/css.[hc]
T: git git://github.com/cohuck/qemu virtio-ccw-upstr

UniCore32 Machines
-------------
PKUnity-3 SoC initramfs-with-busybox
Expand Down Expand Up @@ -565,6 +573,12 @@ M: Stefan Hajnoczi <stefanha@redhat.com>
S: Supported
F: hw/virtio-blk*

virtio-ccw
M: Cornelia Huck <cornelia.huck@de.ibm.com>
S: Supported
F: hw/s390x/virtio-ccw.[hc]
T: git git://github.com/cohuck/qemu virtio-ccw-upstr

virtio-serial
M: Amit Shah <amit.shah@redhat.com>
S: Supported
Expand Down
11 changes: 7 additions & 4 deletions hw/s390x/css.c
Expand Up @@ -988,15 +988,18 @@ int css_do_rchp(uint8_t cssid, uint8_t chpid)
return 0;
}

bool css_schid_final(uint8_t cssid, uint8_t ssid, uint16_t schid)
bool css_schid_final(int m, uint8_t cssid, uint8_t ssid, uint16_t schid)
{
SubchSet *set;
uint8_t real_cssid;

if (cssid > MAX_CSSID || ssid > MAX_SSID || !channel_subsys->css[cssid] ||
!channel_subsys->css[cssid]->sch_set[ssid]) {
real_cssid = (!m && (cssid == 0)) ? channel_subsys->default_cssid : cssid;
if (real_cssid > MAX_CSSID || ssid > MAX_SSID ||
!channel_subsys->css[real_cssid] ||
!channel_subsys->css[real_cssid]->sch_set[ssid]) {
return true;
}
set = channel_subsys->css[cssid]->sch_set[ssid];
set = channel_subsys->css[real_cssid]->sch_set[ssid];
return schid > find_last_bit(set->schids_used,
(MAX_SCHID + 1) / sizeof(unsigned long));
}
Expand Down
1 change: 1 addition & 0 deletions hw/s390x/s390-virtio-bus.c
Expand Up @@ -402,6 +402,7 @@ static const VirtIOBindings virtio_s390_bindings = {

static Property s390_virtio_net_properties[] = {
DEFINE_NIC_PROPERTIES(VirtIOS390Device, nic),
DEFINE_VIRTIO_NET_FEATURES(VirtIOS390Device, host_features),
DEFINE_PROP_UINT32("x-txtimer", VirtIOS390Device,
net.txtimer, TX_TIMER_INTERVAL),
DEFINE_PROP_INT32("x-txburst", VirtIOS390Device,
Expand Down
1 change: 0 additions & 1 deletion hw/s390x/virtio-ccw.c
Expand Up @@ -585,7 +585,6 @@ static int virtio_ccw_blk_init(VirtioCcwDevice *dev)
static int virtio_ccw_blk_exit(VirtioCcwDevice *dev)
{
virtio_blk_exit(dev->vdev);
blockdev_mark_auto_del(dev->blk.conf.bs);
return virtio_ccw_exit(dev);
}

Expand Down
2 changes: 1 addition & 1 deletion target-s390x/cpu.h
Expand Up @@ -404,7 +404,7 @@ SubchDev *css_find_subch(uint8_t m, uint8_t cssid, uint8_t ssid,
bool css_subch_visible(SubchDev *sch);
void css_conditional_io_interrupt(SubchDev *sch);
int css_do_stsch(SubchDev *sch, SCHIB *schib);
bool css_schid_final(uint8_t cssid, uint8_t ssid, uint16_t schid);
bool css_schid_final(int m, uint8_t cssid, uint8_t ssid, uint16_t schid);
int css_do_msch(SubchDev *sch, SCHIB *schib);
int css_do_xsch(SubchDev *sch);
int css_do_csch(SubchDev *sch);
Expand Down
2 changes: 1 addition & 1 deletion target-s390x/ioinst.c
Expand Up @@ -316,7 +316,7 @@ int ioinst_handle_stsch(CPUS390XState *env, uint64_t reg1, uint32_t ipb)
cc = 3;
}
} else {
if (css_schid_final(cssid, ssid, schid)) {
if (css_schid_final(m, cssid, ssid, schid)) {
cc = 3; /* No more subchannels in this css/ss */
} else {
/* Store an empty schib. */
Expand Down
9 changes: 2 additions & 7 deletions target-s390x/kvm.c
Expand Up @@ -103,13 +103,8 @@ unsigned long kvm_arch_vcpu_id(CPUState *cpu)

int kvm_arch_init_vcpu(CPUState *cpu)
{
int ret = 0;

if (kvm_vcpu_ioctl(cpu, KVM_S390_INITIAL_RESET, NULL) < 0) {
perror("cannot init reset vcpu");
}

return ret;
/* nothing todo yet */
return 0;
}

void kvm_arch_reset_vcpu(CPUState *cpu)
Expand Down

0 comments on commit eb83990

Please sign in to comment.