On Fri, Apr 24, 2020 at 04:54:26PM -0300, Jason Gunthorpe wrote: > On Mon, Apr 20, 2020 at 06:10:47PM +0300, Leon Romanovsky wrote: > > From: Leon Romanovsky <leonro@xxxxxxxxxxxx> > > > > Hi, > > > > This is first part of series which tries to return some sanity > > to mlx5_ib_create_qp() function. Such refactoring is required > > to make extension of that function with less worries of breaking > > driver. > > > > Extra goal of such refactoring is to ensure that QP is allocated > > at the beginning of function and released at the end. It will allow > > us to move QP allocation to be under IB/core responsibility. > > > > It is based on previously sent [1] "[PATCH mlx5-next 00/24] Mass > > conversion to light mlx5 command interface" > > > > Thanks > > > > [1] https://lore.kernel.org/linux-rdma/20200420114136.264924-1-leon@xxxxxxxxxx > > > > Leon Romanovsky (18): > > RDMA/mlx5: Organize QP types checks in one place > > RDMA/mlx5: Delete impossible GSI port check > > RDMA/mlx5: Perform check if QP creation flow is valid > > RDMA/mlx5: Prepare QP allocation for future removal > > RDMA/mlx5: Avoid setting redundant NULL for XRC QPs > > RDMA/mlx5: Set QP subtype immediately when it is known > > RDMA/mlx5: Separate create QP flows to be based on type > > RDMA/mlx5: Split scatter CQE configuration for DCT QP > > RDMA/mlx5: Update all DRIVER QP places to use QP subtype > > RDMA/mlx5: Move DRIVER QP flags check into separate function > > RDMA/mlx5: Remove second copy from user for non RSS RAW QPs > > RDMA/mlx5: Initial separation of RAW_PACKET QP from common flow > > RDMA/mlx5: Delete create QP flags obfuscation > > RDMA/mlx5: Process create QP flags in one place > > RDMA/mlx5: Use flags_en mechanism to mark QP created with WQE > > signature > > RDMA/mlx5: Change scatter CQE flag to be set like other vendor flags > > RDMA/mlx5: Return all configured create flags through query QP > > RDMA/mlx5: Process all vendor flags in one place > > This seems reasonable, can you send it so it applies without other > series? Maybe it is doable, but part II needs [1] as pre-requirement. Do you anyway prefer me to do it? Thanks > > Jason