public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [S390] tape: Compression overwrites crypto setting
@ 2007-03-05 22:40 Martin Schwidefsky
  0 siblings, 0 replies; only message in thread
From: Martin Schwidefsky @ 2007-03-05 22:40 UTC (permalink / raw)
  To: linux-kernel, linux-s390; +Cc: holzheu

From: Michael Holzheu <holzheu@de.ibm.com>

[S390] tape: Compression overwrites crypto setting

After switching compression on/off with the mt command, tape encryption is no
longer working. The reason for that is, that the modeset_byte is set to
the compression value instead of using bitwise and/or bit operations to
enable/disable the corresponding bit.

Signed-off-by: Michael Holzheu <holzheu@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
---

 drivers/s390/char/tape_std.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletion(-)

diff -urpN linux-2.6/drivers/s390/char/tape_std.c linux-2.6-patched/drivers/s390/char/tape_std.c
--- linux-2.6/drivers/s390/char/tape_std.c	2007-02-04 19:44:54.000000000 +0100
+++ linux-2.6-patched/drivers/s390/char/tape_std.c	2007-03-05 22:51:51.000000000 +0100
@@ -647,7 +647,10 @@ tape_std_mtcompression(struct tape_devic
 		return PTR_ERR(request);
 	request->op = TO_NOP;
 	/* setup ccws */
-	*device->modeset_byte = (mt_count == 0) ? 0x00 : 0x08;
+	if (mt_count == 0)
+		*device->modeset_byte &= ~0x08;
+	else
+		*device->modeset_byte |= 0x08;
 	tape_ccw_cc(request->cpaddr, MODE_SET_DB, 1, device->modeset_byte);
 	tape_ccw_end(request->cpaddr + 1, NOP, 0, NULL);
 	/* execute it */

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-03-05 22:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-05 22:40 [S390] tape: Compression overwrites crypto setting Martin Schwidefsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox