提交 c17491b6 编写于 作者: D David Gibson 提交者: Andreas Färber

pseries: Fix reset of VIO network device

Currently, the PAPR VIO network device does not have a reset handler.  This
means that after a hard reset, H_REGISTER_LOGICAL_LAN will return an error
when the new guest boot attempts to initialize the device.

This patch corrects this, adding a suitable reset hook.
Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
Signed-off-by: NAndreas Färber <afaerber@suse.de>
上级 3cabba60
...@@ -182,6 +182,15 @@ static NetClientInfo net_spapr_vlan_info = { ...@@ -182,6 +182,15 @@ static NetClientInfo net_spapr_vlan_info = {
.receive = spapr_vlan_receive, .receive = spapr_vlan_receive,
}; };
static void spapr_vlan_reset(VIOsPAPRDevice *sdev)
{
VIOsPAPRVLANDevice *dev = DO_UPCAST(VIOsPAPRVLANDevice, sdev, sdev);
dev->buf_list = 0;
dev->rx_bufs = 0;
dev->isopen = 0;
}
static int spapr_vlan_init(VIOsPAPRDevice *sdev) static int spapr_vlan_init(VIOsPAPRDevice *sdev)
{ {
VIOsPAPRVLANDevice *dev = (VIOsPAPRVLANDevice *)sdev; VIOsPAPRVLANDevice *dev = (VIOsPAPRVLANDevice *)sdev;
...@@ -335,9 +344,7 @@ static target_ulong h_free_logical_lan(CPUPPCState *env, sPAPREnvironment *spapr ...@@ -335,9 +344,7 @@ static target_ulong h_free_logical_lan(CPUPPCState *env, sPAPREnvironment *spapr
return H_RESOURCE; return H_RESOURCE;
} }
dev->buf_list = 0; spapr_vlan_reset(sdev);
dev->rx_bufs = 0;
dev->isopen = 0;
return H_SUCCESS; return H_SUCCESS;
} }
...@@ -484,6 +491,7 @@ static void spapr_vlan_class_init(ObjectClass *klass, void *data) ...@@ -484,6 +491,7 @@ static void spapr_vlan_class_init(ObjectClass *klass, void *data)
VIOsPAPRDeviceClass *k = VIO_SPAPR_DEVICE_CLASS(klass); VIOsPAPRDeviceClass *k = VIO_SPAPR_DEVICE_CLASS(klass);
k->init = spapr_vlan_init; k->init = spapr_vlan_init;
k->reset = spapr_vlan_reset;
k->devnode = spapr_vlan_devnode; k->devnode = spapr_vlan_devnode;
k->dt_name = "l-lan"; k->dt_name = "l-lan";
k->dt_type = "network"; k->dt_type = "network";
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册