lkml.org 
[lkml]   [2021]   [Jan]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] PCI: dwc: layerscape: convert to builtin_platform_driver()
    Am 2021-01-21 12:01, schrieb Geert Uytterhoeven:
    > Hi Saravana,
    >
    > On Thu, Jan 21, 2021 at 1:05 AM Saravana Kannan <saravanak@google.com>
    > wrote:
    >> On Wed, Jan 20, 2021 at 3:53 PM Michael Walle <michael@walle.cc>
    >> wrote:
    >> > Am 2021-01-20 20:47, schrieb Saravana Kannan:
    >> > > On Wed, Jan 20, 2021 at 11:28 AM Michael Walle <michael@walle.cc>
    >> > > wrote:
    >> > >>
    >> > >> [RESEND, fat-fingered the buttons of my mail client and converted
    >> > >> all CCs to BCCs :(]
    >> > >>
    >> > >> Am 2021-01-20 20:02, schrieb Saravana Kannan:
    >> > >> > On Wed, Jan 20, 2021 at 6:24 AM Rob Herring <robh@kernel.org> wrote:
    >> > >> >>
    >> > >> >> On Wed, Jan 20, 2021 at 4:53 AM Michael Walle <michael@walle.cc>
    >> > >> >> wrote:
    >> > >> >> >
    >> > >> >> > fw_devlink will defer the probe until all suppliers are ready. We can't
    >> > >> >> > use builtin_platform_driver_probe() because it doesn't retry after probe
    >> > >> >> > deferral. Convert it to builtin_platform_driver().
    >> > >> >>
    >> > >> >> If builtin_platform_driver_probe() doesn't work with fw_devlink, then
    >> > >> >> shouldn't it be fixed or removed?
    >> > >> >
    >> > >> > I was actually thinking about this too. The problem with fixing
    >> > >> > builtin_platform_driver_probe() to behave like
    >> > >> > builtin_platform_driver() is that these probe functions could be
    >> > >> > marked with __init. But there are also only 20 instances of
    >> > >> > builtin_platform_driver_probe() in the kernel:
    >> > >> > $ git grep ^builtin_platform_driver_probe | wc -l
    >> > >> > 20
    >> > >> >
    >> > >> > So it might be easier to just fix them to not use
    >> > >> > builtin_platform_driver_probe().
    >> > >> >
    >> > >> > Michael,
    >> > >> >
    >> > >> > Any chance you'd be willing to help me by converting all these to
    >> > >> > builtin_platform_driver() and delete builtin_platform_driver_probe()?
    >> > >>
    >> > >> If it just moving the probe function to the _driver struct and
    >> > >> remove the __init annotations. I could look into that.
    >> > >
    >> > > Yup. That's pretty much it AFAICT.
    >> > >
    >> > > builtin_platform_driver_probe() also makes sure the driver doesn't ask
    >> > > for async probe, etc. But I doubt anyone is actually setting async
    >> > > flags and still using builtin_platform_driver_probe().
    >> >
    >> > Hasn't module_platform_driver_probe() the same problem? And there
    >> > are ~80 drivers which uses that.
    >>
    >> Yeah. The biggest problem with all of these is the __init markers.
    >> Maybe some familiar with coccinelle can help?
    >
    > And dropping them will increase memory usage.

    Although I do have the changes for the builtin_platform_driver_probe()
    ready, I don't think it makes much sense to send these unless we agree
    on the increased memory footprint. While there are just a few
    builtin_platform_driver_probe() and memory increase _might_ be
    negligible, there are many more module_platform_driver_probe().

    -michael

    \
     
     \ /
      Last update: 2021-01-25 21:19    [W:2.494 / U:0.116 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site