qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] dee2e5: hw/pvrdma: Check the correct return v


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] dee2e5: hw/pvrdma: Check the correct return value
Date: Sat, 22 Dec 2018 05:58:55 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: dee2e53c86de37dea4f36936eab5a6aef340b8f8
      
https://github.com/qemu/qemu/commit/dee2e53c86de37dea4f36936eab5a6aef340b8f8
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma_cmd.c

  Log Message:
  -----------
  hw/pvrdma: Check the correct return value

Return value of 0 means ok, we want to free the memory only in case of
error.

Signed-off-by: Yuval Shaia <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Marcel Apfelbaum<address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: a5d2f6f8773a8ce7534e79b067f135d55c6274cb
      
https://github.com/qemu/qemu/commit/a5d2f6f8773a8ce7534e79b067f135d55c6274cb
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M MAINTAINERS
    M Makefile
    M Makefile.objs
    A contrib/rdmacm-mux/Makefile.objs
    A contrib/rdmacm-mux/main.c
    A contrib/rdmacm-mux/rdmacm-mux.h

  Log Message:
  -----------
  contrib/rdmacm-mux: Add implementation of RDMA User MAD multiplexer

RDMA MAD kernel module (ibcm) disallow more than one MAD-agent for a
given MAD class.
This does not go hand-by-hand with qemu pvrdma device's requirements
where each VM is MAD agent.
Fix it by adding implementation of RDMA MAD multiplexer service which on
one hand register as a sole MAD agent with the kernel module and on the
other hand gives service to more than one VM.

Design Overview:
Reviewed-by: Shamir Rabinovitch <address@hidden>
----------------
A server process is registered to UMAD framework (for this to work the
rdma_cm kernel module needs to be unloaded) and creates a unix socket to
listen to incoming request from clients.
A client process (such as QEMU) connects to this unix socket and
registers with its own GID.

TX:
----
When client needs to send rdma_cm MAD message it construct it the same
way as without this multiplexer, i.e. creates a umad packet but this
time it writes its content to the socket instead of calling umad_send().
The server, upon receiving such a message fetch local_comm_id from it so
a context for this session can be maintain and relay the message to UMAD
layer by calling umad_send().

RX:
----
The server creates a worker thread to process incoming rdma_cm MAD
messages. When an incoming message arrived (umad_recv()) the server,
depending on the message type (attr_id) looks for target client by
either searching in gid->fd table or in local_comm_id->fd table. With
the extracted fd the server relays to incoming message to the client.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Shamir Rabinovitch <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 4082e533f640426a91d1a08c3aeb6824cd65e28a
      
https://github.com/qemu/qemu/commit/4082e533f640426a91d1a08c3aeb6824cd65e28a
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/rdma_rm.c
    M hw/rdma/rdma_rm_defs.h
    M hw/rdma/vmw/pvrdma_qp_ops.c

  Log Message:
  -----------
  hw/rdma: Add ability to force notification without re-arm

Upon completion of incoming packet the device pushes CQE to driver's RX
ring and notify the driver (msix).
While for data-path incoming packets the driver needs the ability to
control whether it wished to receive interrupts or not, for control-path
packets such as incoming MAD the driver needs to be notified anyway, it
even do not need to re-arm the notification bit.

Enhance the notification field to support this.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 46462cb1618e0a1e0a14e13bc08ffd02bc5f773e
      
https://github.com/qemu/qemu/commit/46462cb1618e0a1e0a14e13bc08ffd02bc5f773e
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/rdma_backend.h

  Log Message:
  -----------
  hw/rdma: Return qpn 1 if ibqp is NULL

Device is not supporting QP0, only QP1.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 305bdd7a57a52cf87f9bf3e85316b0f62fe7167c
      
https://github.com/qemu/qemu/commit/305bdd7a57a52cf87f9bf3e85316b0f62fe7167c
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/rdma_backend.c

  Log Message:
  -----------
  hw/rdma: Abort send-op if fail to create addr handler

Function create_ah might return NULL, let's exit with an error.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 605ec1663b51722a73046fed5453cb5efb994d85
      
https://github.com/qemu/qemu/commit/605ec1663b51722a73046fed5453cb5efb994d85
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/rdma_backend.c
    M hw/rdma/rdma_backend.h
    M hw/rdma/rdma_backend_defs.h
    M hw/rdma/vmw/pvrdma.h
    M hw/rdma/vmw/pvrdma_main.c

  Log Message:
  -----------
  hw/rdma: Add support for MAD packets

MAD (Management Datagram) packets are widely used by various modules
both in kernel and in user space for example the rdma_* API which is
used to create and maintain "connection" layer on top of RDMA uses
several types of MAD packets.

For more information please refer to chapter 13.4 in Volume 1
Architecture Specification, Release 1.1 available here:
https://www.infinibandta.org/ibta-specifications-download/

To support MAD packets the device uses an external utility
(contrib/rdmacm-mux) to relay packets from and to the guest driver.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum<address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: f00c48caab0360240ed5efd7df5245a6fa031a07
      
https://github.com/qemu/qemu/commit/f00c48caab0360240ed5efd7df5245a6fa031a07
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma_main.c

  Log Message:
  -----------
  hw/pvrdma: Make function reset_device return void

This function cannot fail - fix it to return void

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 536692ca1db66f5b428299b3401735a113b39bd3
      
https://github.com/qemu/qemu/commit/536692ca1db66f5b428299b3401735a113b39bd3
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma.h

  Log Message:
  -----------
  hw/pvrdma: Make default pkey 0xFFFF

Commit 6e7dba23af ("hw/pvrdma: Make default pkey 0xFFFF") exports
default pkey as external definition but omit the change from 0x7FFF to
0xFFFF.

Fixes: 6e7dba23af ("hw/pvrdma: Make default pkey 0xFFFF")

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 2bff59e699212960838ddf99ab4ee238d0e276f5
      
https://github.com/qemu/qemu/commit/2bff59e699212960838ddf99ab4ee238d0e276f5
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma_qp_ops.c

  Log Message:
  -----------
  hw/pvrdma: Set the correct opcode for recv completion

The function pvrdma_post_cqe populates CQE entry with opcode from the
given completion element. For receive operation value was not set. Fix
it by setting it to IBV_WC_RECV.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 1625bb13dadad959ce1a6a6912c8e5c167591e87
      
https://github.com/qemu/qemu/commit/1625bb13dadad959ce1a6a6912c8e5c167591e87
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma_qp_ops.c

  Log Message:
  -----------
  hw/pvrdma: Set the correct opcode for send completion

opcode for WC should be set by the device and not taken from work
element.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 4a5c9903f3164cef134e7f81b361b3fa7d5c0b52
      
https://github.com/qemu/qemu/commit/4a5c9903f3164cef134e7f81b361b3fa7d5c0b52
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M MAINTAINERS
    M Makefile.objs
    M qapi/qapi-schema.json
    A qapi/rdma.json

  Log Message:
  -----------
  qapi: Define new QMP message for pvrdma

pvrdma requires that the same GID attached to it will be attached to the
backend device in the host.

A new QMP messages is defined so pvrdma device can broadcast any change
made to its GID table. This event is captured by libvirt which in  turn
will update the GID table in the backend device.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Acked-by: Markus Armbruster <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 2b05705dc8ad80c09a3aa9cc70c14fb8323b0fd3
      
https://github.com/qemu/qemu/commit/2b05705dc8ad80c09a3aa9cc70c14fb8323b0fd3
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/rdma_backend.c
    M hw/rdma/rdma_backend.h
    M hw/rdma/rdma_backend_defs.h
    M hw/rdma/rdma_rm.c
    M hw/rdma/rdma_rm.h
    M hw/rdma/rdma_rm_defs.h
    M hw/rdma/rdma_utils.h
    M hw/rdma/vmw/pvrdma.h
    M hw/rdma/vmw/pvrdma_cmd.c
    M hw/rdma/vmw/pvrdma_main.c
    M hw/rdma/vmw/pvrdma_qp_ops.c

  Log Message:
  -----------
  hw/pvrdma: Add support to allow guest to configure GID table

The control over the RDMA device's GID table is done by updating the
device's Ethernet function addresses.
Usually the first GID entry is determined by the MAC address, the second
by the first IPv6 address and the third by the IPv4 address. Other
entries can be added by adding more IP addresses. The opposite is the
same, i.e. whenever an address is removed, the corresponding GID entry
is removed.

The process is done by the network and RDMA stacks. Whenever an address
is added the ib_core driver is notified and calls the device driver
add_gid function which in turn update the device.

To support this in pvrdma device we need to hook into the create_bind
and destroy_bind HW commands triggered by pvrdma driver in guest.
Whenever a change is made to the pvrdma port's GID table a special QMP
message is sent to be processed by libvirt to update the address of the
backend Ethernet device.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum<address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 317639aafd3c89e601481e6fbf2a89432ff14e45
      
