From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932179AbcGOIsc (ORCPT ); Fri, 15 Jul 2016 04:48:32 -0400 Received: from mx2.suse.de ([195.135.220.15]:47147 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750996AbcGOIs3 (ORCPT ); Fri, 15 Jul 2016 04:48:29 -0400 Message-ID: <1468572250.2195.11.camel@suse.com> Subject: Re: [PATCH 1/2] usb: typec: Add USB Power Delivery sink port support From: Oliver Neukum To: Felipe Balbi Cc: Bin Gao , Heikki Krogerus , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Bin Gao , Chandra Sekhar Anagani Date: Fri, 15 Jul 2016 10:44:10 +0200 In-Reply-To: <87zipjgy6n.fsf@linux.intel.com> References: <20160715021405.GB128987@worksta> <87zipjgy6n.fsf@linux.intel.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.11 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 2016-07-15 at 10:25 +0300, Felipe Balbi wrote: > > +int pd_sink_queue_msg(struct pd_sink_msg *msg) > > +{ > > + unsigned long flags; > > + struct pd_sink_port *port; > > + > > + if (msg->port < 0 || msg->port >= MAX_NR_SINK_PORTS) { > > + pr_err("Invalid port number\n"); > > + return -EINVAL; > > + } > > + > > + port = sink_ports[msg->port]; > > + > > + spin_lock_irqsave(&port->rx_lock, flags); > > + list_add_tail(&msg->list, &port->rx_list); > > + spin_unlock_irqrestore(&port->rx_lock, flags); > > + > > + queue_work(port->rx_wq, &port->rx_work); > > can we really queue several messages at a time? It seems unfeasible to > me. It's not like we can queue several power request in a role. Why do > you need this workqueue? Why don't you process message here, in place? A reset can come at any time. Regards Oliver