Merge branch 'i2c/for-current-fixed' into i2c/for-5.8
This commit is contained in:
commit
f89c326dca
915 changed files with 9376 additions and 5287 deletions
|
|
@ -54,7 +54,6 @@ enum wb_reason {
|
|||
WB_REASON_SYNC,
|
||||
WB_REASON_PERIODIC,
|
||||
WB_REASON_LAPTOP_TIMER,
|
||||
WB_REASON_FREE_MORE_MEM,
|
||||
WB_REASON_FS_FREE_SPACE,
|
||||
/*
|
||||
* There is no bdi forker thread any more and works are done
|
||||
|
|
|
|||
|
|
@ -319,7 +319,7 @@ struct bio_integrity_payload {
|
|||
struct work_struct bip_work; /* I/O completion */
|
||||
|
||||
struct bio_vec *bip_vec;
|
||||
struct bio_vec bip_inline_vecs[0];/* embedded bvec array */
|
||||
struct bio_vec bip_inline_vecs[];/* embedded bvec array */
|
||||
};
|
||||
|
||||
#if defined(CONFIG_BLK_DEV_INTEGRITY)
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ struct blk_mq_hw_ctx {
|
|||
* blocking (BLK_MQ_F_BLOCKING). Must be the last member - see also
|
||||
* blk_mq_hw_ctx_size().
|
||||
*/
|
||||
struct srcu_struct srcu[0];
|
||||
struct srcu_struct srcu[];
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ struct bio {
|
|||
* double allocations for a small number of bio_vecs. This member
|
||||
* MUST obviously be kept at the very end of the bio.
|
||||
*/
|
||||
struct bio_vec bi_inline_vecs[0];
|
||||
struct bio_vec bi_inline_vecs[];
|
||||
};
|
||||
|
||||
#define BIO_RESET_BYTES offsetof(struct bio, bi_max_vecs)
|
||||
|
|
|
|||
|
|
@ -189,6 +189,8 @@ struct buffer_head *__getblk_gfp(struct block_device *bdev, sector_t block,
|
|||
void __brelse(struct buffer_head *);
|
||||
void __bforget(struct buffer_head *);
|
||||
void __breadahead(struct block_device *, sector_t block, unsigned int size);
|
||||
void __breadahead_gfp(struct block_device *, sector_t block, unsigned int size,
|
||||
gfp_t gfp);
|
||||
struct buffer_head *__bread_gfp(struct block_device *,
|
||||
sector_t block, unsigned size, gfp_t gfp);
|
||||
void invalidate_bh_lrus(void);
|
||||
|
|
@ -319,6 +321,12 @@ sb_breadahead(struct super_block *sb, sector_t block)
|
|||
__breadahead(sb->s_bdev, block, sb->s_blocksize);
|
||||
}
|
||||
|
||||
static inline void
|
||||
sb_breadahead_unmovable(struct super_block *sb, sector_t block)
|
||||
{
|
||||
__breadahead_gfp(sb->s_bdev, block, sb->s_blocksize, 0);
|
||||
}
|
||||
|
||||
static inline struct buffer_head *
|
||||
sb_getblk(struct super_block *sb, sector_t block)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@ struct __packed pucan_rx_msg {
|
|||
u8 client;
|
||||
__le16 flags;
|
||||
__le32 can_id;
|
||||
u8 d[0];
|
||||
u8 d[];
|
||||
};
|
||||
|
||||
/* uCAN error types */
|
||||
|
|
@ -266,7 +266,7 @@ struct __packed pucan_tx_msg {
|
|||
u8 client;
|
||||
__le16 flags;
|
||||
__le32 can_id;
|
||||
u8 d[0];
|
||||
u8 d[];
|
||||
};
|
||||
|
||||
/* build the cmd opcode_channel field with respect to the correct endianness */
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ struct cpu_rmap {
|
|||
struct {
|
||||
u16 index;
|
||||
u16 dist;
|
||||
} near[0];
|
||||
} near[];
|
||||
};
|
||||
#define CPU_RMAP_DIST_INF 0xffff
|
||||
|
||||
|
|
|
|||
|
|
@ -103,8 +103,8 @@ void debugfs_create_u8(const char *name, umode_t mode, struct dentry *parent,
|
|||
u8 *value);
|
||||
void debugfs_create_u16(const char *name, umode_t mode, struct dentry *parent,
|
||||
u16 *value);
|
||||
struct dentry *debugfs_create_u32(const char *name, umode_t mode,
|
||||
struct dentry *parent, u32 *value);
|
||||
void debugfs_create_u32(const char *name, umode_t mode, struct dentry *parent,
|
||||
u32 *value);
|
||||
void debugfs_create_u64(const char *name, umode_t mode, struct dentry *parent,
|
||||
u64 *value);
|
||||
struct dentry *debugfs_create_ulong(const char *name, umode_t mode,
|
||||
|
|
@ -250,12 +250,8 @@ static inline void debugfs_create_u8(const char *name, umode_t mode,
|
|||
static inline void debugfs_create_u16(const char *name, umode_t mode,
|
||||
struct dentry *parent, u16 *value) { }
|
||||
|
||||
static inline struct dentry *debugfs_create_u32(const char *name, umode_t mode,
|
||||
struct dentry *parent,
|
||||
u32 *value)
|
||||
{
|
||||
return ERR_PTR(-ENODEV);
|
||||
}
|
||||
static inline void debugfs_create_u32(const char *name, umode_t mode,
|
||||
struct dentry *parent, u32 *value) { }
|
||||
|
||||
static inline void debugfs_create_u64(const char *name, umode_t mode,
|
||||
struct dentry *parent, u64 *value) { }
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ struct pubkey_hdr {
|
|||
uint32_t timestamp; /* key made, always 0 for now */
|
||||
uint8_t algo;
|
||||
uint8_t nmpi;
|
||||
char mpi[0];
|
||||
char mpi[];
|
||||
} __packed;
|
||||
|
||||
struct signature_hdr {
|
||||
|
|
@ -39,7 +39,7 @@ struct signature_hdr {
|
|||
uint8_t hash;
|
||||
uint8_t keyid[8];
|
||||
uint8_t nmpi;
|
||||
char mpi[0];
|
||||
char mpi[];
|
||||
} __packed;
|
||||
|
||||
#if defined(CONFIG_SIGNATURE) || defined(CONFIG_SIGNATURE_MODULE)
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ struct linux_dirent64 {
|
|||
s64 d_off;
|
||||
unsigned short d_reclen;
|
||||
unsigned char d_type;
|
||||
char d_name[0];
|
||||
char d_name[];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -329,13 +329,12 @@ struct dma_buf {
|
|||
|
||||
/**
|
||||
* struct dma_buf_attach_ops - importer operations for an attachment
|
||||
* @move_notify: [optional] notification that the DMA-buf is moving
|
||||
*
|
||||
* Attachment operations implemented by the importer.
|
||||
*/
|
||||
struct dma_buf_attach_ops {
|
||||
/**
|
||||
* @move_notify
|
||||
* @move_notify: [optional] notification that the DMA-buf is moving
|
||||
*
|
||||
* If this callback is provided the framework can avoid pinning the
|
||||
* backing store while mappings exists.
|
||||
|
|
|
|||
|
|
@ -83,9 +83,9 @@ enum dma_transfer_direction {
|
|||
/**
|
||||
* Interleaved Transfer Request
|
||||
* ----------------------------
|
||||
* A chunk is collection of contiguous bytes to be transfered.
|
||||
* A chunk is collection of contiguous bytes to be transferred.
|
||||
* The gap(in bytes) between two chunks is called inter-chunk-gap(ICG).
|
||||
* ICGs may or maynot change between chunks.
|
||||
* ICGs may or may not change between chunks.
|
||||
* A FRAME is the smallest series of contiguous {chunk,icg} pairs,
|
||||
* that when repeated an integral number of times, specifies the transfer.
|
||||
* A transfer template is specification of a Frame, the number of times
|
||||
|
|
@ -341,13 +341,11 @@ struct dma_chan {
|
|||
* @chan: driver channel device
|
||||
* @device: sysfs device
|
||||
* @dev_id: parent dma_device dev_id
|
||||
* @idr_ref: reference count to gate release of dma_device dev_id
|
||||
*/
|
||||
struct dma_chan_dev {
|
||||
struct dma_chan *chan;
|
||||
struct device device;
|
||||
int dev_id;
|
||||
atomic_t *idr_ref;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -835,6 +833,8 @@ struct dma_device {
|
|||
int dev_id;
|
||||
struct device *dev;
|
||||
struct module *owner;
|
||||
struct ida chan_ida;
|
||||
struct mutex chan_mutex; /* to protect chan_ida */
|
||||
|
||||
u32 src_addr_widths;
|
||||
u32 dst_addr_widths;
|
||||
|
|
@ -1069,7 +1069,7 @@ static inline int dmaengine_terminate_all(struct dma_chan *chan)
|
|||
* dmaengine_synchronize() needs to be called before it is safe to free
|
||||
* any memory that is accessed by previously submitted descriptors or before
|
||||
* freeing any resources accessed from within the completion callback of any
|
||||
* perviously submitted descriptors.
|
||||
* previously submitted descriptors.
|
||||
*
|
||||
* This function can be called from atomic context as well as from within a
|
||||
* complete callback of a descriptor submitted on the same channel.
|
||||
|
|
@ -1091,7 +1091,7 @@ static inline int dmaengine_terminate_async(struct dma_chan *chan)
|
|||
*
|
||||
* Synchronizes to the DMA channel termination to the current context. When this
|
||||
* function returns it is guaranteed that all transfers for previously issued
|
||||
* descriptors have stopped and and it is safe to free the memory assoicated
|
||||
* descriptors have stopped and it is safe to free the memory associated
|
||||
* with them. Furthermore it is guaranteed that all complete callback functions
|
||||
* for a previously submitted descriptor have finished running and it is safe to
|
||||
* free resources accessed from within the complete callbacks.
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ struct enclosure_device {
|
|||
struct device edev;
|
||||
struct enclosure_component_callbacks *cb;
|
||||
int components;
|
||||
struct enclosure_component component[0];
|
||||
struct enclosure_component component[];
|
||||
};
|
||||
|
||||
static inline struct enclosure_device *
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ struct em_cap_state {
|
|||
struct em_perf_domain {
|
||||
struct em_cap_state *table;
|
||||
int nr_cap_states;
|
||||
unsigned long cpus[0];
|
||||
unsigned long cpus[];
|
||||
};
|
||||
|
||||
#ifdef CONFIG_ENERGY_MODEL
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ struct compat_ethtool_rxnfc {
|
|||
compat_u64 data;
|
||||
struct compat_ethtool_rx_flow_spec fs;
|
||||
u32 rule_cnt;
|
||||
u32 rule_locs[0];
|
||||
u32 rule_locs[];
|
||||
};
|
||||
|
||||
#endif /* CONFIG_COMPAT */
|
||||
|
|
@ -462,7 +462,7 @@ int ethtool_check_ops(const struct ethtool_ops *ops);
|
|||
|
||||
struct ethtool_rx_flow_rule {
|
||||
struct flow_rule *rule;
|
||||
unsigned long priv[0];
|
||||
unsigned long priv[];
|
||||
};
|
||||
|
||||
struct ethtool_rx_flow_spec_input {
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ struct gen_pool_chunk {
|
|||
void *owner; /* private data to retrieve at alloc time */
|
||||
unsigned long start_addr; /* start address of memory chunk */
|
||||
unsigned long end_addr; /* end address of memory chunk (inclusive) */
|
||||
unsigned long bits[0]; /* bitmap for allocating memory chunk */
|
||||
unsigned long bits[]; /* bitmap for allocating memory chunk */
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ struct i2c_mux_core {
|
|||
|
||||
int num_adapters;
|
||||
int max_adapters;
|
||||
struct i2c_adapter *adapter[0];
|
||||
struct i2c_adapter *adapter[];
|
||||
};
|
||||
|
||||
struct i2c_mux_core *i2c_mux_alloc(struct i2c_adapter *parent,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
/*
|
||||
* i2c.h - definitions for the Linux i2c bus interface
|
||||
* Copyright (C) 1995-2000 Simon G. Vogl
|
||||
* Copyright (C) 2013-2019 Wolfram Sang <wsa@the-dreams.de>
|
||||
* Copyright (C) 2013-2019 Wolfram Sang <wsa@kernel.org>
|
||||
*
|
||||
* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and
|
||||
* Frodo Looijaard <frodol@dds.nl>
|
||||
|
|
@ -462,12 +462,6 @@ i2c_new_scanned_device(struct i2c_adapter *adap,
|
|||
unsigned short const *addr_list,
|
||||
int (*probe)(struct i2c_adapter *adap, unsigned short addr));
|
||||
|
||||
struct i2c_client *
|
||||
i2c_new_probed_device(struct i2c_adapter *adap,
|
||||
struct i2c_board_info *info,
|
||||
unsigned short const *addr_list,
|
||||
int (*probe)(struct i2c_adapter *adap, unsigned short addr));
|
||||
|
||||
/* Common custom probe functions */
|
||||
int i2c_probe_func_quick_read(struct i2c_adapter *adap, unsigned short addr);
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ struct ip_sf_socklist {
|
|||
unsigned int sl_max;
|
||||
unsigned int sl_count;
|
||||
struct rcu_head rcu;
|
||||
__be32 sl_addr[0];
|
||||
__be32 sl_addr[];
|
||||
};
|
||||
|
||||
#define IP_SFLSIZE(count) (sizeof(struct ip_sf_socklist) + \
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
struct ihex_binrec {
|
||||
__be32 addr;
|
||||
__be16 len;
|
||||
uint8_t data[0];
|
||||
uint8_t data[];
|
||||
} __attribute__((packed));
|
||||
|
||||
static inline uint16_t ihex_binrec_size(const struct ihex_binrec *p)
|
||||
|
|
|
|||
|
|
@ -600,7 +600,7 @@ void iio_device_unregister(struct iio_dev *indio_dev);
|
|||
* 0 on success, negative error number on failure.
|
||||
*/
|
||||
#define devm_iio_device_register(dev, indio_dev) \
|
||||
__devm_iio_device_register((dev), (indio_dev), THIS_MODULE);
|
||||
__devm_iio_device_register((dev), (indio_dev), THIS_MODULE)
|
||||
int __devm_iio_device_register(struct device *dev, struct iio_dev *indio_dev,
|
||||
struct module *this_mod);
|
||||
void devm_iio_device_unregister(struct device *dev, struct iio_dev *indio_dev);
|
||||
|
|
|
|||
|
|
@ -573,8 +573,6 @@ enum {
|
|||
#define IRQ_DEFAULT_INIT_FLAGS ARCH_IRQ_INIT_FLAGS
|
||||
|
||||
struct irqaction;
|
||||
extern int setup_irq(unsigned int irq, struct irqaction *new);
|
||||
extern void remove_irq(unsigned int irq, struct irqaction *act);
|
||||
extern int setup_percpu_irq(unsigned int irq, struct irqaction *new);
|
||||
extern void remove_percpu_irq(unsigned int irq, struct irqaction *act);
|
||||
|
||||
|
|
@ -1043,7 +1041,7 @@ struct irq_chip_generic {
|
|||
unsigned long unused;
|
||||
struct irq_domain *domain;
|
||||
struct list_head list;
|
||||
struct irq_chip_type chip_types[0];
|
||||
struct irq_chip_type chip_types[];
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -1079,7 +1077,7 @@ struct irq_domain_chip_generic {
|
|||
unsigned int irq_flags_to_clear;
|
||||
unsigned int irq_flags_to_set;
|
||||
enum irq_gc_flags gc_flags;
|
||||
struct irq_chip_generic *gc[0];
|
||||
struct irq_chip_generic *gc[];
|
||||
};
|
||||
|
||||
/* Generic chip callback functions */
|
||||
|
|
|
|||
|
|
@ -243,6 +243,7 @@
|
|||
|
||||
#define GICR_TYPER_PLPIS (1U << 0)
|
||||
#define GICR_TYPER_VLPIS (1U << 1)
|
||||
#define GICR_TYPER_DIRTY (1U << 2)
|
||||
#define GICR_TYPER_DirectLPIS (1U << 3)
|
||||
#define GICR_TYPER_LAST (1U << 4)
|
||||
#define GICR_TYPER_RVPEID (1U << 7)
|
||||
|
|
@ -686,6 +687,7 @@ struct rdists {
|
|||
bool has_vlpis;
|
||||
bool has_rvpeid;
|
||||
bool has_direct_lpi;
|
||||
bool has_vpend_valid_dirty;
|
||||
};
|
||||
|
||||
struct irq_domain;
|
||||
|
|
|
|||
|
|
@ -1048,7 +1048,7 @@ search_memslots(struct kvm_memslots *slots, gfn_t gfn)
|
|||
start = slot + 1;
|
||||
}
|
||||
|
||||
if (gfn >= memslots[start].base_gfn &&
|
||||
if (start < slots->used_slots && gfn >= memslots[start].base_gfn &&
|
||||
gfn < memslots[start].base_gfn + memslots[start].npages) {
|
||||
atomic_set(&slots->lru_slot, start);
|
||||
return &memslots[start];
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ struct list_lru_one {
|
|||
struct list_lru_memcg {
|
||||
struct rcu_head rcu;
|
||||
/* array of per cgroup lists, indexed by memcg_cache_id */
|
||||
struct list_lru_one *lru[0];
|
||||
struct list_lru_one *lru[];
|
||||
};
|
||||
|
||||
struct list_lru_node {
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ struct lruvec_stat {
|
|||
*/
|
||||
struct memcg_shrinker_map {
|
||||
struct rcu_head rcu;
|
||||
unsigned long map[0];
|
||||
unsigned long map[];
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -148,7 +148,7 @@ struct mem_cgroup_threshold_ary {
|
|||
/* Size of entries[] */
|
||||
unsigned int size;
|
||||
/* Array of thresholds */
|
||||
struct mem_cgroup_threshold entries[0];
|
||||
struct mem_cgroup_threshold entries[];
|
||||
};
|
||||
|
||||
struct mem_cgroup_thresholds {
|
||||
|
|
|
|||
|
|
@ -1317,11 +1317,13 @@ struct nfs41_impl_id {
|
|||
struct nfstime4 date;
|
||||
};
|
||||
|
||||
#define MAX_BIND_CONN_TO_SESSION_RETRIES 3
|
||||
struct nfs41_bind_conn_to_session_args {
|
||||
struct nfs_client *client;
|
||||
struct nfs4_sessionid sessionid;
|
||||
u32 dir;
|
||||
bool use_conn_in_rdma_mode;
|
||||
int retries;
|
||||
};
|
||||
|
||||
struct nfs41_bind_conn_to_session_res {
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ struct wilco_ec_response {
|
|||
u16 result;
|
||||
u16 data_size;
|
||||
u8 reserved[2];
|
||||
u8 data[0];
|
||||
u8 data[];
|
||||
} __packed;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -220,10 +220,8 @@ struct pnp_card {
|
|||
#define global_to_pnp_card(n) list_entry(n, struct pnp_card, global_list)
|
||||
#define protocol_to_pnp_card(n) list_entry(n, struct pnp_card, protocol_list)
|
||||
#define to_pnp_card(n) container_of(n, struct pnp_card, dev)
|
||||
#define pnp_for_each_card(card) \
|
||||
for((card) = global_to_pnp_card(pnp_cards.next); \
|
||||
(card) != global_to_pnp_card(&pnp_cards); \
|
||||
(card) = global_to_pnp_card((card)->global_list.next))
|
||||
#define pnp_for_each_card(card) \
|
||||
list_for_each_entry(card, &pnp_cards, global_list)
|
||||
|
||||
struct pnp_card_link {
|
||||
struct pnp_card *card;
|
||||
|
|
@ -276,14 +274,9 @@ struct pnp_dev {
|
|||
#define card_to_pnp_dev(n) list_entry(n, struct pnp_dev, card_list)
|
||||
#define protocol_to_pnp_dev(n) list_entry(n, struct pnp_dev, protocol_list)
|
||||
#define to_pnp_dev(n) container_of(n, struct pnp_dev, dev)
|
||||
#define pnp_for_each_dev(dev) \
|
||||
for((dev) = global_to_pnp_dev(pnp_global.next); \
|
||||
(dev) != global_to_pnp_dev(&pnp_global); \
|
||||
(dev) = global_to_pnp_dev((dev)->global_list.next))
|
||||
#define card_for_each_dev(card,dev) \
|
||||
for((dev) = card_to_pnp_dev((card)->devices.next); \
|
||||
(dev) != card_to_pnp_dev(&(card)->devices); \
|
||||
(dev) = card_to_pnp_dev((dev)->card_list.next))
|
||||
#define pnp_for_each_dev(dev) list_for_each_entry(dev, &pnp_global, global_list)
|
||||
#define card_for_each_dev(card, dev) \
|
||||
list_for_each_entry(dev, &(card)->devices, card_list)
|
||||
#define pnp_dev_name(dev) (dev)->name
|
||||
|
||||
static inline void *pnp_get_drvdata(struct pnp_dev *pdev)
|
||||
|
|
@ -437,14 +430,10 @@ struct pnp_protocol {
|
|||
};
|
||||
|
||||
#define to_pnp_protocol(n) list_entry(n, struct pnp_protocol, protocol_list)
|
||||
#define protocol_for_each_card(protocol,card) \
|
||||
for((card) = protocol_to_pnp_card((protocol)->cards.next); \
|
||||
(card) != protocol_to_pnp_card(&(protocol)->cards); \
|
||||
(card) = protocol_to_pnp_card((card)->protocol_list.next))
|
||||
#define protocol_for_each_dev(protocol,dev) \
|
||||
for((dev) = protocol_to_pnp_dev((protocol)->devices.next); \
|
||||
(dev) != protocol_to_pnp_dev(&(protocol)->devices); \
|
||||
(dev) = protocol_to_pnp_dev((dev)->protocol_list.next))
|
||||
#define protocol_for_each_card(protocol, card) \
|
||||
list_for_each_entry(card, &(protocol)->cards, protocol_list)
|
||||
#define protocol_for_each_dev(protocol, dev) \
|
||||
list_for_each_entry(dev, &(protocol)->devices, protocol_list)
|
||||
|
||||
extern struct bus_type pnp_bus_type;
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ struct posix_acl {
|
|||
refcount_t a_refcount;
|
||||
struct rcu_head a_rcu;
|
||||
unsigned int a_count;
|
||||
struct posix_acl_entry a_entries[0];
|
||||
struct posix_acl_entry a_entries[];
|
||||
};
|
||||
|
||||
#define FOREACH_ACL_ENTRY(pa, acl, pe) \
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ struct rio_switch {
|
|||
u32 port_ok;
|
||||
struct rio_switch_ops *ops;
|
||||
spinlock_t lock;
|
||||
struct rio_dev *nextdev[0];
|
||||
struct rio_dev *nextdev[];
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -201,7 +201,7 @@ struct rio_dev {
|
|||
u8 hopcount;
|
||||
struct rio_dev *prev;
|
||||
atomic_t state;
|
||||
struct rio_switch rswitch[0]; /* RIO switch info */
|
||||
struct rio_switch rswitch[]; /* RIO switch info */
|
||||
};
|
||||
|
||||
#define rio_dev_g(n) list_entry(n, struct rio_dev, global_list)
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ struct rs_codec {
|
|||
*/
|
||||
struct rs_control {
|
||||
struct rs_codec *codec;
|
||||
uint16_t buffers[0];
|
||||
uint16_t buffers[];
|
||||
};
|
||||
|
||||
/* General purpose RS codec, 8-bit data width, symbol width 1-15 bit */
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ struct sched_domain {
|
|||
* by attaching extra space to the end of the structure,
|
||||
* depending on how many CPUs the kernel has booted up with)
|
||||
*/
|
||||
unsigned long span[0];
|
||||
unsigned long span[];
|
||||
};
|
||||
|
||||
static inline struct cpumask *sched_domain_span(struct sched_domain *sd)
|
||||
|
|
|
|||
|
|
@ -4162,7 +4162,7 @@ struct skb_ext {
|
|||
refcount_t refcnt;
|
||||
u8 offset[SKB_EXT_NUM]; /* in chunks of 8 bytes */
|
||||
u8 chunks; /* same */
|
||||
char data[0] __aligned(8);
|
||||
char data[] __aligned(8);
|
||||
};
|
||||
|
||||
struct skb_ext *__skb_ext_alloc(void);
|
||||
|
|
|
|||
|
|
@ -177,6 +177,8 @@ struct plat_stmmacenet_data {
|
|||
struct stmmac_rxq_cfg rx_queues_cfg[MTL_MAX_RX_QUEUES];
|
||||
struct stmmac_txq_cfg tx_queues_cfg[MTL_MAX_TX_QUEUES];
|
||||
void (*fix_mac_speed)(void *priv, unsigned int speed);
|
||||
int (*serdes_powerup)(struct net_device *ndev, void *priv);
|
||||
void (*serdes_powerdown)(struct net_device *ndev, void *priv);
|
||||
int (*init)(struct platform_device *pdev, void *priv);
|
||||
void (*exit)(struct platform_device *pdev, void *priv);
|
||||
struct mac_device_info *(*setup)(void *priv);
|
||||
|
|
|
|||
|
|
@ -71,7 +71,13 @@ struct rpc_clnt {
|
|||
#if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
|
||||
struct dentry *cl_debugfs; /* debugfs directory */
|
||||
#endif
|
||||
struct rpc_xprt_iter cl_xpi;
|
||||
/* cl_work is only needed after cl_xpi is no longer used,
|
||||
* and that are of similar size
|
||||
*/
|
||||
union {
|
||||
struct rpc_xprt_iter cl_xpi;
|
||||
struct work_struct cl_work;
|
||||
};
|
||||
const struct cred *cl_cred;
|
||||
};
|
||||
|
||||
|
|
@ -236,4 +242,9 @@ static inline int rpc_reply_expected(struct rpc_task *task)
|
|||
(task->tk_msg.rpc_proc->p_decode != NULL);
|
||||
}
|
||||
|
||||
static inline void rpc_task_close_connection(struct rpc_task *task)
|
||||
{
|
||||
if (task->tk_xprt)
|
||||
xprt_force_disconnect(task->tk_xprt);
|
||||
}
|
||||
#endif /* _LINUX_SUNRPC_CLNT_H */
|
||||
|
|
|
|||
|
|
@ -170,6 +170,7 @@ extern bool svc_rdma_post_recvs(struct svcxprt_rdma *rdma);
|
|||
extern void svc_rdma_recv_ctxt_put(struct svcxprt_rdma *rdma,
|
||||
struct svc_rdma_recv_ctxt *ctxt);
|
||||
extern void svc_rdma_flush_recv_queues(struct svcxprt_rdma *rdma);
|
||||
extern void svc_rdma_release_rqst(struct svc_rqst *rqstp);
|
||||
extern int svc_rdma_recvfrom(struct svc_rqst *);
|
||||
|
||||
/* svc_rdma_rw.c */
|
||||
|
|
|
|||
|
|
@ -275,7 +275,7 @@ struct swap_info_struct {
|
|||
*/
|
||||
struct work_struct discard_work; /* discard worker */
|
||||
struct swap_cluster_list discard_clusters; /* discard clusters list */
|
||||
struct plist_node avail_lists[0]; /*
|
||||
struct plist_node avail_lists[]; /*
|
||||
* entries in swap_avail_heads, one
|
||||
* entry per node.
|
||||
* Must be last as the number of the
|
||||
|
|
|
|||
|
|
@ -295,7 +295,7 @@ struct bts_header {
|
|||
u32 magic;
|
||||
u32 version;
|
||||
u8 future[24];
|
||||
u8 actions[0];
|
||||
u8 actions[];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/**
|
||||
|
|
@ -305,7 +305,7 @@ struct bts_header {
|
|||
struct bts_action {
|
||||
u16 type;
|
||||
u16 size;
|
||||
u8 data[0];
|
||||
u8 data[];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct bts_action_send {
|
||||
|
|
@ -315,7 +315,7 @@ struct bts_action_send {
|
|||
struct bts_action_wait {
|
||||
u32 msec;
|
||||
u32 size;
|
||||
u8 data[0];
|
||||
u8 data[];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct bts_action_delay {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ struct tcpa_event {
|
|||
u32 event_type;
|
||||
u8 pcr_value[20]; /* SHA1 */
|
||||
u32 event_size;
|
||||
u8 event_data[0];
|
||||
u8 event_data[];
|
||||
};
|
||||
|
||||
enum tcpa_event_types {
|
||||
|
|
@ -55,7 +55,7 @@ enum tcpa_event_types {
|
|||
struct tcpa_pc_event {
|
||||
u32 event_id;
|
||||
u32 event_size;
|
||||
u8 event_data[0];
|
||||
u8 event_data[];
|
||||
};
|
||||
|
||||
enum tcpa_pc_event_ids {
|
||||
|
|
@ -102,7 +102,7 @@ struct tcg_pcr_event {
|
|||
|
||||
struct tcg_event_field {
|
||||
u32 event_size;
|
||||
u8 event[0];
|
||||
u8 event[];
|
||||
} __packed;
|
||||
|
||||
struct tcg_pcr_event2_head {
|
||||
|
|
|
|||
|
|
@ -156,8 +156,7 @@ static inline struct tracepoint *tracepoint_ptr_deref(tracepoint_ptr_t *p)
|
|||
* Note, the proto and args passed in includes "__data" as the first parameter.
|
||||
* The reason for this is to handle the "void" prototype. If a tracepoint
|
||||
* has a "void" prototype, then it is invalid to declare a function
|
||||
* as "(void *, void)". The DECLARE_TRACE_NOARGS() will pass in just
|
||||
* "void *data", where as the DECLARE_TRACE() will pass in "void *data, proto".
|
||||
* as "(void *, void)".
|
||||
*/
|
||||
#define __DO_TRACE(tp, proto, args, cond, rcuidle) \
|
||||
do { \
|
||||
|
|
@ -373,25 +372,6 @@ static inline struct tracepoint *tracepoint_ptr_deref(tracepoint_ptr_t *p)
|
|||
# define __tracepoint_string
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The need for the DECLARE_TRACE_NOARGS() is to handle the prototype
|
||||
* (void). "void" is a special value in a function prototype and can
|
||||
* not be combined with other arguments. Since the DECLARE_TRACE()
|
||||
* macro adds a data element at the beginning of the prototype,
|
||||
* we need a way to differentiate "(void *data, proto)" from
|
||||
* "(void *data, void)". The second prototype is invalid.
|
||||
*
|
||||
* DECLARE_TRACE_NOARGS() passes "void" as the tracepoint prototype
|
||||
* and "void *__data" as the callback prototype.
|
||||
*
|
||||
* DECLARE_TRACE() passes "proto" as the tracepoint protoype and
|
||||
* "void *__data, proto" as the callback prototype.
|
||||
*/
|
||||
#define DECLARE_TRACE_NOARGS(name) \
|
||||
__DECLARE_TRACE(name, void, , \
|
||||
cpu_online(raw_smp_processor_id()), \
|
||||
void *__data, __data)
|
||||
|
||||
#define DECLARE_TRACE(name, proto, args) \
|
||||
__DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \
|
||||
cpu_online(raw_smp_processor_id()), \
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ struct vdpa_config_ops {
|
|||
u64 (*get_vq_state)(struct vdpa_device *vdev, u16 idx);
|
||||
|
||||
/* Device ops */
|
||||
u16 (*get_vq_align)(struct vdpa_device *vdev);
|
||||
u32 (*get_vq_align)(struct vdpa_device *vdev);
|
||||
u64 (*get_features)(struct vdpa_device *vdev);
|
||||
int (*set_features)(struct vdpa_device *vdev, u64 features);
|
||||
void (*set_config_cb)(struct vdpa_device *vdev,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _LINUX_VERMAGIC_H
|
||||
#define _LINUX_VERMAGIC_H
|
||||
|
||||
#include <generated/utsrelease.h>
|
||||
#include <asm/vermagic.h>
|
||||
|
||||
/* Simply sanity version stamp for modules. */
|
||||
#ifdef CONFIG_SMP
|
||||
|
|
@ -24,9 +28,6 @@
|
|||
#else
|
||||
#define MODULE_VERMAGIC_MODVERSIONS ""
|
||||
#endif
|
||||
#ifndef MODULE_ARCH_VERMAGIC
|
||||
#define MODULE_ARCH_VERMAGIC ""
|
||||
#endif
|
||||
#ifdef RANDSTRUCT_PLUGIN
|
||||
#include <generated/randomize_layout_hash.h>
|
||||
#define MODULE_RANDSTRUCT_PLUGIN "RANDSTRUCT_PLUGIN_" RANDSTRUCT_HASHED_SEED
|
||||
|
|
@ -41,3 +42,4 @@
|
|||
MODULE_ARCH_VERMAGIC \
|
||||
MODULE_RANDSTRUCT_PLUGIN
|
||||
|
||||
#endif /* _LINUX_VERMAGIC_H */
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
#include <linux/device.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/gfp.h>
|
||||
#include <linux/vringh.h>
|
||||
|
||||
/**
|
||||
* virtqueue - a queue to register buffers for sending or receiving.
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ extern void vunmap(const void *addr);
|
|||
|
||||
extern int remap_vmalloc_range_partial(struct vm_area_struct *vma,
|
||||
unsigned long uaddr, void *kaddr,
|
||||
unsigned long size);
|
||||
unsigned long pgoff, unsigned long size);
|
||||
|
||||
extern int remap_vmalloc_range(struct vm_area_struct *vma, void *addr,
|
||||
unsigned long pgoff);
|
||||
|
|
|
|||
|
|
@ -14,8 +14,10 @@
|
|||
#include <linux/virtio_byteorder.h>
|
||||
#include <linux/uio.h>
|
||||
#include <linux/slab.h>
|
||||
#if IS_REACHABLE(CONFIG_VHOST_IOTLB)
|
||||
#include <linux/dma-direction.h>
|
||||
#include <linux/vhost_iotlb.h>
|
||||
#endif
|
||||
#include <asm/barrier.h>
|
||||
|
||||
/* virtio_ring with information needed for host access. */
|
||||
|
|
@ -254,6 +256,8 @@ static inline __virtio64 cpu_to_vringh64(const struct vringh *vrh, u64 val)
|
|||
return __cpu_to_virtio64(vringh_is_little_endian(vrh), val);
|
||||
}
|
||||
|
||||
#if IS_REACHABLE(CONFIG_VHOST_IOTLB)
|
||||
|
||||
void vringh_set_iotlb(struct vringh *vrh, struct vhost_iotlb *iotlb);
|
||||
|
||||
int vringh_init_iotlb(struct vringh *vrh, u64 features,
|
||||
|
|
@ -284,4 +288,6 @@ void vringh_notify_disable_iotlb(struct vringh *vrh);
|
|||
|
||||
int vringh_need_notify_iotlb(struct vringh *vrh);
|
||||
|
||||
#endif /* CONFIG_VHOST_IOTLB */
|
||||
|
||||
#endif /* _LINUX_VRINGH_H */
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ struct simple_xattr {
|
|||
struct list_head list;
|
||||
char *name;
|
||||
size_t size;
|
||||
char value[0];
|
||||
char value[];
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue