ChanServ changed the topic of #armlinux to: ARM kernel talk [Upstream kernel, find your vendor forums for questions about their kernels] | https://libera.irclog.whitequark.org/armlinux
apritzel_ has quit [Ping timeout: 255 seconds]
cbeznea has joined #armlinux
monstr has joined #armlinux
monstr has quit [Ping timeout: 252 seconds]
apritzel_ has joined #armlinux
gclement has joined #armlinux
apritzel_ has quit [Ping timeout: 264 seconds]
headless has joined #armlinux
iivanov has joined #armlinux
sszy has joined #armlinux
vingu has quit [Quit: Leaving.]
vingu has joined #armlinux
iivanov has quit [Remote host closed the connection]
iivanov has joined #armlinux
frieder has joined #armlinux
gclement has quit [Ping timeout: 252 seconds]
luispm has joined #armlinux
gclement has joined #armlinux
headless has quit [Quit: Konversation terminated!]
iivanov has quit [Remote host closed the connection]
<linusw__>
mwalle: I've been planning to do so, just didn't have time & equipment at the same moment!
<mwalle>
linusw__: ok, great :)
monstr has joined #armlinux
lain6141 has quit [Read error: Connection reset by peer]
lain6141 has joined #armlinux
iivanov has quit [Remote host closed the connection]
punit has joined #armlinux
iivanov has joined #armlinux
rvalue has quit [Remote host closed the connection]
rvalue has joined #armlinux
iivanov has quit [Remote host closed the connection]
sfo has quit [Remote host closed the connection]
lane has quit [Remote host closed the connection]
tom5760 has quit [Remote host closed the connection]
bryanb has quit [Remote host closed the connection]
tleb has quit [Remote host closed the connection]
d4ve has quit [Write error: Broken pipe]
lane has joined #armlinux
d4ve has joined #armlinux
sfo has joined #armlinux
tleb has joined #armlinux
bryanb has joined #armlinux
tom5760 has joined #armlinux
gclement has quit [Ping timeout: 255 seconds]
mripard has joined #armlinux
iivanov has joined #armlinux
marc|gonzalez has joined #armlinux
gclement has joined #armlinux
<marc|gonzalez>
Consider a probe function for a platform device, foo_probe(struct platform_device *pdev). If we do platform_set_drvdata(pdev, drvdata); in the function, but the probe fails, and drvdata is devm_freed, pdev will have a dangling pointer. Is there any risk some code will try accessing this memory?
psydroid2 has joined #armlinux
<pinchartl>
marc|gonzalez: not in core code
<broonie>
marc|gonzalez: The driver would have to try to access drvdata before setting it in probe().
<marc|gonzalez>
pinchartl: thanks!
<pinchartl>
and device_unbind_cleanup() sets it back to NULL
<pinchartl>
device_unbind_cleanup() is called in the failure patch of really_probe()
<pinchartl>
so I think you're safe
<marc|gonzalez>
I was concerned about the following code pattern:
<marc|gonzalez>
p = devm_kzalloc(...); platform_set_drvdata(pdev, p); other_stuff() if (err) return err;
<marc|gonzalez>
actually, same thing for i2c_client, with s/platform_set_drvdata/i2c_set_clientdata/
<marc|gonzalez>
But it seems like a fairly common code pattern
<pinchartl>
marc|gonzalez: core code doesn't dereference the drvdata pointer. furthermore, if the probe function fails, really_probe() will call device_unbind_cleanup(), which will set the pointer to NULL
<marc|gonzalez>
thanks for the definitive answer!
<pinchartl>
you have the source code, you can check too :-)
gclement has quit [Ping timeout: 256 seconds]
<javierm_>
pinchartl: in fairness, the dd core / probe deferral path is not that easy to follow :)
<pinchartl>
true
* pinchartl
needs to remember that not everybody speaks dd core as a second language
<javierm_>
:D
<mripard>
pinchartl: tbf, I'm not sure anyone does
gclement has joined #armlinux
* ukleinek
would have claimed the same as pinchartl
headless has joined #armlinux
<javierm_>
mripard: I *thought* that did at least as a 3rd lang but then realized that probe deferrals timeout now for some subsystems... so agree with you that probably is hard to claim that
System_Error has quit [Remote host closed the connection]
System_Error has joined #armlinux
lain6141 has quit [Read error: Connection reset by peer]
lain6141 has joined #armlinux
lain6141 has quit [Changing host]
lain6141 has joined #armlinux
frieder has quit [Quit: Leaving]
gclement has quit [Ping timeout: 255 seconds]
<marc|gonzalez>
pinchartl: I don't understand simple-bridge.yaml (the compatible prop's definition)
<marc|gonzalez>
First option is: either ti,ths8134a OR ti,ths8134b, followed by mandatory ti,ths8134
<marc|gonzalez>
second option is foo or bar
<marc|gonzalez>
how is 3rd option different semantically from option 2?
<marc|gonzalez>
I'll take my question to #device-tree
<marc|gonzalez>
animesh explained, option 2 was foo AND bar
iivanov has quit [Remote host closed the connection]