From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755332AbbDIKbR (ORCPT ); Thu, 9 Apr 2015 06:31:17 -0400 Received: from e28smtp04.in.ibm.com ([122.248.162.4]:58856 "EHLO e28smtp04.in.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753639AbbDIKbP (ORCPT ); Thu, 9 Apr 2015 06:31:15 -0400 Message-ID: <552654E7.9050906@linux.vnet.ibm.com> Date: Thu, 09 Apr 2015 16:01:03 +0530 From: Anshuman Khandual User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Michael Ellerman , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org CC: mikey@neuling.org, anton@samba.org Subject: Re: [V2, 06/12] selftests, powerpc: Add test for system wide DSCR default References: <20150327120136.EF3431400DE@ozlabs.org> In-Reply-To: <20150327120136.EF3431400DE@ozlabs.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15040910-0013-0000-0000-00000491D314 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/27/2015 05:31 PM, Michael Ellerman wrote: > On Tue, 2015-13-01 at 10:22:34 UTC, Anshuman Khandual wrote: >> This patch adds a test case for the system wide DSCR default >> value, which when changed through it's sysfs interface must >> be visible to all threads reading DSCR either through the >> privilege state SPR or the problem state SPR. The DSCR value >> change should be immediate as well. > > ... > >> + >> +/* Default DSCR access */ >> +unsigned long get_default_dscr(void) >> +{ >> + int fd = -1; >> + char buf[16]; >> + unsigned long val; >> + >> + if (fd == -1) { >> + fd = open(DSCR_DEFAULT, O_RDONLY); >> + if (fd == -1) { >> + perror("open() failed\n"); >> + exit(1); >> + } >> + } >> + memset(buf, 0, sizeof(buf)); >> + lseek(fd, 0, SEEK_SET); >> + read(fd, buf, sizeof(buf)); > Normally, I build the test cases like $cd tools/testing/selftests/powerpc/ $make dscr with these compiler flags "-Wall -O2 -flto -Wall -Werror" which is still working for me. Then I figured out that the read and write declaration in unistd.h header file has "_wur" in it. extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur; extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur; Then some how the compiler (GCC 4.8.3) is not complaining about it. > > This and the other tests are failing to build: > > In file included from dscr_default_test.c:16:0: > dscr.h: In function ‘get_default_dscr’: > dscr.h:93:6: error: ignoring return value of ‘read’, declared with attribute warn_unused_result [-Werror=unused-result] > read(fd, buf, sizeof(buf)); > ^ > dscr.h: In function ‘set_default_dscr’: > dscr.h:112:7: error: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Werror=unused-result] > write(fd, buf, strlen(buf)); > ^ > cc1: all warnings being treated as errors Anyways, I can change the header file helper functions if you would like. BTW, the patch series does not apply as it is and requires rebasing. Would send out a new version of it.