* [hisi:topic-lpc-4.10-libio 136/148] lib/libio.c:27:21: error: dereferencing pointer to incomplete type
@ 2017-02-06 18:25 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2017-02-06 18:25 UTC (permalink / raw)
To: linux-arm-kernel
Hi John,
First bad commit (maybe != root cause):
tree: https://github.com/hisilicon/linux-hisi topic-lpc-4.10-libio
head: 06443d85dc35b64a704f7be84cc538281a1598f4
commit: 1138304d3967f65dac8be95ce39f9abffc5f1f65 [136/148] libio: create from extio
config: x86_64-randconfig-i0-201706 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
git checkout 1138304d3967f65dac8be95ce39f9abffc5f1f65
# save the attached .config to linux build tree
make ARCH=x86_64
Note: the hisi/topic-lpc-4.10-libio HEAD 06443d85dc35b64a704f7be84cc538281a1598f4 builds fine.
It only hurts bisectibility.
All error/warnings (new ones prefixed by >>):
lib/libio.c:24:28: warning: 'struct extio_node' declared inside parameter list
void register_extio(struct extio_node *node)
^
>> lib/libio.c:24:28: warning: its scope is only this definition or declaration, which is probably not what you want
lib/libio.c: In function 'register_extio':
>> lib/libio.c:27:21: error: dereferencing pointer to incomplete type
list_add_tail(&node->list, &extio_dev_list);
^
In file included from include/asm-generic/bug.h:13:0,
from arch/x86/include/asm/bug.h:35,
from include/linux/bug.h:4,
from include/linux/io.h:23,
from lib/libio.c:18:
lib/libio.c: In function 'find_extio_token':
include/linux/list.h:463:43: error: dereferencing pointer to incomplete type
for (pos = list_first_entry(head, typeof(*pos), member); \
^
include/linux/kernel.h:850:18: note: in definition of macro 'container_of'
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
include/linux/list.h:376:2: note: in expansion of macro 'list_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:463:13: note: in expansion of macro 'list_first_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
lib/libio.c:36:2: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(extio_entry, &extio_dev_list, list) {
^
include/linux/kernel.h:850:48: warning: initialization from incompatible pointer type
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
include/linux/list.h:365:2: note: in expansion of macro 'container_of'
container_of(ptr, type, member)
^
include/linux/list.h:376:2: note: in expansion of macro 'list_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:463:13: note: in expansion of macro 'list_first_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
lib/libio.c:36:2: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(extio_entry, &extio_dev_list, list) {
^
include/linux/list.h:463:43: error: dereferencing pointer to incomplete type
for (pos = list_first_entry(head, typeof(*pos), member); \
^
include/linux/kernel.h:851:3: note: in definition of macro 'container_of'
(type *)( (char *)__mptr - offsetof(type,member) );})
^
include/linux/list.h:376:2: note: in expansion of macro 'list_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:463:13: note: in expansion of macro 'list_first_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
lib/libio.c:36:2: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(extio_entry, &extio_dev_list, list) {
^
In file included from include/linux/compiler.h:58:0,
from include/uapi/linux/stddef.h:1,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/io.h:21,
from lib/libio.c:18:
include/linux/list.h:463:43: error: dereferencing pointer to incomplete type
for (pos = list_first_entry(head, typeof(*pos), member); \
^
include/linux/compiler-gcc.h:159:21: note: in definition of macro '__compiler_offsetof'
__builtin_offsetof(a, b)
^
include/linux/kernel.h:851:29: note: in expansion of macro 'offsetof'
(type *)( (char *)__mptr - offsetof(type,member) );})
^
include/linux/list.h:365:2: note: in expansion of macro 'container_of'
container_of(ptr, type, member)
^
include/linux/list.h:376:2: note: in expansion of macro 'list_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:463:13: note: in expansion of macro 'list_first_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
lib/libio.c:36:2: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(extio_entry, &extio_dev_list, list) {
^
In file included from include/linux/preempt.h:10:0,
from include/linux/spinlock.h:50,
from lib/libio.c:19:
include/linux/list.h:464:11: error: dereferencing pointer to incomplete type
&pos->member != (head); \
^
lib/libio.c:36:2: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(extio_entry, &extio_dev_list, list) {
^
In file included from include/asm-generic/bug.h:13:0,
from arch/x86/include/asm/bug.h:35,
from include/linux/bug.h:4,
from include/linux/io.h:23,
from lib/libio.c:18:
include/linux/list.h:409:40: error: dereferencing pointer to incomplete type
list_entry((pos)->member.next, typeof(*(pos)), member)
^
include/linux/kernel.h:850:18: note: in definition of macro 'container_of'
--
list_for_each_entry(entry, &extio_dev_list, list) {
^
In file included from include/asm-generic/bug.h:13:0,
from arch/x86/include/asm/bug.h:35,
from include/linux/bug.h:4,
from include/linux/io.h:23,
from lib/libio.c:18:
include/linux/list.h:409:40: error: dereferencing pointer to incomplete type
list_entry((pos)->member.next, typeof(*(pos)), member)
^
include/linux/kernel.h:850:18: note: in definition of macro 'container_of'
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
include/linux/list.h:409:2: note: in expansion of macro 'list_entry'
list_entry((pos)->member.next, typeof(*(pos)), member)
^
include/linux/list.h:465:13: note: in expansion of macro 'list_next_entry'
pos = list_next_entry(pos, member))
^
lib/libio.c:66:2: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(entry, &extio_dev_list, list) {
^
include/linux/list.h:409:18: error: dereferencing pointer to incomplete type
list_entry((pos)->member.next, typeof(*(pos)), member)
^
include/linux/kernel.h:850:49: note: in definition of macro 'container_of'
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
include/linux/list.h:409:2: note: in expansion of macro 'list_entry'
list_entry((pos)->member.next, typeof(*(pos)), member)
^
include/linux/list.h:465:13: note: in expansion of macro 'list_next_entry'
pos = list_next_entry(pos, member))
^
lib/libio.c:66:2: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(entry, &extio_dev_list, list) {
^
include/linux/list.h:409:40: error: dereferencing pointer to incomplete type
list_entry((pos)->member.next, typeof(*(pos)), member)
^
include/linux/kernel.h:851:3: note: in definition of macro 'container_of'
(type *)( (char *)__mptr - offsetof(type,member) );})
^
include/linux/list.h:409:2: note: in expansion of macro 'list_entry'
list_entry((pos)->member.next, typeof(*(pos)), member)
^
include/linux/list.h:465:13: note: in expansion of macro 'list_next_entry'
pos = list_next_entry(pos, member))
^
lib/libio.c:66:2: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(entry, &extio_dev_list, list) {
^
In file included from include/linux/compiler.h:58:0,
from include/uapi/linux/stddef.h:1,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/io.h:21,
from lib/libio.c:18:
include/linux/list.h:409:40: error: dereferencing pointer to incomplete type
list_entry((pos)->member.next, typeof(*(pos)), member)
^
include/linux/compiler-gcc.h:159:21: note: in definition of macro '__compiler_offsetof'
__builtin_offsetof(a, b)
^
include/linux/kernel.h:851:29: note: in expansion of macro 'offsetof'
(type *)( (char *)__mptr - offsetof(type,member) );})
^
include/linux/list.h:365:2: note: in expansion of macro 'container_of'
container_of(ptr, type, member)
^
include/linux/list.h:409:2: note: in expansion of macro 'list_entry'
list_entry((pos)->member.next, typeof(*(pos)), member)
^
include/linux/list.h:465:13: note: in expansion of macro 'list_next_entry'
pos = list_next_entry(pos, member))
^
lib/libio.c:66:2: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(entry, &extio_dev_list, list) {
^
lib/libio.c:67:12: error: dereferencing pointer to incomplete type
if (entry->fwnode == node &&
^
lib/libio.c:68:21: error: dereferencing pointer to incomplete type
bus_addr >= entry->bus_start &&
^
lib/libio.c:69:20: error: dereferencing pointer to incomplete type
bus_addr - entry->bus_start < entry->range_size)
^
lib/libio.c:69:39: error: dereferencing pointer to incomplete type
bus_addr - entry->bus_start < entry->range_size)
^
lib/libio.c:70:19: error: dereferencing pointer to incomplete type
port_id = entry->io_start + bus_addr -
^
lib/libio.c:71:11: error: dereferencing pointer to incomplete type
entry->bus_start;
^
lib/libio.c: At top level:
>> lib/libio.c:78:57: warning: 'struct acpi_resource' declared inside parameter list
static inline bool acpi_extio_supported_resource(struct acpi_resource *res)
^
lib/libio.c: In function 'acpi_extio_supported_resource':
lib/libio.c:80:13: error: dereferencing pointer to incomplete type
switch (res->type) {
^
lib/libio.c:81:7: error: 'ACPI_RESOURCE_TYPE_ADDRESS16' undeclared (first use in this function)
case ACPI_RESOURCE_TYPE_ADDRESS16:
^
lib/libio.c:81:7: note: each undeclared identifier is reported only once for each function it appears in
lib/libio.c:82:7: error: 'ACPI_RESOURCE_TYPE_ADDRESS32' undeclared (first use in this function)
case ACPI_RESOURCE_TYPE_ADDRESS32:
^
lib/libio.c:83:7: error: 'ACPI_RESOURCE_TYPE_ADDRESS64' undeclared (first use in this function)
case ACPI_RESOURCE_TYPE_ADDRESS64:
^
lib/libio.c: At top level:
lib/libio.c:89:8: error: unknown type name 'acpi_status'
static acpi_status acpi_count_extiores(struct acpi_resource *res,
^
lib/libio.c:90:9: warning: 'struct acpi_resource' declared inside parameter list
void *data)
^
lib/libio.c: In function 'acpi_count_extiores':
lib/libio.c:94:36: warning: passing argument 1 of 'acpi_extio_supported_resource' from incompatible pointer type
if (acpi_extio_supported_resource(res) &&
^
lib/libio.c:78:20: note: expected 'struct acpi_resource *' but argument is of type 'struct acpi_resource *'
static inline bool acpi_extio_supported_resource(struct acpi_resource *res)
^
lib/libio.c:95:3: error: implicit declaration of function 'acpi_dev_filter_resource_type' [-Werror=implicit-function-declaration]
!acpi_dev_filter_resource_type(res, IORESOURCE_IO))
^
>> lib/libio.c:95:39: error: 'IORESOURCE_IO' undeclared (first use in this function)
!acpi_dev_filter_resource_type(res, IORESOURCE_IO))
^
lib/libio.c:98:9: error: 'AE_OK' undeclared (first use in this function)
return AE_OK;
^
lib/libio.c: At top level:
lib/libio.c:101:8: error: unknown type name 'acpi_status'
static acpi_status acpi_read_one_extiores(struct acpi_resource *res,
^
lib/libio.c:102:3: warning: 'struct acpi_resource' declared inside parameter list
void *data)
^
lib/libio.c: In function 'acpi_read_one_extiores':
lib/libio.c:106:36: warning: passing argument 1 of 'acpi_extio_supported_resource' from incompatible pointer type
if (acpi_extio_supported_resource(res) &&
^
lib/libio.c:78:20: note: expected 'struct acpi_resource *' but argument is of type 'struct acpi_resource *'
static inline bool acpi_extio_supported_resource(struct acpi_resource *res)
^
lib/libio.c:107:39: error: 'IORESOURCE_IO' undeclared (first use in this function)
!acpi_dev_filter_resource_type(res, IORESOURCE_IO)) {
^
lib/libio.c:108:35: error: invalid application of 'sizeof' to incomplete type 'struct acpi_resource'
memcpy((*resource), res, sizeof(struct acpi_resource));
^
lib/libio.c:109:14: error: dereferencing pointer to incomplete type
(*resource)->length = sizeof(struct acpi_resource);
^
lib/libio.c:109:32: error: invalid application of 'sizeof' to incomplete type 'struct acpi_resource'
(*resource)->length = sizeof(struct acpi_resource);
^
lib/libio.c:110:14: error: dereferencing pointer to incomplete type
(*resource)->type = res->type;
^
lib/libio.c:110:26: error: dereferencing pointer to incomplete type
(*resource)->type = res->type;
^
>> lib/libio.c:111:14: error: increment of pointer to unknown structure
(*resource)++;
^
>> lib/libio.c:111:3: error: arithmetic on pointer to an incomplete type
(*resource)++;
^
lib/libio.c:114:9: error: 'AE_OK' undeclared (first use in this function)
return AE_OK;
^
lib/libio.c: At top level:
lib/libio.c:117:8: error: unknown type name 'acpi_status'
static acpi_status
^
>> lib/libio.c:119:11: warning: 'struct acpi_buffer' declared inside parameter list
struct acpi_buffer *buffer)
^
>> lib/libio.c:119:11: warning: 'struct acpi_device' declared inside parameter list
lib/libio.c: In function 'acpi_build_extiores_template':
lib/libio.c:121:2: error: unknown type name 'acpi_handle'
acpi_handle handle = adev->handle;
^
lib/libio.c:121:27: error: dereferencing pointer to incomplete type
acpi_handle handle = adev->handle;
^
lib/libio.c:123:2: error: unknown type name 'acpi_status'
acpi_status status;
^
lib/libio.c:126:2: error: implicit declaration of function 'acpi_walk_resources' [-Werror=implicit-function-declaration]
status = acpi_walk_resources(handle, METHOD_NAME__PRS,
^
lib/libio.c:126:39: error: 'METHOD_NAME__PRS' undeclared (first use in this function)
status = acpi_walk_resources(handle, METHOD_NAME__PRS,
^
lib/libio.c:128:2: error: implicit declaration of function 'ACPI_FAILURE' [-Werror=implicit-function-declaration]
if (ACPI_FAILURE(status) || !res_cnt) {
^
lib/libio.c:129:3: error: implicit declaration of function 'dev_err' [-Werror=implicit-function-declaration]
dev_err(&adev->dev, "can't evaluate _CRS: %d\n", status);
^
lib/libio.c:129:16: error: dereferencing pointer to incomplete type
dev_err(&adev->dev, "can't evaluate _CRS: %d\n", status);
^
lib/libio.c:133:8: error: dereferencing pointer to incomplete type
buffer->length = sizeof(struct acpi_resource) * (res_cnt + 1) + 1;
^
lib/libio.c:133:26: error: invalid application of 'sizeof' to incomplete type 'struct acpi_resource'
buffer->length = sizeof(struct acpi_resource) * (res_cnt + 1) + 1;
^
lib/libio.c:134:8: error: dereferencing pointer to incomplete type
buffer->pointer = kzalloc(buffer->length - 1, GFP_KERNEL);
^
lib/libio.c:134:2: error: implicit declaration of function 'kzalloc' [-Werror=implicit-function-declaration]
buffer->pointer = kzalloc(buffer->length - 1, GFP_KERNEL);
^
lib/libio.c:134:34: error: dereferencing pointer to incomplete type
buffer->pointer = kzalloc(buffer->length - 1, GFP_KERNEL);
^
lib/libio.c:134:48: error: 'GFP_KERNEL' undeclared (first use in this function)
buffer->pointer = kzalloc(buffer->length - 1, GFP_KERNEL);
^
lib/libio.c:135:13: error: dereferencing pointer to incomplete type
if (!buffer->pointer)
^
lib/libio.c:138:43: error: dereferencing pointer to incomplete type
resource = (struct acpi_resource *)buffer->pointer;
^
lib/libio.c:142:3: error: implicit declaration of function 'kfree' [-Werror=implicit-function-declaration]
kfree(buffer->pointer);
^
lib/libio.c:142:15: error: dereferencing pointer to incomplete type
kfree(buffer->pointer);
^
lib/libio.c:143:16: error: dereferencing pointer to incomplete type
dev_err(&adev->dev, "can't evaluate _PRS: %d\n", status);
^
lib/libio.c:147:10: error: dereferencing pointer to incomplete type
resource->type = ACPI_RESOURCE_TYPE_END_TAG;
^
lib/libio.c:147:19: error: 'ACPI_RESOURCE_TYPE_END_TAG' undeclared (first use in this function)
resource->type = ACPI_RESOURCE_TYPE_END_TAG;
^
lib/libio.c:148:10: error: dereferencing pointer to incomplete type
resource->length = sizeof(struct acpi_resource);
^
lib/libio.c:148:28: error: invalid application of 'sizeof' to incomplete type 'struct acpi_resource'
resource->length = sizeof(struct acpi_resource);
^
lib/libio.c: At top level:
lib/libio.c:154:36: warning: 'struct acpi_buffer' declared inside parameter list
struct acpi_device *host, struct acpi_buffer *buffer)
^
lib/libio.c:154:36: warning: 'struct acpi_device' declared inside parameter list
lib/libio.c: In function 'acpi_translate_extiores':
lib/libio.c:156:23: error: dereferencing pointer to incomplete type
int res_cnt = (buffer->length - 1) / sizeof(struct acpi_resource) - 1;
^
lib/libio.c:156:46: error: invalid application of 'sizeof' to incomplete type 'struct acpi_resource'
int res_cnt = (buffer->length - 1) / sizeof(struct acpi_resource) - 1;
^
lib/libio.c:157:41: error: dereferencing pointer to incomplete type
struct acpi_resource *resource = buffer->pointer;
^
lib/libio.c:158:33: error: storage size of 'addr' isn't known
struct acpi_resource_address64 addr;
^
lib/libio.c:160:28: error: dereferencing pointer to incomplete type
struct device *dev = &adev->dev;
^
lib/libio.c:165:21: error: dereferencing pointer to incomplete type
res_cnt, resource->type);
^
lib/libio.c:169:2: error: implicit declaration of function 'acpi_resource_to_address64' [-Werror=implicit-function-declaration]
if (ACPI_FAILURE(acpi_resource_to_address64(resource, &addr))) {
^
lib/libio.c:171:12: error: dereferencing pointer to incomplete type
resource->type);
^
vim +27 lib/libio.c
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 18 #include <linux/io.h>
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 19 #include <linux/spinlock.h>
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 20
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 21 static LIST_HEAD(extio_dev_list);
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 22 static DEFINE_RWLOCK(extio_list_lock);
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 23
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 @24 void register_extio(struct extio_node *node)
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 25 {
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 26 write_lock(&extio_list_lock);
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 @27 list_add_tail(&node->list, &extio_dev_list);
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 28 write_unlock(&extio_list_lock);
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 29 }
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 30
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 31 static struct extio_node *find_extio_token(unsigned long addr)
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 32 {
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 33 struct extio_node *extio_entry;
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 34
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 35 read_lock(&extio_list_lock);
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 36 list_for_each_entry(extio_entry, &extio_dev_list, list) {
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 37 if ((addr < extio_entry->io_start + extio_entry->range_size) &&
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 38 (addr >= extio_entry->io_start))
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 39 break;
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 40 }
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 41 read_unlock(&extio_list_lock);
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 42 return (&extio_entry->list == &extio_dev_list) ? NULL : extio_entry;
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 43 }
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 44
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 45 struct extio_node *extio_find_node(struct fwnode_handle *node)
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 46 {
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 47 struct extio_node *entry;
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 48
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 49 read_lock(&extio_list_lock);
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 50 list_for_each_entry(entry, &extio_dev_list, list) {
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 51 if (entry->fwnode == node)
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 52 break;
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 53 }
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 54 read_unlock(&extio_list_lock);
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 55
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 56 return (&entry->list == &extio_dev_list) ? NULL : entry;
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 57 }
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 58
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 59 unsigned long extio_translate(struct fwnode_handle *node,
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 60 unsigned long bus_addr)
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 61 {
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 62 struct extio_node *entry;
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 63 unsigned long port_id = -1;
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 64
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 65 read_lock(&extio_list_lock);
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 66 list_for_each_entry(entry, &extio_dev_list, list) {
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 67 if (entry->fwnode == node &&
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 68 bus_addr >= entry->bus_start &&
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 69 bus_addr - entry->bus_start < entry->range_size)
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 @70 port_id = entry->io_start + bus_addr -
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 71 entry->bus_start;
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 72 }
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 73 read_unlock(&extio_list_lock);
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 74
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 75 return port_id;
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 76 }
14c67d09 lib/extio.c zhichang.yuan 2017-01-23 77
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 @78 static inline bool acpi_extio_supported_resource(struct acpi_resource *res)
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 79 {
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 80 switch (res->type) {
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 81 case ACPI_RESOURCE_TYPE_ADDRESS16:
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 82 case ACPI_RESOURCE_TYPE_ADDRESS32:
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 83 case ACPI_RESOURCE_TYPE_ADDRESS64:
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 84 return true;
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 85 }
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 86 return false;
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 87 }
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 88
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 89 static acpi_status acpi_count_extiores(struct acpi_resource *res,
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 90 void *data)
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 91 {
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 92 int *res_cnt = data;
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 93
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 @94 if (acpi_extio_supported_resource(res) &&
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 @95 !acpi_dev_filter_resource_type(res, IORESOURCE_IO))
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 96 (*res_cnt)++;
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 97
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 98 return AE_OK;
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 99 }
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 100
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 101 static acpi_status acpi_read_one_extiores(struct acpi_resource *res,
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 102 void *data)
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 103 {
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 104 struct acpi_resource **resource = data;
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 105
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 106 if (acpi_extio_supported_resource(res) &&
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 107 !acpi_dev_filter_resource_type(res, IORESOURCE_IO)) {
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 108 memcpy((*resource), res, sizeof(struct acpi_resource));
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 @109 (*resource)->length = sizeof(struct acpi_resource);
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 @110 (*resource)->type = res->type;
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 @111 (*resource)++;
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 112 }
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 113
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 @114 return AE_OK;
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 115 }
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 116
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 @117 static acpi_status
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 118 acpi_build_extiores_template(struct acpi_device *adev,
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 @119 struct acpi_buffer *buffer)
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 120 {
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 121 acpi_handle handle = adev->handle;
0ccaa690 lib/extio.c zhichang.yuan 2017-01-24 122 struct acpi_resource *resource;
:::::: The code at line 27 was first introduced by commit
:::::: 14c67d09a6034fd1fbce0bb1e31baf312abde981 LIB: Indirect ISA/LPC port IO introduced
:::::: TO: zhichang.yuan <yuanzhichang@hisilicon.com>
:::::: CC: zhichang.yuan <yuanzhichang@hisilicon.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 26858 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170207/adb7f8db/attachment-0001.gz>
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-02-06 18:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-06 18:25 [hisi:topic-lpc-4.10-libio 136/148] lib/libio.c:27:21: error: dereferencing pointer to incomplete type kbuild test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.