lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <x494mh4qnwc.fsf@segfault.boston.devel.redhat.com> Date: Mon, 02 Nov 2015 13:03:47 -0500 From: Jeff Moyer <jmoyer@...hat.com> To: John Stultz <john.stultz@...aro.org> Cc: linux-kernel@...r.kernel.org, San Mehat <san@...gle.com>, Jens Axboe <axboe@...nel.dk>, Rom Lemarchand <romlem@...gle.com>, Android Kernel Team <kernel-team@...roid.com>, Dima Zavin <dima@...roid.com>, harald@...hat.com, kay@...hat.com Subject: Re: [PATCH] block: genhd: Add disk/partition specific uevent callbacks for partition info Hi John, John Stultz <john.stultz@...aro.org> writes: > From: San Mehat <san@...gle.com> > > This patch has been carried in the Android tree for quite some > time and is one of the few patches required to get a mainline > kernel up and running with an exsiting Android userspace. So I > wanted to submit it for review and consideration if it should > be merged. > > For disk devices, a new uevent parameter 'NPARTS' specifies the number > of partitions detected by the kernel. Partition devices get 'PARTN' which > specifies the partitions index in the table, and 'PARTNAME', which > specifies PARTNAME specifices the partition name of a partition device > > Android's userspace uses this for creating device node links from the > partition name and number: ie: > /dev/block/platform/soc/by-name/system > or > /dev/block/platform/soc/by-num/p1 > > One can see its usage here: > https://android.googlesource.com/platform/system/core/+/master/init/devices.cpp#355 > and > https://android.googlesource.com/platform/system/core/+/master/init/devices.cpp#494 Those links don't appear to use the NPARTS uevent parameter, unless I missed it. > Thoughts and feedback would be greatly appreciated! I can't say I have strong feelings one way or the other. I've CC'd Kay and Harald, hoping they might have an opinion. Cheers, Jeff > > Cc: Jens Axboe <axboe@...nel.dk> > Cc: Rom Lemarchand <romlem@...gle.com> > Cc: Android Kernel Team <kernel-team@...roid.com> > Signed-off-by: Dima Zavin <dima@...roid.com> > [jstultz: Added more context to commit message & whitespace fix] > Signed-off-by: John Stultz <john.stultz@...aro.org> > --- > block/genhd.c | 17 +++++++++++++++++ > block/partition-generic.c | 11 +++++++++++ > 2 files changed, 28 insertions(+) > > diff --git a/block/genhd.c b/block/genhd.c > index 0c706f3..248139e 100644 > --- a/block/genhd.c > +++ b/block/genhd.c > @@ -1115,6 +1115,22 @@ static void disk_release(struct device *dev) > blk_put_queue(disk->queue); > kfree(disk); > } > + > +static int disk_uevent(struct device *dev, struct kobj_uevent_env *env) > +{ > + struct gendisk *disk = dev_to_disk(dev); > + struct disk_part_iter piter; > + struct hd_struct *part; > + int cnt = 0; > + > + disk_part_iter_init(&piter, disk, 0); > + while ((part = disk_part_iter_next(&piter))) > + cnt++; > + disk_part_iter_exit(&piter); > + add_uevent_var(env, "NPARTS=%u", cnt); > + return 0; > +} > + > struct class block_class = { > .name = "block", > }; > @@ -1134,6 +1150,7 @@ static struct device_type disk_type = { > .groups = disk_attr_groups, > .release = disk_release, > .devnode = block_devnode, > + .uevent = disk_uevent, > }; > > #ifdef CONFIG_PROC_FS > diff --git a/block/partition-generic.c b/block/partition-generic.c > index e771113..e5d91c9 100644 > --- a/block/partition-generic.c > +++ b/block/partition-generic.c > @@ -216,10 +216,21 @@ static void part_release(struct device *dev) > kfree(p); > } > > +static int part_uevent(struct device *dev, struct kobj_uevent_env *env) > +{ > + struct hd_struct *part = dev_to_part(dev); > + > + add_uevent_var(env, "PARTN=%u", part->partno); > + if (part->info && part->info->volname[0]) > + add_uevent_var(env, "PARTNAME=%s", part->info->volname); > + return 0; > +} > + > struct device_type part_type = { > .name = "partition", > .groups = part_attr_groups, > .release = part_release, > + .uevent = part_uevent, > }; > > static void delete_partition_rcu_cb(struct rcu_head *head) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists