From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753955AbbJOQXm (ORCPT ); Thu, 15 Oct 2015 12:23:42 -0400 Received: from mout01.posteo.de ([185.67.36.65]:53637 "EHLO mout01.posteo.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752860AbbJOQWF (ORCPT ); Thu, 15 Oct 2015 12:22:05 -0400 From: Martin Kepplinger To: mingo@kernel.org, akpm@linux-foundation.org, linux@horizon.com, linux@rasmusvillemoes.dk, maxime.coquelin@st.com, dvlasenk@redhat.com, yury.norov@gmail.com, torvalds@linux-foundation.org Cc: linux-kernel@vger.kernel.org Subject: bitops.h: improve sign extending API Date: Thu, 15 Oct 2015 18:18:27 +0200 Message-Id: <1444925909-6013-1-git-send-email-martink@posteo.de> X-Mailer: git-send-email 2.1.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PATCH 1/2 improves the doc of sign_extend32() This should help to avoid different manual approaches to sign extension PATCH 2/2 adds sign_extend64() An informal example of what could follow in arch/sh/kernel/traps_64.c after PATCH 2/2: @@ -101,7 +102,7 @@ static int generate_and_check_address(struct pt_regs *regs, __s64 displacement; displacement = (opcode >> 10) & 0x3ff; - displacement = ((displacement << 54) >> 54); /* sign extend */ + displacement = sign_extend64(displacement, 9); addr = (__u64)((__s64)base_address + (displacement << width_shift)); } else {