Re: [REGRESSION] 6.6.141 s390x build failure in s390/cio due to missing driver_override infrastructure

Natanael Copa <[email protected]>
Newsgroups dev.linux.lists.regressions,org.kernel.vger.linux-kernel,org.kernel.vger.linux-s390,org.kernel.vger.stable
Message-ID <[email protected]>
On Tue, 26 May 2026 07:35:06 -0400
Sasha Levin <[email protected]> wrote:

> > v6.6.141 fails to build on s390x with
> >
> >   drivers/s390/cio/css.c: error: implicit declaration of function
> >     'device_match_driver_override'
> >   drivers/s390/cio/css.c: error: 'struct bus_type' has no member named
> >     'driver_override'
> >
> > The s390/cio change (c4295487124f, upstream ac4d8bb6e2e1) was queued
> > without its driver-core prerequisite cb3d1049f4ea ("driver core:
> > generalize driver_override in struct device").
> >
> > Could you backport cb3d1049f4ea to 6.6.y, or revert c4295487124f?  
> 
> Thanks for the report and the analysis.
> 
> The driver-core prerequisite (cb3d1049f4ea) is already queued for
> 6.6.y - The companion bdddb54c533f ("driver core: platform: use generic
> driver_override infrastructure") is queued too. Once 6.6.142 ships the build
> error should resolve.
> 
> Newer LTS branches (6.12/6.18/7.0) already have the prerequisite as
> an ancestor, so only 6.6.y was affected.

FYI. We also needed this for the build to pass:

diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index 93307ca75c10..57cbba03beb8 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -1322,7 +1322,7 @@ static int purge_fn(struct subchannel *sch, void *data)
 {
        struct ccw_device *cdev;
 
-       spin_lock_irq(sch->lock);
+       spin_lock_irq(&sch->lock);
        if (sch->st != SUBCHANNEL_TYPE_IO || !sch->schib.pmcw.dnv)
                goto unlock;
 
@@ -1345,7 +1345,7 @@ static int purge_fn(struct subchannel *sch, void *data)
                      sch->schib.pmcw.dev, cdev ? "" : " (no cdev)");
 
 unlock:
-       spin_unlock_irq(sch->lock);
+       spin_unlock_irq(&sch->lock);
        /* Abort loop in case of pending signal. */
        if (signal_pending(current))
                return -EINTR;


-nc
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.