public inbox for linux-usb@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] usb: typec: ps883x: Fix Oops at unbind
@ 2026-03-13 15:55 Mostafa Saleh
  2026-03-16 10:53 ` Konrad Dybcio
  2026-03-16 10:53 ` Konrad Dybcio
  0 siblings, 2 replies; 3+ messages in thread
From: Mostafa Saleh @ 2026-03-13 15:55 UTC (permalink / raw)
  To: linux-usb, linux-kernel
  Cc: heikki.krogerus, gregkh, konrad.dybcio, jack.pham, Mostafa Saleh

When trying to unbind a device in order to bind to it vfio-platform as:

  echo bc0000.geniqup  > /sys/bus/platform/devices/bc0000.geniqup/driver/unbind

I get the following Oops:

[  436.478639] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020
[  436.487762] Mem abort info:
[  436.490716]   ESR = 0x0000000096000004
[  436.494595]   EC = 0x25: DABT (current EL), IL = 32 bits
[  436.500071]   SET = 0, FnV = 0
[  436.503250]   EA = 0, S1PTW = 0
[  436.506505]   FSC = 0x04: level 0 translation fault
[  436.511533] Data abort info:
[  436.514558]   ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
[  436.520215]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[  436.525436]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[  436.530918] user pgtable: 4k pages, 48-bit VAs, pgdp=00000008861a9000
[  436.537554] [0000000000000020] pgd=0000000000000000, p4d=0000000000000000
[  436.544548] Internal error: Oops: 0000000096000004 [#1]  SMP
[  436.550374] Modules linked in:
[  436.553542] CPU: 2 UID: 0 PID: 671 Comm: bash Tainted: G        W           7.0.0-rc3-g56fcdd0911a5-dirty #2 PREEMPT
[  436.564440] Tainted: [W]=WARN
[  436.567515] Hardware name: LENOVO 91B6CTO1WW/3796, BIOS O6NKT3BA 05/02/2025
[  436.574675] pstate: 21400005 (nzCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
[  436.581841] pc : ps883x_retimer_remove+0x14/0x94
[  436.586605] lr : i2c_device_remove+0x28/0x84
[  436.591017] sp : ffff8000847137c0

That's because the ps883x_retimer_remove() retrieves the driver data
from i2c_get_clientdata() which was never set at probe. So, add
i2c_set_clientdata() at the end of the probe.

Signed-off-by: Mostafa Saleh <smostafa@google.com>
---
 drivers/usb/typec/mux/ps883x.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/typec/mux/ps883x.c b/drivers/usb/typec/mux/ps883x.c
index 5f2879749769..1256252eceed 100644
--- a/drivers/usb/typec/mux/ps883x.c
+++ b/drivers/usb/typec/mux/ps883x.c
@@ -444,6 +444,7 @@ static int ps883x_retimer_probe(struct i2c_client *client)
 		goto err_switch_unregister;
 	}
 
+	i2c_set_clientdata(client, retimer);
 	return 0;
 
 err_switch_unregister:
-- 
2.53.0.851.ga537e3e6e9-goog


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] usb: typec: ps883x: Fix Oops at unbind
  2026-03-13 15:55 [PATCH] usb: typec: ps883x: Fix Oops at unbind Mostafa Saleh
@ 2026-03-16 10:53 ` Konrad Dybcio
  2026-03-16 10:53 ` Konrad Dybcio
  1 sibling, 0 replies; 3+ messages in thread
From: Konrad Dybcio @ 2026-03-16 10:53 UTC (permalink / raw)
  To: Mostafa Saleh, linux-usb, linux-kernel; +Cc: heikki.krogerus, gregkh, jack.pham

On 3/13/26 4:55 PM, Mostafa Saleh wrote:
> When trying to unbind a device in order to bind to it vfio-platform as:
> 
>   echo bc0000.geniqup  > /sys/bus/platform/devices/bc0000.geniqup/driver/unbind
> 
> I get the following Oops:

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] usb: typec: ps883x: Fix Oops at unbind
  2026-03-13 15:55 [PATCH] usb: typec: ps883x: Fix Oops at unbind Mostafa Saleh
  2026-03-16 10:53 ` Konrad Dybcio
@ 2026-03-16 10:53 ` Konrad Dybcio
  1 sibling, 0 replies; 3+ messages in thread
From: Konrad Dybcio @ 2026-03-16 10:53 UTC (permalink / raw)
  To: Mostafa Saleh, linux-usb, linux-kernel; +Cc: heikki.krogerus, gregkh, jack.pham

On 3/13/26 4:55 PM, Mostafa Saleh wrote:
> When trying to unbind a device in order to bind to it vfio-platform as:
> 
>   echo bc0000.geniqup  > /sys/bus/platform/devices/bc0000.geniqup/driver/unbind
> 
> I get the following Oops:
> 
> [  436.478639] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020
> [  436.487762] Mem abort info:
> [  436.490716]   ESR = 0x0000000096000004
> [  436.494595]   EC = 0x25: DABT (current EL), IL = 32 bits
> [  436.500071]   SET = 0, FnV = 0
> [  436.503250]   EA = 0, S1PTW = 0
> [  436.506505]   FSC = 0x04: level 0 translation fault
> [  436.511533] Data abort info:
> [  436.514558]   ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
> [  436.520215]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
> [  436.525436]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
> [  436.530918] user pgtable: 4k pages, 48-bit VAs, pgdp=00000008861a9000
> [  436.537554] [0000000000000020] pgd=0000000000000000, p4d=0000000000000000
> [  436.544548] Internal error: Oops: 0000000096000004 [#1]  SMP
> [  436.550374] Modules linked in:
> [  436.553542] CPU: 2 UID: 0 PID: 671 Comm: bash Tainted: G        W           7.0.0-rc3-g56fcdd0911a5-dirty #2 PREEMPT
> [  436.564440] Tainted: [W]=WARN
> [  436.567515] Hardware name: LENOVO 91B6CTO1WW/3796, BIOS O6NKT3BA 05/02/2025
> [  436.574675] pstate: 21400005 (nzCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
> [  436.581841] pc : ps883x_retimer_remove+0x14/0x94
> [  436.586605] lr : i2c_device_remove+0x28/0x84
> [  436.591017] sp : ffff8000847137c0
> 
> That's because the ps883x_retimer_remove() retrieves the driver data
> from i2c_get_clientdata() which was never set at probe. So, add
> i2c_set_clientdata() at the end of the probe.
> 
> Signed-off-by: Mostafa Saleh <smostafa@google.com>
> ---

Fixes: 257a087c8b52 ("usb: typec: Add support for Parade PS8830 Type-C Retimer")

Konrad

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-03-16 10:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-13 15:55 [PATCH] usb: typec: ps883x: Fix Oops at unbind Mostafa Saleh
2026-03-16 10:53 ` Konrad Dybcio
2026-03-16 10:53 ` Konrad Dybcio

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox