hc
2024-02-19 1c055e55a242a33e574e48be530e06770a210dcd
kernel/drivers/net/netdevsim/ipsec.c
....@@ -29,9 +29,9 @@
2929 return -ENOMEM;
3030
3131 p = buf;
32
- p += snprintf(p, bufsize - (p - buf),
33
- "SA count=%u tx=%u\n",
34
- ipsec->count, ipsec->tx);
32
+ p += scnprintf(p, bufsize - (p - buf),
33
+ "SA count=%u tx=%u\n",
34
+ ipsec->count, ipsec->tx);
3535
3636 for (i = 0; i < NSIM_IPSEC_MAX_SA_COUNT; i++) {
3737 struct nsim_sa *sap = &ipsec->sa[i];
....@@ -39,18 +39,18 @@
3939 if (!sap->used)
4040 continue;
4141
42
- p += snprintf(p, bufsize - (p - buf),
43
- "sa[%i] %cx ipaddr=0x%08x %08x %08x %08x\n",
44
- i, (sap->rx ? 'r' : 't'), sap->ipaddr[0],
45
- sap->ipaddr[1], sap->ipaddr[2], sap->ipaddr[3]);
46
- p += snprintf(p, bufsize - (p - buf),
47
- "sa[%i] spi=0x%08x proto=0x%x salt=0x%08x crypt=%d\n",
48
- i, be32_to_cpu(sap->xs->id.spi),
49
- sap->xs->id.proto, sap->salt, sap->crypt);
50
- p += snprintf(p, bufsize - (p - buf),
51
- "sa[%i] key=0x%08x %08x %08x %08x\n",
52
- i, sap->key[0], sap->key[1],
53
- sap->key[2], sap->key[3]);
42
+ p += scnprintf(p, bufsize - (p - buf),
43
+ "sa[%i] %cx ipaddr=0x%08x %08x %08x %08x\n",
44
+ i, (sap->rx ? 'r' : 't'), sap->ipaddr[0],
45
+ sap->ipaddr[1], sap->ipaddr[2], sap->ipaddr[3]);
46
+ p += scnprintf(p, bufsize - (p - buf),
47
+ "sa[%i] spi=0x%08x proto=0x%x salt=0x%08x crypt=%d\n",
48
+ i, be32_to_cpu(sap->xs->id.spi),
49
+ sap->xs->id.proto, sap->salt, sap->crypt);
50
+ p += scnprintf(p, bufsize - (p - buf),
51
+ "sa[%i] key=0x%08x %08x %08x %08x\n",
52
+ i, sap->key[0], sap->key[1],
53
+ sap->key[2], sap->key[3]);
5454 }
5555
5656 len = simple_read_from_buffer(buffer, count, ppos, buf, p - buf);
....@@ -85,7 +85,7 @@
8585 u32 *mykey, u32 *mysalt)
8686 {
8787 const char aes_gcm_name[] = "rfc4106(gcm(aes))";
88
- struct net_device *dev = xs->xso.dev;
88
+ struct net_device *dev = xs->xso.real_dev;
8989 unsigned char *key_data;
9090 char *alg_name = NULL;
9191 int key_len;
....@@ -134,7 +134,7 @@
134134 u16 sa_idx;
135135 int ret;
136136
137
- dev = xs->xso.dev;
137
+ dev = xs->xso.real_dev;
138138 ns = netdev_priv(dev);
139139 ipsec = &ns->ipsec;
140140
....@@ -194,7 +194,7 @@
194194
195195 static void nsim_ipsec_del_sa(struct xfrm_state *xs)
196196 {
197
- struct netdevsim *ns = netdev_priv(xs->xso.dev);
197
+ struct netdevsim *ns = netdev_priv(xs->xso.real_dev);
198198 struct nsim_ipsec *ipsec = &ns->ipsec;
199199 u16 sa_idx;
200200
....@@ -211,7 +211,7 @@
211211
212212 static bool nsim_ipsec_offload_ok(struct sk_buff *skb, struct xfrm_state *xs)
213213 {
214
- struct netdevsim *ns = netdev_priv(xs->xso.dev);
214
+ struct netdevsim *ns = netdev_priv(xs->xso.real_dev);
215215 struct nsim_ipsec *ipsec = &ns->ipsec;
216216
217217 ipsec->ok++;
....@@ -227,18 +227,19 @@
227227
228228 bool nsim_ipsec_tx(struct netdevsim *ns, struct sk_buff *skb)
229229 {
230
+ struct sec_path *sp = skb_sec_path(skb);
230231 struct nsim_ipsec *ipsec = &ns->ipsec;
231232 struct xfrm_state *xs;
232233 struct nsim_sa *tsa;
233234 u32 sa_idx;
234235
235236 /* do we even need to check this packet? */
236
- if (!skb->sp)
237
+ if (!sp)
237238 return true;
238239
239
- if (unlikely(!skb->sp->len)) {
240
+ if (unlikely(!sp->len)) {
240241 netdev_err(ns->netdev, "no xfrm state len = %d\n",
241
- skb->sp->len);
242
+ sp->len);
242243 return false;
243244 }
244245
....@@ -282,7 +283,8 @@
282283 ns->netdev->features |= NSIM_ESP_FEATURES;
283284 ns->netdev->hw_enc_features |= NSIM_ESP_FEATURES;
284285
285
- ns->ipsec.pfile = debugfs_create_file("ipsec", 0400, ns->ddir, ns,
286
+ ns->ipsec.pfile = debugfs_create_file("ipsec", 0400,
287
+ ns->nsim_dev_port->ddir, ns,
286288 &ipsec_dbg_fops);
287289 }
288290