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

Commit c1101cbc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull s390 updates from Martin Schwidefsky:
 "This is the bulk of the s390 patches for the 3.11 merge window.

  Notable enhancements are: the block timeout patches for dasd from
  Hannes, and more work on the PCI support front.  In addition some
  cleanup and the usual bug fixing."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (42 commits)
  s390/dasd: Fail all requests when DASD_FLAG_ABORTIO is set
  s390/dasd: Add 'timeout' attribute
  block: check for timeout function in blk_rq_timed_out()
  block/dasd: detailed I/O errors
  s390/dasd: Reduce amount of messages for specific errors
  s390/dasd: Implement block timeout handling
  s390/dasd: process all requests in the device tasklet
  s390/dasd: make number of retries configurable
  s390/dasd: Clarify comment
  s390/hwsampler: Updated misleading member names in hws_data_entry
  s390/appldata_net_sum: do not use static data
  s390/appldata_mem: do not use static data
  s390/vmwatchdog: do not use static data
  s390/airq: simplify adapter interrupt code
  s390/pci: remove per device debug attribute
  s390/dma: remove gratuitous brackets
  s390/facility: decompose test_facility()
  s390/sclp: remove duplicated include from sclp_ctl.c
  s390/irq: store interrupt information in pt_regs
  s390/drivers: Cocci spatch "ptr_ret.spatch"
  ...
parents 1873e500 5ea34a01
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ Code Seq#(hex) Include File Comments
0x06	all	linux/lp.h
0x09	all	linux/raid/md_u.h
0x10	00-0F	drivers/char/s390/vmcp.h
0x10	10-1F	arch/s390/include/uapi/sclp_ctl.h
0x12	all	linux/fs.h
		linux/blkpg.h
0x1b	all	InfiniBand Subsystem	<http://infiniband.sourceforge.net/>
+14 −4
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@
 * book:
 * http://oss.software.ibm.com/developerworks/opensource/linux390/index.shtml
 */
static struct appldata_mem_data {
struct appldata_mem_data {
	u64 timestamp;
	u32 sync_count_1;       /* after VM collected the record data, */
	u32 sync_count_2;	/* sync_count_1 and sync_count_2 should be the
@@ -63,7 +63,7 @@ static struct appldata_mem_data {
	u64 pgmajfault;		/* page faults (major only) */
// <-- New in 2.6

} __attribute__((packed)) appldata_mem_data;
} __packed;


/*
@@ -118,7 +118,6 @@ static struct appldata_ops ops = {
	.record_nr = APPLDATA_RECORD_MEM_ID,
	.size	   = sizeof(struct appldata_mem_data),
	.callback  = &appldata_get_mem_data,
	.data      = &appldata_mem_data,
	.owner     = THIS_MODULE,
	.mod_lvl   = {0xF0, 0xF0},		/* EBCDIC "00" */
};
@@ -131,7 +130,17 @@ static struct appldata_ops ops = {
 */
static int __init appldata_mem_init(void)
{
	return appldata_register_ops(&ops);
	int ret;

	ops.data = kzalloc(sizeof(struct appldata_mem_data), GFP_KERNEL);
	if (!ops.data)
		return -ENOMEM;

	ret = appldata_register_ops(&ops);
	if (ret)
		kfree(ops.data);

	return ret;
}

/*
@@ -142,6 +151,7 @@ static int __init appldata_mem_init(void)
static void __exit appldata_mem_exit(void)
{
	appldata_unregister_ops(&ops);
	kfree(ops.data);
}


+14 −4
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@
 * book:
 * http://oss.software.ibm.com/developerworks/opensource/linux390/index.shtml
 */
static struct appldata_net_sum_data {
struct appldata_net_sum_data {
	u64 timestamp;
	u32 sync_count_1;	/* after VM collected the record data, */
	u32 sync_count_2;	/* sync_count_1 and sync_count_2 should be the
@@ -51,7 +51,7 @@ static struct appldata_net_sum_data {
	u64 rx_dropped;		/* no space in linux buffers     */
	u64 tx_dropped;		/* no space available in linux   */
	u64 collisions;		/* collisions while transmitting */
} __attribute__((packed)) appldata_net_sum_data;
} __packed;


/*
@@ -121,7 +121,6 @@ static struct appldata_ops ops = {
	.record_nr = APPLDATA_RECORD_NET_SUM_ID,
	.size	   = sizeof(struct appldata_net_sum_data),
	.callback  = &appldata_get_net_sum_data,
	.data      = &appldata_net_sum_data,
	.owner     = THIS_MODULE,
	.mod_lvl   = {0xF0, 0xF0},		/* EBCDIC "00" */
};
@@ -134,7 +133,17 @@ static struct appldata_ops ops = {
 */
static int __init appldata_net_init(void)
{
	return appldata_register_ops(&ops);
	int ret;

	ops.data = kzalloc(sizeof(struct appldata_net_sum_data), GFP_KERNEL);
	if (!ops.data)
		return -ENOMEM;

	ret = appldata_register_ops(&ops);
	if (ret)
		kfree(ops.data);

	return ret;
}

/*
@@ -145,6 +154,7 @@ static int __init appldata_net_init(void)
static void __exit appldata_net_exit(void)
{
	appldata_unregister_ops(&ops);
	kfree(ops.data);
}


+2 −6
Original line number Diff line number Diff line
@@ -651,9 +651,7 @@ static int hypfs_create_cpu_files(struct super_block *sb,
	}
	diag224_idx2name(cpu_info__ctidx(diag204_info_type, cpu_info), buffer);
	rc = hypfs_create_str(sb, cpu_dir, "type", buffer);
	if (IS_ERR(rc))
		return PTR_ERR(rc);
	return 0;
	return PTR_RET(rc);
}

static void *hypfs_create_lpar_files(struct super_block *sb,
@@ -702,9 +700,7 @@ static int hypfs_create_phys_cpu_files(struct super_block *sb,
		return PTR_ERR(rc);
	diag224_idx2name(phys_cpu__ctidx(diag204_info_type, cpu_info), buffer);
	rc = hypfs_create_str(sb, cpu_dir, "type", buffer);
	if (IS_ERR(rc))
		return PTR_ERR(rc);
	return 0;
	return PTR_RET(rc);
}

static void *hypfs_create_phys_files(struct super_block *sb,
+12 −3
Original line number Diff line number Diff line
@@ -9,9 +9,18 @@
#ifndef _ASM_S390_AIRQ_H
#define _ASM_S390_AIRQ_H

typedef void (*adapter_int_handler_t)(void *, void *);
struct airq_struct {
	struct hlist_node list;		/* Handler queueing. */
	void (*handler)(struct airq_struct *);	/* Thin-interrupt handler */
	u8 *lsi_ptr;			/* Local-Summary-Indicator pointer */
	u8 lsi_mask;			/* Local-Summary-Indicator mask */
	u8 isc;				/* Interrupt-subclass */
	u8 flags;
};

void *s390_register_adapter_interrupt(adapter_int_handler_t, void *, u8);
void s390_unregister_adapter_interrupt(void *, u8);
#define AIRQ_PTR_ALLOCATED	0x01

int register_adapter_interrupt(struct airq_struct *airq);
void unregister_adapter_interrupt(struct airq_struct *airq);

#endif /* _ASM_S390_AIRQ_H */
Loading