diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/udev/udev-063/fix-alignment.patch | 24 | ||||
-rw-r--r-- | packages/udev/udev_063.bb | 26 |
2 files changed, 42 insertions, 8 deletions
diff --git a/packages/udev/udev-063/fix-alignment.patch b/packages/udev/udev-063/fix-alignment.patch new file mode 100644 index 0000000000..8c7b8b5ac5 --- /dev/null +++ b/packages/udev/udev-063/fix-alignment.patch @@ -0,0 +1,24 @@ +diff --git a/udev_rules_parse.c b/udev_rules_parse.c +--- a/udev_rules_parse.c ++++ b/udev_rules_parse.c +@@ -241,6 +241,7 @@ static int add_to_rules(struct udev_rule + int valid; + char *linepos; + char *attr; ++ size_t padding; + int retval; + + /* get all the keys */ +@@ -506,6 +507,11 @@ static int add_to_rules(struct udev_rule + + /* grow buffer and add rule */ + rule_size = sizeof(struct udev_rule) + rule->bufsize; ++ padding = (sizeof(size_t) - rule_size % sizeof(size_t)) % sizeof(size_t); ++ dbg("add %zi padding bytes", padding); ++ rule_size += padding; ++ rule->bufsize += padding; ++ + rules->buf = realloc(rules->buf, rules->bufsize + rule_size); + if (!rules->buf) { + err("realloc failed"); + diff --git a/packages/udev/udev_063.bb b/packages/udev/udev_063.bb index 60340ca175..083a6bf88a 100644 --- a/packages/udev/udev_063.bb +++ b/packages/udev/udev_063.bb @@ -1,13 +1,23 @@ SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \ - file://tmpfs.patch;patch=1 \ - file://noasmlinkage.patch;patch=1 \ - file://flags.patch;patch=1 \ - file://init" + file://tmpfs.patch;patch=1 \ + file://noasmlinkage.patch;patch=1 \ + file://flags.patch;patch=1 \ + file://fix-alignment.patch;patch=1 \ + file://init" include udev.inc -PR = "r0" +PR = "r1" -#FIXME a) udevd doesn't start with our init script (the init script seems to be pretty oudated) -#FIXME b) lots of alignment errors when manually starting udevd -DEFAULT_PREFERENCE = "-1" +#FIXME UDEV MIGRATION PLAN: +#FIXME a) udevd is now a netlink daemon and needs to be started by the init script (ours is way too old) +#FIXME b) sbin/hotplug should no longer be called by the kernel, i.e. echo "" >/proc/sys/kernel/hotplug +#FIXME done c) until d) happens, udev will emulate hotplugd behaviour (see do_install_append() +#FIXME d) eventually hotplug should no longer be used at all, all agents shall be converted to udev rules + +EXTRA_OEMAKE = "EXTRAS=extras/run_directory/" + +do_install_append() { + install -m 0755 extras/run_directory/udev_run_hotplugd ${D}${sbindir}/ + echo RUN+="/sbin/udev_run_hotplugd" >>${D}${sysconfdir}/udev/rules.d/50-udev.rules +} |