Merge remote-tracking branch 'mst/tags/for_anthony' into staging
* mst/tags/for_anthony: vhost: Pass device path to vhost_dev_init() monitor: Rename+move net_handle_fd_param -> monitor_handle_fd_param pcie_aer: clear cmask for Advanced Error Interrupt Message Number pcie: drop version_id field for live migration qemu: add .exrc
This commit is contained in:
commit
14df77a609
7
.exrc
Normal file
7
.exrc
Normal file
@ -0,0 +1,7 @@
|
||||
"VIM settings to match QEMU coding style. They are activated by adding the
|
||||
"following settings (without the " symbol) as last two lines in $HOME/.vimrc:
|
||||
"set secure
|
||||
"set exrc
|
||||
set expandtab
|
||||
set shiftwidth=4
|
||||
set smarttab
|
2
hw/pci.c
2
hw/pci.c
@ -439,7 +439,7 @@ const VMStateDescription vmstate_pci_device = {
|
||||
};
|
||||
|
||||
const VMStateDescription vmstate_pcie_device = {
|
||||
.name = "PCIDevice",
|
||||
.name = "PCIEDevice",
|
||||
.version_id = 2,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
|
@ -133,7 +133,6 @@ extern const VMStateDescription vmstate_pcie_device;
|
||||
|
||||
#define VMSTATE_PCIE_DEVICE(_field, _state) { \
|
||||
.name = (stringify(_field)), \
|
||||
.version_id = 2, \
|
||||
.size = sizeof(PCIDevice), \
|
||||
.vmsd = &vmstate_pcie_device, \
|
||||
.flags = VMS_STRUCT, \
|
||||
|
@ -738,6 +738,11 @@ void pcie_aer_root_init(PCIDevice *dev)
|
||||
PCI_ERR_ROOT_CMD_EN_MASK);
|
||||
pci_set_long(dev->w1cmask + pos + PCI_ERR_ROOT_STATUS,
|
||||
PCI_ERR_ROOT_STATUS_REPORT_MASK);
|
||||
/* PCI_ERR_ROOT_IRQ is RO but devices change it using a
|
||||
* device-specific method.
|
||||
*/
|
||||
pci_set_long(dev->cmask + pos + PCI_ERR_ROOT_STATUS,
|
||||
~PCI_ERR_ROOT_IRQ);
|
||||
}
|
||||
|
||||
void pcie_aer_root_reset(PCIDevice *dev)
|
||||
|
@ -747,14 +747,15 @@ static void vhost_eventfd_del(MemoryListener *listener,
|
||||
{
|
||||
}
|
||||
|
||||
int vhost_dev_init(struct vhost_dev *hdev, int devfd, bool force)
|
||||
int vhost_dev_init(struct vhost_dev *hdev, int devfd, const char *devpath,
|
||||
bool force)
|
||||
{
|
||||
uint64_t features;
|
||||
int r;
|
||||
if (devfd >= 0) {
|
||||
hdev->control = devfd;
|
||||
} else {
|
||||
hdev->control = open("/dev/vhost-net", O_RDWR);
|
||||
hdev->control = open(devpath, O_RDWR);
|
||||
if (hdev->control < 0) {
|
||||
return -errno;
|
||||
}
|
||||
|
@ -44,7 +44,8 @@ struct vhost_dev {
|
||||
bool force;
|
||||
};
|
||||
|
||||
int vhost_dev_init(struct vhost_dev *hdev, int devfd, bool force);
|
||||
int vhost_dev_init(struct vhost_dev *hdev, int devfd, const char *devpath,
|
||||
bool force);
|
||||
void vhost_dev_cleanup(struct vhost_dev *hdev);
|
||||
bool vhost_dev_query(struct vhost_dev *hdev, VirtIODevice *vdev);
|
||||
int vhost_dev_start(struct vhost_dev *hdev, VirtIODevice *vdev);
|
||||
|
@ -109,7 +109,7 @@ struct vhost_net *vhost_net_init(NetClientState *backend, int devfd,
|
||||
(1 << VHOST_NET_F_VIRTIO_NET_HDR);
|
||||
net->backend = r;
|
||||
|
||||
r = vhost_dev_init(&net->dev, devfd, force);
|
||||
r = vhost_dev_init(&net->dev, devfd, "/dev/vhost-net", force);
|
||||
if (r < 0) {
|
||||
goto fail;
|
||||
}
|
||||
|
18
monitor.c
18
monitor.c
@ -2407,6 +2407,24 @@ int monitor_fdset_dup_fd_remove(int dup_fd)
|
||||
return monitor_fdset_dup_fd_find_remove(dup_fd, true);
|
||||
}
|
||||
|
||||
int monitor_handle_fd_param(Monitor *mon, const char *fdname)
|
||||
{
|
||||
int fd;
|
||||
|
||||
if (!qemu_isdigit(fdname[0]) && mon) {
|
||||
|
||||
fd = monitor_get_fd(mon, fdname);
|
||||
if (fd == -1) {
|
||||
error_report("No file descriptor named %s found", fdname);
|
||||
return -1;
|
||||
}
|
||||
} else {
|
||||
fd = qemu_parse_fd(fdname);
|
||||
}
|
||||
|
||||
return fd;
|
||||
}
|
||||
|
||||
/* mon_cmds and info_cmds would be sorted at runtime */
|
||||
static mon_cmd_t mon_cmds[] = {
|
||||
#include "hmp-commands.h"
|
||||
|
@ -67,6 +67,7 @@ int monitor_read_block_device_key(Monitor *mon, const char *device,
|
||||
void *opaque);
|
||||
|
||||
int monitor_get_fd(Monitor *mon, const char *fdname);
|
||||
int monitor_handle_fd_param(Monitor *mon, const char *fdname);
|
||||
|
||||
void monitor_vprintf(Monitor *mon, const char *fmt, va_list ap)
|
||||
GCC_FMT_ATTR(2, 0);
|
||||
|
18
net.c
18
net.c
@ -522,24 +522,6 @@ int qemu_find_nic_model(NICInfo *nd, const char * const *models,
|
||||
return -1;
|
||||
}
|
||||
|
||||
int net_handle_fd_param(Monitor *mon, const char *param)
|
||||
{
|
||||
int fd;
|
||||
|
||||
if (!qemu_isdigit(param[0]) && mon) {
|
||||
|
||||
fd = monitor_get_fd(mon, param);
|
||||
if (fd == -1) {
|
||||
error_report("No file descriptor named %s found", param);
|
||||
return -1;
|
||||
}
|
||||
} else {
|
||||
fd = qemu_parse_fd(param);
|
||||
}
|
||||
|
||||
return fd;
|
||||
}
|
||||
|
||||
static int net_init_nic(const NetClientOptions *opts, const char *name,
|
||||
NetClientState *peer)
|
||||
{
|
||||
|
2
net.h
2
net.h
@ -168,8 +168,6 @@ int qmp_netdev_add(Monitor *mon, const QDict *qdict, QObject **ret);
|
||||
|
||||
void qdev_set_nic_properties(DeviceState *dev, NICInfo *nd);
|
||||
|
||||
int net_handle_fd_param(Monitor *mon, const char *param);
|
||||
|
||||
#define POLYNOMIAL 0x04c11db6
|
||||
unsigned compute_mcast_idx(const uint8_t *ep);
|
||||
|
||||
|
@ -629,7 +629,7 @@ int net_init_socket(const NetClientOptions *opts, const char *name,
|
||||
if (sock->has_fd) {
|
||||
int fd;
|
||||
|
||||
fd = net_handle_fd_param(cur_mon, sock->fd);
|
||||
fd = monitor_handle_fd_param(cur_mon, sock->fd);
|
||||
if (fd == -1 || !net_socket_fd_init(peer, "socket", name, fd, 1)) {
|
||||
return -1;
|
||||
}
|
||||
|
@ -610,7 +610,7 @@ int net_init_tap(const NetClientOptions *opts, const char *name,
|
||||
return -1;
|
||||
}
|
||||
|
||||
fd = net_handle_fd_param(cur_mon, tap->fd);
|
||||
fd = monitor_handle_fd_param(cur_mon, tap->fd);
|
||||
if (fd == -1) {
|
||||
return -1;
|
||||
}
|
||||
@ -686,7 +686,7 @@ int net_init_tap(const NetClientOptions *opts, const char *name,
|
||||
int vhostfd;
|
||||
|
||||
if (tap->has_vhostfd) {
|
||||
vhostfd = net_handle_fd_param(cur_mon, tap->vhostfd);
|
||||
vhostfd = monitor_handle_fd_param(cur_mon, tap->vhostfd);
|
||||
if (vhostfd == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user