[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <552654E7.9050906@linux.vnet.ibm.com>
Date: Thu, 09 Apr 2015 16:01:03 +0530
From: Anshuman Khandual <khandual@...ux.vnet.ibm.com>
To: Michael Ellerman <mpe@...erman.id.au>,
linuxppc-dev@...ts.ozlabs.org, linux-kernel@...r.kernel.org
CC: mikey@...ling.org, anton@...ba.org
Subject: Re: [V2, 06/12] selftests, powerpc: Add test for system wide DSCR
default
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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists