Commit a51a40b7 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'sctp-fix-sparse-errors'



Xin Long says:

====================
sctp: fix some other sparse errors

After the last fixes for sparse errors, there are still three sparse
errors in sctp codes, two of them are type cast, and the other one
is using extern.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents f95d5bf0 1ba896f6
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -48,31 +48,32 @@ static inline __wsum sctp_csum_update(const void *buff, int len, __wsum sum)
	/* This uses the crypto implementation of crc32c, which is either
	 * implemented w/ hardware support or resolves to __crc32c_le().
	 */
	return crc32c(sum, buff, len);
	return (__force __wsum)crc32c((__force __u32)sum, buff, len);
}

static inline __wsum sctp_csum_combine(__wsum csum, __wsum csum2,
				       int offset, int len)
{
	return __crc32c_le_combine(csum, csum2, len);
	return (__force __wsum)__crc32c_le_combine((__force __u32)csum,
						   (__force __u32)csum2, len);
}

static inline __le32 sctp_compute_cksum(const struct sk_buff *skb,
					unsigned int offset)
{
	struct sctphdr *sh = sctp_hdr(skb);
        __le32 ret, old = sh->checksum;
	const struct skb_checksum_ops ops = {
		.update  = sctp_csum_update,
		.combine = sctp_csum_combine,
	};
	__le32 old = sh->checksum;
	__wsum new;

	sh->checksum = 0;
	ret = cpu_to_le32(~__skb_checksum(skb, offset, skb->len - offset,
					  ~(__u32)0, &ops));
	new = ~__skb_checksum(skb, offset, skb->len - offset, ~(__wsum)0, &ops);
	sh->checksum = old;

	return ret;
	return cpu_to_le32((__force __u32)new);
}

#endif /* __sctp_checksum_h__ */
+5 −0
Original line number Diff line number Diff line
@@ -194,6 +194,11 @@ void sctp_remaddr_proc_exit(struct net *net);
 */
int sctp_offload_init(void);

/*
 * sctp/stream_sched.c
 */
void sctp_sched_ops_init(void);

/*
 * sctp/stream.c
 */
+5 −0
Original line number Diff line number Diff line
@@ -69,4 +69,9 @@ void sctp_sched_dequeue_common(struct sctp_outq *q, struct sctp_chunk *ch);
int sctp_sched_init_sid(struct sctp_stream *stream, __u16 sid, gfp_t gfp);
struct sctp_sched_ops *sctp_sched_ops_from_stream(struct sctp_stream *stream);

void sctp_sched_ops_register(enum sctp_sched_type sched,
			     struct sctp_sched_ops *sched_ops);
void sctp_sched_ops_prio_init(void);
void sctp_sched_ops_rr_init(void);

#endif /* __sctp_stream_sched_h__ */
+1 −0
Original line number Diff line number Diff line
@@ -1499,6 +1499,7 @@ static __init int sctp_init(void)
	INIT_LIST_HEAD(&sctp_address_families);
	sctp_v4_pf_init();
	sctp_v6_pf_init();
	sctp_sched_ops_init();

	status = register_pernet_subsys(&sctp_defaults_ops);
	if (status)
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ static void sctp_stream_outq_migrate(struct sctp_stream *stream,
		 */

		/* Mark as failed send. */
		sctp_chunk_fail(ch, SCTP_ERROR_INV_STRM);
		sctp_chunk_fail(ch, (__force __u32)SCTP_ERROR_INV_STRM);
		if (asoc->peer.prsctp_capable &&
		    SCTP_PR_PRIO_ENABLED(ch->sinfo.sinfo_flags))
			asoc->sent_cnt_removable--;
Loading