From: Timur Tabi <timur@freescale.com>
To: Markus Rechberger <markus.rechberger@amd.com>,
Greg Kroah-Hartman <gregkh@suse.de>,
PowerPC dev list <Linuxppc-dev@ozlabs.org>
Subject: Fix Firmware class name collision
Date: Tue, 04 Dec 2007 17:45:48 -0600 [thread overview]
Message-ID: <4755E6AC.9020808@freescale.com> (raw)
Markus and Greg,
I've found a problem with this patch that probably affects a number of embedded
PowerPC systems:
http://marc.info/?l=linux-kernel&m=119222892713518&w=2
The problem is that the device name for many PowerPC SoC devices is based on the
physical address. So we have stuff like this:
# ls -l /sys/devices/
drwxr-xr-x 9 root root 0 Nov 9 17:29 e0000000.soc8323
drwxr-xr-x 11 root root 0 Nov 9 17:22 e0100000.qe
[snip]
# ls -l /sys/devices/e0000000.soc8323/
drwxr-xr-x 2 root root 0 Nov 9 17:34 e0000200.wdt
drwxr-xr-x 2 root root 0 Nov 9 17:34 e0000700.pic
drwxr-xr-x 2 root root 0 Nov 9 17:34 e0001400.par_io
drwxr-xr-x 2 root root 0 Nov 9 17:34 e0003000.i2c
drwxr-xr-x 2 root root 0 Nov 9 17:34 e0004500.serial
drwxr-xr-x 2 root root 0 Nov 9 17:34 e0004600.serial
drwxr-xr-x 2 root root 0 Nov 9 17:34 e0030000.crypto
[snip]
With this patch, the device names in /sys/class/firmware look like this:
# ls -l /sys/class/firmware/
drwxr-xr-x 2 root root 0 Nov 9 17:37 firmware-e0102400.u
-rw-r--r-- 1 root root 4096 Nov 9 17:22 timeout
In other words, the only thing you get is the first letter of the device name.
You used to get the whole name. The physical address obviously isn't very helpful.
The problem is the size of the string is only 20 characters:
static inline void fw_setup_device_id(struct device *f_dev, struct device *dev)
{
snprintf(f_dev->bus_id, BUS_ID_SIZE, "firmware-%s", dev->bus_id);
}
Now, there are two solutions:
1) Change the PowerPC device names from physical_address.device_name to
device_name.physical_address (so that e0102400.ucc becomes ucc.e0102400)
2) Change fw_setup_device_id() to something like this:
snprintf(f_dev->bus_id, BUS_ID_SIZE, "fw-%s", dev->bus_id);
which do you think is a better idea?
--
Timur Tabi
Linux kernel developer at Freescale
next reply other threads:[~2007-12-04 23:45 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-04 23:45 Timur Tabi [this message]
2007-12-04 23:52 ` Fix Firmware class name collision Scott Wood
2007-12-05 1:28 ` Timur Tabi
2007-12-14 22:40 ` Greg KH
2007-12-14 22:46 ` Timur Tabi
2007-12-15 6:14 ` Benjamin Herrenschmidt
2007-12-15 6:39 ` Greg KH
2007-12-15 15:46 ` Kay Sievers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4755E6AC.9020808@freescale.com \
--to=timur@freescale.com \
--cc=Linuxppc-dev@ozlabs.org \
--cc=gregkh@suse.de \
--cc=markus.rechberger@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).