* [PATCH iwl-net] ice: fix posted write support for sideband queue operations
@ 2026-03-10 11:06 Przemyslaw Korba
2026-03-10 11:17 ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-03-11 8:06 ` Dawid Osuchowski
0 siblings, 2 replies; 8+ messages in thread
From: Przemyslaw Korba @ 2026-03-10 11:06 UTC (permalink / raw)
To: intel-wired-lan
Cc: netdev, anthony.l.nguyen, przemyslaw.kitszel, Przemyslaw Korba
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 <przemyslaw.korba@intel.com>
---
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;
};
/* rq event information */
base-commit: acd2abc52dea91c3bc3d1b6dd8a92b9631d48bbf
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-net] ice: fix posted write support for sideband queue operations
2026-03-10 11:06 [PATCH iwl-net] ice: fix posted write support for sideband queue operations Przemyslaw Korba
@ 2026-03-10 11:17 ` Loktionov, Aleksandr
2026-03-11 13:09 ` Korba, Przemyslaw
2026-03-13 17:51 ` Tony Nguyen
2026-03-11 8:06 ` Dawid Osuchowski
1 sibling, 2 replies; 8+ messages in thread
From: Loktionov, Aleksandr @ 2026-03-10 11:17 UTC (permalink / raw)
To: Korba, Przemyslaw, intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org, Nguyen, Anthony L, Kitszel, Przemyslaw,
Korba, Przemyslaw
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Przemyslaw Korba
> Sent: Tuesday, March 10, 2026 12:07 PM
> To: intel-wired-lan@lists.osuosl.org
> Cc: netdev@vger.kernel.org; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw
> <przemyslaw.kitszel@intel.com>; Korba, Przemyslaw
> <przemyslaw.korba@intel.com>
> 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 <przemyslaw.korba@intel.com>
> ---
> 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 */.
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
> };
>
> /* rq event information */
>
> base-commit: acd2abc52dea91c3bc3d1b6dd8a92b9631d48bbf
> --
> 2.43.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-wired-lan] [PATCH iwl-net] ice: fix posted write support for sideband queue operations
2026-03-10 11:06 [PATCH iwl-net] ice: fix posted write support for sideband queue operations Przemyslaw Korba
2026-03-10 11:17 ` [Intel-wired-lan] " Loktionov, Aleksandr
@ 2026-03-11 8:06 ` Dawid Osuchowski
2026-03-11 12:48 ` Korba, Przemyslaw
1 sibling, 1 reply; 8+ messages in thread
From: Dawid Osuchowski @ 2026-03-11 8:06 UTC (permalink / raw)
To: Przemyslaw Korba, intel-wired-lan
Cc: netdev, anthony.l.nguyen, przemyslaw.kitszel
On 2026-03-10 12:06 PM, Przemyslaw Korba wrote:
> 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 <przemyslaw.korba@intel.com>
Hey Przemek,
Similarly to what I posted in response to your patch "[PATCH iwl-next]
i40e: PTP: set supported flags in ptp_clock_info", you are missing
Reviewed-by tags from internal review. I see you did send for internal
review but nobody actually provided an RB tag (at least not directly on
the internal list).
-Dawid
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-net] ice: fix posted write support for sideband queue operations
2026-03-11 8:06 ` Dawid Osuchowski
@ 2026-03-11 12:48 ` Korba, Przemyslaw
0 siblings, 0 replies; 8+ messages in thread
From: Korba, Przemyslaw @ 2026-03-11 12:48 UTC (permalink / raw)
To: Dawid Osuchowski, intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org, Nguyen, Anthony L, Kitszel, Przemyslaw
> -----Original Message-----
> From: Dawid Osuchowski <dawid.osuchowski@linux.intel.com>
> Sent: Wednesday, March 11, 2026 9:07 AM
> To: Korba, Przemyslaw <przemyslaw.korba@intel.com>; intel-wired-lan@lists.osuosl.org
> Cc: netdev@vger.kernel.org; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>
> Subject: Re: [Intel-wired-lan] [PATCH iwl-net] ice: fix posted write support for sideband queue operations
>
> On 2026-03-10 12:06 PM, Przemyslaw Korba wrote:
> > 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 <przemyslaw.korba@intel.com>
>
> Hey Przemek,
>
> Similarly to what I posted in response to your patch "[PATCH iwl-next]
> i40e: PTP: set supported flags in ptp_clock_info", you are missing
> Reviewed-by tags from internal review. I see you did send for internal
> review but nobody actually provided an RB tag (at least not directly on
> the internal list).
>
> -Dawid
Hi, thank you for the review! Yes, I've been a bit too quick - got internal review, but did not receive reviewed-by tag. Will keep that in mind next time.
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-net] ice: fix posted write support for sideband queue operations
2026-03-10 11:17 ` [Intel-wired-lan] " Loktionov, Aleksandr
@ 2026-03-11 13:09 ` Korba, Przemyslaw
2026-03-13 17:51 ` Tony Nguyen
1 sibling, 0 replies; 8+ messages in thread
From: Korba, Przemyslaw @ 2026-03-11 13:09 UTC (permalink / raw)
To: Loktionov, Aleksandr, intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org, Nguyen, Anthony L, Kitszel, Przemyslaw
> -----Original Message-----
> From: Loktionov, Aleksandr <aleksandr.loktionov@intel.com>
> Sent: Tuesday, March 10, 2026 12:18 PM
> To: Korba, Przemyslaw <przemyslaw.korba@intel.com>; intel-wired-lan@lists.osuosl.org
> Cc: netdev@vger.kernel.org; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Korba,
> Przemyslaw <przemyslaw.korba@intel.com>
> Subject: RE: [Intel-wired-lan] [PATCH iwl-net] ice: fix posted write support for sideband queue operations
>
>
>
> > -----Original Message-----
> > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> > Of Przemyslaw Korba
> > Sent: Tuesday, March 10, 2026 12:07 PM
> > To: intel-wired-lan@lists.osuosl.org
> > Cc: netdev@vger.kernel.org; Nguyen, Anthony L
> > <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw
> > <przemyslaw.kitszel@intel.com>; Korba, Przemyslaw
> > <przemyslaw.korba@intel.com>
> > 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 <przemyslaw.korba@intel.com>
> > ---
> > 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 <aleksandr.loktionov@intel.com>
>
> > };
> >
> > /* rq event information */
> >
> > base-commit: acd2abc52dea91c3bc3d1b6dd8a92b9631d48bbf
> > --
> > 2.43.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-wired-lan] [PATCH iwl-net] ice: fix posted write support for sideband queue operations
2026-03-10 11:17 ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-03-11 13:09 ` Korba, Przemyslaw
@ 2026-03-13 17:51 ` Tony Nguyen
2026-03-13 19:49 ` Nitka, Grzegorz
2026-03-19 11:18 ` Korba, Przemyslaw
1 sibling, 2 replies; 8+ messages in thread
From: Tony Nguyen @ 2026-03-13 17:51 UTC (permalink / raw)
To: Loktionov, Aleksandr, Korba, Przemyslaw,
intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org, Kitszel, Przemyslaw
On 3/10/2026 4:17 AM, Loktionov, Aleksandr wrote:
>
>
>> -----Original Message-----
>> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
>> Of Przemyslaw Korba
>> Sent: Tuesday, March 10, 2026 12:07 PM
>> To: intel-wired-lan@lists.osuosl.org
>> Cc: netdev@vger.kernel.org; Nguyen, Anthony L
>> <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw
>> <przemyslaw.kitszel@intel.com>; Korba, Przemyslaw
>> <przemyslaw.korba@intel.com>
>> 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 <przemyslaw.korba@intel.com>
>> ---
>> 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};
Please init without the 0 i.e. {}
>> 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 */.
I think the name is a bit misleading. To not wait, we need to set
'postpone'? I would think postpone means we want to wait. If we want to
represent functionality, maybe something like 'skip_wait' or if we
wanted to match the documentation, perhaps 'posted' as Alex suggested.
Thanks,
Tony
> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
>
>> };
>>
>> /* rq event information */
>>
>> base-commit: acd2abc52dea91c3bc3d1b6dd8a92b9631d48bbf
>> --
>> 2.43.0
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-net] ice: fix posted write support for sideband queue operations
2026-03-13 17:51 ` Tony Nguyen
@ 2026-03-13 19:49 ` Nitka, Grzegorz
2026-03-19 11:18 ` Korba, Przemyslaw
1 sibling, 0 replies; 8+ messages in thread
From: Nitka, Grzegorz @ 2026-03-13 19:49 UTC (permalink / raw)
To: Nguyen, Anthony L, Loktionov, Aleksandr, Korba, Przemyslaw,
intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org, Kitszel, Przemyslaw
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of
> Tony Nguyen
> Sent: Friday, March 13, 2026 6:51 PM
> To: Loktionov, Aleksandr <aleksandr.loktionov@intel.com>; Korba,
> Przemyslaw <przemyslaw.korba@intel.com>; intel-wired-
> lan@lists.osuosl.org
> Cc: netdev@vger.kernel.org; Kitszel, Przemyslaw
> <przemyslaw.kitszel@intel.com>
> Subject: Re: [Intel-wired-lan] [PATCH iwl-net] ice: fix posted write support
> for sideband queue operations
>
>
>
> On 3/10/2026 4:17 AM, Loktionov, Aleksandr wrote:
> >
> >
> >> -----Original Message-----
> >> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> >> Of Przemyslaw Korba
> >> Sent: Tuesday, March 10, 2026 12:07 PM
> >> To: intel-wired-lan@lists.osuosl.org
> >> Cc: netdev@vger.kernel.org; Nguyen, Anthony L
> >> <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw
> >> <przemyslaw.kitszel@intel.com>; Korba, Przemyslaw
> >> <przemyslaw.korba@intel.com>
> >> 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 <przemyslaw.korba@intel.com>
> >> ---
> >> 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};
>
> Please init without the 0 i.e. {}
>
> >> 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 */.
>
> I think the name is a bit misleading. To not wait, we need to set
> 'postpone'? I would think postpone means we want to wait. If we want to
> represent functionality, maybe something like 'skip_wait' or if we
> wanted to match the documentation, perhaps 'posted' as Alex suggested.
>
> Thanks,
> Tony
>
I went over the specification and 'posted' term is used consistently.
So I'm inclined to Alex's suggestion.
Thanks for the patch!
Grzegorz.
> > Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
> >
> >> };
> >>
> >> /* rq event information */
> >>
> >> base-commit: acd2abc52dea91c3bc3d1b6dd8a92b9631d48bbf
> >> --
> >> 2.43.0
> >
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [Intel-wired-lan] [PATCH iwl-net] ice: fix posted write support for sideband queue operations
2026-03-13 17:51 ` Tony Nguyen
2026-03-13 19:49 ` Nitka, Grzegorz
@ 2026-03-19 11:18 ` Korba, Przemyslaw
1 sibling, 0 replies; 8+ messages in thread
From: Korba, Przemyslaw @ 2026-03-19 11:18 UTC (permalink / raw)
To: Nguyen, Anthony L, Loktionov, Aleksandr,
intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org, Kitszel, Przemyslaw
>
> On 3/10/2026 4:17 AM, Loktionov, Aleksandr wrote:
> >
> >
> >> -----Original Message-----
> >> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> >> Of Przemyslaw Korba
> >> Sent: Tuesday, March 10, 2026 12:07 PM
> >> To: intel-wired-lan@lists.osuosl.org
> >> Cc: netdev@vger.kernel.org; Nguyen, Anthony L
> >> <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw
> >> <przemyslaw.kitszel@intel.com>; Korba, Przemyslaw
> >> <przemyslaw.korba@intel.com>
> >> 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 <przemyslaw.korba@intel.com>
> >> ---
> >> 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};
>
> Please init without the 0 i.e. {}
>
> >> 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 */.
>
> I think the name is a bit misleading. To not wait, we need to set
> 'postpone'? I would think postpone means we want to wait. If we want to
> represent functionality, maybe something like 'skip_wait' or if we
> wanted to match the documentation, perhaps 'posted' as Alex suggested.
>
Good points, v2 send - thank you guys!
> Thanks,
> Tony
>
> > Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
> >
> >> };
> >>
> >> /* rq event information */
> >>
> >> base-commit: acd2abc52dea91c3bc3d1b6dd8a92b9631d48bbf
> >> --
> >> 2.43.0
> >
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-03-19 11:18 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-10 11:06 [PATCH iwl-net] ice: fix posted write support for sideband queue operations Przemyslaw Korba
2026-03-10 11:17 ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-03-11 13:09 ` Korba, Przemyslaw
2026-03-13 17:51 ` Tony Nguyen
2026-03-13 19:49 ` Nitka, Grzegorz
2026-03-19 11:18 ` Korba, Przemyslaw
2026-03-11 8:06 ` Dawid Osuchowski
2026-03-11 12:48 ` Korba, Przemyslaw
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox