From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16456 invoked by alias); 21 Jun 2006 16:23:12 -0000 Received: (qmail 16447 invoked by uid 22791); 21 Jun 2006 16:23:11 -0000 X-Spam-Status: No, hits=-3.1 required=5.0 tests=BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mtagate4.de.ibm.com (HELO mtagate4.de.ibm.com) (195.212.29.153) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 21 Jun 2006 16:23:08 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate4.de.ibm.com (8.13.6/8.13.6) with ESMTP id k5LGN53H166930 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Wed, 21 Jun 2006 16:23:05 GMT Received: from d12av02.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12nrmr1607.megacenter.de.ibm.com (8.13.6/NCO/VER7.0) with ESMTP id k5LGPQYw106584 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 21 Jun 2006 18:25:26 +0200 Received: from d12av02.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id k5LGN5aI021359 for ; Wed, 21 Jun 2006 18:23:05 +0200 Received: from dyn-9-152-198-47.boeblingen.de.ibm.com (dyn-9-152-198-47.boeblingen.de.ibm.com [9.152.198.47]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id k5LGN5V0021356; Wed, 21 Jun 2006 18:23:05 +0200 Subject: Re: [PATCH] kprobes for s390 architecture From: Jan Glauber To: Mike Grundy Cc: linux-kernel@vger.kernel.org, schwidefsky@de.ibm.com, systemtap@sources.redhat.com In-Reply-To: <20060612131552.GA6647@localhost.localdomain> References: <20060612131552.GA6647@localhost.localdomain> Content-Type: text/plain Date: Wed, 21 Jun 2006 16:23:00 -0000 Message-Id: <1150907000.14295.5.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit Mailing-List: contact systemtap-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: systemtap-owner@sourceware.org X-SW-Source: 2006-q2/txt/msg00667.txt.bz2 On Mon, 2006-06-12 at 09:15 -0400, Mike Grundy wrote: > +int __kprobes arch_prepare_kprobe(struct kprobe *p) > +{ > + int ret = 0; > + > + /* Make sure the probe isn't going on a difficult instruction */ > + if (is_prohibited_opcode((kprobe_opcode_t *) p->addr)) > + ret = -EINVAL; > + > + /* Use the get_insn_slot() facility for correctness */ > + if (!ret) { > + p->ainsn.insn = get_insn_slot(); > + if (!p->ainsn.insn) { > + ret = -ENOMEM; > + } else { > + /* this should only happen if you got the slot */ > + memcpy(p->ainsn.insn, p->addr, > + MAX_INSN_SIZE * sizeof(kprobe_opcode_t)); > + p->ainsn.inst_type = > + get_instruction_type(p->ainsn.insn); > + } > + } > + p->opcode = *p->addr; > + return ret; I think we should also check for correct instruction alignment in this function (2 bytes on s390), like: if ((unsigned long)p->addr & 0x01) { printk("Attempt to register kprobe at an unaligned address\n"); return -EINVAL; } Jan --- Jan Glauber IBM Linux Technology Center Linux on zSeries Development, Boeblingen