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
					
				| 
						 | 
				
			
			@ -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