asm volatile ("   lrag  2,0(%0)\n" "   lgr   4,%1\n" "   o     4,%4\n" "   lrag  3,0(%2)\n" "   lgr   5,%3\n" "   sam31\n" "   .long 0x83240008 # Diagnose X'08'\n" "   sam64" : /* no output */ : "a" (cpcmd_buf), "d" (cmdlen), "a" (response), "d" (rlen), "m" (mask) : "cc", "2", "3", "4", "5" ); 
asm volatile (	"lrag	2,0(%2)\n" "lgr	4,%3\n" "o	4,%6\n" "lrag	3,0(%4)\n" "lgr	5,%5\n" "sam31\n" "diag	2,4,0x8\n" "sam64\n" "brc	8, .Litfits\n" "agr	5, %5\n" ".Litfits: \n" "lgr	%0,4\n" "lgr	%1,5\n" : "=d" (return_code), "=d" (return_len) : "a" (cpcmd_buf), "d" (cmdlen), "a" (response), "d" (rlen), "m" (mask) : "cc", "2", "3", "4", "5" ); 
void __cpcmd(char *cmd, char *response, int rlen){	const int mask = 0x40000000L;	unsigned long flags;	int cmdlen;	spin_lock_irqsave(&cpcmd_lock, flags);	cmdlen = strlen(cmd);	BUG_ON(cmdlen > 240);	strcpy(cpcmd_buf, cmd);	ASCEBC(cpcmd_buf, cmdlen);	if (response != NULL && rlen > 0) {		memset(response, 0, rlen);#ifndef CONFIG_ARCH_S390X		asm volatile ("LRA   2,0(%0)\n\t"                              "LR    4,%1\n\t"                              "O     4,%4\n\t"                              "LRA   3,0(%2)\n\t"                              "LR    5,%3\n\t"                              ".long 0x83240008 # Diagnose X'08'\n\t"                              : /* no output */                              : "a" (cpcmd_buf), "d" (cmdlen),                                "a" (response), "d" (rlen), "m" (mask)                              : "cc", "2", "3", "4", "5" );#else /* CONFIG_ARCH_S390X */                asm volatile ("   lrag  2,0(%0)\n"                              "   lgr   4,%1\n"                              "   o     4,%4\n"                              "   lrag  3,0(%2)\n"                              "   lgr   5,%3\n"                              "   sam31\n"                              "   .long 0x83240008 # Diagnose X'08'\n"                              "   sam64"                              : /* no output */                              : "a" (cpcmd_buf), "d" (cmdlen),                                "a" (response), "d" (rlen), "m" (mask)                              : "cc", "2", "3", "4", "5" );#endif /* CONFIG_ARCH_S390X */                EBCASC(response, rlen);        } else {#ifndef CONFIG_ARCH_S390X                asm volatile ("LRA   2,0(%0)\n\t"                              "LR    3,%1\n\t"                              ".long 0x83230008 # Diagnose X'08'\n\t"                              : /* no output */                              : "a" (cpcmd_buf), "d" (cmdlen)                              : "2", "3"  );#else /* CONFIG_ARCH_S390X */                asm volatile ("   lrag  2,0(%0)\n"                              "   lgr   3,%1\n"                              "   sam31\n"                              "   .long 0x83230008 # Diagnose X'08'\n"                              "   sam64"                              : /* no output */                              : "a" (cpcmd_buf), "d" (cmdlen)                              : "2", "3"  );#endif /* CONFIG_ARCH_S390X */        }	spin_unlock_irqrestore(&cpcmd_lock, flags);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/6b979de395c7e1b7e59f74a870e1d1911853eccb/cpcmd.c/buggy/arch/s390/kernel/cpcmd.c