Skip to contentSkip to conversation

s390 patches for 3.3-rc2

GIT PULL Martin Schwidefsky 1 participant 1 message Jan 30, 2012

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hi Linus,

please pull from 'for-linus' branch of

git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git for-linus

to receive the following updates:

Christian Borntraeger (1):
[S390] cleanup entry point definition

Stefan Haberland (2):
[S390] dasd: revert LCU optimization [S390] dasd: revalidate server for new pathgroup

 arch/s390/Makefile              |    1 -
 arch/s390/kernel/vmlinux.lds.S  |    4 +-
 drivers/s390/block/dasd.c       |    6 ++++
 drivers/s390/block/dasd_alias.c |   64 +--------------------------------------
 drivers/s390/block/dasd_eckd.c  |   63 ++++++++++++++++++++++----------------
 drivers/s390/block/dasd_int.h   |    2 +
 6 files changed, 48 insertions(+), 92 deletions(-)
arch/s390/Makefile +0 -1
index e9f3533..0ad2f1e 100644
@@ -88,7 +88,6 @@ KBUILD_CFLAGS	+= -pipe -fno-strength-reduce -Wno-sign-compare
 KBUILD_AFLAGS	+= $(aflags-y)
 
 OBJCOPYFLAGS	:= -O binary
-LDFLAGS_vmlinux := -e start
 
 head-y		:= arch/s390/kernel/head.o
 head-y		+= arch/s390/kernel/$(if $(CONFIG_64BIT),head64.o,head31.o)
arch/s390/kernel/vmlinux.lds.S +2 -2
index e4c79eb..21109c6 100644
@@ -9,12 +9,12 @@
 #ifndef CONFIG_64BIT
 OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf32-s390")
 OUTPUT_ARCH(s390)
-ENTRY(_start)
+ENTRY(startup)
 jiffies = jiffies_64 + 4;
 #else
 OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf64-s390")
 OUTPUT_ARCH(s390:64-bit)
-ENTRY(_start)
+ENTRY(startup)
 jiffies = jiffies_64;
 #endif
 
drivers/s390/block/dasd.c +6 -0
index eef27a1..110137e 100644
@@ -3261,6 +3261,12 @@ void dasd_generic_path_event(struct ccw_device *cdev, int *path_event)
 			device->path_data.tbvpm |= eventlpm;
 			dasd_schedule_device_bh(device);
 		}
+		if (path_event[chp] & PE_PATHGROUP_ESTABLISHED) {
+			DBF_DEV_EVENT(DBF_WARNING, device, "%s",
+				      "Pathgroup re-established\n");
+			if (device->discipline->kick_validate)
+				device->discipline->kick_validate(device);
+		}
 	}
 	dasd_put_device(device);
 }
drivers/s390/block/dasd_alias.c +1 -63

98 lines not on this page · raw message

drivers/s390/block/dasd_eckd.c +37 -26

113 lines not on this page · raw message

drivers/s390/block/dasd_int.h +2 -0
index afe8c33..33a6743 100644
@@ -355,6 +355,7 @@ struct dasd_discipline {
 	int (*reload) (struct dasd_device *);
 
 	int (*get_uid) (struct dasd_device *, struct dasd_uid *);
+	void (*kick_validate) (struct dasd_device *);
 };
 
 extern struct dasd_discipline *dasd_diag_discipline_pointer;
@@ -455,6 +456,7 @@ struct dasd_device {
 	struct work_struct kick_work;
 	struct work_struct restore_device;
 	struct work_struct reload_device;
+	struct work_struct kick_validate;
 	struct timer_list timer;
 
 	debug_info_t *debug_area;