https://github.com/qemu/qemu/commit/317639aafd3c89e601481e6fbf2a89432ff14e45
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/net/vmxnet3.c
    A hw/net/vmxnet3_defs.h

  Log Message:
  -----------
  vmxnet3: Move some definitions to header file

pvrdma setup requires vmxnet3 device on PCI function 0 and PVRDMA device
on PCI function 1.
pvrdma device needs to access vmxnet3 device object for several reasons:
1. Make sure PCI function 0 is vmxnet3.
2. To monitor vmxnet3 device state.
3. To configure node_guid accoring to vmxnet3 device's MAC address.

To be able to access vmxnet3 device the definition of VMXNET3State is
moved to a new header file.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Dmitry Fleytman <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: d961ead16edc03b850f906451bb995fe1a6513f1
      
https://github.com/qemu/qemu/commit/d961ead16edc03b850f906451bb995fe1a6513f1
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma.h
    M hw/rdma/vmw/pvrdma_main.c

  Log Message:
  -----------
  hw/pvrdma: Make sure PCI function 0 is vmxnet3

Guest driver enforces it, we should also.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 028c3f93d61d33f7335ebef475aa2ab1faa8b20a
      
https://github.com/qemu/qemu/commit/028c3f93d61d33f7335ebef475aa2ab1faa8b20a
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/rdma_utils.h
    M hw/rdma/vmw/pvrdma_cmd.c
    M hw/rdma/vmw/pvrdma_main.c

  Log Message:
  -----------
  hw/rdma: Initialize node_guid from vmxnet3 mac address

node_guid should be set once device is load.
Make node_guid be GID format (32 bit) of PCI function 0 vmxnet3 device's
MAC.

A new function was added to do the conversion.
So for example the MAC 56:b6:44:e9:62:dc will be converted to GID
54b6:44ff:fee9:62dc.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: e976ebc87cccd0e055d6337543de3f2db4650b17
      
https://github.com/qemu/qemu/commit/e976ebc87cccd0e055d6337543de3f2db4650b17
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma_cmd.c

  Log Message:
  -----------
  hw/pvrdma: Make device state depend on Ethernet function state

User should be able to control the device by changing Ethernet function
state so if user runs 'ifconfig ens3 down' the PVRDMA function should be
down as well.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: eaac01005d7536122d5869fa809dee7ced0c5e19
      
https://github.com/qemu/qemu/commit/eaac01005d7536122d5869fa809dee7ced0c5e19
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/rdma_backend.c
    M hw/rdma/rdma_backend.h
    M hw/rdma/vmw/pvrdma_qp_ops.c

  Log Message:
  -----------
  hw/pvrdma: Fill all CQE fields

Add ability to pass specific WC attributes to CQE such as GRH_BIT flag.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 091782171fa0d339f3af3c0f3a4aeb7a2e8c39fc
      
https://github.com/qemu/qemu/commit/091782171fa0d339f3af3c0f3a4aeb7a2e8c39fc
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma_cmd.c

  Log Message:
  -----------
  hw/pvrdma: Fill error code in command's response

Driver checks error code let's set it.
In addition, for code simplification purposes, set response's fields
ack, response and err outside of the scope of command handlers.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 14c74f720738e17ff2569ba66c0d32a5f0f69a69
      
https://github.com/qemu/qemu/commit/14c74f720738e17ff2569ba66c0d32a5f0f69a69
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/rdma_rm.c
    M hw/rdma/rdma_rm.h
    M hw/rdma/rdma_rm_defs.h

  Log Message:
  -----------
  hw/rdma: Remove unneeded code that handles more that one port

Device supports only one port, let's remove a dead code that handles
more than one port.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 2dadd7538562b01ac50791c28fc1b95209dce68a
      
https://github.com/qemu/qemu/commit/2dadd7538562b01ac50791c28fc1b95209dce68a
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M include/sysemu/sysemu.h
    M vl.c

  Log Message:
  -----------
  vl: Introduce shutdown_notifiers

Notifier will be used for signaling shutdown event to inform system is
shutdown. This will allow devices and other component to run some
cleanup code needed before VM is shutdown.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: ffa65d97fcdce790d25c7b059cf71e6561499530
      
https://github.com/qemu/qemu/commit/ffa65d97fcdce790d25c7b059cf71e6561499530
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma.h
    M hw/rdma/vmw/pvrdma_main.c

  Log Message:
  -----------
  hw/pvrdma: Clean device's resource when system is shutdown

In order to clean some external resources such as GIDs, QPs etc,
register to receive notification when VM is shutdown.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 9a3053d2e8104c9c8192d79c6294918a6fb7742b
      
https://github.com/qemu/qemu/commit/9a3053d2e8104c9c8192d79c6294918a6fb7742b
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/rdma_rm.c

  Log Message:
  -----------
  hw/rdma: Do not use bitmap_zero_extend to free bitmap

bitmap_zero_extend is designed to work for extending, not for
shrinking.
Using g_free instead.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 305fd2ba06f49c8d969a8e02113e105304fd9422
      
https://github.com/qemu/qemu/commit/305fd2ba06f49c8d969a8e02113e105304fd9422
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/rdma_rm.c

  Log Message:
  -----------
  hw/rdma: Do not call rdma_backend_del_gid on an empty gid

When device goes down the function fini_ports loops over all entries in
gid table regardless of the fact whether entry is valid or not. In case
that entry is not valid we'd like to skip from any further processing in
backend device.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 46b69a88241a1e8339a3ffd05050cd418808c71d
      
https://github.com/qemu/qemu/commit/46b69a88241a1e8339a3ffd05050cd418808c71d
  Author: Yuval Shaia <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M docs/pvrdma.txt

  Log Message:
  -----------
  docs: Update pvrdma device documentation

Interface with the device is changed with the addition of support for
MAD packets.
Adjust documentation accordingly.

While there fix a minor mistake which may lead to think that there is a
relation between using RXE on host and the compatibility with bare-metal
peers.

Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum<address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: cce648613bc802be1b894227f7fd94d88476ea07
      
https://github.com/qemu/qemu/commit/cce648613bc802be1b894227f7fd94d88476ea07
  Author: Prasad J Pandit <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma_main.c

  Log Message:
  -----------
  pvrdma: release device resources in case of an error

If during pvrdma device initialisation an error occurs,
pvrdma_realize() does not release memory resources, leading
to memory leakage.

Reported-by: Li Qiang <address@hidden>
Signed-off-by: Prasad J Pandit <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Yuval Shaia <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 0e68373cc2b3a063ce067bc0cc3edaf370752890
      
https://github.com/qemu/qemu/commit/0e68373cc2b3a063ce067bc0cc3edaf370752890
  Author: Prasad J Pandit <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/rdma_backend.c

  Log Message:
  -----------
  rdma: check num_sge does not exceed MAX_SGE

rdma back-end has scatter/gather array ibv_sge[MAX_SGE=4] set
to have 4 elements. A guest could send a 'PvrdmaSqWqe' ring element
with 'num_sge' set to > MAX_SGE, which may lead to OOB access issue.
Add check to avoid it.

Reported-by: Saar Amar <address@hidden>
Signed-off-by: Prasad J Pandit <address@hidden>
Reviewed-by: Yuval Shaia <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 2aa86456fb938a11f2b7bd57c8643c213218681c
      
https://github.com/qemu/qemu/commit/2aa86456fb938a11f2b7bd57c8643c213218681c
  Author: Prasad J Pandit <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma_main.c

  Log Message:
  -----------
  pvrdma: add uar_read routine

Define skeleton 'uar_read' routine. Avoid NULL dereference.

Reported-by: Li Qiang <address@hidden>
Signed-off-by: Prasad J Pandit <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 2c858ce5da8ae6689c75182b73bc455a291cad41
      
https://github.com/qemu/qemu/commit/2c858ce5da8ae6689c75182b73bc455a291cad41
  Author: Prasad J Pandit <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma_cmd.c

  Log Message:
  -----------
  pvrdma: check number of pages when creating rings

When creating CQ/QP rings, an object can have up to
PVRDMA_MAX_FAST_REG_PAGES 8 pages. Check 'npages' parameter
to avoid excessive memory allocation or a null dereference.

Reported-by: Li Qiang <address@hidden>
Signed-off-by: Prasad J Pandit <address@hidden>
Reviewed-by: Yuval Shaia <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 509f57c98e7536905bb4902363d0cba66ce7e089
      
https://github.com/qemu/qemu/commit/509f57c98e7536905bb4902363d0cba66ce7e089
  Author: Prasad J Pandit <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma_cmd.c

  Log Message:
  -----------
  pvrdma: release ring object in case of an error

create_cq and create_qp routines allocate ring object, but it's
not released in case of an error, leading to memory leakage.

Reported-by: Li Qiang <address@hidden>
Signed-off-by: Prasad J Pandit <address@hidden>
Reviewed-by: Yuval Shaia <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 7be3a21325e95e3f0bb46d1a67d5fc702b24701f
      
