> -----Original Message----- > From: Loktionov, Aleksandr <[email protected]> > Sent: Tuesday, March 10, 2026 12:18 PM > To: Korba, Przemyslaw <[email protected]>; > [email protected] > Cc: [email protected]; Nguyen, Anthony L <[email protected]>; > Kitszel, Przemyslaw <[email protected]>; Korba, > Przemyslaw <[email protected]> > Subject: RE: [Intel-wired-lan] [PATCH iwl-net] ice: fix posted write support > for sideband queue operations > > > > > -----Original Message----- > > From: Intel-wired-lan <[email protected]> On Behalf > > Of Przemyslaw Korba > > Sent: Tuesday, March 10, 2026 12:07 PM > > To: [email protected] > > Cc: [email protected]; Nguyen, Anthony L > > <[email protected]>; Kitszel, Przemyslaw > > <[email protected]>; Korba, Przemyslaw > > <[email protected]> > > Subject: [Intel-wired-lan] [PATCH iwl-net] ice: fix posted write > > support for sideband queue operations > > > > On E830, PTP time adjustment commands sent via SBQ don't generate > > completion responses, causing the driver to timeout waiting and return > > -EIO, when trying: > > > > phc_ctl eth8 get adj 2 get > > dmesg: ice 0000:1a:00.0: PTP failed to adjust time, err -5 > > > > Add support for posted mode not to wait for completion response. > > > > Fixes: 8f5ee3c477a8 ("ice: add support for sideband messages") > > Signed-off-by: Przemyslaw Korba <[email protected]> > > --- > > drivers/net/ethernet/intel/ice/ice_common.c | 7 ++++++- > > drivers/net/ethernet/intel/ice/ice_controlq.c | 4 ++++ > > drivers/net/ethernet/intel/ice/ice_controlq.h | 1 + > > 3 files changed, 11 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/net/ethernet/intel/ice/ice_common.c > > b/drivers/net/ethernet/intel/ice/ice_common.c > > index 8866902efb91..df9e5422b981 100644 > > --- a/drivers/net/ethernet/intel/ice/ice_common.c > > +++ b/drivers/net/ethernet/intel/ice/ice_common.c > > @@ -1765,6 +1765,7 @@ int ice_sbq_rw_reg(struct ice_hw *hw, struct > > ice_sbq_msg_input *in, u16 flags) { > > struct ice_sbq_cmd_desc desc = {0}; > > struct ice_sbq_msg_req msg = {0}; > > + struct ice_sq_cd cd = {0}; > > u16 msg_len; > > int status; > > > > @@ -1785,10 +1786,14 @@ int ice_sbq_rw_reg(struct ice_hw *hw, struct > > ice_sbq_msg_input *in, u16 flags) > > */ > > msg_len -= sizeof(msg.data); > > > > + if (in->opcode == ice_sbq_msg_wr) > > + cd.postpone = 1; > > + > > desc.flags = cpu_to_le16(flags); > > desc.opcode = cpu_to_le16(ice_sbq_opc_neigh_dev_req); > > desc.param0.cmd_len = cpu_to_le16(msg_len); > > - status = ice_sbq_send_cmd(hw, &desc, &msg, msg_len, NULL); > > + status = ice_sbq_send_cmd(hw, &desc, &msg, msg_len, &cd); > > + > > if (!status && !in->opcode) > > in->data = le32_to_cpu > > (((struct ice_sbq_msg_cmpl *)&msg)->data); diff - > > -git a/drivers/net/ethernet/intel/ice/ice_controlq.c > > b/drivers/net/ethernet/intel/ice/ice_controlq.c > > index dcb837cadd18..5fb3a8441beb 100644 > > --- a/drivers/net/ethernet/intel/ice/ice_controlq.c > > +++ b/drivers/net/ethernet/intel/ice/ice_controlq.c > > @@ -1086,6 +1086,10 @@ ice_sq_send_cmd(struct ice_hw *hw, struct > > ice_ctl_q_info *cq, > > wr32(hw, cq->sq.tail, cq->sq.next_to_use); > > ice_flush(hw); > > > > + /* If the message is posted, don't wait for completion. */ > > + if (cd && cd->postpone) > > + goto sq_send_command_error; > > + > > /* Wait for the command to complete. If it finishes within the > > * timeout, copy the descriptor back to temp. > > */ > > diff --git a/drivers/net/ethernet/intel/ice/ice_controlq.h > > b/drivers/net/ethernet/intel/ice/ice_controlq.h > > index 788040dd662e..7c98d3a0314e 100644 > > --- a/drivers/net/ethernet/intel/ice/ice_controlq.h > > +++ b/drivers/net/ethernet/intel/ice/ice_controlq.h > > @@ -77,6 +77,7 @@ struct ice_ctl_q_ring { > > /* sq transaction details */ > > struct ice_sq_cd { > > struct libie_aq_desc *wb_desc; > > + u8 postpone : 1; > I'd recommend to rename postpone -> posted to match terminology /* posted > write */. >
Thanks for review! I would keep this naming to be consistent with OOT > Reviewed-by: Aleksandr Loktionov <[email protected]> > > > }; > > > > /* rq event information */ > > > > base-commit: acd2abc52dea91c3bc3d1b6dd8a92b9631d48bbf > > -- > > 2.43.0
