Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 53a49982 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
  [S390] sysfs_create_xxx return values.
  [S390] .align 4096 statements in head.S
  [S390] get_clock inline assembly.
  [S390] channel measurement interval display.
  [S390] xpram module parameter parsing - take 2.
  [S390] Fix gcc warning about unused return values.
parents 3bda2418 d7cf0d57
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -273,7 +273,7 @@ startup_continue:
.Lbss_end:  .long _end
.Lparmaddr: .long PARMAREA
.Lsccbaddr: .long .Lsccb
	.align	4096
	.org	0x12000
.Lsccb:
	.hword	0x1000			# length, one page
	.byte	0x00,0x00,0x00
@@ -290,7 +290,7 @@ startup_continue:
.Lscpincr2:
	.quad	0x00
	.fill	3984,1,0
	.align	4096
	.org	0x13000

#ifdef CONFIG_SHARED_KERNEL
	.org	0x100000
+2 −2
Original line number Diff line number Diff line
@@ -268,7 +268,7 @@ startup_continue:
.Lparmaddr:
	.quad	PARMAREA

	.align 4096
	.org	0x12000
.Lsccb:
	.hword 0x1000			# length, one page
	.byte 0x00,0x00,0x00
@@ -285,7 +285,7 @@ startup_continue:
.Lscpincr2:
	.quad 0x00
	.fill 3984,1,0
	.align 4096
	.org	0x13000

#ifdef CONFIG_SHARED_KERNEL
	.org   0x100000
+36 −10
Original line number Diff line number Diff line
@@ -877,31 +877,57 @@ static struct bin_attribute ipl_scp_data_attr = {

static decl_subsys(ipl, NULL, NULL);

static int ipl_register_fcp_files(void)
{
	int rc;

	rc = sysfs_create_group(&ipl_subsys.kset.kobj,
				&ipl_fcp_attr_group);
	if (rc)
		goto out;
	rc = sysfs_create_bin_file(&ipl_subsys.kset.kobj,
				   &ipl_parameter_attr);
	if (rc)
		goto out_ipl_parm;
	rc = sysfs_create_bin_file(&ipl_subsys.kset.kobj,
				   &ipl_scp_data_attr);
	if (!rc)
		goto out;

	sysfs_remove_bin_file(&ipl_subsys.kset.kobj, &ipl_parameter_attr);

out_ipl_parm:
	sysfs_remove_group(&ipl_subsys.kset.kobj, &ipl_fcp_attr_group);
out:
	return rc;
}

static int __init
ipl_device_sysfs_register(void) {
	int rc;

	rc = firmware_register(&ipl_subsys);
	if (rc)
		return rc;
		goto out;

	switch (get_ipl_type()) {
	case ipl_type_ccw:
		sysfs_create_group(&ipl_subsys.kset.kobj, &ipl_ccw_attr_group);
		rc = sysfs_create_group(&ipl_subsys.kset.kobj,
					&ipl_ccw_attr_group);
		break;
	case ipl_type_fcp:
		sysfs_create_group(&ipl_subsys.kset.kobj, &ipl_fcp_attr_group);
		sysfs_create_bin_file(&ipl_subsys.kset.kobj,
				      &ipl_parameter_attr);
		sysfs_create_bin_file(&ipl_subsys.kset.kobj,
				      &ipl_scp_data_attr);
		rc = ipl_register_fcp_files();
		break;
	default:
		sysfs_create_group(&ipl_subsys.kset.kobj,
		rc = sysfs_create_group(&ipl_subsys.kset.kobj,
					&ipl_unknown_attr_group);
		break;
	}
	return 0;

	if (rc)
		firmware_unregister(&ipl_subsys);
out:
	return rc;
}

__initcall(ipl_device_sysfs_register);
+14 −3
Original line number Diff line number Diff line
@@ -304,6 +304,7 @@ static int __init xpram_setup_sizes(unsigned long pages)
{
	unsigned long mem_needed;
	unsigned long mem_auto;
	unsigned long long size;
	int mem_auto_no;
	int i;

@@ -321,9 +322,19 @@ static int __init xpram_setup_sizes(unsigned long pages)
	mem_needed = 0;
	mem_auto_no = 0;
	for (i = 0; i < xpram_devs; i++) {
		if (sizes[i])
			xpram_sizes[i] =
				(memparse(sizes[i], &sizes[i]) + 3) & -4UL;
		if (sizes[i]) {
			size = simple_strtoull(sizes[i], &sizes[i], 0);
			switch (sizes[i][0]) {
			case 'g':
			case 'G':
				size <<= 20;
				break;
			case 'm':
			case 'M':
				size <<= 10;
			}
			xpram_sizes[i] = (size + 3) & -4UL;
		}
		if (xpram_sizes[i])
			mem_needed += xpram_sizes[i];
		else
+35 −17
Original line number Diff line number Diff line
@@ -1106,10 +1106,10 @@ raw3270_delete_device(struct raw3270 *rp)

	/* Remove from device chain. */
	mutex_lock(&raw3270_mutex);
	if (rp->clttydev)
	if (rp->clttydev && !IS_ERR(rp->clttydev))
		class_device_destroy(class3270,
				     MKDEV(IBM_TTY3270_MAJOR, rp->minor));
	if (rp->cltubdev)
	if (rp->cltubdev && !IS_ERR(rp->cltubdev))
		class_device_destroy(class3270,
				     MKDEV(IBM_FS3270_MAJOR, rp->minor));
	list_del_init(&rp->list);
@@ -1173,21 +1173,37 @@ static struct attribute_group raw3270_attr_group = {
	.attrs = raw3270_attrs,
};

static void
raw3270_create_attributes(struct raw3270 *rp)
static int raw3270_create_attributes(struct raw3270 *rp)
{
	//FIXME: check return code
	sysfs_create_group(&rp->cdev->dev.kobj, &raw3270_attr_group);
	rp->clttydev =
		class_device_create(class3270, NULL,
	int rc;

	rc = sysfs_create_group(&rp->cdev->dev.kobj, &raw3270_attr_group);
	if (rc)
		goto out;

	rp->clttydev = class_device_create(class3270, NULL,
					   MKDEV(IBM_TTY3270_MAJOR, rp->minor),
					   &rp->cdev->dev, "tty%s",
					   rp->cdev->dev.bus_id);
	rp->cltubdev =
		class_device_create(class3270, NULL,
	if (IS_ERR(rp->clttydev)) {
		rc = PTR_ERR(rp->clttydev);
		goto out_ttydev;
	}

	rp->cltubdev = class_device_create(class3270, NULL,
					   MKDEV(IBM_FS3270_MAJOR, rp->minor),
					   &rp->cdev->dev, "tub%s",
					   rp->cdev->dev.bus_id);
	if (!IS_ERR(rp->cltubdev))
		goto out;

	rc = PTR_ERR(rp->cltubdev);
	class_device_destroy(class3270, MKDEV(IBM_TTY3270_MAJOR, rp->minor));

out_ttydev:
	sysfs_remove_group(&rp->cdev->dev.kobj, &raw3270_attr_group);
out:
	return rc;
}

/*
@@ -1255,7 +1271,9 @@ raw3270_set_online (struct ccw_device *cdev)
	rc = raw3270_reset_device(rp);
	if (rc)
		goto failure;
	raw3270_create_attributes(rp);
	rc = raw3270_create_attributes(rp);
	if (rc)
		goto failure;
	set_bit(RAW3270_FLAGS_READY, &rp->flags);
	mutex_lock(&raw3270_mutex);
	list_for_each_entry(np, &raw3270_notifier, list)
Loading