https://github.com/qemu/qemu/commit/7be3a21325e95e3f0bb46d1a67d5fc702b24701f
  Author: Prasad J Pandit <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/rdma_backend.c

  Log Message:
  -----------
  rdma: remove unused VENDOR_ERR_NO_SGE macro

With commit 4481985c (rdma: check num_sge does not exceed MAX_SGE)
macro VENDOR_ERR_NO_SGE is no longer in use - delete it.

Signed-off-by: Prasad J Pandit <address@hidden>
Reviewed-by: Yuval Shaia <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: f1e2e38ee0136b7710a2caa347049818afd57a1b
      
https://github.com/qemu/qemu/commit/f1e2e38ee0136b7710a2caa347049818afd57a1b
  Author: Prasad J Pandit <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M hw/rdma/vmw/pvrdma_dev_ring.c

  Log Message:
  -----------
  pvrdma: check return value from pvrdma_idx_ring_has_ routines

pvrdma_idx_ring_has_[data/space] routines also return invalid
index PVRDMA_INVALID_IDX[=-1], if ring has no data/space. Check
return value from these routines to avoid plausible infinite loops.

Reported-by: Li Qiang <address@hidden>
Signed-off-by: Prasad J Pandit <address@hidden>
Reviewed-by: Yuval Shaia <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 9b2e891ec5ccdb4a7d583b77988848282606fdea
      
https://github.com/qemu/qemu/commit/9b2e891ec5ccdb4a7d583b77988848282606fdea
  Author: Peter Maydell <address@hidden>
  Date:   2018-12-22 (Sat, 22 Dec 2018)

  Changed paths:
    M MAINTAINERS
    M Makefile
    M Makefile.objs
    A contrib/rdmacm-mux/Makefile.objs
    A contrib/rdmacm-mux/main.c
    A contrib/rdmacm-mux/rdmacm-mux.h
    M docs/pvrdma.txt
    M hw/net/vmxnet3.c
    A hw/net/vmxnet3_defs.h
    M hw/rdma/rdma_backend.c
    M hw/rdma/rdma_backend.h
    M hw/rdma/rdma_backend_defs.h
    M hw/rdma/rdma_rm.c
    M hw/rdma/rdma_rm.h
    M hw/rdma/rdma_rm_defs.h
    M hw/rdma/rdma_utils.h
    M hw/rdma/vmw/pvrdma.h
    M hw/rdma/vmw/pvrdma_cmd.c
    M hw/rdma/vmw/pvrdma_dev_ring.c
    M hw/rdma/vmw/pvrdma_main.c
    M hw/rdma/vmw/pvrdma_qp_ops.c
    M include/sysemu/sysemu.h
    M qapi/qapi-schema.json
    A qapi/rdma.json
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/marcel/tags/rdma-pull-request' into 
staging

RDMA queue
 * Add support for RDMA MAD
 * Various fixes for the pvrdma backend

# gpg: Signature made Sat 22 Dec 2018 09:36:36 GMT
# gpg:                using RSA key 36D4C0F0CF2FE46D
# gpg: Good signature from "Marcel Apfelbaum <address@hidden>"
# gpg:                 aka "Marcel Apfelbaum <address@hidden>"
# gpg:                 aka "Marcel Apfelbaum <address@hidden>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: B1C6 3A57 F92E 08F2 640F  31F5 36D4 C0F0 CF2F E46D

* remotes/marcel/tags/rdma-pull-request: (31 commits)
  pvrdma: check return value from pvrdma_idx_ring_has_ routines
  rdma: remove unused VENDOR_ERR_NO_SGE macro
  pvrdma: release ring object in case of an error
  pvrdma: check number of pages when creating rings
  pvrdma: add uar_read routine
  rdma: check num_sge does not exceed MAX_SGE
  pvrdma: release device resources in case of an error
  docs: Update pvrdma device documentation
  hw/rdma: Do not call rdma_backend_del_gid on an empty gid
  hw/rdma: Do not use bitmap_zero_extend to free bitmap
  hw/pvrdma: Clean device's resource when system is shutdown
  vl: Introduce shutdown_notifiers
  hw/rdma: Remove unneeded code that handles more that one port
  hw/pvrdma: Fill error code in command's response
  hw/pvrdma: Fill all CQE fields
  hw/pvrdma: Make device state depend on Ethernet function state
  hw/rdma: Initialize node_guid from vmxnet3 mac address
  hw/pvrdma: Make sure PCI function 0 is vmxnet3
  vmxnet3: Move some definitions to header file
  hw/pvrdma: Add support to allow guest to configure GID table
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/891ff9f4a371...9b2e891ec5cc
      **NOTE:** This service has been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]