Symbol: sc
arch/alpha/boot/stdio.c
10
const char *sc;
arch/alpha/boot/stdio.c
12
for (sc = s; count-- && *sc != '\0'; ++sc)
arch/alpha/boot/stdio.c
14
return sc - s;
arch/alpha/kernel/signal.c
127
struct sigcontext sc;
arch/alpha/kernel/signal.c
149
restore_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs)
arch/alpha/kernel/signal.c
153
long err = __get_user(regs->pc, &sc->sc_pc);
arch/alpha/kernel/signal.c
160
err |= __get_user(regs->r0, sc->sc_regs+0);
arch/alpha/kernel/signal.c
161
err |= __get_user(regs->r1, sc->sc_regs+1);
arch/alpha/kernel/signal.c
162
err |= __get_user(regs->r2, sc->sc_regs+2);
arch/alpha/kernel/signal.c
163
err |= __get_user(regs->r3, sc->sc_regs+3);
arch/alpha/kernel/signal.c
164
err |= __get_user(regs->r4, sc->sc_regs+4);
arch/alpha/kernel/signal.c
165
err |= __get_user(regs->r5, sc->sc_regs+5);
arch/alpha/kernel/signal.c
166
err |= __get_user(regs->r6, sc->sc_regs+6);
arch/alpha/kernel/signal.c
167
err |= __get_user(regs->r7, sc->sc_regs+7);
arch/alpha/kernel/signal.c
168
err |= __get_user(regs->r8, sc->sc_regs+8);
arch/alpha/kernel/signal.c
169
err |= __get_user(sw->r9, sc->sc_regs+9);
arch/alpha/kernel/signal.c
170
err |= __get_user(sw->r10, sc->sc_regs+10);
arch/alpha/kernel/signal.c
171
err |= __get_user(sw->r11, sc->sc_regs+11);
arch/alpha/kernel/signal.c
172
err |= __get_user(sw->r12, sc->sc_regs+12);
arch/alpha/kernel/signal.c
173
err |= __get_user(sw->r13, sc->sc_regs+13);
arch/alpha/kernel/signal.c
174
err |= __get_user(sw->r14, sc->sc_regs+14);
arch/alpha/kernel/signal.c
175
err |= __get_user(sw->r15, sc->sc_regs+15);
arch/alpha/kernel/signal.c
176
err |= __get_user(regs->r16, sc->sc_regs+16);
arch/alpha/kernel/signal.c
177
err |= __get_user(regs->r17, sc->sc_regs+17);
arch/alpha/kernel/signal.c
178
err |= __get_user(regs->r18, sc->sc_regs+18);
arch/alpha/kernel/signal.c
179
err |= __get_user(regs->r19, sc->sc_regs+19);
arch/alpha/kernel/signal.c
180
err |= __get_user(regs->r20, sc->sc_regs+20);
arch/alpha/kernel/signal.c
181
err |= __get_user(regs->r21, sc->sc_regs+21);
arch/alpha/kernel/signal.c
182
err |= __get_user(regs->r22, sc->sc_regs+22);
arch/alpha/kernel/signal.c
183
err |= __get_user(regs->r23, sc->sc_regs+23);
arch/alpha/kernel/signal.c
184
err |= __get_user(regs->r24, sc->sc_regs+24);
arch/alpha/kernel/signal.c
185
err |= __get_user(regs->r25, sc->sc_regs+25);
arch/alpha/kernel/signal.c
186
err |= __get_user(regs->r26, sc->sc_regs+26);
arch/alpha/kernel/signal.c
187
err |= __get_user(regs->r27, sc->sc_regs+27);
arch/alpha/kernel/signal.c
188
err |= __get_user(regs->r28, sc->sc_regs+28);
arch/alpha/kernel/signal.c
189
err |= __get_user(regs->gp, sc->sc_regs+29);
arch/alpha/kernel/signal.c
190
err |= __get_user(usp, sc->sc_regs+30);
arch/alpha/kernel/signal.c
194
sc->sc_fpregs, 31 * 8);
arch/alpha/kernel/signal.c
195
err |= __get_user(current_thread_info()->fp[31], &sc->sc_fpcr);
arch/alpha/kernel/signal.c
205
do_sigreturn(struct sigcontext __user *sc)
arch/alpha/kernel/signal.c
211
if (!access_ok(sc, sizeof(*sc)))
arch/alpha/kernel/signal.c
213
if (__get_user(set.sig[0], &sc->sc_mask))
arch/alpha/kernel/signal.c
218
if (restore_sigcontext(sc, regs))
arch/alpha/kernel/signal.c
272
setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs,
arch/alpha/kernel/signal.c
278
err |= __put_user(on_sig_stack((unsigned long)sc), &sc->sc_onstack);
arch/alpha/kernel/signal.c
279
err |= __put_user(mask, &sc->sc_mask);
arch/alpha/kernel/signal.c
280
err |= __put_user(regs->pc, &sc->sc_pc);
arch/alpha/kernel/signal.c
281
err |= __put_user(8, &sc->sc_ps);
arch/alpha/kernel/signal.c
283
err |= __put_user(regs->r0 , sc->sc_regs+0);
arch/alpha/kernel/signal.c
284
err |= __put_user(regs->r1 , sc->sc_regs+1);
arch/alpha/kernel/signal.c
285
err |= __put_user(regs->r2 , sc->sc_regs+2);
arch/alpha/kernel/signal.c
286
err |= __put_user(regs->r3 , sc->sc_regs+3);
arch/alpha/kernel/signal.c
287
err |= __put_user(regs->r4 , sc->sc_regs+4);
arch/alpha/kernel/signal.c
288
err |= __put_user(regs->r5 , sc->sc_regs+5);
arch/alpha/kernel/signal.c
289
err |= __put_user(regs->r6 , sc->sc_regs+6);
arch/alpha/kernel/signal.c
290
err |= __put_user(regs->r7 , sc->sc_regs+7);
arch/alpha/kernel/signal.c
291
err |= __put_user(regs->r8 , sc->sc_regs+8);
arch/alpha/kernel/signal.c
292
err |= __put_user(sw->r9 , sc->sc_regs+9);
arch/alpha/kernel/signal.c
293
err |= __put_user(sw->r10 , sc->sc_regs+10);
arch/alpha/kernel/signal.c
294
err |= __put_user(sw->r11 , sc->sc_regs+11);
arch/alpha/kernel/signal.c
295
err |= __put_user(sw->r12 , sc->sc_regs+12);
arch/alpha/kernel/signal.c
296
err |= __put_user(sw->r13 , sc->sc_regs+13);
arch/alpha/kernel/signal.c
297
err |= __put_user(sw->r14 , sc->sc_regs+14);
arch/alpha/kernel/signal.c
298
err |= __put_user(sw->r15 , sc->sc_regs+15);
arch/alpha/kernel/signal.c
299
err |= __put_user(regs->r16, sc->sc_regs+16);
arch/alpha/kernel/signal.c
300
err |= __put_user(regs->r17, sc->sc_regs+17);
arch/alpha/kernel/signal.c
301
err |= __put_user(regs->r18, sc->sc_regs+18);
arch/alpha/kernel/signal.c
302
err |= __put_user(regs->r19, sc->sc_regs+19);
arch/alpha/kernel/signal.c
303
err |= __put_user(regs->r20, sc->sc_regs+20);
arch/alpha/kernel/signal.c
304
err |= __put_user(regs->r21, sc->sc_regs+21);
arch/alpha/kernel/signal.c
305
err |= __put_user(regs->r22, sc->sc_regs+22);
arch/alpha/kernel/signal.c
306
err |= __put_user(regs->r23, sc->sc_regs+23);
arch/alpha/kernel/signal.c
307
err |= __put_user(regs->r24, sc->sc_regs+24);
arch/alpha/kernel/signal.c
308
err |= __put_user(regs->r25, sc->sc_regs+25);
arch/alpha/kernel/signal.c
309
err |= __put_user(regs->r26, sc->sc_regs+26);
arch/alpha/kernel/signal.c
310
err |= __put_user(regs->r27, sc->sc_regs+27);
arch/alpha/kernel/signal.c
311
err |= __put_user(regs->r28, sc->sc_regs+28);
arch/alpha/kernel/signal.c
312
err |= __put_user(regs->gp , sc->sc_regs+29);
arch/alpha/kernel/signal.c
313
err |= __put_user(sp, sc->sc_regs+30);
arch/alpha/kernel/signal.c
314
err |= __put_user(0, sc->sc_regs+31);
arch/alpha/kernel/signal.c
316
err |= __copy_to_user(sc->sc_fpregs,
arch/alpha/kernel/signal.c
318
err |= __put_user(0, sc->sc_fpregs+31);
arch/alpha/kernel/signal.c
319
err |= __put_user(current_thread_info()->fp[31], &sc->sc_fpcr);
arch/alpha/kernel/signal.c
321
err |= __put_user(regs->trap_a0, &sc->sc_traparg_a0);
arch/alpha/kernel/signal.c
322
err |= __put_user(regs->trap_a1, &sc->sc_traparg_a1);
arch/alpha/kernel/signal.c
323
err |= __put_user(regs->trap_a2, &sc->sc_traparg_a2);
arch/alpha/kernel/signal.c
339
err |= setup_sigcontext(&frame->sc, regs, set->sig[0], oldsp);
arch/alpha/kernel/signal.c
363
regs->r18 = (unsigned long) &frame->sc; /* a2: sigcontext pointer */
arch/arm/boot/compressed/string.c
82
const char *sc = s;
arch/arm/boot/compressed/string.c
84
while (*sc != '\0')
arch/arm/boot/compressed/string.c
85
sc++;
arch/arm/boot/compressed/string.c
86
return sc - s;
arch/arm/boot/compressed/string.c
91
const char *sc;
arch/arm/boot/compressed/string.c
93
for (sc = s; count-- && *sc != '\0'; ++sc)
arch/arm/boot/compressed/string.c
95
return sc - s;
arch/arm/mach-omap2/clockdomains3xxx_data.c
501
struct clockdomain **sc;
arch/arm/mach-omap2/clockdomains3xxx_data.c
518
sc = (rev == OMAP3430_REV_ES1_0) ?
arch/arm/mach-omap2/clockdomains3xxx_data.c
521
clkdm_register_clkdms(sc);
arch/arm64/kernel/signal.c
756
struct sigcontext __user *const sc = &sf->uc.uc_mcontext;
arch/arm64/kernel/signal.c
758
char __user *base = (char __user *)&sc->__reserved;
arch/arm64/kernel/signal.c
760
size_t limit = sizeof(sc->__reserved);
arch/csky/kernel/signal.c
104
struct sigcontext __user *sc = &frame->uc.uc_mcontext;
arch/csky/kernel/signal.c
107
err |= __copy_to_user(&sc->sc_pt_regs, regs, sizeof(struct pt_regs));
arch/csky/kernel/signal.c
108
err |= save_fpu_state(sc);
arch/csky/kernel/signal.c
16
static int restore_fpu_state(struct sigcontext __user *sc)
arch/csky/kernel/signal.c
21
err = __copy_from_user(&user_fp, &sc->sc_user_fp, sizeof(user_fp));
arch/csky/kernel/signal.c
28
static int save_fpu_state(struct sigcontext __user *sc)
arch/csky/kernel/signal.c
34
return __copy_to_user(&sc->sc_user_fp, &user_fp, sizeof(user_fp));
arch/csky/kernel/signal.c
52
struct sigcontext __user *sc)
arch/csky/kernel/signal.c
58
err |= __copy_from_user(regs, &sc->sc_pt_regs, sizeof(struct pt_regs));
arch/csky/kernel/signal.c
64
err |= restore_fpu_state(sc);
arch/hexagon/kernel/signal.c
35
static int setup_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
arch/hexagon/kernel/signal.c
40
err |= copy_to_user(&sc->sc_regs.r0, &regs->r00,
arch/hexagon/kernel/signal.c
43
err |= __put_user(regs->sa0, &sc->sc_regs.sa0);
arch/hexagon/kernel/signal.c
44
err |= __put_user(regs->lc0, &sc->sc_regs.lc0);
arch/hexagon/kernel/signal.c
45
err |= __put_user(regs->sa1, &sc->sc_regs.sa1);
arch/hexagon/kernel/signal.c
46
err |= __put_user(regs->lc1, &sc->sc_regs.lc1);
arch/hexagon/kernel/signal.c
47
err |= __put_user(regs->m0, &sc->sc_regs.m0);
arch/hexagon/kernel/signal.c
48
err |= __put_user(regs->m1, &sc->sc_regs.m1);
arch/hexagon/kernel/signal.c
49
err |= __put_user(regs->usr, &sc->sc_regs.usr);
arch/hexagon/kernel/signal.c
50
err |= __put_user(regs->preds, &sc->sc_regs.p3_0);
arch/hexagon/kernel/signal.c
51
err |= __put_user(regs->gp, &sc->sc_regs.gp);
arch/hexagon/kernel/signal.c
52
err |= __put_user(regs->ugp, &sc->sc_regs.ugp);
arch/hexagon/kernel/signal.c
54
err |= __put_user(regs->cs0, &sc->sc_regs.cs0);
arch/hexagon/kernel/signal.c
55
err |= __put_user(regs->cs1, &sc->sc_regs.cs1);
arch/hexagon/kernel/signal.c
57
tmp = pt_elr(regs); err |= __put_user(tmp, &sc->sc_regs.pc);
arch/hexagon/kernel/signal.c
58
tmp = pt_cause(regs); err |= __put_user(tmp, &sc->sc_regs.cause);
arch/hexagon/kernel/signal.c
59
tmp = pt_badva(regs); err |= __put_user(tmp, &sc->sc_regs.badva);
arch/hexagon/kernel/signal.c
65
struct sigcontext __user *sc)
arch/hexagon/kernel/signal.c
70
err |= copy_from_user(&regs->r00, &sc->sc_regs.r0,
arch/hexagon/kernel/signal.c
73
err |= __get_user(regs->sa0, &sc->sc_regs.sa0);
arch/hexagon/kernel/signal.c
74
err |= __get_user(regs->lc0, &sc->sc_regs.lc0);
arch/hexagon/kernel/signal.c
75
err |= __get_user(regs->sa1, &sc->sc_regs.sa1);
arch/hexagon/kernel/signal.c
76
err |= __get_user(regs->lc1, &sc->sc_regs.lc1);
arch/hexagon/kernel/signal.c
77
err |= __get_user(regs->m0, &sc->sc_regs.m0);
arch/hexagon/kernel/signal.c
78
err |= __get_user(regs->m1, &sc->sc_regs.m1);
arch/hexagon/kernel/signal.c
79
err |= __get_user(regs->usr, &sc->sc_regs.usr);
arch/hexagon/kernel/signal.c
80
err |= __get_user(regs->preds, &sc->sc_regs.p3_0);
arch/hexagon/kernel/signal.c
81
err |= __get_user(regs->gp, &sc->sc_regs.gp);
arch/hexagon/kernel/signal.c
82
err |= __get_user(regs->ugp, &sc->sc_regs.ugp);
arch/hexagon/kernel/signal.c
84
err |= __get_user(regs->cs0, &sc->sc_regs.cs0);
arch/hexagon/kernel/signal.c
85
err |= __get_user(regs->cs1, &sc->sc_regs.cs1);
arch/hexagon/kernel/signal.c
87
err |= __get_user(tmp, &sc->sc_regs.pc); pt_set_elr(regs, tmp);
arch/loongarch/kernel/signal.c
663
static int setup_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc,
arch/loongarch/kernel/signal.c
669
err |= __put_user(regs->csr_era, &sc->sc_pc);
arch/loongarch/kernel/signal.c
670
err |= __put_user(extctx->flags, &sc->sc_flags);
arch/loongarch/kernel/signal.c
672
err |= __put_user(0, &sc->sc_regs[0]);
arch/loongarch/kernel/signal.c
674
err |= __put_user(regs->regs[i], &sc->sc_regs[i]);
arch/loongarch/kernel/signal.c
696
static int parse_extcontext(struct sigcontext __user *sc, struct extctx_layout *extctx)
arch/loongarch/kernel/signal.c
700
struct sctx_info __user *info = (struct sctx_info __user *)&sc->sc_extcontext;
arch/loongarch/kernel/signal.c
754
static int restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
arch/loongarch/kernel/signal.c
761
err = __get_user(extctx.flags, &sc->sc_flags);
arch/loongarch/kernel/signal.c
765
err = parse_extcontext(sc, &extctx);
arch/loongarch/kernel/signal.c
781
err |= __get_user(regs->csr_era, &sc->sc_pc);
arch/loongarch/kernel/signal.c
783
err |= __get_user(regs->regs[i], &sc->sc_regs[i]);
arch/m68k/atari/atakeyb.c
107
#define IS_SYNC_CODE(sc) ((sc) >= 0x04 && (sc) <= 0xfb)
arch/m68k/include/asm/string.h
11
const char *sc = s;
arch/m68k/include/asm/string.h
20
: "+a" (sc), "+d" (count));
arch/m68k/include/asm/string.h
21
return sc - s;
arch/m68k/kernel/signal.c
184
static inline void save_a5_state(struct sigcontext *sc, struct pt_regs *regs)
arch/m68k/kernel/signal.c
208
static inline void save_a5_state(struct sigcontext *sc, struct pt_regs *regs)
arch/m68k/kernel/signal.c
210
sc->sc_a5 = ((struct switch_stack *)regs - 1)->a5;
arch/m68k/kernel/signal.c
234
struct sigcontext sc;
arch/m68k/kernel/signal.c
257
static inline int restore_fpu_state(struct sigcontext *sc)
arch/m68k/kernel/signal.c
263
memcpy(current->thread.fpcntl, sc->sc_fpcntl, 12);
arch/m68k/kernel/signal.c
264
memcpy(current->thread.fp, sc->sc_fpregs, 24);
arch/m68k/kernel/signal.c
268
if (CPU_IS_060 ? sc->sc_fpstate[2] : sc->sc_fpstate[0]) {
arch/m68k/kernel/signal.c
271
(sc->sc_fpstate[0] != fpu_version))
arch/m68k/kernel/signal.c
275
!(sc->sc_fpstate[1] == 0x18 || sc->sc_fpstate[1] == 0xb4))
arch/m68k/kernel/signal.c
278
!(sc->sc_fpstate[1] == 0x38 || sc->sc_fpstate[1] == 0xd4))
arch/m68k/kernel/signal.c
281
if (!(sc->sc_fpstate[1] == 0x00 ||
arch/m68k/kernel/signal.c
282
sc->sc_fpstate[1] == 0x28 ||
arch/m68k/kernel/signal.c
283
sc->sc_fpstate[1] == 0x60))
arch/m68k/kernel/signal.c
286
if (!(sc->sc_fpstate[3] == 0x00 ||
arch/m68k/kernel/signal.c
287
sc->sc_fpstate[3] == 0x60 ||
arch/m68k/kernel/signal.c
288
sc->sc_fpstate[3] == 0xe0))
arch/m68k/kernel/signal.c
291
if (!(sc->sc_fpstate[0] == 0x00 ||
arch/m68k/kernel/signal.c
292
sc->sc_fpstate[0] == 0x05 ||
arch/m68k/kernel/signal.c
293
sc->sc_fpstate[0] == 0xe5))
arch/m68k/kernel/signal.c
304
: "m" (sc->sc_fpregs[0]),
arch/m68k/kernel/signal.c
305
"m" (sc->sc_fpcntl[0]),
arch/m68k/kernel/signal.c
306
"m" (sc->sc_fpcntl[1]),
arch/m68k/kernel/signal.c
307
"m" (sc->sc_fpcntl[2]));
arch/m68k/kernel/signal.c
314
: "m" (*sc->sc_fpregs),
arch/m68k/kernel/signal.c
315
"m" (*sc->sc_fpcntl));
arch/m68k/kernel/signal.c
320
__asm__ volatile ("frestore %0" : : "m" (*sc->sc_fpstate));
arch/m68k/kernel/signal.c
325
: : "m" (*sc->sc_fpstate));
arch/m68k/kernel/signal.c
431
static inline void save_fpu_state(struct sigcontext *sc, struct pt_regs *regs)
arch/m68k/kernel/signal.c
435
memcpy(sc->sc_fpcntl, current->thread.fpcntl, 12);
arch/m68k/kernel/signal.c
436
memcpy(sc->sc_fpregs, current->thread.fp, 24);
arch/m68k/kernel/signal.c
442
: : "m" (*sc->sc_fpstate) : "memory");
arch/m68k/kernel/signal.c
447
: : "m" (*sc->sc_fpstate) : "memory");
arch/m68k/kernel/signal.c
450
if (CPU_IS_060 ? sc->sc_fpstate[2] : sc->sc_fpstate[0]) {
arch/m68k/kernel/signal.c
451
fpu_version = sc->sc_fpstate[0];
arch/m68k/kernel/signal.c
456
if (*(unsigned short *) sc->sc_fpstate == 0x1f38)
arch/m68k/kernel/signal.c
457
sc->sc_fpstate[0x38] |= 1 << 3;
arch/m68k/kernel/signal.c
465
: "=m" (sc->sc_fpregs[0]),
arch/m68k/kernel/signal.c
466
"=m" (sc->sc_fpcntl[0]),
arch/m68k/kernel/signal.c
467
"=m" (sc->sc_fpcntl[1]),
arch/m68k/kernel/signal.c
468
"=m" (sc->sc_fpcntl[2])
arch/m68k/kernel/signal.c
476
: "=m" (*sc->sc_fpregs),
arch/m68k/kernel/signal.c
477
"=m" (*sc->sc_fpcntl)
arch/m68k/kernel/signal.c
557
static inline int restore_fpu_state(struct sigcontext *sc)
arch/m68k/kernel/signal.c
567
static inline void save_fpu_state(struct sigcontext *sc, struct pt_regs *regs)
arch/m68k/kernel/signal.c
767
if (__get_user(set.sig[0], &frame->sc.sc_mask) ||
arch/m68k/kernel/signal.c
775
size = restore_sigcontext(regs, &frame->sc, frame + 1);
arch/m68k/kernel/signal.c
814
static void setup_sigcontext(struct sigcontext *sc, struct pt_regs *regs,
arch/m68k/kernel/signal.c
818
sc->sc_mask = mask;
arch/m68k/kernel/signal.c
819
sc->sc_usp = rdusp();
arch/m68k/kernel/signal.c
820
sc->sc_d0 = regs->d0;
arch/m68k/kernel/signal.c
821
sc->sc_d1 = regs->d1;
arch/m68k/kernel/signal.c
822
sc->sc_a0 = regs->a0;
arch/m68k/kernel/signal.c
823
sc->sc_a1 = regs->a1;
arch/m68k/kernel/signal.c
824
sc->sc_sr = tregs->sr;
arch/m68k/kernel/signal.c
825
sc->sc_pc = tregs->pc;
arch/m68k/kernel/signal.c
826
sc->sc_formatvec = tregs->format << 12 | tregs->vector;
arch/m68k/kernel/signal.c
827
save_a5_state(sc, regs);
arch/m68k/kernel/signal.c
828
save_fpu_state(sc, regs);
arch/m68k/kernel/signal.c
899
err |= __put_user(&frame->sc, &frame->psc);
arch/m68k/kernel/signal.c
906
err |= copy_to_user (&frame->sc, &context, sizeof(context));
arch/microblaze/kernel/signal.c
118
setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs,
arch/microblaze/kernel/signal.c
123
#define COPY(x) {err |= __put_user(regs->x, &sc->regs.x); }
arch/microblaze/kernel/signal.c
137
err |= __put_user(mask, &sc->oldmask);
arch/microblaze/kernel/signal.c
46
struct sigcontext sc;
arch/microblaze/kernel/signal.c
58
struct sigcontext __user *sc, int *rval_p)
arch/microblaze/kernel/signal.c
62
#define COPY(x) {err |= __get_user(regs->x, &sc->regs.x); }
arch/mips/include/asm/asm-eva.h
107
#define kernel_sc(reg, addr) sc reg, addr
arch/mips/include/asm/asm.h
219
#define LONG_SC sc
arch/mips/include/asm/atomic.h
105
#define ATOMIC_FETCH_OP(pfx, op, type, c_op, asm_op, ll, sc) \
arch/mips/include/asm/atomic.h
127
" " #sc " %0, %2 \n" \
arch/mips/include/asm/atomic.h
139
#define ATOMIC_OPS(pfx, op, type, c_op, asm_op, ll, sc) \
arch/mips/include/asm/atomic.h
140
ATOMIC_OP(pfx, op, type, c_op, asm_op, ll, sc) \
arch/mips/include/asm/atomic.h
141
ATOMIC_OP_RETURN(pfx, op, type, c_op, asm_op, ll, sc) \
arch/mips/include/asm/atomic.h
142
ATOMIC_FETCH_OP(pfx, op, type, c_op, asm_op, ll, sc)
arch/mips/include/asm/atomic.h
144
ATOMIC_OPS(atomic, add, int, +=, addu, ll, sc)
arch/mips/include/asm/atomic.h
145
ATOMIC_OPS(atomic, sub, int, -=, subu, ll, sc)
arch/mips/include/asm/atomic.h
162
#define ATOMIC_OPS(pfx, op, type, c_op, asm_op, ll, sc) \
arch/mips/include/asm/atomic.h
163
ATOMIC_OP(pfx, op, type, c_op, asm_op, ll, sc) \
arch/mips/include/asm/atomic.h
164
ATOMIC_FETCH_OP(pfx, op, type, c_op, asm_op, ll, sc)
arch/mips/include/asm/atomic.h
166
ATOMIC_OPS(atomic, and, int, &=, and, ll, sc)
arch/mips/include/asm/atomic.h
167
ATOMIC_OPS(atomic, or, int, |=, or, ll, sc)
arch/mips/include/asm/atomic.h
168
ATOMIC_OPS(atomic, xor, int, ^=, xor, ll, sc)
arch/mips/include/asm/atomic.h
196
#define ATOMIC_SIP_OP(pfx, type, op, ll, sc) \
arch/mips/include/asm/atomic.h
227
" " #sc " %1, %2 \n" \
arch/mips/include/asm/atomic.h
248
ATOMIC_SIP_OP(atomic, int, subu, ll, sc)
arch/mips/include/asm/atomic.h
44
#define ATOMIC_OP(pfx, op, type, c_op, asm_op, ll, sc) \
arch/mips/include/asm/atomic.h
64
" " #sc " %0, %1 \n" \
arch/mips/include/asm/atomic.h
71
#define ATOMIC_OP_RETURN(pfx, op, type, c_op, asm_op, ll, sc) \
arch/mips/include/asm/atomic.h
94
" " #sc " %0, %2 \n" \
arch/mips/include/asm/signal.h
32
extern int protected_save_fp_context(void __user *sc);
arch/mips/include/asm/signal.h
33
extern int protected_restore_fp_context(void __user *sc);
arch/mips/include/uapi/asm/inst.h
704
__BITFIELD_FIELD(unsigned int sc : 1,
arch/mips/kernel/signal.c
111
static int copy_fp_to_sigcontext(void __user *sc)
arch/mips/kernel/signal.c
116
static int copy_fp_from_sigcontext(void __user *sc)
arch/mips/kernel/signal.c
126
static int save_hw_fp_context(void __user *sc)
arch/mips/kernel/signal.c
129
uint64_t __user *fpregs = sc + abi->off_sc_fpregs;
arch/mips/kernel/signal.c
130
uint32_t __user *csr = sc + abi->off_sc_fpc_csr;
arch/mips/kernel/signal.c
135
static int restore_hw_fp_context(void __user *sc)
arch/mips/kernel/signal.c
138
uint64_t __user *fpregs = sc + abi->off_sc_fpregs;
arch/mips/kernel/signal.c
139
uint32_t __user *csr = sc + abi->off_sc_fpc_csr;
arch/mips/kernel/signal.c
148
static inline void __user *sc_to_extcontext(void __user *sc)
arch/mips/kernel/signal.c
157
uc = container_of(sc, struct ucontext, uc_mcontext);
arch/mips/kernel/signal.c
325
int protected_save_fp_context(void __user *sc)
arch/mips/kernel/signal.c
328
uint64_t __user *fpregs = sc + abi->off_sc_fpregs;
arch/mips/kernel/signal.c
329
uint32_t __user *csr = sc + abi->off_sc_fpc_csr;
arch/mips/kernel/signal.c
330
uint32_t __user *used_math = sc + abi->off_sc_used_math;
arch/mips/kernel/signal.c
353
err = save_fp_context(sc);
arch/mips/kernel/signal.c
357
err = copy_fp_to_sigcontext(sc);
arch/mips/kernel/signal.c
370
ext_sz = err = save_extcontext(sc_to_extcontext(sc));
arch/mips/kernel/signal.c
378
int protected_restore_fp_context(void __user *sc)
arch/mips/kernel/signal.c
381
uint64_t __user *fpregs = sc + abi->off_sc_fpregs;
arch/mips/kernel/signal.c
382
uint32_t __user *csr = sc + abi->off_sc_fpc_csr;
arch/mips/kernel/signal.c
383
uint32_t __user *used_math = sc + abi->off_sc_used_math;
arch/mips/kernel/signal.c
416
err = restore_fp_context(sc);
arch/mips/kernel/signal.c
420
err = copy_fp_from_sigcontext(sc);
arch/mips/kernel/signal.c
434
err = restore_extcontext(sc_to_extcontext(sc));
arch/mips/kernel/signal.c
439
int setup_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
arch/mips/kernel/signal.c
444
err |= __put_user(regs->cp0_epc, &sc->sc_pc);
arch/mips/kernel/signal.c
446
err |= __put_user(0, &sc->sc_regs[0]);
arch/mips/kernel/signal.c
448
err |= __put_user(regs->regs[i], &sc->sc_regs[i]);
arch/mips/kernel/signal.c
45
static int (*save_fp_context)(void __user *sc);
arch/mips/kernel/signal.c
451
err |= __put_user(regs->acx, &sc->sc_acx);
arch/mips/kernel/signal.c
453
err |= __put_user(regs->hi, &sc->sc_mdhi);
arch/mips/kernel/signal.c
454
err |= __put_user(regs->lo, &sc->sc_mdlo);
arch/mips/kernel/signal.c
456
err |= __put_user(mfhi1(), &sc->sc_hi1);
arch/mips/kernel/signal.c
457
err |= __put_user(mflo1(), &sc->sc_lo1);
arch/mips/kernel/signal.c
458
err |= __put_user(mfhi2(), &sc->sc_hi2);
arch/mips/kernel/signal.c
459
err |= __put_user(mflo2(), &sc->sc_lo2);
arch/mips/kernel/signal.c
46
static int (*restore_fp_context)(void __user *sc);
arch/mips/kernel/signal.c
460
err |= __put_user(mfhi3(), &sc->sc_hi3);
arch/mips/kernel/signal.c
461
err |= __put_user(mflo3(), &sc->sc_lo3);
arch/mips/kernel/signal.c
462
err |= __put_user(rddsp(DSP_MASK), &sc->sc_dsp);
arch/mips/kernel/signal.c
470
err |= protected_save_fp_context(sc);
arch/mips/kernel/signal.c
516
int restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
arch/mips/kernel/signal.c
525
err |= __get_user(regs->cp0_epc, &sc->sc_pc);
arch/mips/kernel/signal.c
528
err |= __get_user(regs->acx, &sc->sc_acx);
arch/mips/kernel/signal.c
530
err |= __get_user(regs->hi, &sc->sc_mdhi);
arch/mips/kernel/signal.c
531
err |= __get_user(regs->lo, &sc->sc_mdlo);
arch/mips/kernel/signal.c
533
err |= __get_user(treg, &sc->sc_hi1); mthi1(treg);
arch/mips/kernel/signal.c
534
err |= __get_user(treg, &sc->sc_lo1); mtlo1(treg);
arch/mips/kernel/signal.c
535
err |= __get_user(treg, &sc->sc_hi2); mthi2(treg);
arch/mips/kernel/signal.c
536
err |= __get_user(treg, &sc->sc_lo2); mtlo2(treg);
arch/mips/kernel/signal.c
537
err |= __get_user(treg, &sc->sc_hi3); mthi3(treg);
arch/mips/kernel/signal.c
538
err |= __get_user(treg, &sc->sc_lo3); mtlo3(treg);
arch/mips/kernel/signal.c
539
err |= __get_user(treg, &sc->sc_dsp); wrdsp(treg, DSP_MASK);
arch/mips/kernel/signal.c
543
err |= __get_user(regs->regs[i], &sc->sc_regs[i]);
arch/mips/kernel/signal.c
545
return err ?: protected_restore_fp_context(sc);
arch/mips/kernel/signal.c
71
static int copy_fp_to_sigcontext(void __user *sc)
arch/mips/kernel/signal.c
74
uint64_t __user *fpregs = sc + abi->off_sc_fpregs;
arch/mips/kernel/signal.c
75
uint32_t __user *csr = sc + abi->off_sc_fpc_csr;
arch/mips/kernel/signal.c
90
static int copy_fp_from_sigcontext(void __user *sc)
arch/mips/kernel/signal.c
925
static int smp_save_fp_context(void __user *sc)
arch/mips/kernel/signal.c
928
? save_hw_fp_context(sc)
arch/mips/kernel/signal.c
929
: copy_fp_to_sigcontext(sc);
arch/mips/kernel/signal.c
93
uint64_t __user *fpregs = sc + abi->off_sc_fpregs;
arch/mips/kernel/signal.c
932
static int smp_restore_fp_context(void __user *sc)
arch/mips/kernel/signal.c
935
? restore_hw_fp_context(sc)
arch/mips/kernel/signal.c
936
: copy_fp_from_sigcontext(sc);
arch/mips/kernel/signal.c
94
uint32_t __user *csr = sc + abi->off_sc_fpc_csr;
arch/mips/kernel/signal_o32.c
100
err |= __get_user(treg, &sc->sc_hi1); mthi1(treg);
arch/mips/kernel/signal_o32.c
101
err |= __get_user(treg, &sc->sc_lo1); mtlo1(treg);
arch/mips/kernel/signal_o32.c
102
err |= __get_user(treg, &sc->sc_hi2); mthi2(treg);
arch/mips/kernel/signal_o32.c
103
err |= __get_user(treg, &sc->sc_lo2); mtlo2(treg);
arch/mips/kernel/signal_o32.c
104
err |= __get_user(treg, &sc->sc_hi3); mthi3(treg);
arch/mips/kernel/signal_o32.c
105
err |= __get_user(treg, &sc->sc_lo3); mtlo3(treg);
arch/mips/kernel/signal_o32.c
106
err |= __get_user(treg, &sc->sc_dsp); wrdsp(treg, DSP_MASK);
arch/mips/kernel/signal_o32.c
110
err |= __get_user(regs->regs[i], &sc->sc_regs[i]);
arch/mips/kernel/signal_o32.c
112
return err ?: protected_restore_fp_context(sc);
arch/mips/kernel/signal_o32.c
54
struct sigcontext32 __user *sc)
arch/mips/kernel/signal_o32.c
59
err |= __put_user(regs->cp0_epc, &sc->sc_pc);
arch/mips/kernel/signal_o32.c
61
err |= __put_user(0, &sc->sc_regs[0]);
arch/mips/kernel/signal_o32.c
63
err |= __put_user(regs->regs[i], &sc->sc_regs[i]);
arch/mips/kernel/signal_o32.c
65
err |= __put_user(regs->hi, &sc->sc_mdhi);
arch/mips/kernel/signal_o32.c
66
err |= __put_user(regs->lo, &sc->sc_mdlo);
arch/mips/kernel/signal_o32.c
68
err |= __put_user(rddsp(DSP_MASK), &sc->sc_dsp);
arch/mips/kernel/signal_o32.c
69
err |= __put_user(mfhi1(), &sc->sc_hi1);
arch/mips/kernel/signal_o32.c
70
err |= __put_user(mflo1(), &sc->sc_lo1);
arch/mips/kernel/signal_o32.c
71
err |= __put_user(mfhi2(), &sc->sc_hi2);
arch/mips/kernel/signal_o32.c
72
err |= __put_user(mflo2(), &sc->sc_lo2);
arch/mips/kernel/signal_o32.c
73
err |= __put_user(mfhi3(), &sc->sc_hi3);
arch/mips/kernel/signal_o32.c
74
err |= __put_user(mflo3(), &sc->sc_lo3);
arch/mips/kernel/signal_o32.c
81
err |= protected_save_fp_context(sc);
arch/mips/kernel/signal_o32.c
87
struct sigcontext32 __user *sc)
arch/mips/kernel/signal_o32.c
96
err |= __get_user(regs->cp0_epc, &sc->sc_pc);
arch/mips/kernel/signal_o32.c
97
err |= __get_user(regs->hi, &sc->sc_mdhi);
arch/mips/kernel/signal_o32.c
98
err |= __get_user(regs->lo, &sc->sc_mdlo);
arch/mips/net/bpf_jit_comp.c
434
emit(ctx, sc, MIPS_R_T8, off, dst);
arch/mips/net/bpf_jit_comp.c
451
emit(ctx, sc, MIPS_R_T8, off, dst);
arch/openrisc/kernel/signal.c
142
static int setup_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
arch/openrisc/kernel/signal.c
150
err |= __copy_to_user(sc->regs.gpr, regs, 32 * sizeof(unsigned long));
arch/openrisc/kernel/signal.c
151
err |= __copy_to_user(&sc->regs.pc, &regs->pc, sizeof(unsigned long));
arch/openrisc/kernel/signal.c
152
err |= __copy_to_user(&sc->regs.sr, &regs->sr, sizeof(unsigned long));
arch/openrisc/kernel/signal.c
153
err |= save_fp_state(sc);
arch/openrisc/kernel/signal.c
44
static long restore_fp_state(struct sigcontext __user *sc)
arch/openrisc/kernel/signal.c
48
err = __copy_from_user(&current->thread.fpcsr, &sc->fpcsr, sizeof(unsigned long));
arch/openrisc/kernel/signal.c
58
static long save_fp_state(struct sigcontext __user *sc)
arch/openrisc/kernel/signal.c
65
err = __copy_to_user(&sc->fpcsr, &current->thread.fpcsr, sizeof(unsigned long));
arch/openrisc/kernel/signal.c
70
#define save_fp_state(sc) (0)
arch/openrisc/kernel/signal.c
71
#define restore_fp_state(sc) (0)
arch/openrisc/kernel/signal.c
75
struct sigcontext __user *sc)
arch/openrisc/kernel/signal.c
87
err |= __copy_from_user(regs, sc->regs.gpr, 32 * sizeof(unsigned long));
arch/openrisc/kernel/signal.c
88
err |= __copy_from_user(&regs->pc, &sc->regs.pc, sizeof(unsigned long));
arch/openrisc/kernel/signal.c
89
err |= __copy_from_user(&regs->sr, &sc->regs.sr, sizeof(unsigned long));
arch/openrisc/kernel/signal.c
90
err |= restore_fp_state(sc);
arch/parisc/boot/compressed/misc.c
103
const char *sc;
arch/parisc/boot/compressed/misc.c
105
for (sc = s; *sc != '\0'; ++sc)
arch/parisc/boot/compressed/misc.c
107
return sc - s;
arch/parisc/kernel/signal.c
179
setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs, long in_syscall)
arch/parisc/kernel/signal.c
185
if (on_sig_stack((unsigned long) sc))
arch/parisc/kernel/signal.c
190
err |= __put_user(regs->gr[31], &sc->sc_iaoq[0]);
arch/parisc/kernel/signal.c
191
err |= __put_user(regs->gr[31]+4, &sc->sc_iaoq[1]);
arch/parisc/kernel/signal.c
192
err |= __put_user(regs->sr[3], &sc->sc_iasq[0]);
arch/parisc/kernel/signal.c
193
err |= __put_user(regs->sr[3], &sc->sc_iasq[1]);
arch/parisc/kernel/signal.c
197
err |= __copy_to_user(sc->sc_iaoq, regs->iaoq, sizeof(regs->iaoq));
arch/parisc/kernel/signal.c
198
err |= __copy_to_user(sc->sc_iasq, regs->iasq, sizeof(regs->iasq));
arch/parisc/kernel/signal.c
203
err |= __put_user(flags, &sc->sc_flags);
arch/parisc/kernel/signal.c
204
err |= __copy_to_user(sc->sc_gr, regs->gr, sizeof(regs->gr));
arch/parisc/kernel/signal.c
205
err |= __copy_to_user(sc->sc_fr, regs->fr, sizeof(regs->fr));
arch/parisc/kernel/signal.c
206
err |= __put_user(regs->sar, &sc->sc_sar);
arch/parisc/kernel/signal.c
61
restore_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs)
arch/parisc/kernel/signal.c
65
err |= __copy_from_user(regs->gr, sc->sc_gr, sizeof(regs->gr));
arch/parisc/kernel/signal.c
66
err |= __copy_from_user(regs->fr, sc->sc_fr, sizeof(regs->fr));
arch/parisc/kernel/signal.c
67
err |= __copy_from_user(regs->iaoq, sc->sc_iaoq, sizeof(regs->iaoq));
arch/parisc/kernel/signal.c
68
err |= __copy_from_user(regs->iasq, sc->sc_iasq, sizeof(regs->iasq));
arch/parisc/kernel/signal.c
69
err |= __get_user(regs->sar, &sc->sc_sar);
arch/parisc/kernel/signal32.c
115
setup_sigcontext32(struct compat_sigcontext __user *sc, struct compat_regfile __user * rf,
arch/parisc/kernel/signal32.c
124
if (on_sig_stack((unsigned long) sc))
arch/parisc/kernel/signal32.c
135
err |= __put_user(compat_reg, &sc->sc_iaoq[0]);
arch/parisc/kernel/signal32.c
137
&sc->sc_iaoq[0], compat_reg);
arch/parisc/kernel/signal32.c
146
err |= __put_user(compat_reg, &sc->sc_iaoq[1]);
arch/parisc/kernel/signal32.c
148
&sc->sc_iaoq[1], compat_reg);
arch/parisc/kernel/signal32.c
156
err |= __put_user(compat_reg, &sc->sc_iasq[0]);
arch/parisc/kernel/signal32.c
157
err |= __put_user(compat_reg, &sc->sc_iasq[1]);
arch/parisc/kernel/signal32.c
172
err |= __put_user(compat_reg, &sc->sc_iaoq[0]);
arch/parisc/kernel/signal32.c
174
&sc->sc_iaoq[0], compat_reg);
arch/parisc/kernel/signal32.c
181
err |= __put_user(compat_reg, &sc->sc_iaoq[1]);
arch/parisc/kernel/signal32.c
183
&sc->sc_iaoq[1], compat_reg);
arch/parisc/kernel/signal32.c
191
err |= __put_user(compat_reg, &sc->sc_iasq[0]);
arch/parisc/kernel/signal32.c
193
&sc->sc_iasq[0], compat_reg);
arch/parisc/kernel/signal32.c
201
err |= __put_user(compat_reg, &sc->sc_iasq[1]);
arch/parisc/kernel/signal32.c
203
&sc->sc_iasq[1], compat_reg);
arch/parisc/kernel/signal32.c
214
err |= __put_user(flags, &sc->sc_flags);
arch/parisc/kernel/signal32.c
221
err |= __put_user(compat_reg, &sc->sc_gr[regn]);
arch/parisc/kernel/signal32.c
235
sizeof(regs->fr), sizeof(sc->sc_fr));
arch/parisc/kernel/signal32.c
236
err |= __copy_to_user(sc->sc_fr, regs->fr, sizeof(regs->fr));
arch/parisc/kernel/signal32.c
239
err |= __put_user(compat_reg, &sc->sc_sar);
arch/parisc/kernel/signal32.c
36
restore_sigcontext32(struct compat_sigcontext __user *sc, struct compat_regfile __user * rf,
arch/parisc/kernel/signal32.c
47
DBG(2,"restore_sigcontext32: sc = 0x%p, rf = 0x%p, regs = 0x%p\n", sc, rf, regs);
arch/parisc/kernel/signal32.c
48
DBG(2,"restore_sigcontext32: compat_sigcontext is %#lx bytes\n", sizeof(*sc));
arch/parisc/kernel/signal32.c
50
err |= __get_user(compat_reg,&sc->sc_gr[regn]);
arch/parisc/kernel/signal32.c
58
DBG(2,"restore_sigcontext32: sc->sc_fr = 0x%p (%#lx)\n",sc->sc_fr, sizeof(sc->sc_fr));
arch/parisc/kernel/signal32.c
60
err |= __copy_from_user(regs->fr, sc->sc_fr, sizeof(regs->fr));
arch/parisc/kernel/signal32.c
65
err |= __get_user(compat_reg, &sc->sc_iaoq[0]);
arch/parisc/kernel/signal32.c
71
&sc->sc_iaoq[0], compat_reg);
arch/parisc/kernel/signal32.c
73
err |= __get_user(compat_reg, &sc->sc_iaoq[1]);
arch/parisc/kernel/signal32.c
79
&sc->sc_iaoq[1],compat_reg);
arch/parisc/kernel/signal32.c
83
err |= __get_user(compat_reg, &sc->sc_iasq[0]);
arch/parisc/kernel/signal32.c
89
err |= __get_user(compat_reg, &sc->sc_iasq[1]);
arch/parisc/kernel/signal32.c
97
err |= __get_user(compat_reg, &sc->sc_sar);
arch/parisc/kernel/signal32.h
57
long restore_sigcontext32(struct compat_sigcontext __user *sc,
arch/parisc/kernel/signal32.h
60
long setup_sigcontext32(struct compat_sigcontext __user *sc,
arch/parisc/lib/memset.c
11
unsigned int c = sc;
arch/parisc/lib/memset.c
9
memset (void *dstpp, int sc, size_t len)
arch/powerpc/boot/cpm-serial.c
148
rbdf->sc = 0xa000;
arch/powerpc/boot/cpm-serial.c
153
tbdf->sc = 0x2000;
arch/powerpc/boot/cpm-serial.c
168
while (tbdf->sc & 0x8000)
arch/powerpc/boot/cpm-serial.c
175
tbdf->sc |= 0x8000;
arch/powerpc/boot/cpm-serial.c
181
return !(rbdf->sc & 0x8000);
arch/powerpc/boot/cpm-serial.c
194
rbdf->sc |= 0x8000;
arch/powerpc/boot/cpm-serial.c
66
u16 sc; /* Status and Control */
arch/powerpc/boot/stdio.c
13
const char *sc;
arch/powerpc/boot/stdio.c
15
for (sc = s; count-- && *sc != '\0'; ++sc)
arch/powerpc/boot/stdio.c
17
return sc - s;
arch/powerpc/kernel/prom_init.c
288
const char *sc;
arch/powerpc/kernel/prom_init.c
290
for (sc = s; *sc != '\0'; ++sc)
arch/powerpc/kernel/prom_init.c
292
return sc - s;
arch/powerpc/kernel/signal_32.c
1302
struct sigcontext __user *sc;
arch/powerpc/kernel/signal_32.c
1314
sc = &sf->sctx;
arch/powerpc/kernel/signal_32.c
1315
if (copy_from_user(&sigctx, sc, sizeof(sigctx)))
arch/powerpc/kernel/signal_32.c
1355
signal_fault(current, regs, "sys_sigreturn", sc);
arch/powerpc/kernel/signal_32.c
838
struct sigcontext __user *sc;
arch/powerpc/kernel/signal_32.c
861
sc = (struct sigcontext __user *) &frame->sctx;
arch/powerpc/kernel/signal_32.c
866
unsafe_put_user(to_user_ptr(ksig->ka.sa.sa_handler), &sc->handler, failed);
arch/powerpc/kernel/signal_32.c
867
unsafe_put_user(oldset->sig[0], &sc->oldmask, failed);
arch/powerpc/kernel/signal_32.c
869
unsafe_put_user((oldset->sig[0] >> 32), &sc->_unused[3], failed);
arch/powerpc/kernel/signal_32.c
871
unsafe_put_user(oldset->sig[1], &sc->_unused[3], failed);
arch/powerpc/kernel/signal_32.c
873
unsafe_put_user(to_user_ptr(mctx), &sc->regs, failed);
arch/powerpc/kernel/signal_32.c
874
unsafe_put_user(ksig->sig, &sc->signal, failed);
arch/powerpc/kernel/signal_32.c
904
regs->gpr[4] = (unsigned long) sc;
arch/powerpc/kernel/signal_64.c
109
#define unsafe_setup_sigcontext(sc, tsk, signr, set, handler, ctx_has_vsx_region, label)\
arch/powerpc/kernel/signal_64.c
111
if (__unsafe_setup_sigcontext(sc, tsk, signr, set, handler, ctx_has_vsx_region))\
arch/powerpc/kernel/signal_64.c
114
static long notrace __unsafe_setup_sigcontext(struct sigcontext __user *sc,
arch/powerpc/kernel/signal_64.c
127
elf_vrreg_t __user *v_regs = sigcontext_vmx_regs(sc);
arch/powerpc/kernel/signal_64.c
137
unsafe_put_user(v_regs, &sc->v_regs, efault_out);
arch/powerpc/kernel/signal_64.c
154
unsafe_put_user(0, &sc->v_regs, efault_out);
arch/powerpc/kernel/signal_64.c
157
unsafe_copy_fpr_to_user(&sc->fp_regs, tsk, efault_out);
arch/powerpc/kernel/signal_64.c
179
unsafe_put_user(&sc->gp_regs, &sc->regs, efault_out);
arch/powerpc/kernel/signal_64.c
180
unsafe_copy_to_user(&sc->gp_regs, regs, GP_REGS_SIZE, efault_out);
arch/powerpc/kernel/signal_64.c
181
unsafe_put_user(msr, &sc->gp_regs[PT_MSR], efault_out);
arch/powerpc/kernel/signal_64.c
182
unsafe_put_user(softe, &sc->gp_regs[PT_SOFTE], efault_out);
arch/powerpc/kernel/signal_64.c
183
unsafe_put_user(signr, &sc->signal, efault_out);
arch/powerpc/kernel/signal_64.c
184
unsafe_put_user(handler, &sc->handler, efault_out);
arch/powerpc/kernel/signal_64.c
186
unsafe_put_user(set->sig[0], &sc->oldmask, efault_out);
arch/powerpc/kernel/signal_64.c
206
static long setup_tm_sigcontexts(struct sigcontext __user *sc,
arch/powerpc/kernel/signal_64.c
221
elf_vrreg_t __user *v_regs = sigcontext_vmx_regs(sc);
arch/powerpc/kernel/signal_64.c
240
err |= __put_user(v_regs, &sc->v_regs);
arch/powerpc/kernel/signal_64.c
279
err |= __put_user(0, &sc->v_regs);
arch/powerpc/kernel/signal_64.c
284
err |= copy_ckfpr_to_user(&sc->fp_regs, tsk);
arch/powerpc/kernel/signal_64.c
314
err |= __put_user(&sc->gp_regs, &sc->regs);
arch/powerpc/kernel/signal_64.c
317
err |= __copy_to_user(&sc->gp_regs,
arch/powerpc/kernel/signal_64.c
320
err |= __put_user(msr, &sc->gp_regs[PT_MSR]);
arch/powerpc/kernel/signal_64.c
321
err |= __put_user(signr, &sc->signal);
arch/powerpc/kernel/signal_64.c
322
err |= __put_user(handler, &sc->handler);
arch/powerpc/kernel/signal_64.c
324
err |= __put_user(set->sig[0], &sc->oldmask);
arch/powerpc/kernel/signal_64.c
333
#define unsafe_restore_sigcontext(tsk, set, sig, sc, label) do { \
arch/powerpc/kernel/signal_64.c
334
if (__unsafe_restore_sigcontext(tsk, set, sig, sc)) \
arch/powerpc/kernel/signal_64.c
338
int sig, struct sigcontext __user *sc)
arch/powerpc/kernel/signal_64.c
357
unsafe_copy_from_user(regs->gpr, sc->gp_regs, sizeof(regs->gpr), efault_out);
arch/powerpc/kernel/signal_64.c
358
unsafe_get_user(regs->nip, &sc->gp_regs[PT_NIP], efault_out);
arch/powerpc/kernel/signal_64.c
360
unsafe_get_user(msr, &sc->gp_regs[PT_MSR], efault_out);
arch/powerpc/kernel/signal_64.c
363
unsafe_get_user(regs->orig_gpr3, &sc->gp_regs[PT_ORIG_R3], efault_out);
arch/powerpc/kernel/signal_64.c
364
unsafe_get_user(regs->ctr, &sc->gp_regs[PT_CTR], efault_out);
arch/powerpc/kernel/signal_64.c
365
unsafe_get_user(regs->link, &sc->gp_regs[PT_LNK], efault_out);
arch/powerpc/kernel/signal_64.c
366
unsafe_get_user(regs->xer, &sc->gp_regs[PT_XER], efault_out);
arch/powerpc/kernel/signal_64.c
367
unsafe_get_user(regs->ccr, &sc->gp_regs[PT_CCR], efault_out);
arch/powerpc/kernel/signal_64.c
370
unsafe_get_user(regs->dar, &sc->gp_regs[PT_DAR], efault_out);
arch/powerpc/kernel/signal_64.c
371
unsafe_get_user(regs->dsisr, &sc->gp_regs[PT_DSISR], efault_out);
arch/powerpc/kernel/signal_64.c
372
unsafe_get_user(regs->result, &sc->gp_regs[PT_RESULT], efault_out);
arch/powerpc/kernel/signal_64.c
377
unsafe_get_user(set->sig[0], &sc->oldmask, efault_out);
arch/powerpc/kernel/signal_64.c
390
unsafe_get_user(v_regs, &sc->v_regs, efault_out);
arch/powerpc/kernel/signal_64.c
410
unsafe_copy_fpr_from_user(tsk, &sc->fp_regs, efault_out);
arch/powerpc/kernel/signal_64.c
438
struct sigcontext __user *sc,
arch/powerpc/kernel/signal_64.c
458
err |= __copy_from_user(&tsk->thread.ckpt_regs, sc->gp_regs,
arch/powerpc/kernel/signal_64.c
470
err |= __get_user(tsk->thread.tm_tfhar, &sc->gp_regs[PT_NIP]);
arch/powerpc/kernel/signal_64.c
473
err |= __get_user(msr, &sc->gp_regs[PT_MSR]);
arch/powerpc/kernel/signal_64.c
487
&sc->gp_regs[PT_CTR]);
arch/powerpc/kernel/signal_64.c
489
&sc->gp_regs[PT_LNK]);
arch/powerpc/kernel/signal_64.c
491
&sc->gp_regs[PT_XER]);
arch/powerpc/kernel/signal_64.c
493
&sc->gp_regs[PT_CCR]);
arch/powerpc/kernel/signal_64.c
497
err |= __get_user(regs->dar, &sc->gp_regs[PT_DAR]);
arch/powerpc/kernel/signal_64.c
498
err |= __get_user(regs->dsisr, &sc->gp_regs[PT_DSISR]);
arch/powerpc/kernel/signal_64.c
499
err |= __get_user(regs->result, &sc->gp_regs[PT_RESULT]);
arch/powerpc/kernel/signal_64.c
509
err |= __get_user(v_regs, &sc->v_regs);
arch/powerpc/kernel/signal_64.c
545
err |= copy_ckfpr_from_user(tsk, &sc->fp_regs);
arch/powerpc/kernel/signal_64.c
614
static long restore_tm_sigcontexts(struct task_struct *tsk, struct sigcontext __user *sc,
arch/powerpc/kernel/signal_64.c
81
static elf_vrreg_t __user *sigcontext_vmx_regs(struct sigcontext __user *sc)
arch/powerpc/kernel/signal_64.c
83
return (elf_vrreg_t __user *) (((unsigned long)sc->vmx_reserve + 15) & ~0xful);
arch/riscv/include/asm/asm.h
31
#define REG_SC __REG_SEL(sc.d, sc.w)
arch/riscv/kernel/compat_signal.c
103
struct compat_sigcontext __user *sc)
arch/riscv/kernel/compat_signal.c
109
err = __copy_from_user(&cregs, &sc->sc_regs, sizeof(sc->sc_regs));
arch/riscv/kernel/compat_signal.c
115
err |= compat_restore_fp_state(regs, &sc->sc_fpregs);
arch/riscv/kernel/compat_signal.c
162
struct compat_sigcontext __user *sc = &frame->uc.uc_mcontext;
arch/riscv/kernel/compat_signal.c
169
err = __copy_to_user(&sc->sc_regs, &cregs, sizeof(sc->sc_regs));
arch/riscv/kernel/compat_signal.c
172
err |= compat_save_fp_state(regs, &sc->sc_fpregs);
arch/riscv/kernel/signal.c
220
struct sigcontext __user *sc)
arch/riscv/kernel/signal.c
222
void __user *sc_ext_ptr = &sc->sc_extdesc.hdr;
arch/riscv/kernel/signal.c
226
err = __copy_from_user(regs, &sc->sc_regs, sizeof(sc->sc_regs));
arch/riscv/kernel/signal.c
232
err = restore_fp_state(regs, &sc->sc_fpregs);
arch/riscv/kernel/signal.c
238
err = __get_user(rsvd, &sc->sc_extdesc.reserved);
arch/riscv/kernel/signal.c
356
struct sigcontext __user *sc = &frame->uc.uc_mcontext;
arch/riscv/kernel/signal.c
357
struct __riscv_ctx_hdr __user *sc_ext_ptr = &sc->sc_extdesc.hdr;
arch/riscv/kernel/signal.c
362
err = __copy_to_user(&sc->sc_regs, regs, sizeof(sc->sc_regs));
arch/riscv/kernel/signal.c
365
err |= save_fp_state(regs, &sc->sc_fpregs);
arch/riscv/kernel/signal.c
382
err |= __put_user(0, &sc->sc_extdesc.reserved);
arch/s390/hypfs/hypfs_diag.c
161
u8 sc; /* Used subcode */
arch/s390/hypfs/hypfs_diag.c
188
d204->hdr.sc = diag204_store_sc;
arch/s390/include/asm/nmi.h
57
u64 sc : 1; /* 17 storage error corrected */
arch/s390/kernel/diag/diag310.c
112
union diag310_req_subcode req = { .sc = DIAG310_SUBC_4, .st = level };
arch/s390/kernel/diag/diag310.c
131
union diag310_req_subcode req_sc = { .sc = DIAG310_SUBC_5, .st = level };
arch/s390/kernel/diag/diag310.c
52
u64 sc : 8;
arch/s390/kernel/diag/diag324.c
130
union diag324_request req = { .sc2.sc = DIAG324_SUBC_2, .sc2.allocated = data->len };
arch/s390/kernel/diag/diag324.c
68
u64 sc : 4;
arch/s390/kernel/signal.c
221
if (__copy_from_user(&set.sig, &frame->sc.oldmask, _SIGMASK_COPY_SIZE))
arch/s390/kernel/signal.c
288
struct sigcontext sc;
arch/s390/kernel/signal.c
304
memcpy(&sc.oldmask, &set->sig, _SIGMASK_COPY_SIZE);
arch/s390/kernel/signal.c
305
sc.sregs = (_sigregs __user __force *) &frame->sregs;
arch/s390/kernel/signal.c
306
if (__copy_to_user(&frame->sc, &sc, sizeof(frame->sc)))
arch/s390/kernel/signal.c
341
regs->gprs[3] = (unsigned long) &frame->sc;
arch/s390/kernel/signal.c
67
struct sigcontext sc;
arch/sh/kernel/signal_32.c
100
if (__put_user(1, &sc->sc_ownedfp))
arch/sh/kernel/signal_32.c
109
return __copy_to_user(&sc->sc_fpregs[0], &tsk->thread.xstate->hardfpu,
arch/sh/kernel/signal_32.c
115
restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *r0_p)
arch/sh/kernel/signal_32.c
120
#define COPY(x) err |= __get_user(regs->x, &sc->sc_##x)
arch/sh/kernel/signal_32.c
144
err |= __get_user (owned_fp, &sc->sc_ownedfp);
arch/sh/kernel/signal_32.c
146
err |= restore_sigcontext_fpu(sc);
arch/sh/kernel/signal_32.c
151
err |= __get_user(*r0_p, &sc->sc_regs[0]);
arch/sh/kernel/signal_32.c
168
if (__get_user(set.sig[0], &frame->sc.oldmask)
arch/sh/kernel/signal_32.c
176
if (restore_sigcontext(regs, &frame->sc, &r0))
arch/sh/kernel/signal_32.c
221
setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs,
arch/sh/kernel/signal_32.c
226
#define COPY(x) err |= __put_user(regs->x, &sc->sc_##x)
arch/sh/kernel/signal_32.c
241
err |= save_sigcontext_fpu(sc, regs);
arch/sh/kernel/signal_32.c
245
err |= __put_user(mask, &sc->oldmask);
arch/sh/kernel/signal_32.c
280
err |= setup_sigcontext(&frame->sc, regs, set->sig[0]);
arch/sh/kernel/signal_32.c
315
regs->regs[6] = (unsigned long) &frame->sc;
arch/sh/kernel/signal_32.c
64
struct sigcontext sc;
arch/sh/kernel/signal_32.c
77
static inline int restore_sigcontext_fpu(struct sigcontext __user *sc)
arch/sh/kernel/signal_32.c
85
return __copy_from_user(&tsk->thread.xstate->hardfpu, &sc->sc_fpregs[0],
arch/sh/kernel/signal_32.c
89
static inline int save_sigcontext_fpu(struct sigcontext __user *sc,
arch/sh/kernel/signal_32.c
98
return __put_user(0, &sc->sc_ownedfp);
arch/um/kernel/skas/stub.c
42
struct stub_syscall *sc = &d->syscall_data[i];
arch/um/kernel/skas/stub.c
44
switch (sc->syscall) {
arch/um/kernel/skas/stub.c
47
fd = fd_map[sc->mem.fd];
arch/um/kernel/skas/stub.c
49
fd = sc->mem.fd;
arch/um/kernel/skas/stub.c
52
sc->mem.addr, sc->mem.length,
arch/um/kernel/skas/stub.c
53
sc->mem.prot,
arch/um/kernel/skas/stub.c
55
fd, sc->mem.offset);
arch/um/kernel/skas/stub.c
56
if (res != sc->mem.addr) {
arch/um/kernel/skas/stub.c
64
sc->mem.addr, sc->mem.length);
arch/um/os-Linux/skas/mem.c
159
struct stub_syscall *sc;
arch/um/os-Linux/skas/mem.c
168
sc = &proc_data->syscall_data[0];
arch/um/os-Linux/skas/mem.c
170
sc = &proc_data->syscall_data[mm_idp->syscall_data_len];
arch/um/os-Linux/skas/mem.c
173
memset(sc, 0, sizeof(*sc));
arch/um/os-Linux/skas/mem.c
175
return sc;
arch/um/os-Linux/skas/mem.c
184
struct stub_syscall *sc;
arch/um/os-Linux/skas/mem.c
186
sc = &proc_data->syscall_data[mm_idp->syscall_data_len - 1];
arch/um/os-Linux/skas/mem.c
188
if (sc->syscall == syscall_type &&
arch/um/os-Linux/skas/mem.c
189
sc->mem.addr + sc->mem.length == virt)
arch/um/os-Linux/skas/mem.c
190
return sc;
arch/um/os-Linux/skas/mem.c
237
struct stub_syscall *sc;
arch/um/os-Linux/skas/mem.c
240
sc = syscall_stub_get_previous(mm_idp, STUB_SYSCALL_MMAP, virt);
arch/um/os-Linux/skas/mem.c
241
if (sc && sc->mem.prot == prot &&
arch/um/os-Linux/skas/mem.c
242
sc->mem.offset == MMAP_OFFSET(offset - sc->mem.length)) {
arch/um/os-Linux/skas/mem.c
243
int prev_fd = sc->mem.fd;
arch/um/os-Linux/skas/mem.c
246
prev_fd = mm_idp->syscall_fd_map[sc->mem.fd];
arch/um/os-Linux/skas/mem.c
249
sc->mem.length += len;
arch/um/os-Linux/skas/mem.c
256
sc = syscall_stub_alloc(mm_idp);
arch/um/os-Linux/skas/mem.c
257
sc->syscall = STUB_SYSCALL_MMAP;
arch/um/os-Linux/skas/mem.c
258
sc->mem.addr = virt;
arch/um/os-Linux/skas/mem.c
259
sc->mem.length = len;
arch/um/os-Linux/skas/mem.c
260
sc->mem.prot = prot;
arch/um/os-Linux/skas/mem.c
261
sc->mem.fd = phys_fd;
arch/um/os-Linux/skas/mem.c
262
sc->mem.offset = MMAP_OFFSET(offset);
arch/um/os-Linux/skas/mem.c
269
struct stub_syscall *sc;
arch/um/os-Linux/skas/mem.c
272
sc = syscall_stub_get_previous(mm_idp, STUB_SYSCALL_MUNMAP, addr);
arch/um/os-Linux/skas/mem.c
273
if (sc) {
arch/um/os-Linux/skas/mem.c
274
sc->mem.length += len;
arch/um/os-Linux/skas/mem.c
278
sc = syscall_stub_alloc(mm_idp);
arch/um/os-Linux/skas/mem.c
279
sc->syscall = STUB_SYSCALL_MUNMAP;
arch/um/os-Linux/skas/mem.c
28
struct stub_syscall *sc;
arch/um/os-Linux/skas/mem.c
280
sc->mem.addr = addr;
arch/um/os-Linux/skas/mem.c
281
sc->mem.length = len;
arch/um/os-Linux/skas/mem.c
36
sc = &proc_data->syscall_data[proc_data->syscall_data_len];
arch/um/os-Linux/skas/mem.c
42
__func__, sc->syscall, proc_data->err);
arch/um/os-Linux/skas/mem.c
45
16, 4, sc, sizeof(*sc), 0);
arch/x86/boot/string.c
151
const char *sc;
arch/x86/boot/string.c
153
for (sc = s; *sc != '\0'; ++sc)
arch/x86/boot/string.c
155
return sc - s;
arch/x86/include/asm/sigframe.h
26
struct sigcontext_32 sc;
arch/x86/kernel/asm-offsets.c
73
OFFSET(IA32_SIGFRAME_sigcontext, sigframe_ia32, sc);
arch/x86/kernel/signal_32.c
110
struct sigcontext_32 sc;
arch/x86/kernel/signal_32.c
115
if (unlikely(copy_from_user(&sc, usc, sizeof(sc))))
arch/x86/kernel/signal_32.c
119
regs->bx = sc.bx;
arch/x86/kernel/signal_32.c
120
regs->cx = sc.cx;
arch/x86/kernel/signal_32.c
121
regs->dx = sc.dx;
arch/x86/kernel/signal_32.c
122
regs->si = sc.si;
arch/x86/kernel/signal_32.c
123
regs->di = sc.di;
arch/x86/kernel/signal_32.c
124
regs->bp = sc.bp;
arch/x86/kernel/signal_32.c
125
regs->ax = sc.ax;
arch/x86/kernel/signal_32.c
126
regs->sp = sc.sp;
arch/x86/kernel/signal_32.c
127
regs->ip = sc.ip;
arch/x86/kernel/signal_32.c
130
regs->cs = sc.cs | 0x03;
arch/x86/kernel/signal_32.c
131
regs->ss = sc.ss | 0x03;
arch/x86/kernel/signal_32.c
133
regs->flags = (regs->flags & ~FIX_EFLAGS) | (sc.flags & FIX_EFLAGS);
arch/x86/kernel/signal_32.c
138
reload_segments(&sc);
arch/x86/kernel/signal_32.c
140
loadsegment(gs, fixup_rpl(sc.gs));
arch/x86/kernel/signal_32.c
141
regs->fs = fixup_rpl(sc.fs);
arch/x86/kernel/signal_32.c
142
regs->es = fixup_rpl(sc.es);
arch/x86/kernel/signal_32.c
143
regs->ds = fixup_rpl(sc.ds);
arch/x86/kernel/signal_32.c
146
return fpu__restore_sig(compat_ptr(sc.fpstate), 1);
arch/x86/kernel/signal_32.c
159
if (__get_user(set.sig[0], &frame->sc.oldmask)
arch/x86/kernel/signal_32.c
165
if (!ia32_restore_sigcontext(regs, &frame->sc))
arch/x86/kernel/signal_32.c
211
__unsafe_setup_sigcontext32(struct sigcontext_32 __user *sc,
arch/x86/kernel/signal_32.c
215
unsafe_put_user(get_user_seg(gs), (unsigned int __user *)&sc->gs, Efault);
arch/x86/kernel/signal_32.c
217
unsafe_put_user(get_user_seg(fs), (unsigned int __user *)&sc->fs, Efault);
arch/x86/kernel/signal_32.c
218
unsafe_put_user(get_user_seg(ds), (unsigned int __user *)&sc->ds, Efault);
arch/x86/kernel/signal_32.c
219
unsafe_put_user(get_user_seg(es), (unsigned int __user *)&sc->es, Efault);
arch/x86/kernel/signal_32.c
221
unsafe_put_user(regs->fs, (unsigned int __user *)&sc->fs, Efault);
arch/x86/kernel/signal_32.c
222
unsafe_put_user(regs->es, (unsigned int __user *)&sc->es, Efault);
arch/x86/kernel/signal_32.c
223
unsafe_put_user(regs->ds, (unsigned int __user *)&sc->ds, Efault);
arch/x86/kernel/signal_32.c
226
unsafe_put_user(regs->di, &sc->di, Efault);
arch/x86/kernel/signal_32.c
227
unsafe_put_user(regs->si, &sc->si, Efault);
arch/x86/kernel/signal_32.c
228
unsafe_put_user(regs->bp, &sc->bp, Efault);
arch/x86/kernel/signal_32.c
229
unsafe_put_user(regs->sp, &sc->sp, Efault);
arch/x86/kernel/signal_32.c
230
unsafe_put_user(regs->bx, &sc->bx, Efault);
arch/x86/kernel/signal_32.c
231
unsafe_put_user(regs->dx, &sc->dx, Efault);
arch/x86/kernel/signal_32.c
232
unsafe_put_user(regs->cx, &sc->cx, Efault);
arch/x86/kernel/signal_32.c
233
unsafe_put_user(regs->ax, &sc->ax, Efault);
arch/x86/kernel/signal_32.c
234
unsafe_put_user(current->thread.trap_nr, &sc->trapno, Efault);
arch/x86/kernel/signal_32.c
235
unsafe_put_user(current->thread.error_code, &sc->err, Efault);
arch/x86/kernel/signal_32.c
236
unsafe_put_user(regs->ip, &sc->ip, Efault);
arch/x86/kernel/signal_32.c
237
unsafe_put_user(regs->cs, (unsigned int __user *)&sc->cs, Efault);
arch/x86/kernel/signal_32.c
238
unsafe_put_user(regs->flags, &sc->flags, Efault);
arch/x86/kernel/signal_32.c
239
unsafe_put_user(regs->sp, &sc->sp_at_signal, Efault);
arch/x86/kernel/signal_32.c
240
unsafe_put_user(regs->ss, (unsigned int __user *)&sc->ss, Efault);
arch/x86/kernel/signal_32.c
242
unsafe_put_user(ptr_to_compat(fpstate), &sc->fpstate, Efault);
arch/x86/kernel/signal_32.c
245
unsafe_put_user(mask, &sc->oldmask, Efault);
arch/x86/kernel/signal_32.c
246
unsafe_put_user(current->thread.cr2, &sc->cr2, Efault);
arch/x86/kernel/signal_32.c
253
#define unsafe_put_sigcontext32(sc, fp, regs, set, label) \
arch/x86/kernel/signal_32.c
255
if (__unsafe_setup_sigcontext32(sc, fp, regs, set->sig[0])) \
arch/x86/kernel/signal_32.c
294
unsafe_put_sigcontext32(&frame->sc, fp, regs, set, Efault);
arch/x86/kernel/signal_32.c
62
static inline void reload_segments(struct sigcontext_32 *sc)
arch/x86/kernel/signal_32.c
73
if (fixup_rpl(sc->gs) != cur)
arch/x86/kernel/signal_32.c
74
load_gs_index(fixup_rpl(sc->gs));
arch/x86/kernel/signal_32.c
76
if (fixup_rpl(sc->fs) != cur)
arch/x86/kernel/signal_32.c
77
loadsegment(fs, fixup_rpl(sc->fs));
arch/x86/kernel/signal_32.c
80
if (fixup_rpl(sc->ds) != cur)
arch/x86/kernel/signal_32.c
81
loadsegment(ds, fixup_rpl(sc->ds));
arch/x86/kernel/signal_32.c
83
if (fixup_rpl(sc->es) != cur)
arch/x86/kernel/signal_32.c
84
loadsegment(es, fixup_rpl(sc->es));
arch/x86/kernel/signal_64.c
102
unsafe_put_user(regs->di, &sc->di, Efault);
arch/x86/kernel/signal_64.c
103
unsafe_put_user(regs->si, &sc->si, Efault);
arch/x86/kernel/signal_64.c
104
unsafe_put_user(regs->bp, &sc->bp, Efault);
arch/x86/kernel/signal_64.c
105
unsafe_put_user(regs->sp, &sc->sp, Efault);
arch/x86/kernel/signal_64.c
106
unsafe_put_user(regs->bx, &sc->bx, Efault);
arch/x86/kernel/signal_64.c
107
unsafe_put_user(regs->dx, &sc->dx, Efault);
arch/x86/kernel/signal_64.c
108
unsafe_put_user(regs->cx, &sc->cx, Efault);
arch/x86/kernel/signal_64.c
109
unsafe_put_user(regs->ax, &sc->ax, Efault);
arch/x86/kernel/signal_64.c
110
unsafe_put_user(regs->r8, &sc->r8, Efault);
arch/x86/kernel/signal_64.c
111
unsafe_put_user(regs->r9, &sc->r9, Efault);
arch/x86/kernel/signal_64.c
112
unsafe_put_user(regs->r10, &sc->r10, Efault);
arch/x86/kernel/signal_64.c
113
unsafe_put_user(regs->r11, &sc->r11, Efault);
arch/x86/kernel/signal_64.c
114
unsafe_put_user(regs->r12, &sc->r12, Efault);
arch/x86/kernel/signal_64.c
115
unsafe_put_user(regs->r13, &sc->r13, Efault);
arch/x86/kernel/signal_64.c
116
unsafe_put_user(regs->r14, &sc->r14, Efault);
arch/x86/kernel/signal_64.c
117
unsafe_put_user(regs->r15, &sc->r15, Efault);
arch/x86/kernel/signal_64.c
119
unsafe_put_user(current->thread.trap_nr, &sc->trapno, Efault);
arch/x86/kernel/signal_64.c
120
unsafe_put_user(current->thread.error_code, &sc->err, Efault);
arch/x86/kernel/signal_64.c
121
unsafe_put_user(regs->ip, &sc->ip, Efault);
arch/x86/kernel/signal_64.c
122
unsafe_put_user(regs->flags, &sc->flags, Efault);
arch/x86/kernel/signal_64.c
123
unsafe_put_user(regs->cs, &sc->cs, Efault);
arch/x86/kernel/signal_64.c
124
unsafe_put_user(0, &sc->gs, Efault);
arch/x86/kernel/signal_64.c
125
unsafe_put_user(0, &sc->fs, Efault);
arch/x86/kernel/signal_64.c
126
unsafe_put_user(regs->ss, &sc->ss, Efault);
arch/x86/kernel/signal_64.c
128
unsafe_put_user(fpstate, (unsigned long __user *)&sc->fpstate, Efault);
arch/x86/kernel/signal_64.c
131
unsafe_put_user(mask, &sc->oldmask, Efault);
arch/x86/kernel/signal_64.c
132
unsafe_put_user(current->thread.cr2, &sc->cr2, Efault);
arch/x86/kernel/signal_64.c
138
#define unsafe_put_sigcontext(sc, fp, regs, set, label) \
arch/x86/kernel/signal_64.c
140
if (__unsafe_setup_sigcontext(sc, fp, regs, set->sig[0])) \
arch/x86/kernel/signal_64.c
54
struct sigcontext sc;
arch/x86/kernel/signal_64.c
59
if (copy_from_user(&sc, usc, offsetof(struct sigcontext, reserved1)))
arch/x86/kernel/signal_64.c
62
regs->bx = sc.bx;
arch/x86/kernel/signal_64.c
63
regs->cx = sc.cx;
arch/x86/kernel/signal_64.c
64
regs->dx = sc.dx;
arch/x86/kernel/signal_64.c
65
regs->si = sc.si;
arch/x86/kernel/signal_64.c
66
regs->di = sc.di;
arch/x86/kernel/signal_64.c
67
regs->bp = sc.bp;
arch/x86/kernel/signal_64.c
68
regs->ax = sc.ax;
arch/x86/kernel/signal_64.c
69
regs->sp = sc.sp;
arch/x86/kernel/signal_64.c
70
regs->ip = sc.ip;
arch/x86/kernel/signal_64.c
71
regs->r8 = sc.r8;
arch/x86/kernel/signal_64.c
72
regs->r9 = sc.r9;
arch/x86/kernel/signal_64.c
73
regs->r10 = sc.r10;
arch/x86/kernel/signal_64.c
74
regs->r11 = sc.r11;
arch/x86/kernel/signal_64.c
75
regs->r12 = sc.r12;
arch/x86/kernel/signal_64.c
76
regs->r13 = sc.r13;
arch/x86/kernel/signal_64.c
77
regs->r14 = sc.r14;
arch/x86/kernel/signal_64.c
78
regs->r15 = sc.r15;
arch/x86/kernel/signal_64.c
81
regs->cs = sc.cs | 0x03;
arch/x86/kernel/signal_64.c
82
regs->ss = sc.ss | 0x03;
arch/x86/kernel/signal_64.c
84
regs->flags = (regs->flags & ~FIX_EFLAGS) | (sc.flags & FIX_EFLAGS);
arch/x86/kernel/signal_64.c
95
return fpu__restore_sig((void __user *)sc.fpstate, 0);
arch/x86/kernel/signal_64.c
99
__unsafe_setup_sigcontext(struct sigcontext __user *sc, void __user *fpstate,
arch/x86/mm/pat/cpa-test.c
119
struct split_state sa, sb, sc;
arch/x86/mm/pat/cpa-test.c
240
failed += print_split(&sc);
arch/x86/um/signal.c
101
(void __user *)sc.fpstate);
arch/x86/um/signal.c
114
struct sigcontext sc;
arch/x86/um/signal.c
117
memset(&sc, 0, sizeof(struct sigcontext));
arch/x86/um/signal.c
119
#define PUTREG(regno, regname) sc.regname = regs->regs.gp[HOST_##regno]
arch/x86/um/signal.c
146
sc.cr2 = fi->cr2;
arch/x86/um/signal.c
147
sc.err = fi->error_code;
arch/x86/um/signal.c
148
sc.trapno = fi->trap_no;
arch/x86/um/signal.c
157
sc.oldmask = mask;
arch/x86/um/signal.c
158
sc.fpstate = (unsigned long)to_fp;
arch/x86/um/signal.c
160
err = copy_to_user(to, &sc, sizeof(struct sigcontext));
arch/x86/um/signal.c
255
err |= copy_sc_to_user(&frame->sc,
arch/x86/um/signal.c
344
struct sigcontext __user *sc = &frame->sc;
arch/x86/um/signal.c
347
if (copy_from_user(&set.sig[0], &sc->oldmask, sizeof(set.sig[0])) ||
arch/x86/um/signal.c
353
if (copy_sc_from_user(&current->thread.regs, sc))
arch/x86/um/signal.c
37
struct sigcontext sc;
arch/x86/um/signal.c
43
err = copy_from_user(&sc, from, sizeof(sc));
arch/x86/um/signal.c
47
#define GETREG(regno, regname) regs->regs.gp[HOST_##regno] = sc.regname
arch/x86/um/signal.c
85
from_fp64 = ((void __user *)sc.fpstate) +
arch/x86/um/signal.c
88
from_fp64 = (void __user *)sc.fpstate;
arch/xtensa/kernel/signal.c
146
struct sigcontext __user *sc = &frame->uc.uc_mcontext;
arch/xtensa/kernel/signal.c
150
#define COPY(x) err |= __put_user(regs->x, &sc->sc_##x)
arch/xtensa/kernel/signal.c
160
err |= __copy_to_user (sc->sc_a, regs->areg, 16 * 4);
arch/xtensa/kernel/signal.c
161
err |= __put_user(0, &sc->sc_xtregs);
arch/xtensa/kernel/signal.c
176
err |= __put_user(err ? NULL : &frame->xtregs, &sc->sc_xtregs);
arch/xtensa/kernel/signal.c
184
struct sigcontext __user *sc = &frame->uc.uc_mcontext;
arch/xtensa/kernel/signal.c
189
#define COPY(x) err |= __get_user(regs->x, &sc->sc_##x)
arch/xtensa/kernel/signal.c
209
err |= __get_user(ps, &sc->sc_ps);
arch/xtensa/kernel/signal.c
218
err |= __copy_from_user(regs->areg, sc->sc_a, 16 * 4);
crypto/twofish_common.c
486
ctx->s[2][i] = mds[2][q1[(a) ^ sc] ^ sg]; \
crypto/twofish_common.c
494
ctx->s[2][i] = mds[2][q1[q0[(a) ^ sc] ^ sg] ^ sk]; \
crypto/twofish_common.c
502
ctx->s[2][i] = mds[2][q1[q0[q0[(a) ^ sc] ^ sg] ^ sk] ^ so]; \
crypto/twofish_common.c
579
u8 sa = 0, sb = 0, sc = 0, sd = 0, se = 0, sf = 0, sg = 0, sh = 0;
crypto/twofish_common.c
593
CALC_S (sa, sb, sc, sd, 0, 0x00, 0x2D, 0x01, 0x2D); /* 01 A4 02 A4 */
crypto/twofish_common.c
594
CALC_S (sa, sb, sc, sd, 1, 0x2D, 0xA4, 0x44, 0x8A); /* A4 56 A1 55 */
crypto/twofish_common.c
595
CALC_S (sa, sb, sc, sd, 2, 0x8A, 0xD5, 0xBF, 0xD1); /* 55 82 FC 87 */
crypto/twofish_common.c
596
CALC_S (sa, sb, sc, sd, 3, 0xD1, 0x7F, 0x3D, 0x99); /* 87 F3 C1 5A */
crypto/twofish_common.c
597
CALC_S (sa, sb, sc, sd, 4, 0x99, 0x46, 0x66, 0x96); /* 5A 1E 47 58 */
crypto/twofish_common.c
598
CALC_S (sa, sb, sc, sd, 5, 0x96, 0x3C, 0x5B, 0xED); /* 58 C6 AE DB */
crypto/twofish_common.c
599
CALC_S (sa, sb, sc, sd, 6, 0xED, 0x37, 0x4F, 0xE0); /* DB 68 3D 9E */
crypto/twofish_common.c
600
CALC_S (sa, sb, sc, sd, 7, 0xE0, 0xD0, 0x8C, 0x17); /* 9E E5 19 03 */
drivers/accessibility/speakup/speakup.h
48
void spk_reset_index_count(int sc);
drivers/accessibility/speakup/synth.c
353
void spk_reset_index_count(int sc)
drivers/accessibility/speakup/synth.c
362
sentence_count = sc;
drivers/android/binder_alloc.c
1218
binder_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
drivers/android/binder_alloc.c
1224
binder_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
drivers/android/binder_alloc.c
1227
NULL, sc->nr_to_scan);
drivers/clk/meson/t7-peripherals.c
398
static T7_COMP_SEL(sc, SC_CLK_CTRL, 9, 0x3, t7_sc_parents);
drivers/clk/meson/t7-peripherals.c
399
static T7_COMP_DIV(sc, SC_CLK_CTRL, 0, 8);
drivers/clk/meson/t7-peripherals.c
400
static T7_COMP_GATE(sc, SC_CLK_CTRL, 8, 0);
drivers/clk/qcom/gdsc.c
100
return regmap_update_bits(sc->regmap, sc->gdscr, HW_CONTROL_MASK, val);
drivers/clk/qcom/gdsc.c
103
static int gdsc_poll_status(struct gdsc *sc, enum gdsc_status status)
drivers/clk/qcom/gdsc.c
109
if (gdsc_check_status(sc, status))
drivers/clk/qcom/gdsc.c
113
if (gdsc_check_status(sc, status))
drivers/clk/qcom/gdsc.c
119
static int gdsc_update_collapse_bit(struct gdsc *sc, bool val)
drivers/clk/qcom/gdsc.c
124
if (sc->collapse_mask) {
drivers/clk/qcom/gdsc.c
125
reg = sc->collapse_ctrl;
drivers/clk/qcom/gdsc.c
126
mask = sc->collapse_mask;
drivers/clk/qcom/gdsc.c
128
reg = sc->gdscr;
drivers/clk/qcom/gdsc.c
132
ret = regmap_update_bits(sc->regmap, reg, mask, val ? mask : 0);
drivers/clk/qcom/gdsc.c
139
static int gdsc_toggle_logic(struct gdsc *sc, enum gdsc_status status,
drivers/clk/qcom/gdsc.c
144
if (status == GDSC_ON && sc->rsupply) {
drivers/clk/qcom/gdsc.c
145
ret = regulator_enable(sc->rsupply);
drivers/clk/qcom/gdsc.c
150
ret = gdsc_update_collapse_bit(sc, status == GDSC_OFF);
drivers/clk/qcom/gdsc.c
153
if ((sc->flags & VOTABLE) && status == GDSC_OFF && !wait) {
drivers/clk/qcom/gdsc.c
163
if (sc->gds_hw_ctrl) {
drivers/clk/qcom/gdsc.c
177
ret = gdsc_poll_status(sc, status);
drivers/clk/qcom/gdsc.c
178
WARN(ret, "%s status stuck at 'o%s'", sc->pd.name, status ? "ff" : "n");
drivers/clk/qcom/gdsc.c
180
if (!ret && status == GDSC_OFF && sc->rsupply) {
drivers/clk/qcom/gdsc.c
181
ret = regulator_disable(sc->rsupply);
drivers/clk/qcom/gdsc.c
189
static inline int gdsc_deassert_reset(struct gdsc *sc)
drivers/clk/qcom/gdsc.c
193
for (i = 0; i < sc->reset_count; i++)
drivers/clk/qcom/gdsc.c
194
sc->rcdev->ops->deassert(sc->rcdev, sc->resets[i]);
drivers/clk/qcom/gdsc.c
198
static inline int gdsc_assert_reset(struct gdsc *sc)
drivers/clk/qcom/gdsc.c
202
for (i = 0; i < sc->reset_count; i++)
drivers/clk/qcom/gdsc.c
203
sc->rcdev->ops->assert(sc->rcdev, sc->resets[i]);
drivers/clk/qcom/gdsc.c
207
static inline void gdsc_force_mem_on(struct gdsc *sc)
drivers/clk/qcom/gdsc.c
212
if (!(sc->flags & NO_RET_PERIPH))
drivers/clk/qcom/gdsc.c
215
for (i = 0; i < sc->cxc_count; i++)
drivers/clk/qcom/gdsc.c
216
regmap_update_bits(sc->regmap, sc->cxcs[i], mask, mask);
drivers/clk/qcom/gdsc.c
219
static inline void gdsc_clear_mem_on(struct gdsc *sc)
drivers/clk/qcom/gdsc.c
224
if (!(sc->flags & NO_RET_PERIPH))
drivers/clk/qcom/gdsc.c
227
for (i = 0; i < sc->cxc_count; i++)
drivers/clk/qcom/gdsc.c
228
regmap_update_bits(sc->regmap, sc->cxcs[i], mask, 0);
drivers/clk/qcom/gdsc.c
231
static inline void gdsc_deassert_clamp_io(struct gdsc *sc)
drivers/clk/qcom/gdsc.c
233
regmap_update_bits(sc->regmap, sc->clamp_io_ctrl,
drivers/clk/qcom/gdsc.c
237
static inline void gdsc_assert_clamp_io(struct gdsc *sc)
drivers/clk/qcom/gdsc.c
239
regmap_update_bits(sc->regmap, sc->clamp_io_ctrl,
drivers/clk/qcom/gdsc.c
243
static inline void gdsc_assert_reset_aon(struct gdsc *sc)
drivers/clk/qcom/gdsc.c
245
regmap_update_bits(sc->regmap, sc->clamp_io_ctrl,
drivers/clk/qcom/gdsc.c
248
regmap_update_bits(sc->regmap, sc->clamp_io_ctrl,
drivers/clk/qcom/gdsc.c
252
static void gdsc_retain_ff_on(struct gdsc *sc)
drivers/clk/qcom/gdsc.c
256
regmap_update_bits(sc->regmap, sc->gdscr, mask, mask);
drivers/clk/qcom/gdsc.c
261
struct gdsc *sc = domain_to_gdsc(domain);
drivers/clk/qcom/gdsc.c
264
if (sc->pwrsts == PWRSTS_ON)
drivers/clk/qcom/gdsc.c
265
return gdsc_deassert_reset(sc);
drivers/clk/qcom/gdsc.c
267
if (sc->flags & SW_RESET) {
drivers/clk/qcom/gdsc.c
268
gdsc_assert_reset(sc);
drivers/clk/qcom/gdsc.c
270
gdsc_deassert_reset(sc);
drivers/clk/qcom/gdsc.c
273
if (sc->flags & CLAMP_IO) {
drivers/clk/qcom/gdsc.c
274
if (sc->flags & AON_RESET)
drivers/clk/qcom/gdsc.c
275
gdsc_assert_reset_aon(sc);
drivers/clk/qcom/gdsc.c
276
gdsc_deassert_clamp_io(sc);
drivers/clk/qcom/gdsc.c
279
ret = gdsc_toggle_logic(sc, GDSC_ON, false);
drivers/clk/qcom/gdsc.c
283
if (sc->pwrsts & PWRSTS_OFF)
drivers/clk/qcom/gdsc.c
284
gdsc_force_mem_on(sc);
drivers/clk/qcom/gdsc.c
295
if (sc->flags & RETAIN_FF_ENABLE)
drivers/clk/qcom/gdsc.c
296
gdsc_retain_ff_on(sc);
drivers/clk/qcom/gdsc.c
299
if (sc->flags & HW_CTRL) {
drivers/clk/qcom/gdsc.c
300
ret = gdsc_hwctrl(sc, true);
drivers/clk/qcom/gdsc.c
319
struct gdsc *sc = domain_to_gdsc(domain);
drivers/clk/qcom/gdsc.c
322
if (sc->pwrsts == PWRSTS_ON)
drivers/clk/qcom/gdsc.c
323
return gdsc_assert_reset(sc);
drivers/clk/qcom/gdsc.c
326
if (sc->flags & HW_CTRL) {
drivers/clk/qcom/gdsc.c
327
ret = gdsc_hwctrl(sc, false);
drivers/clk/qcom/gdsc.c
338
ret = gdsc_poll_status(sc, GDSC_ON);
drivers/clk/qcom/gdsc.c
343
if (sc->pwrsts & PWRSTS_OFF)
drivers/clk/qcom/gdsc.c
344
gdsc_clear_mem_on(sc);
drivers/clk/qcom/gdsc.c
353
if (sc->pwrsts == PWRSTS_RET_ON)
drivers/clk/qcom/gdsc.c
356
ret = gdsc_toggle_logic(sc, GDSC_OFF, domain->synced_poweroff);
drivers/clk/qcom/gdsc.c
360
if (sc->flags & CLAMP_IO)
drivers/clk/qcom/gdsc.c
361
gdsc_assert_clamp_io(sc);
drivers/clk/qcom/gdsc.c
368
struct gdsc *sc = domain_to_gdsc(domain);
drivers/clk/qcom/gdsc.c
371
ret = gdsc_hwctrl(sc, mode);
drivers/clk/qcom/gdsc.c
388
return gdsc_poll_status(sc, GDSC_ON);
drivers/clk/qcom/gdsc.c
395
struct gdsc *sc = domain_to_gdsc(domain);
drivers/clk/qcom/gdsc.c
398
regmap_read(sc->regmap, sc->gdscr, &val);
drivers/clk/qcom/gdsc.c
403
static int gdsc_init(struct gdsc *sc)
drivers/clk/qcom/gdsc.c
416
if (!sc->en_rest_wait_val)
drivers/clk/qcom/gdsc.c
417
sc->en_rest_wait_val = EN_REST_WAIT_VAL;
drivers/clk/qcom/gdsc.c
418
if (!sc->en_few_wait_val)
drivers/clk/qcom/gdsc.c
419
sc->en_few_wait_val = EN_FEW_WAIT_VAL;
drivers/clk/qcom/gdsc.c
420
if (!sc->clk_dis_wait_val)
drivers/clk/qcom/gdsc.c
421
sc->clk_dis_wait_val = CLK_DIS_WAIT_VAL;
drivers/clk/qcom/gdsc.c
423
val = sc->en_rest_wait_val << EN_REST_WAIT_SHIFT |
drivers/clk/qcom/gdsc.c
424
sc->en_few_wait_val << EN_FEW_WAIT_SHIFT |
drivers/clk/qcom/gdsc.c
425
sc->clk_dis_wait_val << CLK_DIS_WAIT_SHIFT;
drivers/clk/qcom/gdsc.c
427
ret = regmap_update_bits(sc->regmap, sc->gdscr, mask, val);
drivers/clk/qcom/gdsc.c
432
if (sc->pwrsts == PWRSTS_ON) {
drivers/clk/qcom/gdsc.c
433
ret = gdsc_toggle_logic(sc, GDSC_ON, false);
drivers/clk/qcom/gdsc.c
438
on = gdsc_check_status(sc, GDSC_ON);
drivers/clk/qcom/gdsc.c
444
if (sc->rsupply) {
drivers/clk/qcom/gdsc.c
445
ret = regulator_enable(sc->rsupply);
drivers/clk/qcom/gdsc.c
454
if (sc->flags & VOTABLE) {
drivers/clk/qcom/gdsc.c
455
ret = gdsc_update_collapse_bit(sc, false);
drivers/clk/qcom/gdsc.c
465
if (sc->flags & RETAIN_FF_ENABLE)
drivers/clk/qcom/gdsc.c
466
gdsc_retain_ff_on(sc);
drivers/clk/qcom/gdsc.c
469
if (sc->flags & HW_CTRL) {
drivers/clk/qcom/gdsc.c
470
ret = gdsc_hwctrl(sc, true);
drivers/clk/qcom/gdsc.c
475
} else if (sc->flags & ALWAYS_ON) {
drivers/clk/qcom/gdsc.c
477
gdsc_enable(&sc->pd);
drivers/clk/qcom/gdsc.c
481
if (on || (sc->pwrsts & PWRSTS_RET))
drivers/clk/qcom/gdsc.c
482
gdsc_force_mem_on(sc);
drivers/clk/qcom/gdsc.c
484
gdsc_clear_mem_on(sc);
drivers/clk/qcom/gdsc.c
486
if (sc->flags & ALWAYS_ON)
drivers/clk/qcom/gdsc.c
487
sc->pd.flags |= GENPD_FLAG_ALWAYS_ON;
drivers/clk/qcom/gdsc.c
488
if (!sc->pd.power_off)
drivers/clk/qcom/gdsc.c
489
sc->pd.power_off = gdsc_disable;
drivers/clk/qcom/gdsc.c
490
if (!sc->pd.power_on)
drivers/clk/qcom/gdsc.c
491
sc->pd.power_on = gdsc_enable;
drivers/clk/qcom/gdsc.c
492
if (sc->flags & HW_CTRL_TRIGGER) {
drivers/clk/qcom/gdsc.c
493
sc->pd.set_hwmode_dev = gdsc_set_hwmode;
drivers/clk/qcom/gdsc.c
494
sc->pd.get_hwmode_dev = gdsc_get_hwmode;
drivers/clk/qcom/gdsc.c
497
ret = pm_genpd_init(&sc->pd, NULL, !on);
drivers/clk/qcom/gdsc.c
504
if (on && sc->rsupply)
drivers/clk/qcom/gdsc.c
505
regulator_disable(sc->rsupply);
drivers/clk/qcom/gdsc.c
60
static int gdsc_check_status(struct gdsc *sc, enum gdsc_status status)
drivers/clk/qcom/gdsc.c
656
struct gdsc *sc = domain_to_gdsc(domain);
drivers/clk/qcom/gdsc.c
66
if (sc->flags & POLL_CFG_GDSCR)
drivers/clk/qcom/gdsc.c
660
if (sc->rsupply)
drivers/clk/qcom/gdsc.c
661
ret = regulator_enable(sc->rsupply);
drivers/clk/qcom/gdsc.c
67
reg = sc->gdscr + CFG_GDSCR_OFFSET;
drivers/clk/qcom/gdsc.c
68
else if (sc->gds_hw_ctrl)
drivers/clk/qcom/gdsc.c
69
reg = sc->gds_hw_ctrl;
drivers/clk/qcom/gdsc.c
71
reg = sc->gdscr;
drivers/clk/qcom/gdsc.c
73
ret = regmap_read(sc->regmap, reg, &val);
drivers/clk/qcom/gdsc.c
77
if (sc->flags & POLL_CFG_GDSCR) {
drivers/clk/qcom/gdsc.c
96
static int gdsc_hwctrl(struct gdsc *sc, bool en)
drivers/crypto/sa2ul.c
723
u8 *sc_buf = ctx->sc;
drivers/crypto/sa2ul.c
795
if (ctx->sc) {
drivers/crypto/sa2ul.c
796
dma_pool_free(data->sc_pool, ctx->sc, ctx->sc_phys);
drivers/crypto/sa2ul.c
797
ctx->sc = NULL;
drivers/crypto/sa2ul.c
815
ctx->sc = dma_pool_alloc(data->sc_pool, GFP_KERNEL, &ctx->sc_phys);
drivers/crypto/sa2ul.c
816
if (!ctx->sc) {
drivers/crypto/sa2ul.h
286
u8 *sc;
drivers/firewire/ohci.c
179
} sc;
drivers/firewire/ohci.c
2744
trace_isoc_inbound_single_completions(&ctx->base, ctx->sc.last_timestamp, cause,
drivers/firewire/ohci.c
2745
ctx->sc.header, ctx->sc.header_length);
drivers/firewire/ohci.c
2746
trace_isoc_outbound_completions(&ctx->base, ctx->sc.last_timestamp, cause, ctx->sc.header,
drivers/firewire/ohci.c
2747
ctx->sc.header_length);
drivers/firewire/ohci.c
2749
ctx->base.callback.sc(&ctx->base, ctx->sc.last_timestamp, ctx->sc.header_length,
drivers/firewire/ohci.c
2750
ctx->sc.header, ctx->base.callback_data);
drivers/firewire/ohci.c
2751
ctx->sc.header_length = 0;
drivers/firewire/ohci.c
2758
if (ctx->sc.header_length + ctx->base.header_size > ctx->base.header_storage_size) {
drivers/firewire/ohci.c
2764
ctx_hdr = ctx->sc.header + ctx->sc.header_length;
drivers/firewire/ohci.c
2765
ctx->sc.last_timestamp = (u16)le32_to_cpu((__force __le32)dma_hdr[0]);
drivers/firewire/ohci.c
2778
ctx->sc.header_length += ctx->base.header_size;
drivers/firewire/ohci.c
2927
if (ctx->sc.header_length + 4 > ctx->base.header_storage_size) {
drivers/firewire/ohci.c
2933
ctx_hdr = ctx->sc.header + ctx->sc.header_length;
drivers/firewire/ohci.c
2934
ctx->sc.last_timestamp = le16_to_cpu(last->res_count);
drivers/firewire/ohci.c
2938
ctx->sc.header_length += 4;
drivers/firewire/ohci.c
3018
ctx->sc.header_length = 0;
drivers/firewire/ohci.c
3032
ctx->sc.header = no_free_ptr(header);
drivers/firewire/ohci.c
3140
kvfree(ctx->sc.header);
drivers/firewire/ohci.c
3141
ctx->sc.header = NULL;
drivers/firewire/ohci.c
3490
if (ctx->sc.header_length != 0)
drivers/firmware/arm_scmi/scmi_power_control.c
123
struct scmi_syspower_conf *sc = reboot_nb_to_sconf(nb);
drivers/firmware/arm_scmi/scmi_power_control.c
125
mutex_lock(&sc->state_mtx);
drivers/firmware/arm_scmi/scmi_power_control.c
129
if (sc->required_transition == SCMI_SYSTEM_SHUTDOWN)
drivers/firmware/arm_scmi/scmi_power_control.c
130
sc->state = SCMI_SYSPOWER_REBOOTING;
drivers/firmware/arm_scmi/scmi_power_control.c
133
if (sc->required_transition == SCMI_SYSTEM_COLDRESET ||
drivers/firmware/arm_scmi/scmi_power_control.c
134
sc->required_transition == SCMI_SYSTEM_WARMRESET)
drivers/firmware/arm_scmi/scmi_power_control.c
135
sc->state = SCMI_SYSPOWER_REBOOTING;
drivers/firmware/arm_scmi/scmi_power_control.c
141
if (sc->state == SCMI_SYSPOWER_REBOOTING) {
drivers/firmware/arm_scmi/scmi_power_control.c
142
dev_dbg(sc->dev, "Reboot in progress...cancel delayed work.\n");
drivers/firmware/arm_scmi/scmi_power_control.c
143
cancel_delayed_work_sync(&sc->forceful_work);
drivers/firmware/arm_scmi/scmi_power_control.c
145
mutex_unlock(&sc->state_mtx);
drivers/firmware/arm_scmi/scmi_power_control.c
159
scmi_request_forceful_transition(struct scmi_syspower_conf *sc)
drivers/firmware/arm_scmi/scmi_power_control.c
161
dev_dbg(sc->dev, "Serving forceful request:%d\n",
drivers/firmware/arm_scmi/scmi_power_control.c
162
sc->required_transition);
drivers/firmware/arm_scmi/scmi_power_control.c
167
switch (sc->required_transition) {
drivers/firmware/arm_scmi/scmi_power_control.c
182
struct scmi_syspower_conf *sc;
drivers/firmware/arm_scmi/scmi_power_control.c
189
sc = dwork_to_sconf(dwork);
drivers/firmware/arm_scmi/scmi_power_control.c
191
dev_dbg(sc->dev, "Graceful request timed out...forcing !\n");
drivers/firmware/arm_scmi/scmi_power_control.c
192
mutex_lock(&sc->state_mtx);
drivers/firmware/arm_scmi/scmi_power_control.c
194
unregister_reboot_notifier(&sc->reboot_nb);
drivers/firmware/arm_scmi/scmi_power_control.c
195
if (sc->state == SCMI_SYSPOWER_IN_PROGRESS)
drivers/firmware/arm_scmi/scmi_power_control.c
196
scmi_request_forceful_transition(sc);
drivers/firmware/arm_scmi/scmi_power_control.c
197
mutex_unlock(&sc->state_mtx);
drivers/firmware/arm_scmi/scmi_power_control.c
214
static void scmi_request_graceful_transition(struct scmi_syspower_conf *sc,
drivers/firmware/arm_scmi/scmi_power_control.c
222
sc->reboot_nb.notifier_call = &scmi_reboot_notifier;
drivers/firmware/arm_scmi/scmi_power_control.c
223
ret = register_reboot_notifier(&sc->reboot_nb);
drivers/firmware/arm_scmi/scmi_power_control.c
227
INIT_DELAYED_WORK(&sc->forceful_work,
drivers/firmware/arm_scmi/scmi_power_control.c
229
schedule_delayed_work(&sc->forceful_work,
drivers/firmware/arm_scmi/scmi_power_control.c
233
dev_warn(sc->dev,
drivers/firmware/arm_scmi/scmi_power_control.c
238
dev_dbg(sc->dev,
drivers/firmware/arm_scmi/scmi_power_control.c
240
sc->required_transition, timeout_ms, adj_timeout_ms);
drivers/firmware/arm_scmi/scmi_power_control.c
242
switch (sc->required_transition) {
drivers/firmware/arm_scmi/scmi_power_control.c
257
schedule_work(&sc->suspend_work);
drivers/firmware/arm_scmi/scmi_power_control.c
285
struct scmi_syspower_conf *sc = userspace_nb_to_sconf(nb);
drivers/firmware/arm_scmi/scmi_power_control.c
289
dev_err(sc->dev, "Ignoring unsupported system_state: 0x%X\n",
drivers/firmware/arm_scmi/scmi_power_control.c
295
dev_err(sc->dev, "Ignoring forceful notification.\n");
drivers/firmware/arm_scmi/scmi_power_control.c
305
mutex_lock(&sc->state_mtx);
drivers/firmware/arm_scmi/scmi_power_control.c
306
if (sc->state != SCMI_SYSPOWER_IDLE) {
drivers/firmware/arm_scmi/scmi_power_control.c
307
dev_dbg(sc->dev,
drivers/firmware/arm_scmi/scmi_power_control.c
309
mutex_unlock(&sc->state_mtx);
drivers/firmware/arm_scmi/scmi_power_control.c
312
sc->state = SCMI_SYSPOWER_IN_PROGRESS;
drivers/firmware/arm_scmi/scmi_power_control.c
313
mutex_unlock(&sc->state_mtx);
drivers/firmware/arm_scmi/scmi_power_control.c
315
sc->required_transition = er->system_state;
drivers/firmware/arm_scmi/scmi_power_control.c
318
dev_info(sc->dev, "Serving shutdown/reboot request: %d\n",
drivers/firmware/arm_scmi/scmi_power_control.c
319
sc->required_transition);
drivers/firmware/arm_scmi/scmi_power_control.c
321
scmi_request_graceful_transition(sc, er->timeout);
drivers/firmware/arm_scmi/scmi_power_control.c
334
struct scmi_syspower_conf *sc;
drivers/firmware/arm_scmi/scmi_power_control.c
344
sc = devm_kzalloc(&sdev->dev, sizeof(*sc), GFP_KERNEL);
drivers/firmware/arm_scmi/scmi_power_control.c
345
if (!sc)
drivers/firmware/arm_scmi/scmi_power_control.c
348
sc->state = SCMI_SYSPOWER_IDLE;
drivers/firmware/arm_scmi/scmi_power_control.c
349
mutex_init(&sc->state_mtx);
drivers/firmware/arm_scmi/scmi_power_control.c
350
sc->required_transition = SCMI_SYSTEM_MAX;
drivers/firmware/arm_scmi/scmi_power_control.c
351
sc->userspace_nb.notifier_call = &scmi_userspace_notifier;
drivers/firmware/arm_scmi/scmi_power_control.c
352
sc->dev = &sdev->dev;
drivers/firmware/arm_scmi/scmi_power_control.c
353
dev_set_drvdata(&sdev->dev, sc);
drivers/firmware/arm_scmi/scmi_power_control.c
355
INIT_WORK(&sc->suspend_work, scmi_suspend_work_func);
drivers/firmware/arm_scmi/scmi_power_control.c
360
NULL, &sc->userspace_nb);
drivers/firmware/arm_scmi/scmi_power_control.c
365
struct scmi_syspower_conf *sc = dev_get_drvdata(dev);
drivers/firmware/arm_scmi/scmi_power_control.c
367
sc->state = SCMI_SYSPOWER_IDLE;
drivers/firmware/efi/libstub/string.c
21
const char *sc;
drivers/firmware/efi/libstub/string.c
23
for (sc = s; *sc != '\0'; ++sc)
drivers/firmware/efi/libstub/string.c
25
return sc - s;
drivers/firmware/efi/libstub/string.c
37
const char *sc;
drivers/firmware/efi/libstub/string.c
39
for (sc = s; count-- && *sc != '\0'; ++sc)
drivers/firmware/efi/libstub/string.c
41
return sc - s;
drivers/gpu/drm/display/drm_dp_mst_topology.c
4236
int sc;
drivers/gpu/drm/display/drm_dp_mst_topology.c
4238
sc = DP_GET_SINK_COUNT(esi[0]);
drivers/gpu/drm/display/drm_dp_mst_topology.c
4240
if (sc != mgr->sink_count) {
drivers/gpu/drm/display/drm_dp_mst_topology.c
4241
mgr->sink_count = sc;
drivers/gpu/drm/drm_pagemap_util.c
351
drm_pagemap_shrinker_count(struct shrinker *shrink, struct shrink_control *sc)
drivers/gpu/drm/drm_pagemap_util.c
360
drm_pagemap_shrinker_scan(struct shrinker *shrink, struct shrink_control *sc)
drivers/gpu/drm/drm_pagemap_util.c
367
sc->nr_scanned = 0;
drivers/gpu/drm/drm_pagemap_util.c
379
sc->nr_scanned++;
drivers/gpu/drm/drm_pagemap_util.c
390
} while (sc->nr_scanned < sc->nr_to_scan);
drivers/gpu/drm/drm_pagemap_util.c
393
return sc->nr_scanned ? nr_freed : SHRINK_STOP;
drivers/gpu/drm/exynos/exynos_drm_fimc.c
1004
memset(&ctx->sc, 0x0, sizeof(ctx->sc));
drivers/gpu/drm/exynos/exynos_drm_fimc.c
1017
fimc_set_scaler(ctx, &ctx->sc);
drivers/gpu/drm/exynos/exynos_drm_fimc.c
108
struct fimc_scaler sc;
drivers/gpu/drm/exynos/exynos_drm_fimc.c
1104
fimc_set_prescaler(ctx, &ctx->sc, &task->src.rect, &task->dst.rect);
drivers/gpu/drm/exynos/exynos_drm_fimc.c
736
static int fimc_set_prescaler(struct fimc_context *ctx, struct fimc_scaler *sc,
drivers/gpu/drm/exynos/exynos_drm_fimc.c
783
sc->hratio = (src_w << 14) / (dst_w << hfactor);
drivers/gpu/drm/exynos/exynos_drm_fimc.c
784
sc->vratio = (src_h << 14) / (dst_h << vfactor);
drivers/gpu/drm/exynos/exynos_drm_fimc.c
785
sc->up_h = (dst_w >= src_w);
drivers/gpu/drm/exynos/exynos_drm_fimc.c
786
sc->up_v = (dst_h >= src_h);
drivers/gpu/drm/exynos/exynos_drm_fimc.c
788
sc->hratio, sc->vratio, sc->up_h, sc->up_v);
drivers/gpu/drm/exynos/exynos_drm_fimc.c
805
static void fimc_set_scaler(struct fimc_context *ctx, struct fimc_scaler *sc)
drivers/gpu/drm/exynos/exynos_drm_fimc.c
810
sc->range, sc->bypass, sc->up_h, sc->up_v);
drivers/gpu/drm/exynos/exynos_drm_fimc.c
812
sc->hratio, sc->vratio);
drivers/gpu/drm/exynos/exynos_drm_fimc.c
822
if (sc->range)
drivers/gpu/drm/exynos/exynos_drm_fimc.c
825
if (sc->bypass)
drivers/gpu/drm/exynos/exynos_drm_fimc.c
827
if (sc->up_h)
drivers/gpu/drm/exynos/exynos_drm_fimc.c
829
if (sc->up_v)
drivers/gpu/drm/exynos/exynos_drm_fimc.c
832
cfg |= (EXYNOS_CISCCTRL_MAINHORRATIO((sc->hratio >> 6)) |
drivers/gpu/drm/exynos/exynos_drm_fimc.c
833
EXYNOS_CISCCTRL_MAINVERRATIO((sc->vratio >> 6)));
drivers/gpu/drm/exynos/exynos_drm_fimc.c
839
cfg_ext |= (EXYNOS_CIEXTEN_MAINHORRATIO_EXT(sc->hratio) |
drivers/gpu/drm/exynos/exynos_drm_fimc.c
840
EXYNOS_CIEXTEN_MAINVERRATIO_EXT(sc->vratio));
drivers/gpu/drm/exynos/exynos_drm_gsc.c
1066
struct gsc_scaler *sc = &ctx->sc;
drivers/gpu/drm/exynos/exynos_drm_gsc.c
1077
memset(&ctx->sc, 0x0, sizeof(ctx->sc));
drivers/gpu/drm/exynos/exynos_drm_gsc.c
1078
sc->range = true;
drivers/gpu/drm/exynos/exynos_drm_gsc.c
110
struct gsc_scaler sc;
drivers/gpu/drm/exynos/exynos_drm_gsc.c
1107
gsc_set_scaler(ctx, &ctx->sc);
drivers/gpu/drm/exynos/exynos_drm_gsc.c
1142
gsc_set_prescaler(ctx, &ctx->sc, &task->src.rect, &task->dst.rect);
drivers/gpu/drm/exynos/exynos_drm_gsc.c
567
struct gsc_scaler *sc = &ctx->sc;
drivers/gpu/drm/exynos/exynos_drm_gsc.c
594
if (sc->range)
drivers/gpu/drm/exynos/exynos_drm_gsc.c
599
if (sc->range)
drivers/gpu/drm/exynos/exynos_drm_gsc.c
743
static int gsc_set_prescaler(struct gsc_context *ctx, struct gsc_scaler *sc,
drivers/gpu/drm/exynos/exynos_drm_gsc.c
762
ret = gsc_get_ratio_shift(ctx, src_w, dst_w, &sc->pre_hratio);
drivers/gpu/drm/exynos/exynos_drm_gsc.c
768
ret = gsc_get_ratio_shift(ctx, src_h, dst_h, &sc->pre_vratio);
drivers/gpu/drm/exynos/exynos_drm_gsc.c
775
sc->pre_hratio, sc->pre_vratio);
drivers/gpu/drm/exynos/exynos_drm_gsc.c
777
sc->main_hratio = (src_w << 16) / dst_w;
drivers/gpu/drm/exynos/exynos_drm_gsc.c
778
sc->main_vratio = (src_h << 16) / dst_h;
drivers/gpu/drm/exynos/exynos_drm_gsc.c
781
sc->main_hratio, sc->main_vratio);
drivers/gpu/drm/exynos/exynos_drm_gsc.c
783
gsc_get_prescaler_shfactor(sc->pre_hratio, sc->pre_vratio,
drivers/gpu/drm/exynos/exynos_drm_gsc.c
784
&sc->pre_shfactor);
drivers/gpu/drm/exynos/exynos_drm_gsc.c
786
DRM_DEV_DEBUG_KMS(ctx->dev, "pre_shfactor[%d]\n", sc->pre_shfactor);
drivers/gpu/drm/exynos/exynos_drm_gsc.c
788
cfg = (GSC_PRESC_SHFACTOR(sc->pre_shfactor) |
drivers/gpu/drm/exynos/exynos_drm_gsc.c
789
GSC_PRESC_H_RATIO(sc->pre_hratio) |
drivers/gpu/drm/exynos/exynos_drm_gsc.c
790
GSC_PRESC_V_RATIO(sc->pre_vratio));
drivers/gpu/drm/exynos/exynos_drm_gsc.c
848
static void gsc_set_scaler(struct gsc_context *ctx, struct gsc_scaler *sc)
drivers/gpu/drm/exynos/exynos_drm_gsc.c
853
sc->main_hratio, sc->main_vratio);
drivers/gpu/drm/exynos/exynos_drm_gsc.c
855
gsc_set_h_coef(ctx, sc->main_hratio);
drivers/gpu/drm/exynos/exynos_drm_gsc.c
856
cfg = GSC_MAIN_H_RATIO_VALUE(sc->main_hratio);
drivers/gpu/drm/exynos/exynos_drm_gsc.c
859
gsc_set_v_coef(ctx, sc->main_vratio);
drivers/gpu/drm/exynos/exynos_drm_gsc.c
860
cfg = GSC_MAIN_V_RATIO_VALUE(sc->main_vratio);
drivers/gpu/drm/exynos/exynos_drm_gsc.c
867
struct gsc_scaler *sc = &ctx->sc;
drivers/gpu/drm/exynos/exynos_drm_gsc.c
895
if (sc->range)
drivers/gpu/drm/exynos/exynos_drm_gsc.c
900
if (sc->range)
drivers/gpu/drm/i915/display/intel_display_debugfs.c
426
const struct intel_scaler *sc =
drivers/gpu/drm/i915/display/intel_display_debugfs.c
430
i, str_yes_no(sc->in_use), sc->mode);
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
290
i915_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
318
i915_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
323
sc->nr_scanned = 0;
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
326
sc->nr_to_scan,
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
327
&sc->nr_scanned,
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
330
if (sc->nr_scanned < sc->nr_to_scan && current_is_kswapd()) {
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
335
sc->nr_to_scan - sc->nr_scanned,
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
336
&sc->nr_scanned,
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
344
return sc->nr_scanned ? freed : SHRINK_STOP;
drivers/gpu/drm/msm/msm_gem_shrinker.c
165
msm_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/msm/msm_gem_shrinker.c
179
{ &priv->lru.dontneed, active_purge, can_block(sc) },
drivers/gpu/drm/msm/msm_gem_shrinker.c
180
{ &priv->lru.willneed, active_evict, can_swap() && can_block(sc) },
drivers/gpu/drm/msm/msm_gem_shrinker.c
182
long nr = sc->nr_to_scan;
drivers/gpu/drm/msm/msm_gem_shrinker.c
200
trace_msm_gem_shrink(sc->nr_to_scan, stages[0].freed,
drivers/gpu/drm/msm/msm_gem_shrinker.c
213
struct shrink_control sc = {
drivers/gpu/drm/msm/msm_gem_shrinker.c
220
ret = msm_gem_shrinker_scan(priv->shrinker, &sc);
drivers/gpu/drm/msm/msm_gem_shrinker.c
27
static bool can_block(struct shrink_control *sc)
drivers/gpu/drm/msm/msm_gem_shrinker.c
29
if (!(sc->gfp_mask & __GFP_DIRECT_RECLAIM))
drivers/gpu/drm/msm/msm_gem_shrinker.c
31
return current_is_kswapd() || (sc->gfp_mask & __GFP_RECLAIM);
drivers/gpu/drm/msm/msm_gem_shrinker.c
35
msm_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
141
const struct nvkm_enum *en, *re, *cl, *sc;
drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
176
if (cl && cl->data) sc = nvkm_enum_find(cl->data, st3);
drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
177
else if (en && en->data) sc = nvkm_enum_find(en->data, st3);
drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
178
else sc = NULL;
drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
189
st2, cl ? cl->name : "", st3, sc ? sc->name : "",
drivers/gpu/drm/omapdrm/dss/hdmi5_core.c
372
unsigned int itc, ec, q, sc;
drivers/gpu/drm/omapdrm/dss/hdmi5_core.c
395
sc = (ptr[2] >> 0) & 0x3;
drivers/gpu/drm/omapdrm/dss/hdmi5_core.c
410
(itc << 7) | (ec << 4) | (q << 2) | (sc << 0));
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
19
panfrost_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
65
panfrost_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
75
if (freed >= sc->nr_to_scan)
drivers/gpu/drm/ttm/ttm_pool.c
1149
struct shrink_control *sc)
drivers/gpu/drm/ttm/ttm_pool.c
1155
while (num_freed < sc->nr_to_scan &&
drivers/gpu/drm/ttm/ttm_pool.c
1158
sc->nr_scanned = num_freed;
drivers/gpu/drm/ttm/ttm_pool.c
1165
struct shrink_control *sc)
drivers/gpu/drm/ttm/ttm_pool.c
1289
struct shrink_control sc = {
drivers/gpu/drm/ttm/ttm_pool.c
1296
count = ttm_pool_shrinker_count(mm_shrinker, &sc);
drivers/gpu/drm/ttm/ttm_pool.c
1298
ttm_pool_shrinker_scan(mm_shrinker, &sc));
drivers/gpu/drm/xe/xe_shrinker.c
139
xe_shrinker_count(struct shrinker *shrink, struct shrink_control *sc)
drivers/gpu/drm/xe/xe_shrinker.c
143
bool can_backup = !!(sc->gfp_mask & __GFP_FS);
drivers/gpu/drm/xe/xe_shrinker.c
201
static unsigned long xe_shrinker_scan(struct shrinker *shrink, struct shrink_control *sc)
drivers/gpu/drm/xe/xe_shrinker.c
212
.writeback = !ctx.no_wait_gpu && (sc->gfp_mask & __GFP_IO),
drivers/gpu/drm/xe/xe_shrinker.c
216
bool can_backup = !!(sc->gfp_mask & __GFP_FS);
drivers/gpu/drm/xe/xe_shrinker.c
219
nr_to_scan = sc->nr_to_scan;
drivers/gpu/drm/xe/xe_shrinker.c
235
sc->nr_scanned = nr_scanned;
drivers/gpu/drm/xe/xe_shrinker.c
250
sc->nr_scanned = nr_scanned;
drivers/hid/hid-sony.c
1003
input_report_abs(sc->input_dev, ABS_Z, rd[41]);
drivers/hid/hid-sony.c
1004
input_report_abs(sc->input_dev, ABS_RZ, rd[42]);
drivers/hid/hid-sony.c
1006
input_sync(sc->input_dev);
drivers/hid/hid-sony.c
1012
struct sony_sc *sc = hid_get_drvdata(hdev);
drivers/hid/hid-sony.c
1018
if ((sc->quirks & SIXAXIS_CONTROLLER) && rd[0] == 0x01 && size == 49) {
drivers/hid/hid-sony.c
1035
sixaxis_parse_report(sc, rd, size);
drivers/hid/hid-sony.c
1036
} else if ((sc->quirks & MOTION_CONTROLLER_BT) && rd[0] == 0x01 && size == 49) {
drivers/hid/hid-sony.c
1037
sixaxis_parse_report(sc, rd, size);
drivers/hid/hid-sony.c
1038
} else if ((sc->quirks & NAVIGATION_CONTROLLER) && rd[0] == 0x01 &&
drivers/hid/hid-sony.c
1040
sixaxis_parse_report(sc, rd, size);
drivers/hid/hid-sony.c
1041
} else if ((sc->quirks & NSG_MRXU_REMOTE) && rd[0] == 0x02) {
drivers/hid/hid-sony.c
1042
nsg_mrxu_parse_report(sc, rd, size);
drivers/hid/hid-sony.c
1044
} else if ((sc->quirks & RB4_GUITAR_PS4_USB) && rd[0] == 0x01 && size == 64) {
drivers/hid/hid-sony.c
1045
rb4_ps4_guitar_parse_report(sc, rd, size);
drivers/hid/hid-sony.c
1047
} else if ((sc->quirks & RB4_GUITAR_PS4_BT) && rd[0] == 0x01 && size == 78) {
drivers/hid/hid-sony.c
1048
rb4_ps4_guitar_parse_report(sc, rd, size);
drivers/hid/hid-sony.c
1050
} else if ((sc->quirks & RB4_GUITAR_PS5) && rd[0] == 0x01 && size == 64) {
drivers/hid/hid-sony.c
1051
rb4_ps5_guitar_parse_report(sc, rd, size);
drivers/hid/hid-sony.c
1055
if (sc->defer_initialization) {
drivers/hid/hid-sony.c
1056
sc->defer_initialization = 0;
drivers/hid/hid-sony.c
1057
sony_schedule_work(sc, SONY_WORKER_STATE);
drivers/hid/hid-sony.c
1067
struct sony_sc *sc = hid_get_drvdata(hdev);
drivers/hid/hid-sony.c
1069
if (sc->quirks & BUZZ_CONTROLLER) {
drivers/hid/hid-sony.c
1092
if (sc->quirks & PS3REMOTE)
drivers/hid/hid-sony.c
1095
if (sc->quirks & NAVIGATION_CONTROLLER)
drivers/hid/hid-sony.c
1098
if (sc->quirks & SIXAXIS_CONTROLLER)
drivers/hid/hid-sony.c
1101
if (sc->quirks & GH_GUITAR_CONTROLLER)
drivers/hid/hid-sony.c
1104
if (sc->quirks & (RB4_GUITAR_PS4_USB | RB4_GUITAR_PS4_BT))
drivers/hid/hid-sony.c
1107
if (sc->quirks & RB4_GUITAR_PS5)
drivers/hid/hid-sony.c
1114
static int sony_register_touchpad(struct sony_sc *sc, int touch_count,
drivers/hid/hid-sony.c
1121
sc->touchpad = devm_input_allocate_device(&sc->hdev->dev);
drivers/hid/hid-sony.c
1122
if (!sc->touchpad)
drivers/hid/hid-sony.c
1125
input_set_drvdata(sc->touchpad, sc);
drivers/hid/hid-sony.c
1126
sc->touchpad->dev.parent = &sc->hdev->dev;
drivers/hid/hid-sony.c
1127
sc->touchpad->phys = sc->hdev->phys;
drivers/hid/hid-sony.c
1128
sc->touchpad->uniq = sc->hdev->uniq;
drivers/hid/hid-sony.c
1129
sc->touchpad->id.bustype = sc->hdev->bus;
drivers/hid/hid-sony.c
1130
sc->touchpad->id.vendor = sc->hdev->vendor;
drivers/hid/hid-sony.c
1131
sc->touchpad->id.product = sc->hdev->product;
drivers/hid/hid-sony.c
1132
sc->touchpad->id.version = sc->hdev->version;
drivers/hid/hid-sony.c
1140
name_sz = strlen(sc->hdev->name) + sizeof(TOUCHPAD_SUFFIX);
drivers/hid/hid-sony.c
1141
name = devm_kzalloc(&sc->hdev->dev, name_sz, GFP_KERNEL);
drivers/hid/hid-sony.c
1144
snprintf(name, name_sz, "%s" TOUCHPAD_SUFFIX, sc->hdev->name);
drivers/hid/hid-sony.c
1145
sc->touchpad->name = name;
drivers/hid/hid-sony.c
1148
__set_bit(EV_KEY, sc->touchpad->evbit);
drivers/hid/hid-sony.c
1149
__set_bit(BTN_LEFT, sc->touchpad->keybit);
drivers/hid/hid-sony.c
1150
__set_bit(INPUT_PROP_BUTTONPAD, sc->touchpad->propbit);
drivers/hid/hid-sony.c
1152
input_set_abs_params(sc->touchpad, ABS_MT_POSITION_X, 0, w, 0, 0);
drivers/hid/hid-sony.c
1153
input_set_abs_params(sc->touchpad, ABS_MT_POSITION_Y, 0, h, 0, 0);
drivers/hid/hid-sony.c
1156
input_set_abs_params(sc->touchpad, ABS_MT_TOUCH_MAJOR,
drivers/hid/hid-sony.c
1159
input_set_abs_params(sc->touchpad, ABS_MT_TOUCH_MINOR,
drivers/hid/hid-sony.c
1162
input_set_abs_params(sc->touchpad, ABS_MT_ORIENTATION,
drivers/hid/hid-sony.c
1166
if (sc->quirks & NSG_MRXU_REMOTE) {
drivers/hid/hid-sony.c
1167
__set_bit(EV_REL, sc->touchpad->evbit);
drivers/hid/hid-sony.c
1170
ret = input_mt_init_slots(sc->touchpad, touch_count, INPUT_MT_POINTER);
drivers/hid/hid-sony.c
1174
ret = input_register_device(sc->touchpad);
drivers/hid/hid-sony.c
1181
static int sony_register_sensors(struct sony_sc *sc)
drivers/hid/hid-sony.c
1187
sc->sensor_dev = devm_input_allocate_device(&sc->hdev->dev);
drivers/hid/hid-sony.c
1188
if (!sc->sensor_dev)
drivers/hid/hid-sony.c
1191
input_set_drvdata(sc->sensor_dev, sc);
drivers/hid/hid-sony.c
1192
sc->sensor_dev->dev.parent = &sc->hdev->dev;
drivers/hid/hid-sony.c
1193
sc->sensor_dev->phys = sc->hdev->phys;
drivers/hid/hid-sony.c
1194
sc->sensor_dev->uniq = sc->hdev->uniq;
drivers/hid/hid-sony.c
1195
sc->sensor_dev->id.bustype = sc->hdev->bus;
drivers/hid/hid-sony.c
1196
sc->sensor_dev->id.vendor = sc->hdev->vendor;
drivers/hid/hid-sony.c
1197
sc->sensor_dev->id.product = sc->hdev->product;
drivers/hid/hid-sony.c
1198
sc->sensor_dev->id.version = sc->hdev->version;
drivers/hid/hid-sony.c
1203
name_sz = strlen(sc->hdev->name) + sizeof(SENSOR_SUFFIX);
drivers/hid/hid-sony.c
1204
name = devm_kzalloc(&sc->hdev->dev, name_sz, GFP_KERNEL);
drivers/hid/hid-sony.c
1207
snprintf(name, name_sz, "%s" SENSOR_SUFFIX, sc->hdev->name);
drivers/hid/hid-sony.c
1208
sc->sensor_dev->name = name;
drivers/hid/hid-sony.c
1210
if (sc->quirks & SIXAXIS_CONTROLLER) {
drivers/hid/hid-sony.c
1217
input_set_abs_params(sc->sensor_dev, ABS_X, -512, 511, 4, 0);
drivers/hid/hid-sony.c
1218
input_set_abs_params(sc->sensor_dev, ABS_Y, -512, 511, 4, 0);
drivers/hid/hid-sony.c
1219
input_set_abs_params(sc->sensor_dev, ABS_Z, -512, 511, 4, 0);
drivers/hid/hid-sony.c
1220
input_abs_set_res(sc->sensor_dev, ABS_X, SIXAXIS_ACC_RES_PER_G);
drivers/hid/hid-sony.c
1221
input_abs_set_res(sc->sensor_dev, ABS_Y, SIXAXIS_ACC_RES_PER_G);
drivers/hid/hid-sony.c
1222
input_abs_set_res(sc->sensor_dev, ABS_Z, SIXAXIS_ACC_RES_PER_G);
drivers/hid/hid-sony.c
1225
__set_bit(INPUT_PROP_ACCELEROMETER, sc->sensor_dev->propbit);
drivers/hid/hid-sony.c
1227
ret = input_register_device(sc->sensor_dev);
drivers/hid/hid-sony.c
1241
struct sony_sc *sc = hid_get_drvdata(hdev);
drivers/hid/hid-sony.c
1273
if (sc->quirks & SHANWAN_GAMEPAD)
drivers/hid/hid-sony.c
1306
static void sixaxis_set_leds_from_id(struct sony_sc *sc)
drivers/hid/hid-sony.c
1321
int id = sc->device_id;
drivers/hid/hid-sony.c
1329
memcpy(sc->led_state, sixaxis_leds[id], sizeof(sixaxis_leds[id]));
drivers/hid/hid-sony.c
1332
static void buzz_set_leds(struct sony_sc *sc)
drivers/hid/hid-sony.c
1334
struct hid_device *hdev = sc->hdev;
drivers/hid/hid-sony.c
1344
value[1] = sc->led_state[0] ? 0xff : 0x00;
drivers/hid/hid-sony.c
1345
value[2] = sc->led_state[1] ? 0xff : 0x00;
drivers/hid/hid-sony.c
1346
value[3] = sc->led_state[2] ? 0xff : 0x00;
drivers/hid/hid-sony.c
1347
value[4] = sc->led_state[3] ? 0xff : 0x00;
drivers/hid/hid-sony.c
1353
static void sony_set_leds(struct sony_sc *sc)
drivers/hid/hid-sony.c
1355
if (!(sc->quirks & BUZZ_CONTROLLER))
drivers/hid/hid-sony.c
1356
sony_schedule_work(sc, SONY_WORKER_STATE);
drivers/hid/hid-sony.c
1358
buzz_set_leds(sc);
drivers/hid/hid-sony.c
1473
static int sony_leds_init(struct sony_sc *sc)
drivers/hid/hid-sony.c
1475
struct hid_device *hdev = sc->hdev;
drivers/hid/hid-sony.c
1488
if (WARN_ON(!(sc->quirks & SONY_LED_SUPPORT)))
drivers/hid/hid-sony.c
1491
if (sc->quirks & BUZZ_CONTROLLER) {
drivers/hid/hid-sony.c
1492
sc->led_count = 4;
drivers/hid/hid-sony.c
1499
} else if (sc->quirks & MOTION_CONTROLLER) {
drivers/hid/hid-sony.c
1500
sc->led_count = 3;
drivers/hid/hid-sony.c
1505
} else if (sc->quirks & NAVIGATION_CONTROLLER) {
drivers/hid/hid-sony.c
1508
memcpy(sc->led_state, navigation_leds, sizeof(navigation_leds));
drivers/hid/hid-sony.c
1509
sc->led_count = 1;
drivers/hid/hid-sony.c
1515
sixaxis_set_leds_from_id(sc);
drivers/hid/hid-sony.c
1516
sc->led_count = 4;
drivers/hid/hid-sony.c
1528
sony_set_leds(sc);
drivers/hid/hid-sony.c
1532
for (n = 0; n < sc->led_count; n++) {
drivers/hid/hid-sony.c
1550
led->brightness = sc->led_state[n];
drivers/hid/hid-sony.c
1559
sc->leds[n] = led;
drivers/hid/hid-sony.c
1571
static void sixaxis_send_output_report(struct sony_sc *sc)
drivers/hid/hid-sony.c
1586
(struct sixaxis_output_report *)sc->output_report_dmabuf;
drivers/hid/hid-sony.c
1593
report->rumble.right_motor_on = sc->right ? 1 : 0;
drivers/hid/hid-sony.c
1594
report->rumble.left_motor_force = sc->left;
drivers/hid/hid-sony.c
1597
report->leds_bitmap |= sc->led_state[0] << 1;
drivers/hid/hid-sony.c
1598
report->leds_bitmap |= sc->led_state[1] << 2;
drivers/hid/hid-sony.c
1599
report->leds_bitmap |= sc->led_state[2] << 3;
drivers/hid/hid-sony.c
1600
report->leds_bitmap |= sc->led_state[3] << 4;
drivers/hid/hid-sony.c
1616
if (sc->led_delay_on[n] || sc->led_delay_off[n]) {
drivers/hid/hid-sony.c
1617
report->led[3 - n].duty_off = sc->led_delay_off[n];
drivers/hid/hid-sony.c
1618
report->led[3 - n].duty_on = sc->led_delay_on[n];
drivers/hid/hid-sony.c
1623
if (sc->quirks & SHANWAN_GAMEPAD)
drivers/hid/hid-sony.c
1624
hid_hw_output_report(sc->hdev, (u8 *)report,
drivers/hid/hid-sony.c
1627
hid_hw_raw_request(sc->hdev, report->report_id, (u8 *)report,
drivers/hid/hid-sony.c
1632
static void motion_send_output_report(struct sony_sc *sc)
drivers/hid/hid-sony.c
1634
struct hid_device *hdev = sc->hdev;
drivers/hid/hid-sony.c
1636
(struct motion_output_report_02 *)sc->output_report_dmabuf;
drivers/hid/hid-sony.c
1641
report->r = sc->led_state[0];
drivers/hid/hid-sony.c
1642
report->g = sc->led_state[1];
drivers/hid/hid-sony.c
1643
report->b = sc->led_state[2];
drivers/hid/hid-sony.c
1646
report->rumble = max(sc->right, sc->left);
drivers/hid/hid-sony.c
1653
static inline void sony_send_output_report(struct sony_sc *sc)
drivers/hid/hid-sony.c
1655
if (sc->send_output_report)
drivers/hid/hid-sony.c
1656
sc->send_output_report(sc);
drivers/hid/hid-sony.c
1662
struct sony_sc *sc = container_of(work, struct sony_sc, state_worker);
drivers/hid/hid-sony.c
1664
sc->send_output_report(sc);
drivers/hid/hid-sony.c
1667
static int sony_allocate_output_report(struct sony_sc *sc)
drivers/hid/hid-sony.c
1669
if ((sc->quirks & SIXAXIS_CONTROLLER) ||
drivers/hid/hid-sony.c
1670
(sc->quirks & NAVIGATION_CONTROLLER))
drivers/hid/hid-sony.c
1671
sc->output_report_dmabuf =
drivers/hid/hid-sony.c
1672
devm_kmalloc(&sc->hdev->dev,
drivers/hid/hid-sony.c
1675
else if (sc->quirks & MOTION_CONTROLLER)
drivers/hid/hid-sony.c
1676
sc->output_report_dmabuf = devm_kmalloc(&sc->hdev->dev,
drivers/hid/hid-sony.c
1682
if (!sc->output_report_dmabuf)
drivers/hid/hid-sony.c
1693
struct sony_sc *sc = hid_get_drvdata(hid);
drivers/hid/hid-sony.c
1698
sc->left = effect->u.rumble.strong_magnitude / 256;
drivers/hid/hid-sony.c
1699
sc->right = effect->u.rumble.weak_magnitude / 256;
drivers/hid/hid-sony.c
1701
sony_schedule_work(sc, SONY_WORKER_STATE);
drivers/hid/hid-sony.c
1705
static int sony_init_ff(struct sony_sc *sc)
drivers/hid/hid-sony.c
1710
if (list_empty(&sc->hdev->inputs)) {
drivers/hid/hid-sony.c
1711
hid_err(sc->hdev, "no inputs found\n");
drivers/hid/hid-sony.c
1714
hidinput = list_entry(sc->hdev->inputs.next, struct hid_input, list);
drivers/hid/hid-sony.c
1722
static int sony_init_ff(struct sony_sc *sc)
drivers/hid/hid-sony.c
1733
struct sony_sc *sc = power_supply_get_drvdata(psy);
drivers/hid/hid-sony.c
1739
spin_lock_irqsave(&sc->lock, flags);
drivers/hid/hid-sony.c
1740
battery_capacity = sc->battery_capacity;
drivers/hid/hid-sony.c
1741
battery_status = sc->battery_status;
drivers/hid/hid-sony.c
1742
spin_unlock_irqrestore(&sc->lock, flags);
drivers/hid/hid-sony.c
1764
static int sony_battery_probe(struct sony_sc *sc, int append_dev_id)
drivers/hid/hid-sony.c
1769
struct power_supply_config psy_cfg = { .drv_data = sc, };
drivers/hid/hid-sony.c
1770
struct hid_device *hdev = sc->hdev;
drivers/hid/hid-sony.c
1777
sc->battery_capacity = 100;
drivers/hid/hid-sony.c
1779
sc->battery_desc.properties = sony_battery_props;
drivers/hid/hid-sony.c
1780
sc->battery_desc.num_properties = ARRAY_SIZE(sony_battery_props);
drivers/hid/hid-sony.c
1781
sc->battery_desc.get_property = sony_battery_get_property;
drivers/hid/hid-sony.c
1782
sc->battery_desc.type = POWER_SUPPLY_TYPE_BATTERY;
drivers/hid/hid-sony.c
1783
sc->battery_desc.use_for_apm = 0;
drivers/hid/hid-sony.c
1784
sc->battery_desc.name = devm_kasprintf(&hdev->dev, GFP_KERNEL,
drivers/hid/hid-sony.c
1785
battery_str_fmt, sc->mac_address, sc->device_id);
drivers/hid/hid-sony.c
1786
if (!sc->battery_desc.name)
drivers/hid/hid-sony.c
1789
sc->battery = devm_power_supply_register(&hdev->dev, &sc->battery_desc,
drivers/hid/hid-sony.c
1791
if (IS_ERR(sc->battery)) {
drivers/hid/hid-sony.c
1792
ret = PTR_ERR(sc->battery);
drivers/hid/hid-sony.c
1797
power_supply_powers(sc->battery, &hdev->dev);
drivers/hid/hid-sony.c
1821
static int sony_check_add_dev_list(struct sony_sc *sc)
drivers/hid/hid-sony.c
1830
ret = memcmp(sc->mac_address, entry->mac_address,
drivers/hid/hid-sony.c
1831
sizeof(sc->mac_address));
drivers/hid/hid-sony.c
1833
if (sony_compare_connection_type(sc, entry)) {
drivers/hid/hid-sony.c
1837
hid_info(sc->hdev,
drivers/hid/hid-sony.c
1839
sc->mac_address);
drivers/hid/hid-sony.c
1846
list_add(&(sc->list_node), &sony_device_list);
drivers/hid/hid-sony.c
1853
static void sony_remove_dev_list(struct sony_sc *sc)
drivers/hid/hid-sony.c
1857
if (sc->list_node.next) {
drivers/hid/hid-sony.c
1859
list_del(&(sc->list_node));
drivers/hid/hid-sony.c
1864
static int sony_get_bt_devaddr(struct sony_sc *sc)
drivers/hid/hid-sony.c
1869
ret = strlen(sc->hdev->uniq);
drivers/hid/hid-sony.c
1873
ret = sscanf(sc->hdev->uniq,
drivers/hid/hid-sony.c
1875
&sc->mac_address[5], &sc->mac_address[4], &sc->mac_address[3],
drivers/hid/hid-sony.c
1876
&sc->mac_address[2], &sc->mac_address[1], &sc->mac_address[0]);
drivers/hid/hid-sony.c
1884
static int sony_check_add(struct sony_sc *sc)
drivers/hid/hid-sony.c
1889
if ((sc->quirks & MOTION_CONTROLLER_BT) ||
drivers/hid/hid-sony.c
1890
(sc->quirks & NAVIGATION_CONTROLLER_BT) ||
drivers/hid/hid-sony.c
1891
(sc->quirks & SIXAXIS_CONTROLLER_BT)) {
drivers/hid/hid-sony.c
1898
if (sony_get_bt_devaddr(sc) < 0) {
drivers/hid/hid-sony.c
1899
hid_warn(sc->hdev, "UNIQ does not contain a MAC address; duplicate check skipped\n");
drivers/hid/hid-sony.c
1902
} else if ((sc->quirks & SIXAXIS_CONTROLLER_USB) ||
drivers/hid/hid-sony.c
1903
(sc->quirks & NAVIGATION_CONTROLLER_USB)) {
drivers/hid/hid-sony.c
1913
ret = hid_hw_raw_request(sc->hdev, 0xf2, buf,
drivers/hid/hid-sony.c
1918
hid_err(sc->hdev, "failed to retrieve feature report 0xf2 with the Sixaxis MAC address\n");
drivers/hid/hid-sony.c
1928
sc->mac_address[5-n] = buf[4+n];
drivers/hid/hid-sony.c
1930
snprintf(sc->hdev->uniq, sizeof(sc->hdev->uniq),
drivers/hid/hid-sony.c
1931
"%pMR", sc->mac_address);
drivers/hid/hid-sony.c
1936
ret = sony_check_add_dev_list(sc);
drivers/hid/hid-sony.c
1945
static int sony_set_device_id(struct sony_sc *sc)
drivers/hid/hid-sony.c
1953
if (sc->quirks & SIXAXIS_CONTROLLER) {
drivers/hid/hid-sony.c
1956
sc->device_id = -1;
drivers/hid/hid-sony.c
1959
sc->device_id = ret;
drivers/hid/hid-sony.c
1961
sc->device_id = -1;
drivers/hid/hid-sony.c
1967
static void sony_release_device_id(struct sony_sc *sc)
drivers/hid/hid-sony.c
1969
if (sc->device_id >= 0) {
drivers/hid/hid-sony.c
1970
ida_free(&sony_device_id_allocator, sc->device_id);
drivers/hid/hid-sony.c
1971
sc->device_id = -1;
drivers/hid/hid-sony.c
1975
static inline void sony_init_output_report(struct sony_sc *sc,
drivers/hid/hid-sony.c
1978
sc->send_output_report = send_output_report;
drivers/hid/hid-sony.c
1980
if (!sc->state_worker_initialized)
drivers/hid/hid-sony.c
1981
INIT_WORK(&sc->state_worker, sony_state_worker);
drivers/hid/hid-sony.c
1983
sc->state_worker_initialized = 1;
drivers/hid/hid-sony.c
1986
static inline void sony_cancel_work_sync(struct sony_sc *sc)
drivers/hid/hid-sony.c
1990
if (sc->state_worker_initialized) {
drivers/hid/hid-sony.c
1991
spin_lock_irqsave(&sc->lock, flags);
drivers/hid/hid-sony.c
1992
sc->state_worker_initialized = 0;
drivers/hid/hid-sony.c
1993
spin_unlock_irqrestore(&sc->lock, flags);
drivers/hid/hid-sony.c
1994
cancel_work_sync(&sc->state_worker);
drivers/hid/hid-sony.c
2001
struct sony_sc *sc = hid_get_drvdata(hdev);
drivers/hid/hid-sony.c
2005
ret = sony_set_device_id(sc);
drivers/hid/hid-sony.c
2011
ret = append_dev_id = sony_check_add(sc);
drivers/hid/hid-sony.c
2015
ret = sony_allocate_output_report(sc);
drivers/hid/hid-sony.c
2021
if (sc->quirks & NAVIGATION_CONTROLLER_USB) {
drivers/hid/hid-sony.c
2040
sc->defer_initialization = 1;
drivers/hid/hid-sony.c
2048
sony_init_output_report(sc, sixaxis_send_output_report);
drivers/hid/hid-sony.c
2049
} else if (sc->quirks & NAVIGATION_CONTROLLER_BT) {
drivers/hid/hid-sony.c
2062
sony_init_output_report(sc, sixaxis_send_output_report);
drivers/hid/hid-sony.c
2063
} else if (sc->quirks & SIXAXIS_CONTROLLER_USB) {
drivers/hid/hid-sony.c
2072
sc->defer_initialization = 1;
drivers/hid/hid-sony.c
2080
ret = sony_register_sensors(sc);
drivers/hid/hid-sony.c
2082
hid_err(sc->hdev,
drivers/hid/hid-sony.c
2087
sony_init_output_report(sc, sixaxis_send_output_report);
drivers/hid/hid-sony.c
2088
} else if (sc->quirks & SIXAXIS_CONTROLLER_BT) {
drivers/hid/hid-sony.c
2101
ret = sony_register_sensors(sc);
drivers/hid/hid-sony.c
2103
hid_err(sc->hdev,
drivers/hid/hid-sony.c
2108
sony_init_output_report(sc, sixaxis_send_output_report);
drivers/hid/hid-sony.c
2109
} else if (sc->quirks & NSG_MRXU_REMOTE) {
drivers/hid/hid-sony.c
2114
ret = sony_register_touchpad(sc, 2,
drivers/hid/hid-sony.c
2117
hid_err(sc->hdev,
drivers/hid/hid-sony.c
2123
} else if (sc->quirks & MOTION_CONTROLLER) {
drivers/hid/hid-sony.c
2124
sony_init_output_report(sc, motion_send_output_report);
drivers/hid/hid-sony.c
2127
if (sc->quirks & SONY_LED_SUPPORT) {
drivers/hid/hid-sony.c
2128
ret = sony_leds_init(sc);
drivers/hid/hid-sony.c
2133
if (sc->quirks & SONY_BATTERY_SUPPORT) {
drivers/hid/hid-sony.c
2134
ret = sony_battery_probe(sc, append_dev_id);
drivers/hid/hid-sony.c
2146
if (sc->quirks & SONY_FF_SUPPORT) {
drivers/hid/hid-sony.c
2147
ret = sony_init_ff(sc);
drivers/hid/hid-sony.c
2152
sc->input_dev = hidinput->input;
drivers/hid/hid-sony.c
2157
sony_cancel_work_sync(sc);
drivers/hid/hid-sony.c
2158
sony_remove_dev_list(sc);
drivers/hid/hid-sony.c
2159
sony_release_device_id(sc);
drivers/hid/hid-sony.c
2167
struct sony_sc *sc;
drivers/hid/hid-sony.c
2178
sc = devm_kzalloc(&hdev->dev, sizeof(*sc), GFP_KERNEL);
drivers/hid/hid-sony.c
2179
if (sc == NULL) {
drivers/hid/hid-sony.c
2184
spin_lock_init(&sc->lock);
drivers/hid/hid-sony.c
2186
sc->quirks = quirks;
drivers/hid/hid-sony.c
2187
hid_set_drvdata(hdev, sc);
drivers/hid/hid-sony.c
2188
sc->hdev = hdev;
drivers/hid/hid-sony.c
2196
if (sc->quirks & VAIO_RDESC_CONSTANT)
drivers/hid/hid-sony.c
2198
else if (sc->quirks & SIXAXIS_CONTROLLER)
drivers/hid/hid-sony.c
2207
if (sc->quirks & SIXAXIS_CONTROLLER)
drivers/hid/hid-sony.c
2230
if (sc->quirks & (GHL_GUITAR_PS3WIIU | GHL_GUITAR_PS4)) {
drivers/hid/hid-sony.c
2236
usbdev = to_usb_device(sc->hdev->dev.parent->parent);
drivers/hid/hid-sony.c
2238
sc->ghl_urb = usb_alloc_urb(0, GFP_ATOMIC);
drivers/hid/hid-sony.c
2239
if (!sc->ghl_urb) {
drivers/hid/hid-sony.c
2244
if (sc->quirks & GHL_GUITAR_PS3WIIU)
drivers/hid/hid-sony.c
2245
ret = ghl_init_urb(sc, usbdev, ghl_ps3wiiu_magic_data,
drivers/hid/hid-sony.c
2247
else if (sc->quirks & GHL_GUITAR_PS4)
drivers/hid/hid-sony.c
2248
ret = ghl_init_urb(sc, usbdev, ghl_ps4_magic_data,
drivers/hid/hid-sony.c
2255
timer_setup(&sc->ghl_poke_timer, ghl_magic_poke, 0);
drivers/hid/hid-sony.c
2256
mod_timer(&sc->ghl_poke_timer,
drivers/hid/hid-sony.c
2263
usb_free_urb(sc->ghl_urb);
drivers/hid/hid-sony.c
2271
struct sony_sc *sc = hid_get_drvdata(hdev);
drivers/hid/hid-sony.c
2273
if (sc->quirks & (GHL_GUITAR_PS3WIIU | GHL_GUITAR_PS4)) {
drivers/hid/hid-sony.c
2274
timer_delete_sync(&sc->ghl_poke_timer);
drivers/hid/hid-sony.c
2275
usb_free_urb(sc->ghl_urb);
drivers/hid/hid-sony.c
2280
sony_cancel_work_sync(sc);
drivers/hid/hid-sony.c
2282
sony_remove_dev_list(sc);
drivers/hid/hid-sony.c
2284
sony_release_device_id(sc);
drivers/hid/hid-sony.c
2296
struct sony_sc *sc = hid_get_drvdata(hdev);
drivers/hid/hid-sony.c
2298
sc->left = sc->right = 0;
drivers/hid/hid-sony.c
2299
sony_send_output_report(sc);
drivers/hid/hid-sony.c
2308
struct sony_sc *sc = hid_get_drvdata(hdev);
drivers/hid/hid-sony.c
2314
if ((sc->quirks & SIXAXIS_CONTROLLER_USB) ||
drivers/hid/hid-sony.c
2315
(sc->quirks & NAVIGATION_CONTROLLER_USB)) {
drivers/hid/hid-sony.c
2316
sixaxis_set_operational_usb(sc->hdev);
drivers/hid/hid-sony.c
2317
sc->defer_initialization = 1;
drivers/hid/hid-sony.c
544
static void sony_set_leds(struct sony_sc *sc);
drivers/hid/hid-sony.c
546
static inline void sony_schedule_work(struct sony_sc *sc,
drivers/hid/hid-sony.c
553
spin_lock_irqsave(&sc->lock, flags);
drivers/hid/hid-sony.c
554
if (!sc->defer_initialization && sc->state_worker_initialized)
drivers/hid/hid-sony.c
555
schedule_work(&sc->state_worker);
drivers/hid/hid-sony.c
556
spin_unlock_irqrestore(&sc->lock, flags);
drivers/hid/hid-sony.c
563
struct sony_sc *sc = urb->context;
drivers/hid/hid-sony.c
566
hid_err(sc->hdev, "URB transfer failed : %d", urb->status);
drivers/hid/hid-sony.c
568
mod_timer(&sc->ghl_poke_timer, jiffies + GHL_GUITAR_POKE_INTERVAL*HZ);
drivers/hid/hid-sony.c
574
struct sony_sc *sc = timer_container_of(sc, t, ghl_poke_timer);
drivers/hid/hid-sony.c
576
ret = usb_submit_urb(sc->ghl_urb, GFP_ATOMIC);
drivers/hid/hid-sony.c
578
hid_err(sc->hdev, "usb_submit_urb failed: %d", ret);
drivers/hid/hid-sony.c
581
static int ghl_init_urb(struct sony_sc *sc, struct usb_device *usbdev,
drivers/hid/hid-sony.c
591
cr = devm_kzalloc(&sc->hdev->dev, sizeof(*cr), GFP_ATOMIC);
drivers/hid/hid-sony.c
595
databuf = devm_kzalloc(&sc->hdev->dev, poke_size, GFP_ATOMIC);
drivers/hid/hid-sony.c
607
sc->ghl_urb, usbdev, pipe,
drivers/hid/hid-sony.c
609
ghl_magic_poke_cb, sc);
drivers/hid/hid-sony.c
806
struct sony_sc *sc = hid_get_drvdata(hdev);
drivers/hid/hid-sony.c
808
if (sc->quirks & (SINO_LITE_CONTROLLER | FUTUREMAX_DANCE_MAT))
drivers/hid/hid-sony.c
815
if ((sc->quirks & VAIO_RDESC_CONSTANT) && *rsize >= 56 &&
drivers/hid/hid-sony.c
827
if (sc->quirks & MOTION_CONTROLLER)
drivers/hid/hid-sony.c
830
if (sc->quirks & PS3REMOTE)
drivers/hid/hid-sony.c
837
if ((sc->quirks & SIXAXIS_CONTROLLER_USB) && *rsize >= 45 &&
drivers/hid/hid-sony.c
853
static void sixaxis_parse_report(struct sony_sc *sc, u8 *rd, int size)
drivers/hid/hid-sony.c
867
offset = (sc->quirks & MOTION_CONTROLLER) ? 12 : 30;
drivers/hid/hid-sony.c
878
spin_lock_irqsave(&sc->lock, flags);
drivers/hid/hid-sony.c
879
sc->battery_capacity = battery_capacity;
drivers/hid/hid-sony.c
880
sc->battery_status = battery_status;
drivers/hid/hid-sony.c
881
spin_unlock_irqrestore(&sc->lock, flags);
drivers/hid/hid-sony.c
883
if (sc->quirks & SIXAXIS_CONTROLLER) {
drivers/hid/hid-sony.c
888
input_report_abs(sc->sensor_dev, ABS_X, val);
drivers/hid/hid-sony.c
892
input_report_abs(sc->sensor_dev, ABS_Y, val);
drivers/hid/hid-sony.c
895
input_report_abs(sc->sensor_dev, ABS_Z, val);
drivers/hid/hid-sony.c
897
input_sync(sc->sensor_dev);
drivers/hid/hid-sony.c
901
static void nsg_mrxu_parse_report(struct sony_sc *sc, u8 *rd, int size)
drivers/hid/hid-sony.c
926
input_report_key(sc->touchpad, BTN_LEFT, rd[offset] & 0x0F);
drivers/hid/hid-sony.c
940
input_mt_slot(sc->touchpad, n);
drivers/hid/hid-sony.c
941
input_mt_report_slot_state(sc->touchpad, MT_TOOL_FINGER, active & 0x03);
drivers/hid/hid-sony.c
946
input_report_abs(sc->touchpad, ABS_MT_TOUCH_MAJOR,
drivers/hid/hid-sony.c
948
input_report_abs(sc->touchpad, ABS_MT_TOUCH_MINOR,
drivers/hid/hid-sony.c
950
input_report_abs(sc->touchpad, ABS_MT_ORIENTATION,
drivers/hid/hid-sony.c
952
input_report_abs(sc->touchpad, ABS_MT_POSITION_X, x);
drivers/hid/hid-sony.c
953
input_report_abs(sc->touchpad, ABS_MT_POSITION_Y,
drivers/hid/hid-sony.c
961
input_report_rel(sc->touchpad, REL_X, relx);
drivers/hid/hid-sony.c
962
input_report_rel(sc->touchpad, REL_Y, rely);
drivers/hid/hid-sony.c
970
input_mt_sync_frame(sc->touchpad);
drivers/hid/hid-sony.c
972
input_sync(sc->touchpad);
drivers/hid/hid-sony.c
975
static void rb4_ps4_guitar_parse_report(struct sony_sc *sc, u8 *rd, int size)
drivers/hid/hid-sony.c
986
input_report_abs(sc->input_dev, ABS_Z, rd[44]);
drivers/hid/hid-sony.c
987
input_report_abs(sc->input_dev, ABS_RZ, rd[45]);
drivers/hid/hid-sony.c
989
input_sync(sc->input_dev);
drivers/hid/hid-sony.c
992
static void rb4_ps5_guitar_parse_report(struct sony_sc *sc, u8 *rd, int size)
drivers/hv/channel_mgmt.c
710
struct vmbus_channel *sc;
drivers/hv/channel_mgmt.c
720
list_for_each_entry(sc, &primary->sc_list, sc_list)
drivers/hv/channel_mgmt.c
721
if (sc != chn && sc->target_cpu == cpu)
drivers/hv/hv.c
579
struct vmbus_channel *channel, *sc;
drivers/hv/hv.c
608
list_for_each_entry(sc, &channel->sc_list, sc_list) {
drivers/hv/hv.c
609
if (sc->target_cpu == cpu) {
drivers/hv/hv.c
610
ret = hv_pick_new_cpu(sc);
drivers/hv/hyperv_vmbus.h
481
struct vmbus_channel *channel, *sc;
drivers/hv/hyperv_vmbus.h
493
list_for_each_entry(sc, &channel->sc_list, sc_list) {
drivers/hv/hyperv_vmbus.h
494
if (sc->target_cpu == cpu)
drivers/hv/vmbus_drv.c
2711
struct vmbus_channel *channel, *sc;
drivers/hv/vmbus_drv.c
2770
list_for_each_entry(sc, &channel->sc_list, sc_list) {
drivers/hwtracing/stm/console.c
34
struct stm_console *sc = container_of(con, struct stm_console, console);
drivers/hwtracing/stm/console.c
36
stm_source_write(&sc->data, 0, buf, len);
drivers/hwtracing/stm/console.c
41
struct stm_console *sc = container_of(data, struct stm_console, data);
drivers/hwtracing/stm/console.c
43
strcpy(sc->console.name, "stm_console");
drivers/hwtracing/stm/console.c
44
sc->console.write = stm_console_write;
drivers/hwtracing/stm/console.c
45
sc->console.flags = CON_ENABLED | CON_PRINTBUFFER;
drivers/hwtracing/stm/console.c
46
register_console(&sc->console);
drivers/hwtracing/stm/console.c
53
struct stm_console *sc = container_of(data, struct stm_console, data);
drivers/hwtracing/stm/console.c
55
unregister_console(&sc->console);
drivers/infiniband/hw/cxgb4/mem.c
115
struct ulptx_idata *sc;
drivers/infiniband/hw/cxgb4/mem.c
133
wr_len = roundup(sizeof(*req) + sizeof(*sc) +
drivers/infiniband/hw/cxgb4/mem.c
163
sc = (struct ulptx_idata *)(req + 1);
drivers/infiniband/hw/cxgb4/mem.c
164
sc->cmd_more = cpu_to_be32(ULPTX_CMD_V(ULP_TX_SC_IMM));
drivers/infiniband/hw/cxgb4/mem.c
165
sc->len = cpu_to_be32(roundup(copy_len, T4_ULPTX_MIN_IO));
drivers/infiniband/hw/cxgb4/mem.c
167
to_dp = (u8 *)(sc + 1);
drivers/infiniband/hw/hfi1/chip.c
10145
thres = min(sc_percent_to_threshold(dd->vld[i].sc, 50),
drivers/infiniband/hw/hfi1/chip.c
10146
sc_mtu_to_threshold(dd->vld[i].sc,
drivers/infiniband/hw/hfi1/chip.c
10154
thres = min(sc_percent_to_threshold(dd->vld[15].sc, 50),
drivers/infiniband/hw/hfi1/chip.c
10155
sc_mtu_to_threshold(dd->vld[15].sc,
drivers/infiniband/hw/hfi1/chip.c
10158
sc_set_cr_threshold(dd->vld[15].sc, thres);
drivers/infiniband/hw/hfi1/chip.c
13110
void hfi1_init_ctxt(struct send_context *sc)
drivers/infiniband/hw/hfi1/chip.c
13112
if (sc) {
drivers/infiniband/hw/hfi1/chip.c
13113
struct hfi1_devdata *dd = sc->dd;
drivers/infiniband/hw/hfi1/chip.c
13115
u8 set = (sc->type == SC_USER ?
drivers/infiniband/hw/hfi1/chip.c
13118
reg = read_kctxt_csr(dd, sc->hw_context,
drivers/infiniband/hw/hfi1/chip.c
13124
write_kctxt_csr(dd, sc->hw_context,
drivers/infiniband/hw/hfi1/chip.c
14754
if (!rcd || !rcd->sc)
drivers/infiniband/hw/hfi1/chip.c
14757
hw_ctxt = rcd->sc->hw_context;
drivers/infiniband/hw/hfi1/chip.c
14788
if (!rcd || !rcd->sc)
drivers/infiniband/hw/hfi1/chip.c
14791
hw_ctxt = rcd->sc->hw_context;
drivers/infiniband/hw/hfi1/chip.c
14815
if (!rcd || !rcd->sc)
drivers/infiniband/hw/hfi1/chip.c
14818
hw_ctxt = rcd->sc->hw_context;
drivers/infiniband/hw/hfi1/chip.c
14835
if (!ctxt || !ctxt->sc)
drivers/infiniband/hw/hfi1/chip.c
14838
hw_ctxt = ctxt->sc->hw_context;
drivers/infiniband/hw/hfi1/chip.c
5786
struct send_context *sc;
drivers/infiniband/hw/hfi1/chip.c
5795
sc = sci->sc;
drivers/infiniband/hw/hfi1/chip.c
5796
if (!sc)
drivers/infiniband/hw/hfi1/chip.c
5798
if (dd->vld[15].sc == sc)
drivers/infiniband/hw/hfi1/chip.c
5801
if (dd->vld[i].sc == sc)
drivers/infiniband/hw/hfi1/chip.c
5950
struct send_context *sc;
drivers/infiniband/hw/hfi1/chip.c
5966
sc = sci->sc;
drivers/infiniband/hw/hfi1/chip.c
5967
if (!sc) {
drivers/infiniband/hw/hfi1/chip.c
5975
sc_stop(sc, SCF_HALTED);
drivers/infiniband/hw/hfi1/chip.c
5990
if (sc->type != SC_USER)
drivers/infiniband/hw/hfi1/chip.c
5991
queue_work(dd->pport->hfi1_wq, &sc->halt_work);
drivers/infiniband/hw/hfi1/chip.c
6742
struct send_context *sc;
drivers/infiniband/hw/hfi1/chip.c
6759
sc = dd->send_contexts[i].sc;
drivers/infiniband/hw/hfi1/chip.c
6760
if (sc && (sc->flags & SCF_ENABLED))
drivers/infiniband/hw/hfi1/chip.c
6761
sc_stop(sc, sc_flags);
drivers/infiniband/hw/hfi1/chip.h
1378
void hfi1_init_ctxt(struct send_context *sc);
drivers/infiniband/hw/hfi1/debugfs.c
378
if (sci && sci->type != SC_USER && sci->allocated && sci->sc)
drivers/infiniband/hw/hfi1/driver.c
1462
if ((hfi1_is_16B_mcast(packet->dlid)) && (packet->sc == 0xF))
drivers/infiniband/hw/hfi1/driver.c
1468
(packet->sc != 0xF))
drivers/infiniband/hw/hfi1/driver.c
1511
packet->sc = hfi1_9B_get_sc5(hdr, packet->rhf);
drivers/infiniband/hw/hfi1/driver.c
1591
packet->sc = hfi1_16B_get_sc(packet->hdr);
drivers/infiniband/hw/hfi1/driver.c
1592
packet->sl = ibp->sc_to_sl[packet->sc];
drivers/infiniband/hw/hfi1/driver.c
411
u8 hdr_type, sc, svc_type, opcode;
drivers/infiniband/hw/hfi1/driver.c
418
sc = hfi1_16B_get_sc(pkt->hdr);
drivers/infiniband/hw/hfi1/driver.c
428
sc = hfi1_9B_get_sc5(pkt->hdr, pkt->rhf);
drivers/infiniband/hw/hfi1/driver.c
481
dlid, rlid, sc, grh);
drivers/infiniband/hw/hfi1/driver.c
485
u8 sl = ibp->sc_to_sl[sc];
drivers/infiniband/hw/hfi1/driver.c
951
u8 sc = SC15_PACKET;
drivers/infiniband/hw/hfi1/driver.c
956
sc = hfi1_9B_get_sc5(hdr, packet->rhf);
drivers/infiniband/hw/hfi1/driver.c
961
sc = hfi1_16B_get_sc(hdr);
drivers/infiniband/hw/hfi1/driver.c
963
if (sc != SC15_PACKET) {
drivers/infiniband/hw/hfi1/file_ops.c
1151
cinfo.credits = uctxt->sc->credits;
drivers/infiniband/hw/hfi1/file_ops.c
1154
cinfo.send_ctxt = uctxt->sc->hw_context;
drivers/infiniband/hw/hfi1/file_ops.c
1191
hfi1_init_ctxt(uctxt->sc);
drivers/infiniband/hw/hfi1/file_ops.c
1267
offset = ((u64)uctxt->sc->hw_free -
drivers/infiniband/hw/hfi1/file_ops.c
1273
uctxt->sc->base_addr);
drivers/infiniband/hw/hfi1/file_ops.c
1277
uctxt->sc->base_addr);
drivers/infiniband/hw/hfi1/file_ops.c
1621
struct send_context *sc;
drivers/infiniband/hw/hfi1/file_ops.c
1625
if (!uctxt || !uctxt->dd || !uctxt->sc)
drivers/infiniband/hw/hfi1/file_ops.c
1635
sc = uctxt->sc;
drivers/infiniband/hw/hfi1/file_ops.c
1642
sc->halt_wait, (sc->flags & SCF_HALTED),
drivers/infiniband/hw/hfi1/file_ops.c
1644
if (!(sc->flags & SCF_HALTED))
drivers/infiniband/hw/hfi1/file_ops.c
1651
if (sc->flags & SCF_FROZEN) {
drivers/infiniband/hw/hfi1/file_ops.c
1666
sc_disable(sc);
drivers/infiniband/hw/hfi1/file_ops.c
1667
ret = sc_enable(sc);
drivers/infiniband/hw/hfi1/file_ops.c
1670
ret = sc_restart(sc);
drivers/infiniband/hw/hfi1/file_ops.c
1673
sc_return_credits(sc);
drivers/infiniband/hw/hfi1/file_ops.c
209
sc_return_credits(uctxt->sc);
drivers/infiniband/hw/hfi1/file_ops.c
359
(uctxt->sc->hw_context * BIT(16))) +
drivers/infiniband/hw/hfi1/file_ops.c
367
memlen = PAGE_ALIGN(uctxt->sc->credits * PIO_BLOCK_SIZE);
drivers/infiniband/hw/hfi1/file_ops.c
384
cr_page_offset = ((u64)uctxt->sc->hw_free -
drivers/infiniband/hw/hfi1/file_ops.c
693
if (uctxt->sc) {
drivers/infiniband/hw/hfi1/file_ops.c
694
sc_disable(uctxt->sc);
drivers/infiniband/hw/hfi1/file_ops.c
695
set_pio_integrity(uctxt->sc);
drivers/infiniband/hw/hfi1/file_ops.c
853
if (uctxt->sc && (uctxt->sc->type == SC_KERNEL))
drivers/infiniband/hw/hfi1/file_ops.c
973
uctxt->sc = sc_alloc(dd, SC_USER, uctxt->rcvhdrqentsize, dd->node);
drivers/infiniband/hw/hfi1/file_ops.c
974
if (!uctxt->sc) {
drivers/infiniband/hw/hfi1/file_ops.c
978
hfi1_cdbg(PROC, "allocated send context %u(%u)", uctxt->sc->sw_index,
drivers/infiniband/hw/hfi1/file_ops.c
979
uctxt->sc->hw_context);
drivers/infiniband/hw/hfi1/file_ops.c
980
ret = sc_enable(uctxt->sc);
drivers/infiniband/hw/hfi1/hfi.h
181
struct send_context *sc;
drivers/infiniband/hw/hfi1/hfi.h
2607
u8 sc)
drivers/infiniband/hw/hfi1/hfi.h
2618
lrh1 = (lrh1 & ~OPA_16B_SC_MASK) | (sc << OPA_16B_SC_SHIFT);
drivers/infiniband/hw/hfi1/hfi.h
358
u8 sc;
drivers/infiniband/hw/hfi1/hfi.h
955
struct send_context *sc;
drivers/infiniband/hw/hfi1/init.c
1043
sc_flush(dd->send_contexts[i].sc);
drivers/infiniband/hw/hfi1/init.c
1057
sc_disable(dd->send_contexts[i].sc);
drivers/infiniband/hw/hfi1/init.c
1118
sc_free(rcd->sc);
drivers/infiniband/hw/hfi1/init.c
1119
rcd->sc = NULL;
drivers/infiniband/hw/hfi1/init.c
119
rcd->sc = sc_alloc(dd, SC_ACK, rcd->rcvhdrqentsize, dd->node);
drivers/infiniband/hw/hfi1/init.c
120
if (!rcd->sc) {
drivers/infiniband/hw/hfi1/init.c
124
hfi1_init_ctxt(rcd->sc);
drivers/infiniband/hw/hfi1/init.c
1526
sc_free(dd->send_contexts[ctxt].sc);
drivers/infiniband/hw/hfi1/init.c
694
sc_disable(dd->send_contexts[i].sc);
drivers/infiniband/hw/hfi1/init.c
728
sc_enable(rcd->sc);
drivers/infiniband/hw/hfi1/mad.c
1816
u8 sc;
drivers/infiniband/hw/hfi1/mad.c
1824
sc = *p++;
drivers/infiniband/hw/hfi1/mad.c
1825
if (ibp->sl_to_sc[i] != sc) {
drivers/infiniband/hw/hfi1/mad.c
1826
ibp->sl_to_sc[i] = sc;
drivers/infiniband/hw/hfi1/pio.c
1013
struct send_context *sc = dd->send_contexts[i].sc;
drivers/infiniband/hw/hfi1/pio.c
1015
if (!sc)
drivers/infiniband/hw/hfi1/pio.c
1017
sc_wait_for_packet_egress(sc, 0);
drivers/infiniband/hw/hfi1/pio.c
1030
int sc_restart(struct send_context *sc)
drivers/infiniband/hw/hfi1/pio.c
1032
struct hfi1_devdata *dd = sc->dd;
drivers/infiniband/hw/hfi1/pio.c
1038
if (!(sc->flags & SCF_HALTED) || (sc->flags & SCF_IN_FREE))
drivers/infiniband/hw/hfi1/pio.c
1041
dd_dev_info(dd, "restarting send context %u(%u)\n", sc->sw_index,
drivers/infiniband/hw/hfi1/pio.c
1042
sc->hw_context);
drivers/infiniband/hw/hfi1/pio.c
1052
reg = read_kctxt_csr(dd, sc->hw_context, SC(STATUS));
drivers/infiniband/hw/hfi1/pio.c
1057
__func__, sc->sw_index, sc->hw_context);
drivers/infiniband/hw/hfi1/pio.c
1074
if (sc->type != SC_USER) {
drivers/infiniband/hw/hfi1/pio.c
1078
count = get_buffers_allocated(sc);
drivers/infiniband/hw/hfi1/pio.c
1084
__func__, sc->sw_index,
drivers/infiniband/hw/hfi1/pio.c
1085
sc->hw_context, count);
drivers/infiniband/hw/hfi1/pio.c
1101
sc_disable(sc);
drivers/infiniband/hw/hfi1/pio.c
1109
return sc_enable(sc);
drivers/infiniband/hw/hfi1/pio.c
1119
struct send_context *sc;
drivers/infiniband/hw/hfi1/pio.c
1123
sc = dd->send_contexts[i].sc;
drivers/infiniband/hw/hfi1/pio.c
1129
if (!sc || !(sc->flags & SCF_FROZEN) || sc->type == SC_USER)
drivers/infiniband/hw/hfi1/pio.c
1133
sc_disable(sc);
drivers/infiniband/hw/hfi1/pio.c
1146
struct send_context *sc;
drivers/infiniband/hw/hfi1/pio.c
1150
sc = dd->send_contexts[i].sc;
drivers/infiniband/hw/hfi1/pio.c
1151
if (!sc || !(sc->flags & SCF_FROZEN) || sc->type == SC_USER)
drivers/infiniband/hw/hfi1/pio.c
1153
if (sc->flags & SCF_LINK_DOWN)
drivers/infiniband/hw/hfi1/pio.c
1156
sc_enable(sc); /* will clear the sc frozen flag */
drivers/infiniband/hw/hfi1/pio.c
1174
struct send_context *sc;
drivers/infiniband/hw/hfi1/pio.c
1178
sc = dd->send_contexts[i].sc;
drivers/infiniband/hw/hfi1/pio.c
1179
if (!sc || !(sc->flags & SCF_LINK_DOWN) || sc->type == SC_USER)
drivers/infiniband/hw/hfi1/pio.c
1182
sc_enable(sc); /* will clear the sc link down flag */
drivers/infiniband/hw/hfi1/pio.c
1242
int sc_enable(struct send_context *sc)
drivers/infiniband/hw/hfi1/pio.c
1249
if (!sc)
drivers/infiniband/hw/hfi1/pio.c
1251
dd = sc->dd;
drivers/infiniband/hw/hfi1/pio.c
1260
spin_lock_irqsave(&sc->alloc_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1261
sc_ctrl = read_kctxt_csr(dd, sc->hw_context, SC(CTRL));
drivers/infiniband/hw/hfi1/pio.c
1267
*sc->hw_free = 0;
drivers/infiniband/hw/hfi1/pio.c
1268
sc->free = 0;
drivers/infiniband/hw/hfi1/pio.c
1269
sc->alloc_free = 0;
drivers/infiniband/hw/hfi1/pio.c
1270
sc->fill = 0;
drivers/infiniband/hw/hfi1/pio.c
1271
sc->fill_wrap = 0;
drivers/infiniband/hw/hfi1/pio.c
1272
sc->sr_head = 0;
drivers/infiniband/hw/hfi1/pio.c
1273
sc->sr_tail = 0;
drivers/infiniband/hw/hfi1/pio.c
1274
sc->flags = 0;
drivers/infiniband/hw/hfi1/pio.c
1276
reset_buffers_allocated(sc);
drivers/infiniband/hw/hfi1/pio.c
1284
reg = read_kctxt_csr(dd, sc->hw_context, SC(ERR_STATUS));
drivers/infiniband/hw/hfi1/pio.c
1286
write_kctxt_csr(dd, sc->hw_context, SC(ERR_CLEAR), reg);
drivers/infiniband/hw/hfi1/pio.c
1300
pio = ((sc->hw_context & SEND_PIO_INIT_CTXT_PIO_CTXT_NUM_MASK) <<
drivers/infiniband/hw/hfi1/pio.c
1314
sc->sw_index, sc->hw_context, ret);
drivers/infiniband/hw/hfi1/pio.c
1322
write_kctxt_csr(dd, sc->hw_context, SC(CTRL), sc_ctrl);
drivers/infiniband/hw/hfi1/pio.c
1327
read_kctxt_csr(dd, sc->hw_context, SC(CTRL));
drivers/infiniband/hw/hfi1/pio.c
1328
sc->flags |= SCF_ENABLED;
drivers/infiniband/hw/hfi1/pio.c
1331
spin_unlock_irqrestore(&sc->alloc_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1337
void sc_return_credits(struct send_context *sc)
drivers/infiniband/hw/hfi1/pio.c
1339
if (!sc)
drivers/infiniband/hw/hfi1/pio.c
1343
write_kctxt_csr(sc->dd, sc->hw_context, SC(CREDIT_FORCE),
drivers/infiniband/hw/hfi1/pio.c
1349
read_kctxt_csr(sc->dd, sc->hw_context, SC(CREDIT_FORCE));
drivers/infiniband/hw/hfi1/pio.c
1351
write_kctxt_csr(sc->dd, sc->hw_context, SC(CREDIT_FORCE), 0);
drivers/infiniband/hw/hfi1/pio.c
1355
void sc_flush(struct send_context *sc)
drivers/infiniband/hw/hfi1/pio.c
1357
if (!sc)
drivers/infiniband/hw/hfi1/pio.c
1360
sc_wait_for_packet_egress(sc, 1);
drivers/infiniband/hw/hfi1/pio.c
1371
void sc_stop(struct send_context *sc, int flag)
drivers/infiniband/hw/hfi1/pio.c
1376
spin_lock_irqsave(&sc->alloc_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1378
sc->flags |= flag;
drivers/infiniband/hw/hfi1/pio.c
1379
sc->flags &= ~SCF_ENABLED;
drivers/infiniband/hw/hfi1/pio.c
1380
spin_unlock_irqrestore(&sc->alloc_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1381
wake_up(&sc->halt_wait);
drivers/infiniband/hw/hfi1/pio.c
1398
struct pio_buf *sc_buffer_alloc(struct send_context *sc, u32 dw_len,
drivers/infiniband/hw/hfi1/pio.c
1409
spin_lock_irqsave(&sc->alloc_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1410
if (!(sc->flags & SCF_ENABLED)) {
drivers/infiniband/hw/hfi1/pio.c
1411
spin_unlock_irqrestore(&sc->alloc_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1416
avail = (unsigned long)sc->credits - (sc->fill - sc->alloc_free);
drivers/infiniband/hw/hfi1/pio.c
1420
spin_unlock_irqrestore(&sc->alloc_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1424
sc->alloc_free = READ_ONCE(sc->free);
drivers/infiniband/hw/hfi1/pio.c
1426
(unsigned long)sc->credits -
drivers/infiniband/hw/hfi1/pio.c
1427
(sc->fill - sc->alloc_free);
drivers/infiniband/hw/hfi1/pio.c
1430
sc_release_update(sc);
drivers/infiniband/hw/hfi1/pio.c
1431
sc->alloc_free = READ_ONCE(sc->free);
drivers/infiniband/hw/hfi1/pio.c
1440
this_cpu_inc(*sc->buffers_allocated);
drivers/infiniband/hw/hfi1/pio.c
1443
head = sc->sr_head;
drivers/infiniband/hw/hfi1/pio.c
1446
sc->fill += blocks;
drivers/infiniband/hw/hfi1/pio.c
1447
fill_wrap = sc->fill_wrap;
drivers/infiniband/hw/hfi1/pio.c
1448
sc->fill_wrap += blocks;
drivers/infiniband/hw/hfi1/pio.c
1449
if (sc->fill_wrap >= sc->credits)
drivers/infiniband/hw/hfi1/pio.c
1450
sc->fill_wrap = sc->fill_wrap - sc->credits;
drivers/infiniband/hw/hfi1/pio.c
1459
pbuf = &sc->sr[head].pbuf;
drivers/infiniband/hw/hfi1/pio.c
1460
pbuf->sent_at = sc->fill;
drivers/infiniband/hw/hfi1/pio.c
1463
pbuf->sc = sc; /* could be filled in at sc->sr init time */
drivers/infiniband/hw/hfi1/pio.c
1468
if (next >= sc->sr_size)
drivers/infiniband/hw/hfi1/pio.c
1475
sc->sr_head = next;
drivers/infiniband/hw/hfi1/pio.c
1476
spin_unlock_irqrestore(&sc->alloc_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1479
pbuf->start = sc->base_addr + fill_wrap * PIO_BLOCK_SIZE;
drivers/infiniband/hw/hfi1/pio.c
1480
pbuf->end = sc->base_addr + sc->size;
drivers/infiniband/hw/hfi1/pio.c
1499
void sc_add_credit_return_intr(struct send_context *sc)
drivers/infiniband/hw/hfi1/pio.c
15
static void sc_wait_for_packet_egress(struct send_context *sc, int pause);
drivers/infiniband/hw/hfi1/pio.c
1504
spin_lock_irqsave(&sc->credit_ctrl_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1505
if (sc->credit_intr_count == 0) {
drivers/infiniband/hw/hfi1/pio.c
1506
sc->credit_ctrl |= SC(CREDIT_CTRL_CREDIT_INTR_SMASK);
drivers/infiniband/hw/hfi1/pio.c
1507
write_kctxt_csr(sc->dd, sc->hw_context,
drivers/infiniband/hw/hfi1/pio.c
1508
SC(CREDIT_CTRL), sc->credit_ctrl);
drivers/infiniband/hw/hfi1/pio.c
1510
sc->credit_intr_count++;
drivers/infiniband/hw/hfi1/pio.c
1511
spin_unlock_irqrestore(&sc->credit_ctrl_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1518
void sc_del_credit_return_intr(struct send_context *sc)
drivers/infiniband/hw/hfi1/pio.c
1522
WARN_ON(sc->credit_intr_count == 0);
drivers/infiniband/hw/hfi1/pio.c
1525
spin_lock_irqsave(&sc->credit_ctrl_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1526
sc->credit_intr_count--;
drivers/infiniband/hw/hfi1/pio.c
1527
if (sc->credit_intr_count == 0) {
drivers/infiniband/hw/hfi1/pio.c
1528
sc->credit_ctrl &= ~SC(CREDIT_CTRL_CREDIT_INTR_SMASK);
drivers/infiniband/hw/hfi1/pio.c
1529
write_kctxt_csr(sc->dd, sc->hw_context,
drivers/infiniband/hw/hfi1/pio.c
1530
SC(CREDIT_CTRL), sc->credit_ctrl);
drivers/infiniband/hw/hfi1/pio.c
1532
spin_unlock_irqrestore(&sc->credit_ctrl_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1539
void hfi1_sc_wantpiobuf_intr(struct send_context *sc, u32 needint)
drivers/infiniband/hw/hfi1/pio.c
1542
sc_add_credit_return_intr(sc);
drivers/infiniband/hw/hfi1/pio.c
1544
sc_del_credit_return_intr(sc);
drivers/infiniband/hw/hfi1/pio.c
1545
trace_hfi1_wantpiointr(sc, needint, sc->credit_ctrl);
drivers/infiniband/hw/hfi1/pio.c
1547
sc_return_credits(sc);
drivers/infiniband/hw/hfi1/pio.c
1558
static void sc_piobufavail(struct send_context *sc)
drivers/infiniband/hw/hfi1/pio.c
1560
struct hfi1_devdata *dd = sc->dd;
drivers/infiniband/hw/hfi1/pio.c
1568
if (dd->send_contexts[sc->sw_index].type != SC_KERNEL &&
drivers/infiniband/hw/hfi1/pio.c
1569
dd->send_contexts[sc->sw_index].type != SC_VL15)
drivers/infiniband/hw/hfi1/pio.c
1571
list = &sc->piowait;
drivers/infiniband/hw/hfi1/pio.c
1578
write_seqlock_irqsave(&sc->waitlock, flags);
drivers/infiniband/hw/hfi1/pio.c
1605
hfi1_sc_wantpiobuf_intr(sc, 0);
drivers/infiniband/hw/hfi1/pio.c
1607
hfi1_sc_wantpiobuf_intr(sc, 1);
drivers/infiniband/hw/hfi1/pio.c
1609
write_sequnlock_irqrestore(&sc->waitlock, flags);
drivers/infiniband/hw/hfi1/pio.c
1645
void sc_release_update(struct send_context *sc)
drivers/infiniband/hw/hfi1/pio.c
1656
if (!sc)
drivers/infiniband/hw/hfi1/pio.c
1659
spin_lock_irqsave(&sc->release_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1661
hw_free = le64_to_cpu(*sc->hw_free); /* volatile read */
drivers/infiniband/hw/hfi1/pio.c
1662
old_free = sc->free;
drivers/infiniband/hw/hfi1/pio.c
1667
trace_hfi1_piofree(sc, extra);
drivers/infiniband/hw/hfi1/pio.c
1671
head = READ_ONCE(sc->sr_head); /* snapshot the head */
drivers/infiniband/hw/hfi1/pio.c
1672
tail = sc->sr_tail;
drivers/infiniband/hw/hfi1/pio.c
1674
pbuf = &sc->sr[tail].pbuf;
drivers/infiniband/hw/hfi1/pio.c
1687
if (tail >= sc->sr_size)
drivers/infiniband/hw/hfi1/pio.c
1690
sc->sr_tail = tail;
drivers/infiniband/hw/hfi1/pio.c
1693
sc->free = free;
drivers/infiniband/hw/hfi1/pio.c
1694
spin_unlock_irqrestore(&sc->release_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
1695
sc_piobufavail(sc);
drivers/infiniband/hw/hfi1/pio.c
1709
struct send_context *sc;
drivers/infiniband/hw/hfi1/pio.c
1720
sc = dd->send_contexts[sw_index].sc;
drivers/infiniband/hw/hfi1/pio.c
1721
if (unlikely(!sc))
drivers/infiniband/hw/hfi1/pio.c
1724
gc = group_context(hw_context, sc->group);
drivers/infiniband/hw/hfi1/pio.c
1725
gc_end = gc + group_size(sc->group);
drivers/infiniband/hw/hfi1/pio.c
1734
sc_release_update(dd->send_contexts[sw_index].sc);
drivers/infiniband/hw/hfi1/pio.c
1770
return dd->vld[0].sc;
drivers/infiniband/hw/hfi1/pio.c
1777
rval = !rval ? dd->vld[0].sc : rval;
drivers/infiniband/hw/hfi1/pio.c
1965
dd->vld[15].sc = sc_alloc(dd, SC_VL15,
drivers/infiniband/hw/hfi1/pio.c
1967
if (!dd->vld[15].sc)
drivers/infiniband/hw/hfi1/pio.c
1970
hfi1_init_ctxt(dd->vld[15].sc);
drivers/infiniband/hw/hfi1/pio.c
1979
dd->kernel_send_context[0] = dd->vld[15].sc;
drivers/infiniband/hw/hfi1/pio.c
1989
dd->vld[i].sc = sc_alloc(dd, SC_KERNEL,
drivers/infiniband/hw/hfi1/pio.c
1991
if (!dd->vld[i].sc)
drivers/infiniband/hw/hfi1/pio.c
1993
dd->kernel_send_context[i + 1] = dd->vld[i].sc;
drivers/infiniband/hw/hfi1/pio.c
1994
hfi1_init_ctxt(dd->vld[i].sc);
drivers/infiniband/hw/hfi1/pio.c
2006
sc_enable(dd->vld[15].sc);
drivers/infiniband/hw/hfi1/pio.c
2007
ctxt = dd->vld[15].sc->hw_context;
drivers/infiniband/hw/hfi1/pio.c
2012
dd->vld[15].sc->sw_index, ctxt);
drivers/infiniband/hw/hfi1/pio.c
2015
sc_enable(dd->vld[i].sc);
drivers/infiniband/hw/hfi1/pio.c
2016
ctxt = dd->vld[i].sc->hw_context;
drivers/infiniband/hw/hfi1/pio.c
2033
sc_free(dd->vld[i].sc);
drivers/infiniband/hw/hfi1/pio.c
2034
dd->vld[i].sc = NULL;
drivers/infiniband/hw/hfi1/pio.c
2044
sc_free(dd->vld[15].sc);
drivers/infiniband/hw/hfi1/pio.c
2109
struct send_context *sc = sci->sc;
drivers/infiniband/hw/hfi1/pio.c
2115
sc->flags, sc->sw_index, sc->hw_context, sc->group);
drivers/infiniband/hw/hfi1/pio.c
2117
sc->sr_size, sc->credits, sc->sr_head, sc->sr_tail);
drivers/infiniband/hw/hfi1/pio.c
2119
sc->fill, sc->free, sc->fill_wrap, sc->alloc_free);
drivers/infiniband/hw/hfi1/pio.c
2121
sc->credit_intr_count, sc->credit_ctrl);
drivers/infiniband/hw/hfi1/pio.c
2122
reg = read_kctxt_csr(sc->dd, sc->hw_context, SC(CREDIT_STATUS));
drivers/infiniband/hw/hfi1/pio.c
2124
(le64_to_cpu(*sc->hw_free) & CR_COUNTER_SMASK) >>
drivers/infiniband/hw/hfi1/pio.c
518
static void cr_group_addresses(struct send_context *sc, dma_addr_t *dma)
drivers/infiniband/hw/hfi1/pio.c
520
u32 gc = group_context(sc->hw_context, sc->group);
drivers/infiniband/hw/hfi1/pio.c
521
u32 index = sc->hw_context & 0x7;
drivers/infiniband/hw/hfi1/pio.c
523
sc->hw_free = &sc->dd->cr_base[sc->node].va[gc].cr[index];
drivers/infiniband/hw/hfi1/pio.c
525
&((struct credit_return *)sc->dd->cr_base[sc->node].dma)[gc];
drivers/infiniband/hw/hfi1/pio.c
534
struct send_context *sc;
drivers/infiniband/hw/hfi1/pio.c
536
sc = container_of(work, struct send_context, halt_work);
drivers/infiniband/hw/hfi1/pio.c
537
sc_restart(sc);
drivers/infiniband/hw/hfi1/pio.c
550
u32 sc_mtu_to_threshold(struct send_context *sc, u32 mtu, u32 hdrqentsize)
drivers/infiniband/hw/hfi1/pio.c
560
if (sc->credits <= release_credits)
drivers/infiniband/hw/hfi1/pio.c
563
threshold = sc->credits - release_credits;
drivers/infiniband/hw/hfi1/pio.c
575
u32 sc_percent_to_threshold(struct send_context *sc, u32 percent)
drivers/infiniband/hw/hfi1/pio.c
577
return (sc->credits * percent) / 100;
drivers/infiniband/hw/hfi1/pio.c
583
void sc_set_cr_threshold(struct send_context *sc, u32 new_threshold)
drivers/infiniband/hw/hfi1/pio.c
589
spin_lock_irqsave(&sc->credit_ctrl_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
591
old_threshold = (sc->credit_ctrl >>
drivers/infiniband/hw/hfi1/pio.c
596
sc->credit_ctrl =
drivers/infiniband/hw/hfi1/pio.c
597
(sc->credit_ctrl
drivers/infiniband/hw/hfi1/pio.c
602
write_kctxt_csr(sc->dd, sc->hw_context,
drivers/infiniband/hw/hfi1/pio.c
603
SC(CREDIT_CTRL), sc->credit_ctrl);
drivers/infiniband/hw/hfi1/pio.c
609
spin_unlock_irqrestore(&sc->credit_ctrl_lock, flags);
drivers/infiniband/hw/hfi1/pio.c
612
sc_return_credits(sc);
drivers/infiniband/hw/hfi1/pio.c
620
void set_pio_integrity(struct send_context *sc)
drivers/infiniband/hw/hfi1/pio.c
622
struct hfi1_devdata *dd = sc->dd;
drivers/infiniband/hw/hfi1/pio.c
623
u32 hw_context = sc->hw_context;
drivers/infiniband/hw/hfi1/pio.c
624
int type = sc->type;
drivers/infiniband/hw/hfi1/pio.c
631
static u32 get_buffers_allocated(struct send_context *sc)
drivers/infiniband/hw/hfi1/pio.c
637
ret += *per_cpu_ptr(sc->buffers_allocated, cpu);
drivers/infiniband/hw/hfi1/pio.c
641
static void reset_buffers_allocated(struct send_context *sc)
drivers/infiniband/hw/hfi1/pio.c
646
(*per_cpu_ptr(sc->buffers_allocated, cpu)) = 0;
drivers/infiniband/hw/hfi1/pio.c
657
struct send_context *sc = NULL;
drivers/infiniband/hw/hfi1/pio.c
671
sc = kzalloc_node(sizeof(*sc), GFP_KERNEL, numa);
drivers/infiniband/hw/hfi1/pio.c
672
if (!sc)
drivers/infiniband/hw/hfi1/pio.c
675
sc->buffers_allocated = alloc_percpu(u32);
drivers/infiniband/hw/hfi1/pio.c
676
if (!sc->buffers_allocated) {
drivers/infiniband/hw/hfi1/pio.c
677
kfree(sc);
drivers/infiniband/hw/hfi1/pio.c
688
free_percpu(sc->buffers_allocated);
drivers/infiniband/hw/hfi1/pio.c
689
kfree(sc);
drivers/infiniband/hw/hfi1/pio.c
694
sci->sc = sc;
drivers/infiniband/hw/hfi1/pio.c
696
sc->dd = dd;
drivers/infiniband/hw/hfi1/pio.c
697
sc->node = numa;
drivers/infiniband/hw/hfi1/pio.c
698
sc->type = type;
drivers/infiniband/hw/hfi1/pio.c
699
spin_lock_init(&sc->alloc_lock);
drivers/infiniband/hw/hfi1/pio.c
700
spin_lock_init(&sc->release_lock);
drivers/infiniband/hw/hfi1/pio.c
701
spin_lock_init(&sc->credit_ctrl_lock);
drivers/infiniband/hw/hfi1/pio.c
702
seqlock_init(&sc->waitlock);
drivers/infiniband/hw/hfi1/pio.c
703
INIT_LIST_HEAD(&sc->piowait);
drivers/infiniband/hw/hfi1/pio.c
704
INIT_WORK(&sc->halt_work, sc_halted);
drivers/infiniband/hw/hfi1/pio.c
705
init_waitqueue_head(&sc->halt_wait);
drivers/infiniband/hw/hfi1/pio.c
708
sc->group = 0;
drivers/infiniband/hw/hfi1/pio.c
710
sc->sw_index = sw_index;
drivers/infiniband/hw/hfi1/pio.c
711
sc->hw_context = hw_context;
drivers/infiniband/hw/hfi1/pio.c
712
cr_group_addresses(sc, &dma);
drivers/infiniband/hw/hfi1/pio.c
713
sc->credits = sci->credits;
drivers/infiniband/hw/hfi1/pio.c
714
sc->size = sc->credits * PIO_BLOCK_SIZE;
drivers/infiniband/hw/hfi1/pio.c
719
sc->base_addr = dd->piobase + ((hw_context & PIO_ADDR_CONTEXT_MASK)
drivers/infiniband/hw/hfi1/pio.c
729
set_pio_integrity(sc);
drivers/infiniband/hw/hfi1/pio.c
770
thresh = sc_percent_to_threshold(sc, 50);
drivers/infiniband/hw/hfi1/pio.c
772
thresh = sc_percent_to_threshold(sc,
drivers/infiniband/hw/hfi1/pio.c
775
thresh = min(sc_percent_to_threshold(sc, 50),
drivers/infiniband/hw/hfi1/pio.c
776
sc_mtu_to_threshold(sc, hfi1_max_mtu,
drivers/infiniband/hw/hfi1/pio.c
787
sc->credit_ctrl = reg;
drivers/infiniband/hw/hfi1/pio.c
811
sc->sr_size = sci->credits + 1;
drivers/infiniband/hw/hfi1/pio.c
812
sc->sr = kcalloc_node(sc->sr_size,
drivers/infiniband/hw/hfi1/pio.c
815
if (!sc->sr) {
drivers/infiniband/hw/hfi1/pio.c
816
sc_free(sc);
drivers/infiniband/hw/hfi1/pio.c
826
sc->group,
drivers/infiniband/hw/hfi1/pio.c
827
sc->credits,
drivers/infiniband/hw/hfi1/pio.c
828
sc->credit_ctrl,
drivers/infiniband/hw/hfi1/pio.c
831
return sc;
drivers/infiniband/hw/hfi1/pio.c
835
void sc_free(struct send_context *sc)
drivers/infiniband/hw/hfi1/pio.c
842
if (!sc)
drivers/infiniband/hw/hfi1/pio.c
845
sc->flags |= SCF_IN_FREE; /* ensure no restarts */
drivers/infiniband/hw/hfi1/pio.c
846
dd = sc->dd;
drivers/infiniband/hw/hfi1/pio.c
847
if (!list_empty(&sc->piowait))
drivers/infiniband/hw/hfi1/pio.c
849
sw_index = sc->sw_index;
drivers/infiniband/hw/hfi1/pio.c
850
hw_context = sc->hw_context;
drivers/infiniband/hw/hfi1/pio.c
851
sc_disable(sc); /* make sure the HW is disabled */
drivers/infiniband/hw/hfi1/pio.c
852
flush_work(&sc->halt_work);
drivers/infiniband/hw/hfi1/pio.c
855
dd->send_contexts[sw_index].sc = NULL;
drivers/infiniband/hw/hfi1/pio.c
870
kfree(sc->sr);
drivers/infiniband/hw/hfi1/pio.c
871
free_percpu(sc->buffers_allocated);
drivers/infiniband/hw/hfi1/pio.c
872
kfree(sc);
drivers/infiniband/hw/hfi1/pio.c
876
void sc_disable(struct send_context *sc)
drivers/infiniband/hw/hfi1/pio.c
882
if (!sc)
drivers/infiniband/hw/hfi1/pio.c
886
spin_lock_irq(&sc->alloc_lock);
drivers/infiniband/hw/hfi1/pio.c
887
reg = read_kctxt_csr(sc->dd, sc->hw_context, SC(CTRL));
drivers/infiniband/hw/hfi1/pio.c
889
sc->flags &= ~SCF_ENABLED;
drivers/infiniband/hw/hfi1/pio.c
890
sc_wait_for_packet_egress(sc, 1);
drivers/infiniband/hw/hfi1/pio.c
891
write_kctxt_csr(sc->dd, sc->hw_context, SC(CTRL), reg);
drivers/infiniband/hw/hfi1/pio.c
901
spin_lock(&sc->release_lock);
drivers/infiniband/hw/hfi1/pio.c
902
if (sc->sr) { /* this context has a shadow ring */
drivers/infiniband/hw/hfi1/pio.c
903
while (sc->sr_tail != sc->sr_head) {
drivers/infiniband/hw/hfi1/pio.c
904
pbuf = &sc->sr[sc->sr_tail].pbuf;
drivers/infiniband/hw/hfi1/pio.c
907
sc->sr_tail++;
drivers/infiniband/hw/hfi1/pio.c
908
if (sc->sr_tail >= sc->sr_size)
drivers/infiniband/hw/hfi1/pio.c
909
sc->sr_tail = 0;
drivers/infiniband/hw/hfi1/pio.c
912
spin_unlock(&sc->release_lock);
drivers/infiniband/hw/hfi1/pio.c
914
write_seqlock(&sc->waitlock);
drivers/infiniband/hw/hfi1/pio.c
915
list_splice_init(&sc->piowait, &wake_list);
drivers/infiniband/hw/hfi1/pio.c
916
write_sequnlock(&sc->waitlock);
drivers/infiniband/hw/hfi1/pio.c
930
spin_unlock_irq(&sc->alloc_lock);
drivers/infiniband/hw/hfi1/pio.c
968
static void sc_wait_for_packet_egress(struct send_context *sc, int pause)
drivers/infiniband/hw/hfi1/pio.c
970
struct hfi1_devdata *dd = sc->dd;
drivers/infiniband/hw/hfi1/pio.c
977
reg = read_csr(dd, sc->hw_context * 8 +
drivers/infiniband/hw/hfi1/pio.c
980
if (sc->flags & SCF_HALTED ||
drivers/infiniband/hw/hfi1/pio.c
981
is_sc_halted(dd, sc->hw_context) || egress_halted(reg))
drivers/infiniband/hw/hfi1/pio.c
993
__func__, sc->sw_index,
drivers/infiniband/hw/hfi1/pio.c
994
sc->hw_context, (u32)reg);
drivers/infiniband/hw/hfi1/pio.h
105
struct send_context *sc; /* allocated working context */
drivers/infiniband/hw/hfi1/pio.h
243
void sc_free(struct send_context *sc);
drivers/infiniband/hw/hfi1/pio.h
244
int sc_enable(struct send_context *sc);
drivers/infiniband/hw/hfi1/pio.h
245
void sc_disable(struct send_context *sc);
drivers/infiniband/hw/hfi1/pio.h
246
int sc_restart(struct send_context *sc);
drivers/infiniband/hw/hfi1/pio.h
247
void sc_return_credits(struct send_context *sc);
drivers/infiniband/hw/hfi1/pio.h
248
void sc_flush(struct send_context *sc);
drivers/infiniband/hw/hfi1/pio.h
249
void sc_stop(struct send_context *sc, int bit);
drivers/infiniband/hw/hfi1/pio.h
250
struct pio_buf *sc_buffer_alloc(struct send_context *sc, u32 dw_len,
drivers/infiniband/hw/hfi1/pio.h
252
void sc_release_update(struct send_context *sc);
drivers/infiniband/hw/hfi1/pio.h
254
void sc_add_credit_return_intr(struct send_context *sc);
drivers/infiniband/hw/hfi1/pio.h
255
void sc_del_credit_return_intr(struct send_context *sc);
drivers/infiniband/hw/hfi1/pio.h
256
void sc_set_cr_threshold(struct send_context *sc, u32 new_threshold);
drivers/infiniband/hw/hfi1/pio.h
257
u32 sc_percent_to_threshold(struct send_context *sc, u32 percent);
drivers/infiniband/hw/hfi1/pio.h
258
u32 sc_mtu_to_threshold(struct send_context *sc, u32 mtu, u32 hdrqentsize);
drivers/infiniband/hw/hfi1/pio.h
259
void hfi1_sc_wantpiobuf_intr(struct send_context *sc, u32 needint);
drivers/infiniband/hw/hfi1/pio.h
261
void set_pio_integrity(struct send_context *sc);
drivers/infiniband/hw/hfi1/pio.h
39
struct send_context *sc;/* back pointer to owning send context */
drivers/infiniband/hw/hfi1/pio_copy.c
123
this_cpu_dec(*pbuf->sc->buffers_allocated);
drivers/infiniband/hw/hfi1/pio_copy.c
322
dest -= pbuf->sc->size;
drivers/infiniband/hw/hfi1/pio_copy.c
323
dend -= pbuf->sc->size;
drivers/infiniband/hw/hfi1/pio_copy.c
419
dest -= pbuf->sc->size;
drivers/infiniband/hw/hfi1/pio_copy.c
420
dend -= pbuf->sc->size;
drivers/infiniband/hw/hfi1/pio_copy.c
453
dest -= pbuf->sc->size;
drivers/infiniband/hw/hfi1/pio_copy.c
545
dest -= pbuf->sc->size;
drivers/infiniband/hw/hfi1/pio_copy.c
546
dend -= pbuf->sc->size;
drivers/infiniband/hw/hfi1/pio_copy.c
627
dest -= pbuf->sc->size;
drivers/infiniband/hw/hfi1/pio_copy.c
680
dest -= pbuf->sc->size;
drivers/infiniband/hw/hfi1/pio_copy.c
713
this_cpu_dec(*pbuf->sc->buffers_allocated);
drivers/infiniband/hw/hfi1/pio_copy.c
91
dest -= pbuf->sc->size;
drivers/infiniband/hw/hfi1/pio_copy.c
92
dend -= pbuf->sc->size;
drivers/infiniband/hw/hfi1/qp.c
166
u8 sc;
drivers/infiniband/hw/hfi1/qp.c
169
sc = ah_to_sc(ibqp->device, &attr->ah_attr);
drivers/infiniband/hw/hfi1/qp.c
170
if (sc == 0xf)
drivers/infiniband/hw/hfi1/qp.c
173
if (!qp_to_sdma_engine(qp, sc) &&
drivers/infiniband/hw/hfi1/qp.c
177
if (!qp_to_send_context(qp, sc))
drivers/infiniband/hw/hfi1/qp.c
182
sc = ah_to_sc(ibqp->device, &attr->alt_ah_attr);
drivers/infiniband/hw/hfi1/qp.c
183
if (sc == 0xf)
drivers/infiniband/hw/hfi1/qp.c
186
if (!qp_to_sdma_engine(qp, sc) &&
drivers/infiniband/hw/hfi1/qp.c
190
if (!qp_to_send_context(qp, sc))
drivers/infiniband/hw/hfi1/qp.c
571
return dd->vld[15].sc;
drivers/infiniband/hw/hfi1/qp.c
809
u8 sc, vl;
drivers/infiniband/hw/hfi1/qp.c
812
sc = ibp->sl_to_sc[rdma_ah_get_sl(&qp->remote_ah_attr)];
drivers/infiniband/hw/hfi1/qp.c
813
vl = sc_to_vlt(dd, sc);
drivers/infiniband/hw/hfi1/rc.c
1385
pbuf = sc_buffer_alloc(rcd->sc, plen, NULL, NULL);
drivers/infiniband/hw/hfi1/sysfs.c
143
int sc;
drivers/infiniband/hw/hfi1/sysfs.c
153
return sysfs_emit(buf, "%u\n", *((u8 *)dd->sc2vl + sattr->sc));
drivers/infiniband/hw/hfi1/sysfs.c
159
.sc = N, \
drivers/infiniband/hw/hfi1/trace.c
156
u8 *lnh, u8 *lver, u8 *sl, u8 *sc,
drivers/infiniband/hw/hfi1/trace.c
162
*sc = ib_get_sc(hdr) | (sc5 << 4);
drivers/infiniband/hw/hfi1/trace.c
170
u8 *l4, u8 *rc, u8 *sc,
drivers/infiniband/hw/hfi1/trace.c
179
*sc = hfi1_16B_get_sc(hdr);
drivers/infiniband/hw/hfi1/trace.c
194
u8 rc, u8 sc, u8 sl, u16 entropy,
drivers/infiniband/hw/hfi1/trace.c
199
trace_seq_printf(p, LRH_PRN, len, sc, dlid, slid);
drivers/infiniband/hw/hfi1/trace.c
203
age, becn, fecn, l4, rc, sc, pkey, entropy);
drivers/infiniband/hw/hfi1/trace_ctxts.h
39
__entry->credits = uctxt->sc->credits;
drivers/infiniband/hw/hfi1/trace_ctxts.h
40
__entry->hw_free = le64_to_cpu(*uctxt->sc->hw_free);
drivers/infiniband/hw/hfi1/trace_ctxts.h
41
__entry->piobase = uctxt->sc->base_addr;
drivers/infiniband/hw/hfi1/trace_ibhdrs.h
134
__field(u8, sc)
drivers/infiniband/hw/hfi1/trace_ibhdrs.h
165
&__entry->sc,
drivers/infiniband/hw/hfi1/trace_ibhdrs.h
193
&__entry->sc,
drivers/infiniband/hw/hfi1/trace_ibhdrs.h
234
__entry->sc,
drivers/infiniband/hw/hfi1/trace_ibhdrs.h
293
__field(u8, sc)
drivers/infiniband/hw/hfi1/trace_ibhdrs.h
325
&__entry->sc,
drivers/infiniband/hw/hfi1/trace_ibhdrs.h
358
&__entry->sc,
drivers/infiniband/hw/hfi1/trace_ibhdrs.h
398
__entry->sc,
drivers/infiniband/hw/hfi1/trace_ibhdrs.h
79
u8 *lnh, u8 *lver, u8 *sl, u8 *sc,
drivers/infiniband/hw/hfi1/trace_ibhdrs.h
87
u8 *l4, u8 *rc, u8 *sc,
drivers/infiniband/hw/hfi1/trace_ibhdrs.h
94
u8 rc, u8 sc, u8 sl, u16 entropy,
drivers/infiniband/hw/hfi1/trace_tx.h
25
TP_PROTO(struct send_context *sc, int extra),
drivers/infiniband/hw/hfi1/trace_tx.h
26
TP_ARGS(sc, extra),
drivers/infiniband/hw/hfi1/trace_tx.h
27
TP_STRUCT__entry(DD_DEV_ENTRY(sc->dd)
drivers/infiniband/hw/hfi1/trace_tx.h
32
TP_fast_assign(DD_DEV_ASSIGN(sc->dd);
drivers/infiniband/hw/hfi1/trace_tx.h
33
__entry->sw_index = sc->sw_index;
drivers/infiniband/hw/hfi1/trace_tx.h
34
__entry->hw_context = sc->hw_context;
drivers/infiniband/hw/hfi1/trace_tx.h
46
TP_PROTO(struct send_context *sc, u32 needint, u64 credit_ctrl),
drivers/infiniband/hw/hfi1/trace_tx.h
47
TP_ARGS(sc, needint, credit_ctrl),
drivers/infiniband/hw/hfi1/trace_tx.h
48
TP_STRUCT__entry(DD_DEV_ENTRY(sc->dd)
drivers/infiniband/hw/hfi1/trace_tx.h
54
TP_fast_assign(DD_DEV_ASSIGN(sc->dd);
drivers/infiniband/hw/hfi1/trace_tx.h
55
__entry->sw_index = sc->sw_index;
drivers/infiniband/hw/hfi1/trace_tx.h
56
__entry->hw_context = sc->hw_context;
drivers/infiniband/hw/hfi1/ud.c
820
u8 sc5 = packet->sc;
drivers/infiniband/hw/hfi1/user_sdma.c
289
u8 opcode, sc, vl;
drivers/infiniband/hw/hfi1/user_sdma.c
415
sc = (((be16_to_cpu(req->hdr.lrh[0]) >> 12) & 0xF) |
drivers/infiniband/hw/hfi1/user_sdma.c
418
vl != sc_to_vlt(dd, sc)) {
drivers/infiniband/hw/hfi1/user_sdma.c
419
SDMA_DBG(req, "Invalid SC(%u)/VL(%u)", sc, vl);
drivers/infiniband/hw/hfi1/user_sdma.c
427
if (egress_pkey_check(dd->pport, slid, pkey, sc, PKEY_CHECK_INVALID)) {
drivers/infiniband/hw/hfi1/verbs.c
1001
pbuf = sc_buffer_alloc(sc, plen, cb, qp);
drivers/infiniband/hw/hfi1/verbs.c
102
struct send_context *sc,
drivers/infiniband/hw/hfi1/verbs.c
1024
ret = pio_wait(qp, sc, ps, RVT_S_WAIT_PIO);
drivers/infiniband/hw/hfi1/verbs.c
448
return ingress_pkey_check(ppd, pkey, packet->sc,
drivers/infiniband/hw/hfi1/verbs.c
882
struct send_context *sc,
drivers/infiniband/hw/hfi1/verbs.c
887
struct hfi1_devdata *dd = sc->dd;
drivers/infiniband/hw/hfi1/verbs.c
899
write_seqlock(&sc->waitlock);
drivers/infiniband/hw/hfi1/verbs.c
909
was_empty = list_empty(&sc->piowait);
drivers/infiniband/hw/hfi1/verbs.c
912
&sc->piowait);
drivers/infiniband/hw/hfi1/verbs.c
913
priv->s_iowait.lock = &sc->waitlock;
drivers/infiniband/hw/hfi1/verbs.c
918
hfi1_sc_wantpiobuf_intr(sc, 1);
drivers/infiniband/hw/hfi1/verbs.c
920
write_sequnlock(&sc->waitlock);
drivers/infiniband/hw/hfi1/verbs.c
950
struct send_context *sc;
drivers/infiniband/hw/hfi1/verbs.c
981
sc = ps->s_txreq->psc;
drivers/infiniband/ulp/iser/iscsi_iser.c
246
if (!task->sc)
drivers/infiniband/ulp/iser/iscsi_iser.c
251
iser_task->sc = task->sc;
drivers/infiniband/ulp/iser/iscsi_iser.c
322
if (!task->sc)
drivers/infiniband/ulp/iser/iscsi_iser.c
325
if (task->sc->sc_data_direction == DMA_TO_DEVICE) {
drivers/infiniband/ulp/iser/iscsi_iser.c
326
BUG_ON(scsi_bufflen(task->sc) == 0);
drivers/infiniband/ulp/iser/iscsi_iser.c
329
task->itt, scsi_bufflen(task->sc),
drivers/infiniband/ulp/iser/iscsi_iser.c
378
if (!task->sc)
drivers/infiniband/ulp/iser/iscsi_iser.h
442
struct scsi_cmnd *sc;
drivers/infiniband/ulp/iser/iser_initiator.c
349
struct scsi_cmnd *sc = task->sc;
drivers/infiniband/ulp/iser/iser_initiator.c
366
if (scsi_sg_count(sc)) { /* using a scatter list */
drivers/infiniband/ulp/iser/iser_initiator.c
367
data_buf->sg = scsi_sglist(sc);
drivers/infiniband/ulp/iser/iser_initiator.c
368
data_buf->size = scsi_sg_count(sc);
drivers/infiniband/ulp/iser/iser_initiator.c
370
data_buf->data_len = scsi_bufflen(sc);
drivers/infiniband/ulp/iser/iser_initiator.c
372
if (scsi_prot_sg_count(sc)) {
drivers/infiniband/ulp/iser/iser_initiator.c
373
prot_buf->sg = scsi_prot_sglist(sc);
drivers/infiniband/ulp/iser/iser_initiator.c
374
prot_buf->size = scsi_prot_sg_count(sc);
drivers/infiniband/ulp/iser/iser_initiator.c
376
ilog2(sc->device->sector_size)) * 8;
drivers/infiniband/ulp/iser/iser_memory.c
116
if (scsi_prot_sg_count(iser_task->sc)) {
drivers/infiniband/ulp/iser/iser_memory.c
176
static void iser_set_dif_domain(struct scsi_cmnd *sc,
drivers/infiniband/ulp/iser/iser_memory.c
180
domain->sig.dif.pi_interval = scsi_prot_interval(sc);
drivers/infiniband/ulp/iser/iser_memory.c
181
domain->sig.dif.ref_tag = t10_pi_ref_tag(scsi_cmd_to_rq(sc));
drivers/infiniband/ulp/iser/iser_memory.c
189
if (sc->prot_flags & SCSI_PROT_REF_INCREMENT)
drivers/infiniband/ulp/iser/iser_memory.c
193
static int iser_set_sig_attrs(struct scsi_cmnd *sc,
drivers/infiniband/ulp/iser/iser_memory.c
196
switch (scsi_get_prot_op(sc)) {
drivers/infiniband/ulp/iser/iser_memory.c
200
iser_set_dif_domain(sc, &sig_attrs->wire);
drivers/infiniband/ulp/iser/iser_memory.c
206
iser_set_dif_domain(sc, &sig_attrs->mem);
drivers/infiniband/ulp/iser/iser_memory.c
207
sig_attrs->mem.sig.dif.bg_type = sc->prot_flags & SCSI_PROT_IP_CHECKSUM ?
drivers/infiniband/ulp/iser/iser_memory.c
212
iser_set_dif_domain(sc, &sig_attrs->wire);
drivers/infiniband/ulp/iser/iser_memory.c
214
iser_set_dif_domain(sc, &sig_attrs->mem);
drivers/infiniband/ulp/iser/iser_memory.c
215
sig_attrs->mem.sig.dif.bg_type = sc->prot_flags & SCSI_PROT_IP_CHECKSUM ?
drivers/infiniband/ulp/iser/iser_memory.c
220
scsi_get_prot_op(sc));
drivers/infiniband/ulp/iser/iser_memory.c
227
static inline void iser_set_prot_checks(struct scsi_cmnd *sc, u8 *mask)
drivers/infiniband/ulp/iser/iser_memory.c
230
if (sc->prot_flags & SCSI_PROT_REF_CHECK)
drivers/infiniband/ulp/iser/iser_memory.c
232
if (sc->prot_flags & SCSI_PROT_GUARD_CHECK)
drivers/infiniband/ulp/iser/iser_memory.c
261
ret = iser_set_sig_attrs(iser_task->sc, sig_attrs);
drivers/infiniband/ulp/iser/iser_memory.c
265
iser_set_prot_checks(iser_task->sc, &sig_attrs->check_mask);
drivers/infiniband/ulp/iser/iser_memory.c
365
scsi_get_prot_op(task->sc) == SCSI_PROT_NORMAL;
drivers/infiniband/ulp/iser/iser_memory.c
370
if (scsi_get_prot_op(task->sc) == SCSI_PROT_NORMAL) {
drivers/infiniband/ulp/iser/iser_memory.c
88
if (scsi_prot_sg_count(iser_task->sc)) {
drivers/infiniband/ulp/iser/iser_verbs.c
894
unsigned long sector_size = iser_task->sc->device->sector_size;
drivers/infiniband/ulp/iser/iser_verbs.c
913
*sector = scsi_get_sector(iser_task->sc) + sector_off;
drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
368
u8 sc;
drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
374
sc = info->vport.pcp_to_sc_mc[pcp];
drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
376
sc = info->vport.pcp_to_sc_uc[pcp];
drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
379
sc = info->vport.non_vlan_sc_mc;
drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
381
sc = info->vport.non_vlan_sc_uc;
drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
384
return sc;
drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
487
u8 def_port, sc, rc, entropy, *hdr;
drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
497
sc = opa_vnic_get_sc(info, skb);
drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
511
info->vesw.pkey, entropy, sc, rc,
drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
74
u16 pkey, u16 entropy, u8 sc, u8 rc,
drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
93
h[1] |= (sc << OPA_16B_SC_SHFT);
drivers/input/tablet/hanwang.c
33
#define HANWANG_TABLET_DEVICE(vend, cl, sc, pr) \
drivers/input/tablet/hanwang.c
38
.bInterfaceSubClass = (sc), \
drivers/isdn/capi/capiutil.c
206
static unsigned command_2_index(u8 c, u8 sc)
drivers/isdn/capi/capiutil.c
214
return (sc & 3) * (0x9 + 0x9) + c;
drivers/isdn/hardware/mISDN/mISDNinfineon.c
105
struct inf_hw *sc[3]; /* slave cards */
drivers/isdn/hardware/mISDN/mISDNinfineon.c
1108
struct inf_hw *sc;
drivers/isdn/hardware/mISDN/mISDNinfineon.c
1111
sc = kzalloc_obj(struct inf_hw);
drivers/isdn/hardware/mISDN/mISDNinfineon.c
1112
if (!sc) {
drivers/isdn/hardware/mISDN/mISDNinfineon.c
1117
sc->irq = card->irq;
drivers/isdn/hardware/mISDN/mISDNinfineon.c
1118
sc->pdev = card->pdev;
drivers/isdn/hardware/mISDN/mISDNinfineon.c
1119
sc->ci = card->ci + i;
drivers/isdn/hardware/mISDN/mISDNinfineon.c
1120
err = setup_instance(sc);
drivers/isdn/hardware/mISDN/mISDNinfineon.c
1123
kfree(sc);
drivers/isdn/hardware/mISDN/mISDNinfineon.c
1127
card->sc[i - 1] = sc;
drivers/isdn/hardware/mISDN/mISDNinfineon.c
880
if (card->sc[i])
drivers/isdn/hardware/mISDN/mISDNinfineon.c
881
release_card(card->sc[i]);
drivers/isdn/hardware/mISDN/mISDNinfineon.c
882
card->sc[i] = NULL;
drivers/md/bcache/btree.c
666
struct shrink_control *sc)
drivers/md/bcache/btree.c
670
unsigned long i, nr = sc->nr_to_scan;
drivers/md/bcache/btree.c
681
if (sc->gfp_mask & __GFP_IO)
drivers/md/bcache/btree.c
733
struct shrink_control *sc)
drivers/md/bcache/sysfs.c
858
struct shrink_control sc;
drivers/md/bcache/sysfs.c
860
sc.gfp_mask = GFP_KERNEL;
drivers/md/bcache/sysfs.c
861
sc.nr_to_scan = strtoul_or_return(buf);
drivers/md/bcache/sysfs.c
863
c->shrink->scan_objects(c->shrink, &sc);
drivers/md/dm-bufio.c
2461
static unsigned long dm_bufio_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
drivers/md/dm-bufio.c
2466
atomic_long_add(sc->nr_to_scan, &c->need_shrink);
drivers/md/dm-bufio.c
2469
return sc->nr_to_scan;
drivers/md/dm-bufio.c
2472
static unsigned long dm_bufio_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
drivers/md/dm-stripe.c
132
sc = kmalloc_flex(*sc, stripe, stripes);
drivers/md/dm-stripe.c
133
if (!sc) {
drivers/md/dm-stripe.c
138
INIT_WORK(&sc->trigger_event, trigger_event);
drivers/md/dm-stripe.c
141
sc->ti = ti;
drivers/md/dm-stripe.c
142
sc->stripes = stripes;
drivers/md/dm-stripe.c
143
sc->stripe_width = width;
drivers/md/dm-stripe.c
146
sc->stripes_shift = -1;
drivers/md/dm-stripe.c
148
sc->stripes_shift = __ffs(stripes);
drivers/md/dm-stripe.c
152
kfree(sc);
drivers/md/dm-stripe.c
162
sc->chunk_size = chunk_size;
drivers/md/dm-stripe.c
164
sc->chunk_size_shift = -1;
drivers/md/dm-stripe.c
166
sc->chunk_size_shift = __ffs(chunk_size);
drivers/md/dm-stripe.c
174
r = get_stripe(ti, sc, i, argv);
drivers/md/dm-stripe.c
178
dm_put_device(ti, sc->stripe[i].dev);
drivers/md/dm-stripe.c
179
kfree(sc);
drivers/md/dm-stripe.c
182
atomic_set(&(sc->stripe[i].error_count), 0);
drivers/md/dm-stripe.c
185
ti->private = sc;
drivers/md/dm-stripe.c
193
struct stripe_c *sc = ti->private;
drivers/md/dm-stripe.c
195
for (i = 0; i < sc->stripes; i++)
drivers/md/dm-stripe.c
196
dm_put_device(ti, sc->stripe[i].dev);
drivers/md/dm-stripe.c
198
flush_work(&sc->trigger_event);
drivers/md/dm-stripe.c
199
kfree(sc);
drivers/md/dm-stripe.c
202
static void stripe_map_sector(struct stripe_c *sc, sector_t sector,
drivers/md/dm-stripe.c
205
sector_t chunk = dm_target_offset(sc->ti, sector);
drivers/md/dm-stripe.c
208
if (sc->chunk_size_shift < 0)
drivers/md/dm-stripe.c
209
chunk_offset = sector_div(chunk, sc->chunk_size);
drivers/md/dm-stripe.c
211
chunk_offset = chunk & (sc->chunk_size - 1);
drivers/md/dm-stripe.c
212
chunk >>= sc->chunk_size_shift;
drivers/md/dm-stripe.c
215
if (sc->stripes_shift < 0)
drivers/md/dm-stripe.c
216
*stripe = sector_div(chunk, sc->stripes);
drivers/md/dm-stripe.c
218
*stripe = chunk & (sc->stripes - 1);
drivers/md/dm-stripe.c
219
chunk >>= sc->stripes_shift;
drivers/md/dm-stripe.c
222
if (sc->chunk_size_shift < 0)
drivers/md/dm-stripe.c
223
chunk *= sc->chunk_size;
drivers/md/dm-stripe.c
225
chunk <<= sc->chunk_size_shift;
drivers/md/dm-stripe.c
230
static void stripe_map_range_sector(struct stripe_c *sc, sector_t sector,
drivers/md/dm-stripe.c
235
stripe_map_sector(sc, sector, &stripe, result);
drivers/md/dm-stripe.c
241
if (sc->chunk_size_shift < 0)
drivers/md/dm-stripe.c
242
*result -= sector_div(sector, sc->chunk_size);
drivers/md/dm-stripe.c
244
*result = sector & ~(sector_t)(sc->chunk_size - 1);
drivers/md/dm-stripe.c
247
*result += sc->chunk_size; /* next chunk */
drivers/md/dm-stripe.c
250
static int stripe_map_range(struct stripe_c *sc, struct bio *bio,
drivers/md/dm-stripe.c
255
stripe_map_range_sector(sc, bio->bi_iter.bi_sector,
drivers/md/dm-stripe.c
257
stripe_map_range_sector(sc, bio_end_sector(bio),
drivers/md/dm-stripe.c
260
bio_set_dev(bio, sc->stripe[target_stripe].dev->bdev);
drivers/md/dm-stripe.c
262
sc->stripe[target_stripe].physical_start;
drivers/md/dm-stripe.c
274
struct stripe_c *sc = ti->private;
drivers/md/dm-stripe.c
280
BUG_ON(target_bio_nr >= sc->stripes);
drivers/md/dm-stripe.c
281
bio_set_dev(bio, sc->stripe[target_bio_nr].dev->bdev);
drivers/md/dm-stripe.c
288
BUG_ON(target_bio_nr >= sc->stripes);
drivers/md/dm-stripe.c
289
return stripe_map_range(sc, bio, target_bio_nr);
drivers/md/dm-stripe.c
292
stripe_map_sector(sc, bio->bi_iter.bi_sector,
drivers/md/dm-stripe.c
295
bio->bi_iter.bi_sector += sc->stripe[stripe].physical_start;
drivers/md/dm-stripe.c
296
bio_set_dev(bio, sc->stripe[stripe].dev->bdev);
drivers/md/dm-stripe.c
304
struct stripe_c *sc = ti->private;
drivers/md/dm-stripe.c
309
stripe_map_sector(sc, *pgoff * PAGE_SECTORS, &stripe, &dev_sector);
drivers/md/dm-stripe.c
310
dev_sector += sc->stripe[stripe].physical_start;
drivers/md/dm-stripe.c
311
bdev = sc->stripe[stripe].dev->bdev;
drivers/md/dm-stripe.c
314
return sc->stripe[stripe].dev->dax_dev;
drivers/md/dm-stripe.c
364
struct stripe_c *sc = ti->private;
drivers/md/dm-stripe.c
370
DMEMIT("%d ", sc->stripes);
drivers/md/dm-stripe.c
371
for (i = 0; i < sc->stripes; i++)
drivers/md/dm-stripe.c
372
DMEMIT("%s ", sc->stripe[i].dev->name);
drivers/md/dm-stripe.c
375
for (i = 0; i < sc->stripes; i++)
drivers/md/dm-stripe.c
376
DMEMIT("%c", atomic_read(&(sc->stripe[i].error_count)) ? 'D' : 'A');
drivers/md/dm-stripe.c
380
DMEMIT("%d %llu", sc->stripes,
drivers/md/dm-stripe.c
381
(unsigned long long)sc->chunk_size);
drivers/md/dm-stripe.c
382
for (i = 0; i < sc->stripes; i++)
drivers/md/dm-stripe.c
383
DMEMIT(" %s %llu", sc->stripe[i].dev->name,
drivers/md/dm-stripe.c
384
(unsigned long long)sc->stripe[i].physical_start);
drivers/md/dm-stripe.c
389
DMEMIT(",stripes=%d,chunk_size=%llu", sc->stripes,
drivers/md/dm-stripe.c
390
(unsigned long long)sc->chunk_size);
drivers/md/dm-stripe.c
392
for (i = 0; i < sc->stripes; i++) {
drivers/md/dm-stripe.c
393
DMEMIT(",stripe_%d_device_name=%s", i, sc->stripe[i].dev->name);
drivers/md/dm-stripe.c
395
(unsigned long long)sc->stripe[i].physical_start);
drivers/md/dm-stripe.c
397
atomic_read(&(sc->stripe[i].error_count)) ? 'D' : 'A');
drivers/md/dm-stripe.c
409
struct stripe_c *sc = ti->private;
drivers/md/dm-stripe.c
428
for (i = 0; i < sc->stripes; i++)
drivers/md/dm-stripe.c
429
if (!strcmp(sc->stripe[i].dev->name, major_minor)) {
drivers/md/dm-stripe.c
430
atomic_inc(&(sc->stripe[i].error_count));
drivers/md/dm-stripe.c
431
if (atomic_read(&(sc->stripe[i].error_count)) <
drivers/md/dm-stripe.c
433
queue_work(dm_stripe_wq, &sc->trigger_event);
drivers/md/dm-stripe.c
442
struct stripe_c *sc = ti->private;
drivers/md/dm-stripe.c
447
ret = fn(ti, sc->stripe[i].dev,
drivers/md/dm-stripe.c
448
sc->stripe[i].physical_start,
drivers/md/dm-stripe.c
449
sc->stripe_width, data);
drivers/md/dm-stripe.c
450
} while (!ret && ++i < sc->stripes);
drivers/md/dm-stripe.c
458
struct stripe_c *sc = ti->private;
drivers/md/dm-stripe.c
461
limits->chunk_sectors = sc->chunk_size;
drivers/md/dm-stripe.c
463
if (!check_shl_overflow(sc->chunk_size, SECTOR_SHIFT, &io_min) &&
drivers/md/dm-stripe.c
464
!check_mul_overflow(io_min, sc->stripes, &io_opt)) {
drivers/md/dm-stripe.c
468
if (max_hw_discard_sectors >= sc->chunk_size) {
drivers/md/dm-stripe.c
469
if (!check_mul_overflow(max_hw_discard_sectors, sc->stripes, &max_hw_discard_sectors)) {
drivers/md/dm-stripe.c
471
sc->chunk_size * sc->stripes);
drivers/md/dm-stripe.c
56
struct stripe_c *sc = container_of(work, struct stripe_c,
drivers/md/dm-stripe.c
58
dm_table_event(sc->ti->table);
drivers/md/dm-stripe.c
64
static int get_stripe(struct dm_target *ti, struct stripe_c *sc,
drivers/md/dm-stripe.c
75
&sc->stripe[stripe].dev);
drivers/md/dm-stripe.c
79
sc->stripe[stripe].physical_start = start;
drivers/md/dm-stripe.c
90
struct stripe_c *sc;
drivers/md/dm-zoned-metadata.c
611
struct shrink_control *sc)
drivers/md/dm-zoned-metadata.c
622
struct shrink_control *sc)
drivers/md/dm-zoned-metadata.c
628
count = dmz_shrink_mblock_cache(zmd, sc->nr_to_scan);
drivers/md/raid5.c
2339
static void free_stripe(struct kmem_cache *sc, struct stripe_head *sh)
drivers/md/raid5.c
2346
kmem_cache_free(sc, sh);
drivers/md/raid5.c
2349
static struct stripe_head *alloc_stripe(struct kmem_cache *sc, gfp_t gfp,
drivers/md/raid5.c
2354
sh = kmem_cache_zalloc(sc, gfp);
drivers/md/raid5.c
2369
free_stripe(sc, sh);
drivers/md/raid5.c
2375
free_stripe(sc, sh);
drivers/md/raid5.c
2407
struct kmem_cache *sc;
drivers/md/raid5.c
2420
sc = kmem_cache_create(conf->cache_name[conf->active_name],
drivers/md/raid5.c
2423
if (!sc)
drivers/md/raid5.c
2425
conf->slab_cache = sc;
drivers/md/raid5.c
2537
struct kmem_cache *sc;
drivers/md/raid5.c
2544
sc = kmem_cache_create(conf->cache_name[1-conf->active_name],
drivers/md/raid5.c
2547
if (!sc)
drivers/md/raid5.c
2554
nsh = alloc_stripe(sc, GFP_KERNEL, newsize, conf);
drivers/md/raid5.c
2565
free_stripe(sc, nsh);
drivers/md/raid5.c
2567
kmem_cache_destroy(sc);
drivers/md/raid5.c
2636
conf->slab_cache = sc;
drivers/md/raid5.c
7426
struct shrink_control *sc)
drivers/md/raid5.c
7433
while (ret < sc->nr_to_scan &&
drivers/md/raid5.c
7447
struct shrink_control *sc)
drivers/media/i2c/cx25840/cx25840-core.c
1116
int hblank, hactive, burst, vblank, vactive, sc;
drivers/media/i2c/cx25840/cx25840-core.c
1147
sc = 0x0a425f;
drivers/media/i2c/cx25840/cx25840-core.c
1155
sc = 556453;
drivers/media/i2c/cx25840/cx25840-core.c
1159
sc = 688739;
drivers/media/i2c/cx25840/cx25840-core.c
1183
sc = 688739;
drivers/media/i2c/cx25840/cx25840-core.c
1189
sc = 555452;
drivers/media/i2c/cx25840/cx25840-core.c
1197
sc = 556063;
drivers/media/i2c/cx25840/cx25840-core.c
1227
fsc = (((u64)sc) * pll) >> 24L;
drivers/media/i2c/cx25840/cx25840-core.c
1236
comb, sc);
drivers/media/i2c/cx25840/cx25840-core.c
1267
cx25840_write(client, 0x47c, sc);
drivers/media/i2c/cx25840/cx25840-core.c
1268
cx25840_write(client, 0x47d, (sc >> 8) & 0xff);
drivers/media/i2c/cx25840/cx25840-core.c
1269
cx25840_write(client, 0x47e, (sc >> 16) & 0xff);
drivers/media/pci/cobalt/cobalt-alsa-main.c
103
ret = snd_cobalt_card_create(s, sc, &cobsc);
drivers/media/pci/cobalt/cobalt-alsa-main.c
126
ret = snd_card_register(sc);
drivers/media/pci/cobalt/cobalt-alsa-main.c
136
if (sc != NULL)
drivers/media/pci/cobalt/cobalt-alsa-main.c
137
snd_card_free(sc);
drivers/media/pci/cobalt/cobalt-alsa-main.c
148
snd_card_free(cobsc->sc);
drivers/media/pci/cobalt/cobalt-alsa-main.c
35
static void snd_cobalt_card_private_free(struct snd_card *sc)
drivers/media/pci/cobalt/cobalt-alsa-main.c
37
if (sc == NULL)
drivers/media/pci/cobalt/cobalt-alsa-main.c
39
snd_cobalt_card_free(sc->private_data);
drivers/media/pci/cobalt/cobalt-alsa-main.c
40
sc->private_data = NULL;
drivers/media/pci/cobalt/cobalt-alsa-main.c
41
sc->private_free = NULL;
drivers/media/pci/cobalt/cobalt-alsa-main.c
45
struct snd_card *sc,
drivers/media/pci/cobalt/cobalt-alsa-main.c
53
(*cobsc)->sc = sc;
drivers/media/pci/cobalt/cobalt-alsa-main.c
55
sc->private_data = *cobsc;
drivers/media/pci/cobalt/cobalt-alsa-main.c
56
sc->private_free = snd_cobalt_card_private_free;
drivers/media/pci/cobalt/cobalt-alsa-main.c
65
struct snd_card *sc = cobsc->sc;
drivers/media/pci/cobalt/cobalt-alsa-main.c
68
strscpy(sc->driver, "cobalt", sizeof(sc->driver));
drivers/media/pci/cobalt/cobalt-alsa-main.c
71
snprintf(sc->shortname, sizeof(sc->shortname), "cobalt-%d-%d",
drivers/media/pci/cobalt/cobalt-alsa-main.c
75
snprintf(sc->longname, sizeof(sc->longname),
drivers/media/pci/cobalt/cobalt-alsa-main.c
85
struct snd_card *sc = NULL;
drivers/media/pci/cobalt/cobalt-alsa-main.c
96
SNDRV_DEFAULT_STR1, THIS_MODULE, 0, &sc);
drivers/media/pci/cobalt/cobalt-alsa-pcm.c
463
struct snd_card *sc = cobsc->sc;
drivers/media/pci/cobalt/cobalt-alsa-pcm.c
480
ret = snd_pcm_new(sc, "Cobalt PCM-In HDMI",
drivers/media/pci/cobalt/cobalt-alsa-pcm.c
506
ret = snd_pcm_new(sc, "Cobalt PCM-Out HDMI",
drivers/media/pci/cobalt/cobalt-alsa.h
13
struct snd_card *sc;
drivers/media/pci/cx18/cx18-alsa-main.c
102
snprintf(sc->shortname, sizeof(sc->shortname), "CX18-%d",
drivers/media/pci/cx18/cx18-alsa-main.c
106
snprintf(sc->longname, sizeof(sc->longname),
drivers/media/pci/cx18/cx18-alsa-main.c
116
struct snd_card *sc = NULL;
drivers/media/pci/cx18/cx18-alsa-main.c
129
THIS_MODULE, 0, &sc);
drivers/media/pci/cx18/cx18-alsa-main.c
137
ret = snd_cx18_card_create(v4l2_dev, sc, &cxsc);
drivers/media/pci/cx18/cx18-alsa-main.c
161
ret = snd_card_register(sc);
drivers/media/pci/cx18/cx18-alsa-main.c
172
if (sc != NULL)
drivers/media/pci/cx18/cx18-alsa-main.c
173
snd_card_free(sc);
drivers/media/pci/cx18/cx18-alsa-main.c
232
snd_card_free(cxsc->sc);
drivers/media/pci/cx18/cx18-alsa-main.c
67
static void snd_cx18_card_private_free(struct snd_card *sc)
drivers/media/pci/cx18/cx18-alsa-main.c
69
if (sc == NULL)
drivers/media/pci/cx18/cx18-alsa-main.c
71
snd_cx18_card_free(sc->private_data);
drivers/media/pci/cx18/cx18-alsa-main.c
72
sc->private_data = NULL;
drivers/media/pci/cx18/cx18-alsa-main.c
73
sc->private_free = NULL;
drivers/media/pci/cx18/cx18-alsa-main.c
77
struct snd_card *sc,
drivers/media/pci/cx18/cx18-alsa-main.c
85
(*cxsc)->sc = sc;
drivers/media/pci/cx18/cx18-alsa-main.c
87
sc->private_data = *cxsc;
drivers/media/pci/cx18/cx18-alsa-main.c
88
sc->private_free = snd_cx18_card_private_free;
drivers/media/pci/cx18/cx18-alsa-main.c
96
struct snd_card *sc = cxsc->sc;
drivers/media/pci/cx18/cx18-alsa-main.c
99
strscpy(sc->driver, "CX23418", sizeof(sc->driver));
drivers/media/pci/cx18/cx18-alsa-pcm.c
243
struct snd_card *sc = cxsc->sc;
drivers/media/pci/cx18/cx18-alsa-pcm.c
248
ret = snd_pcm_new(sc, "CX23418 PCM",
drivers/media/pci/cx18/cx18-alsa.h
12
struct snd_card *sc;
drivers/media/pci/cx18/cx18-av-core.c
285
int hblank, hactive, burst, vblank, vactive, sc;
drivers/media/pci/cx18/cx18-av-core.c
363
sc = 688700;
drivers/media/pci/cx18/cx18-av-core.c
368
sc = 556422;
drivers/media/pci/cx18/cx18-av-core.c
374
sc = 672314;
drivers/media/pci/cx18/cx18-av-core.c
424
sc = 688700;
drivers/media/pci/cx18/cx18-av-core.c
430
sc = 555421;
drivers/media/pci/cx18/cx18-av-core.c
435
sc = 556032;
drivers/media/pci/cx18/cx18-av-core.c
461
tmp = 28636360 * (u64) sc;
drivers/media/pci/cx18/cx18-av-core.c
472
comb, sc);
drivers/media/pci/cx18/cx18-av-core.c
502
cx18_av_write(cx, 0x47c, sc);
drivers/media/pci/cx18/cx18-av-core.c
503
cx18_av_write(cx, 0x47d, (sc >> 8) & 0xff);
drivers/media/pci/cx18/cx18-av-core.c
504
cx18_av_write(cx, 0x47e, (sc >> 16) & 0xff);
drivers/media/pci/ivtv/ivtv-alsa-main.c
103
snprintf(sc->longname, sizeof(sc->longname),
drivers/media/pci/ivtv/ivtv-alsa-main.c
113
struct snd_card *sc = NULL;
drivers/media/pci/ivtv/ivtv-alsa-main.c
128
THIS_MODULE, 0, &sc);
drivers/media/pci/ivtv/ivtv-alsa-main.c
136
ret = snd_ivtv_card_create(v4l2_dev, sc, &itvsc);
drivers/media/pci/ivtv/ivtv-alsa-main.c
160
ret = snd_card_register(sc);
drivers/media/pci/ivtv/ivtv-alsa-main.c
169
__func__, itv->instance, sc->number);
drivers/media/pci/ivtv/ivtv-alsa-main.c
174
if (sc != NULL)
drivers/media/pci/ivtv/ivtv-alsa-main.c
175
snd_card_free(sc);
drivers/media/pci/ivtv/ivtv-alsa-main.c
232
snd_card_free(itvsc->sc);
drivers/media/pci/ivtv/ivtv-alsa-main.c
64
static void snd_ivtv_card_private_free(struct snd_card *sc)
drivers/media/pci/ivtv/ivtv-alsa-main.c
66
if (sc == NULL)
drivers/media/pci/ivtv/ivtv-alsa-main.c
68
snd_ivtv_card_free(sc->private_data);
drivers/media/pci/ivtv/ivtv-alsa-main.c
69
sc->private_data = NULL;
drivers/media/pci/ivtv/ivtv-alsa-main.c
70
sc->private_free = NULL;
drivers/media/pci/ivtv/ivtv-alsa-main.c
74
struct snd_card *sc,
drivers/media/pci/ivtv/ivtv-alsa-main.c
82
(*itvsc)->sc = sc;
drivers/media/pci/ivtv/ivtv-alsa-main.c
84
sc->private_data = *itvsc;
drivers/media/pci/ivtv/ivtv-alsa-main.c
85
sc->private_free = snd_ivtv_card_private_free;
drivers/media/pci/ivtv/ivtv-alsa-main.c
93
struct snd_card *sc = itvsc->sc;
drivers/media/pci/ivtv/ivtv-alsa-main.c
96
strscpy(sc->driver, "CX2341[56]", sizeof(sc->driver));
drivers/media/pci/ivtv/ivtv-alsa-main.c
99
snprintf(sc->shortname, sizeof(sc->shortname), "IVTV-%d",
drivers/media/pci/ivtv/ivtv-alsa-pcm.c
245
struct snd_card *sc = itvsc->sc;
drivers/media/pci/ivtv/ivtv-alsa-pcm.c
250
ret = snd_pcm_new(sc, "CX2341[56] PCM",
drivers/media/pci/ivtv/ivtv-alsa.h
13
struct snd_card *sc;
drivers/media/pci/pt1/pt1.c
442
int sc;
drivers/media/pci/pt1/pt1.c
462
sc = upacket >> 26 & 0x7;
drivers/media/pci/pt1/pt1.c
463
if (adap->st_count != -1 && sc != ((adap->st_count + 1) & 0x7))
drivers/media/pci/pt1/pt1.c
466
adap->st_count = sc;
drivers/media/platform/qcom/camss/camss-vfe-340.c
37
#define TFE_BUS_IRQ_MASK_RUP_DONE(sc) FIELD_PREP(TFE_BUS_IRQ_MASK_RUP_DONE_MASK, BIT(sc))
drivers/media/platform/samsung/exynos-gsc/gsc-core.c
634
struct gsc_scaler *sc = &ctx->scaler;
drivers/media/platform/samsung/exynos-gsc/gsc-core.c
665
tx, &sc->pre_hratio);
drivers/media/platform/samsung/exynos-gsc/gsc-core.c
672
ty, &sc->pre_vratio);
drivers/media/platform/samsung/exynos-gsc/gsc-core.c
678
gsc_check_src_scale_info(variant, s_frame, &sc->pre_hratio,
drivers/media/platform/samsung/exynos-gsc/gsc-core.c
679
tx, ty, &sc->pre_vratio);
drivers/media/platform/samsung/exynos-gsc/gsc-core.c
681
gsc_get_prescaler_shfactor(sc->pre_hratio, sc->pre_vratio,
drivers/media/platform/samsung/exynos-gsc/gsc-core.c
682
&sc->pre_shfactor);
drivers/media/platform/samsung/exynos-gsc/gsc-core.c
684
sc->main_hratio = (s_frame->crop.width << 16) / tx;
drivers/media/platform/samsung/exynos-gsc/gsc-core.c
685
sc->main_vratio = (s_frame->crop.height << 16) / ty;
drivers/media/platform/samsung/exynos-gsc/gsc-core.c
690
sc->pre_shfactor, sc->pre_hratio);
drivers/media/platform/samsung/exynos-gsc/gsc-core.c
692
sc->pre_vratio, sc->main_hratio, sc->main_vratio);
drivers/media/platform/samsung/exynos-gsc/gsc-regs.c
345
struct gsc_scaler *sc = &ctx->scaler;
drivers/media/platform/samsung/exynos-gsc/gsc-regs.c
348
cfg = GSC_PRESC_SHFACTOR(sc->pre_shfactor);
drivers/media/platform/samsung/exynos-gsc/gsc-regs.c
349
cfg |= GSC_PRESC_H_RATIO(sc->pre_hratio);
drivers/media/platform/samsung/exynos-gsc/gsc-regs.c
350
cfg |= GSC_PRESC_V_RATIO(sc->pre_vratio);
drivers/media/platform/samsung/exynos-gsc/gsc-regs.c
357
struct gsc_scaler *sc = &ctx->scaler;
drivers/media/platform/samsung/exynos-gsc/gsc-regs.c
360
cfg = GSC_MAIN_H_RATIO_VALUE(sc->main_hratio);
drivers/media/platform/samsung/exynos-gsc/gsc-regs.c
363
cfg = GSC_MAIN_V_RATIO_VALUE(sc->main_vratio);
drivers/media/platform/samsung/exynos4-is/fimc-core.c
230
struct fimc_scaler *sc = &ctx->scaler;
drivers/media/platform/samsung/exynos4-is/fimc-core.c
254
sc->real_width = sx;
drivers/media/platform/samsung/exynos4-is/fimc-core.c
255
sc->real_height = sy;
drivers/media/platform/samsung/exynos4-is/fimc-core.c
257
ret = fimc_get_scaler_factor(sx, tx, &sc->pre_hratio, &sc->hfactor);
drivers/media/platform/samsung/exynos4-is/fimc-core.c
261
ret = fimc_get_scaler_factor(sy, ty, &sc->pre_vratio, &sc->vfactor);
drivers/media/platform/samsung/exynos4-is/fimc-core.c
265
sc->pre_dst_width = sx / sc->pre_hratio;
drivers/media/platform/samsung/exynos4-is/fimc-core.c
266
sc->pre_dst_height = sy / sc->pre_vratio;
drivers/media/platform/samsung/exynos4-is/fimc-core.c
269
sc->main_hratio = (sx << 14) / (tx << sc->hfactor);
drivers/media/platform/samsung/exynos4-is/fimc-core.c
270
sc->main_vratio = (sy << 14) / (ty << sc->vfactor);
drivers/media/platform/samsung/exynos4-is/fimc-core.c
272
sc->main_hratio = (sx << 8) / (tx << sc->hfactor);
drivers/media/platform/samsung/exynos4-is/fimc-core.c
273
sc->main_vratio = (sy << 8) / (ty << sc->vfactor);
drivers/media/platform/samsung/exynos4-is/fimc-core.c
277
sc->scaleup_h = (tx >= sx) ? 1 : 0;
drivers/media/platform/samsung/exynos4-is/fimc-core.c
278
sc->scaleup_v = (ty >= sy) ? 1 : 0;
drivers/media/platform/samsung/exynos4-is/fimc-core.c
284
sc->copy_mode = 1;
drivers/media/platform/samsung/exynos4-is/fimc-core.c
286
sc->copy_mode = 0;
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
234
struct fimc_scaler *sc = &ctx->scaler;
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
237
shfactor = 10 - (sc->hfactor + sc->vfactor);
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
240
cfg |= (sc->pre_hratio << 16) | sc->pre_vratio;
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
243
cfg = (sc->pre_dst_width << 16) | sc->pre_dst_height;
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
250
struct fimc_scaler *sc = &ctx->scaler;
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
266
if (!sc->enabled)
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
269
if (sc->scaleup_h)
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
272
if (sc->scaleup_v)
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
275
if (sc->copy_mode)
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
315
struct fimc_scaler *sc = &ctx->scaler;
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
319
sc->main_hratio, sc->main_vratio);
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
328
cfg |= FIMC_REG_CISCCTRL_MHRATIO_EXT(sc->main_hratio);
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
329
cfg |= FIMC_REG_CISCCTRL_MVRATIO_EXT(sc->main_vratio);
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
336
cfg |= FIMC_REG_CIEXTEN_MHRATIO_EXT(sc->main_hratio);
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
337
cfg |= FIMC_REG_CIEXTEN_MVRATIO_EXT(sc->main_vratio);
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
340
cfg |= FIMC_REG_CISCCTRL_MHRATIO(sc->main_hratio);
drivers/media/platform/samsung/exynos4-is/fimc-reg.c
341
cfg |= FIMC_REG_CISCCTRL_MVRATIO(sc->main_vratio);
drivers/media/platform/samsung/s3c-camif/camif-regs.c
364
struct camif_scaler *sc = &vp->scaler;
drivers/media/platform/samsung/s3c-camif/camif-regs.c
369
shfactor = 10 - (sc->h_shift + sc->v_shift);
drivers/media/platform/samsung/s3c-camif/camif-regs.c
372
cfg |= (sc->pre_h_ratio << 16) | sc->pre_v_ratio;
drivers/media/platform/samsung/s3c-camif/camif-regs.c
375
cfg = (sc->pre_dst_width << 16) | sc->pre_dst_height;
drivers/media/platform/ti/vpe/sc.c
102
sc->load_coeff_h = true;
drivers/media/platform/ti/vpe/sc.c
110
void sc_set_vs_coeffs(struct sc_data *sc, void *addr, unsigned int src_h,
drivers/media/platform/ti/vpe/sc.c
143
sc->load_coeff_v = true;
drivers/media/platform/ti/vpe/sc.c
147
void sc_config_scaler(struct sc_data *sc, u32 *sc_reg0, u32 *sc_reg8,
drivers/media/platform/ti/vpe/sc.c
151
struct device *dev = &sc->pdev->dev;
drivers/media/platform/ti/vpe/sc.c
21
void sc_dump_regs(struct sc_data *sc)
drivers/media/platform/ti/vpe/sc.c
23
struct device *dev = &sc->pdev->dev;
drivers/media/platform/ti/vpe/sc.c
26
ioread32(sc->base + CFG_##r))
drivers/media/platform/ti/vpe/sc.c
277
struct sc_data *sc;
drivers/media/platform/ti/vpe/sc.c
28
dev_dbg(dev, "SC Registers @ %pa:\n", &sc->res->start);
drivers/media/platform/ti/vpe/sc.c
281
sc = devm_kzalloc(&pdev->dev, sizeof(*sc), GFP_KERNEL);
drivers/media/platform/ti/vpe/sc.c
282
if (!sc) {
drivers/media/platform/ti/vpe/sc.c
287
sc->pdev = pdev;
drivers/media/platform/ti/vpe/sc.c
289
sc->res = platform_get_resource_byname(pdev, IORESOURCE_MEM, res_name);
drivers/media/platform/ti/vpe/sc.c
290
if (!sc->res) {
drivers/media/platform/ti/vpe/sc.c
296
sc->base = devm_ioremap_resource(&pdev->dev, sc->res);
drivers/media/platform/ti/vpe/sc.c
297
if (IS_ERR(sc->base))
drivers/media/platform/ti/vpe/sc.c
298
return ERR_CAST(sc->base);
drivers/media/platform/ti/vpe/sc.c
300
return sc;
drivers/media/platform/ti/vpe/sc.c
61
void sc_set_hs_coeffs(struct sc_data *sc, void *addr, unsigned int src_w,
drivers/media/platform/ti/vpe/sc.h
198
void sc_dump_regs(struct sc_data *sc);
drivers/media/platform/ti/vpe/sc.h
199
void sc_set_hs_coeffs(struct sc_data *sc, void *addr, unsigned int src_w,
drivers/media/platform/ti/vpe/sc.h
201
void sc_set_vs_coeffs(struct sc_data *sc, void *addr, unsigned int src_h,
drivers/media/platform/ti/vpe/sc.h
203
void sc_config_scaler(struct sc_data *sc, u32 *sc_reg0, u32 *sc_reg8,
drivers/media/platform/ti/vpe/vip.c
2232
struct sc_data *sc = dev->sc;
drivers/media/platform/ti/vpe/vip.c
2253
sc_set_hs_coeffs(sc, port->sc_coeff_h.addr,
drivers/media/platform/ti/vpe/vip.c
2256
sc_set_vs_coeffs(sc, port->sc_coeff_v.addr,
drivers/media/platform/ti/vpe/vip.c
2259
sc_config_scaler(sc, &mmr_adb->sc_regs0[0],
drivers/media/platform/ti/vpe/vip.c
2277
if (!sc->load_coeff_v && !sc->load_coeff_h && !port->load_mmrs)
drivers/media/platform/ti/vpe/vip.c
2298
if (sc->loaded_coeff_h != port->sc_coeff_h.dma_addr ||
drivers/media/platform/ti/vpe/vip.c
2299
sc->load_coeff_h) {
drivers/media/platform/ti/vpe/vip.c
2305
sc->loaded_coeff_h = port->sc_coeff_h.dma_addr;
drivers/media/platform/ti/vpe/vip.c
2306
sc->load_coeff_h = false;
drivers/media/platform/ti/vpe/vip.c
2310
if (sc->loaded_coeff_v != port->sc_coeff_v.dma_addr ||
drivers/media/platform/ti/vpe/vip.c
2311
sc->load_coeff_v) {
drivers/media/platform/ti/vpe/vip.c
2317
sc->loaded_coeff_v = port->sc_coeff_v.dma_addr;
drivers/media/platform/ti/vpe/vip.c
2318
sc->load_coeff_v = false;
drivers/media/platform/ti/vpe/vip.c
3460
struct sc_data *sc;
drivers/media/platform/ti/vpe/vip.c
3503
sc = devm_kzalloc(&pdev->dev, sizeof(*dev->sc), GFP_KERNEL);
drivers/media/platform/ti/vpe/vip.c
3504
if (!sc)
drivers/media/platform/ti/vpe/vip.c
3505
return PTR_ERR_OR_ZERO(sc);
drivers/media/platform/ti/vpe/vip.c
3507
sc->base = dev->base + (slice ? VIP_SLICE1_SC : VIP_SLICE0_SC);
drivers/media/platform/ti/vpe/vip.c
3508
if (IS_ERR(sc->base))
drivers/media/platform/ti/vpe/vip.c
3509
return PTR_ERR(sc->base);
drivers/media/platform/ti/vpe/vip.c
3511
sc->pdev = pdev;
drivers/media/platform/ti/vpe/vip.c
3512
dev->sc = sc;
drivers/media/platform/ti/vpe/vip.c
417
GET_OFFSET_TOP(port, port->dev->sc, CFG_SC0));
drivers/media/platform/ti/vpe/vip.c
419
GET_OFFSET_TOP(port, port->dev->sc, CFG_SC8));
drivers/media/platform/ti/vpe/vip.c
421
GET_OFFSET_TOP(port, port->dev->sc, CFG_SC17));
drivers/media/platform/ti/vpe/vip.h
157
struct sc_data *sc;
drivers/media/platform/ti/vpe/vpe.c
1016
sc_dump_regs(dev->sc);
drivers/media/platform/ti/vpe/vpe.c
1217
struct sc_data *sc = ctx->dev->sc;
drivers/media/platform/ti/vpe/vpe.c
1271
if (sc->loaded_coeff_h != ctx->sc_coeff_h.dma_addr ||
drivers/media/platform/ti/vpe/vpe.c
1272
sc->load_coeff_h) {
drivers/media/platform/ti/vpe/vpe.c
1277
sc->loaded_coeff_h = ctx->sc_coeff_h.dma_addr;
drivers/media/platform/ti/vpe/vpe.c
1278
sc->load_coeff_h = false;
drivers/media/platform/ti/vpe/vpe.c
1281
if (sc->loaded_coeff_v != ctx->sc_coeff_v.dma_addr ||
drivers/media/platform/ti/vpe/vpe.c
1282
sc->load_coeff_v) {
drivers/media/platform/ti/vpe/vpe.c
1287
sc->loaded_coeff_v = ctx->sc_coeff_v.dma_addr;
drivers/media/platform/ti/vpe/vpe.c
1288
sc->load_coeff_v = false;
drivers/media/platform/ti/vpe/vpe.c
2589
dev->sc = sc_create(pdev, "sc");
drivers/media/platform/ti/vpe/vpe.c
2590
if (IS_ERR(dev->sc)) {
drivers/media/platform/ti/vpe/vpe.c
2591
ret = PTR_ERR(dev->sc);
drivers/media/platform/ti/vpe/vpe.c
388
struct sc_data *sc; /* scaler data handle */
drivers/media/platform/ti/vpe/vpe.c
535
GET_OFFSET_TOP(ctx, ctx->dev->sc, CFG_SC0));
drivers/media/platform/ti/vpe/vpe.c
537
GET_OFFSET_TOP(ctx, ctx->dev->sc, CFG_SC8));
drivers/media/platform/ti/vpe/vpe.c
539
GET_OFFSET_TOP(ctx, ctx->dev->sc, CFG_SC17));
drivers/media/platform/ti/vpe/vpe.c
916
sc_set_hs_coeffs(ctx->dev->sc, ctx->sc_coeff_h.addr, src_w, dst_w);
drivers/media/platform/ti/vpe/vpe.c
917
sc_set_vs_coeffs(ctx->dev->sc, ctx->sc_coeff_v.addr, src_h, dst_h);
drivers/media/platform/ti/vpe/vpe.c
919
sc_config_scaler(ctx->dev->sc, &mmr_adb->sc_regs0[0],
drivers/media/platform/verisilicon/hantro_g2_hevc_dec.c
545
const struct v4l2_ctrl_hevc_scaling_matrix *sc = ctrls->scaling;
drivers/media/platform/verisilicon/hantro_g2_hevc_dec.c
557
for (i = 0; i < ARRAY_SIZE(sc->scaling_list_dc_coef_16x16); i++)
drivers/media/platform/verisilicon/hantro_g2_hevc_dec.c
558
*p++ = sc->scaling_list_dc_coef_16x16[i];
drivers/media/platform/verisilicon/hantro_g2_hevc_dec.c
560
for (i = 0; i < ARRAY_SIZE(sc->scaling_list_dc_coef_32x32); i++)
drivers/media/platform/verisilicon/hantro_g2_hevc_dec.c
561
*p++ = sc->scaling_list_dc_coef_32x32[i];
drivers/media/platform/verisilicon/hantro_g2_hevc_dec.c
571
*p++ = sc->scaling_list_4x4[i][4 * k + j];
drivers/media/platform/verisilicon/hantro_g2_hevc_dec.c
576
*p++ = sc->scaling_list_8x8[i][8 * k + j];
drivers/media/platform/verisilicon/hantro_g2_hevc_dec.c
581
*p++ = sc->scaling_list_16x16[i][8 * k + j];
drivers/media/platform/verisilicon/hantro_g2_hevc_dec.c
586
*p++ = sc->scaling_list_32x32[i][8 * k + j];
drivers/media/rc/rc-loopback.c
176
struct rc_scancode_filter *sc)
drivers/media/rc/rc-loopback.c
184
if (!sc->mask)
drivers/media/rc/rc-loopback.c
192
ret = ir_raw_encode_scancode(dev->wakeup_protocol, sc->data, raw, max);
drivers/media/rc/rc-main.c
742
struct lirc_scancode sc = {
drivers/media/rc/rc-main.c
750
lirc_scancode_event(dev, &sc);
drivers/media/rc/rc-main.c
787
struct lirc_scancode sc = {
drivers/media/rc/rc-main.c
795
lirc_scancode_event(dev, &sc);
drivers/media/usb/gspca/jpeg.h
141
int i, sc;
drivers/media/usb/gspca/jpeg.h
144
sc = 5000;
drivers/media/usb/gspca/jpeg.h
146
sc = 5000 / quality;
drivers/media/usb/gspca/jpeg.h
148
sc = 200 - quality * 2;
drivers/media/usb/gspca/jpeg.h
151
(jpeg_head[JPEG_QT0_OFFSET + i] * sc + 50) / 100;
drivers/media/usb/gspca/jpeg.h
153
(jpeg_head[JPEG_QT1_OFFSET + i] * sc + 50) / 100;
drivers/media/usb/gspca/topro.c
959
int i, sc;
drivers/media/usb/gspca/topro.c
962
sc = 5000;
drivers/media/usb/gspca/topro.c
964
sc = 5000 / quality;
drivers/media/usb/gspca/topro.c
966
sc = 200 - quality * 2;
drivers/media/usb/gspca/topro.c
969
(jpeg_head[JPEG_QT0_OFFSET + i] * sc + 50) / 100;
drivers/media/usb/gspca/topro.c
971
(jpeg_head[JPEG_QT1_OFFSET + i] * sc + 50) / 100;
drivers/message/fusion/mptbase.c
3048
u32 s, sc;
drivers/message/fusion/mptbase.c
3052
sc = s & MPI_IOC_STATE_MASK;
drivers/message/fusion/mptbase.c
3055
ioc->last_state = sc;
drivers/message/fusion/mptbase.c
3057
return cooked ? sc : s;
drivers/message/fusion/mptsas.c
1954
static enum scsi_timeout_action mptsas_eh_timed_out(struct scsi_cmnd *sc)
drivers/message/fusion/mptsas.c
1961
hd = shost_priv(sc->device->host);
drivers/message/fusion/mptsas.c
1964
__func__, sc);
drivers/message/fusion/mptsas.c
1971
__func__, sc);
drivers/message/fusion/mptsas.c
1981
ioc->name, __func__, sc));
drivers/message/fusion/mptsas.c
1984
vdevice = sc->device->hostdata;
drivers/message/fusion/mptsas.c
1989
ioc->name, __func__, sc));
drivers/message/fusion/mptsas.c
4864
struct scsi_cmnd *sc;
drivers/message/fusion/mptsas.c
4892
sc = mptscsih_get_scsi_lookup(ioc, ii);
drivers/message/fusion/mptsas.c
4893
if (!sc)
drivers/message/fusion/mptsas.c
4899
vdevice = sc->device->hostdata;
drivers/message/fusion/mptscsih.c
1003
if (sc->result && (ioc->debug_level & MPT_DEBUG_REPLY))
drivers/message/fusion/mptscsih.c
1004
mptscsih_info_scsiio(ioc, sc, pScsiReply);
drivers/message/fusion/mptscsih.c
1010
scsi_dma_unmap(sc);
drivers/message/fusion/mptscsih.c
1012
scsi_done(sc); /* Issue the command callback */
drivers/message/fusion/mptscsih.c
1033
struct scsi_cmnd *sc;
drivers/message/fusion/mptscsih.c
1039
sc = mptscsih_getclear_scsi_lookup(ioc, ii);
drivers/message/fusion/mptscsih.c
1040
if (!sc)
drivers/message/fusion/mptscsih.c
1049
if ((unsigned char *)mf != sc->host_scribble)
drivers/message/fusion/mptscsih.c
1051
scsi_dma_unmap(sc);
drivers/message/fusion/mptscsih.c
1052
sc->result = DID_RESET << 16;
drivers/message/fusion/mptscsih.c
1053
sc->host_scribble = NULL;
drivers/message/fusion/mptscsih.c
1054
dtmprintk(ioc, sdev_printk(KERN_INFO, sc->device, MYIOC_s_FMT
drivers/message/fusion/mptscsih.c
1056
"idx=%x\n", ioc->name, channel, id, sc, mf, ii));
drivers/message/fusion/mptscsih.c
1057
scsi_done(sc);
drivers/message/fusion/mptscsih.c
1081
struct scsi_cmnd *sc;
drivers/message/fusion/mptscsih.c
1088
if ((sc = ioc->ScsiLookup[ii]) != NULL) {
drivers/message/fusion/mptscsih.c
1107
if ((unsigned char *)mf != sc->host_scribble)
drivers/message/fusion/mptscsih.c
1113
scsi_dma_unmap(sc);
drivers/message/fusion/mptscsih.c
1114
sc->host_scribble = NULL;
drivers/message/fusion/mptscsih.c
1115
sc->result = DID_NO_CONNECT << 16;
drivers/message/fusion/mptscsih.c
1116
dtmprintk(ioc, sdev_printk(KERN_INFO, sc->device,
drivers/message/fusion/mptscsih.c
1120
sc, mf, ii));
drivers/message/fusion/mptscsih.c
1121
scsi_done(sc);
drivers/message/fusion/mptscsih.c
1144
mptscsih_report_queue_full(struct scsi_cmnd *sc, SCSIIOReply_t *pScsiReply, SCSIIORequest_t *pScsiReq)
drivers/message/fusion/mptscsih.c
1150
if (sc->device == NULL)
drivers/message/fusion/mptscsih.c
1152
if (sc->device->host == NULL)
drivers/message/fusion/mptscsih.c
1154
if ((hd = shost_priv(sc->device->host)) == NULL)
drivers/message/fusion/mptscsih.c
1159
ioc->name, 0, sc->device->id, sc->device->lun));
drivers/message/fusion/mptscsih.c
2395
mptscsih_copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR *mf, SCSIIOReply_t *pScsiReply)
drivers/message/fusion/mptscsih.c
2405
vdevice = sc->device->hostdata;
drivers/message/fusion/mptscsih.c
2414
memcpy(sc->sense_buffer, sense_data, MPT_SENSE_BUFFER_ALLOC);
drivers/message/fusion/mptscsih.c
2428
(sc->device->channel << 8) | sc->device->id;
drivers/message/fusion/mptscsih.c
2515
SCPNT_TO_LOOKUP_IDX(MPT_ADAPTER *ioc, struct scsi_cmnd *sc)
drivers/message/fusion/mptscsih.c
2522
if (ioc->ScsiLookup[i] == sc) {
drivers/message/fusion/mptscsih.c
434
mptscsih_info_scsiio(MPT_ADAPTER *ioc, struct scsi_cmnd *sc, SCSIIOReply_t * pScsiReply)
drivers/message/fusion/mptscsih.c
536
scsi_print_command(sc);
drivers/message/fusion/mptscsih.c
538
ioc->name, pScsiReply->Bus, pScsiReply->TargetID, sc->device->lun);
drivers/message/fusion/mptscsih.c
540
"resid = %d\n", ioc->name, scsi_bufflen(sc), sc->underflow,
drivers/message/fusion/mptscsih.c
541
scsi_get_resid(sc));
drivers/message/fusion/mptscsih.c
544
le32_to_cpu(pScsiReply->TransferCount), sc->result);
drivers/message/fusion/mptscsih.c
552
skey = sc->sense_buffer[2] & 0x0F;
drivers/message/fusion/mptscsih.c
553
asc = sc->sense_buffer[12];
drivers/message/fusion/mptscsih.c
554
ascq = sc->sense_buffer[13];
drivers/message/fusion/mptscsih.c
588
struct scsi_cmnd *sc;
drivers/message/fusion/mptscsih.c
609
sc = mptscsih_getclear_scsi_lookup(ioc, req_idx);
drivers/message/fusion/mptscsih.c
610
if (sc == NULL) {
drivers/message/fusion/mptscsih.c
625
if ((unsigned char *)mf != sc->host_scribble) {
drivers/message/fusion/mptscsih.c
631
VirtDevice *vdevice = sc->device->hostdata;
drivers/message/fusion/mptscsih.c
635
sc->result = DID_NO_CONNECT << 16;
drivers/message/fusion/mptscsih.c
640
sc->host_scribble = NULL;
drivers/message/fusion/mptscsih.c
641
sc->result = DID_OK << 16; /* Set default reply as OK */
drivers/message/fusion/mptscsih.c
648
ioc->name, mf, mr, sc, req_idx, pScsiReply->TaskTag));
drivers/message/fusion/mptscsih.c
652
ioc->name, mf, mr, sc, req_idx));
drivers/message/fusion/mptscsih.c
669
scsi_set_resid(sc, scsi_bufflen(sc) - xfer_cnt);
drivers/message/fusion/mptscsih.c
686
mptscsih_copy_sense_data(sc, hd, mf, pScsiReply);
drivers/message/fusion/mptscsih.c
695
sc->device->host->host_no, sc->device->channel,
drivers/message/fusion/mptscsih.c
696
sc->device->id, sc->device->lun,
drivers/message/fusion/mptscsih.c
708
sc->result = SAM_STAT_BUSY;
drivers/message/fusion/mptscsih.c
713
sc->result = DID_BAD_TARGET << 16;
drivers/message/fusion/mptscsih.c
719
sc->result = DID_NO_CONNECT << 16;
drivers/message/fusion/mptscsih.c
722
sc->result = DID_REQUEUE << 16;
drivers/message/fusion/mptscsih.c
727
vdevice = sc->device->hostdata;
drivers/message/fusion/mptscsih.c
748
sc->device->hostdata;
drivers/message/fusion/mptscsih.c
766
sc->result =
drivers/message/fusion/mptscsih.c
780
sc->result = DID_ERROR << 16;
drivers/message/fusion/mptscsih.c
793
sc->result = DID_RESET << 16;
drivers/message/fusion/mptscsih.c
798
sc->result = DID_ERROR << 16;
drivers/message/fusion/mptscsih.c
800
sc->result = DID_RESET << 16;
drivers/message/fusion/mptscsih.c
804
scsi_set_resid(sc, scsi_bufflen(sc) - xfer_cnt);
drivers/message/fusion/mptscsih.c
805
if((xfer_cnt==0)||(sc->underflow > xfer_cnt))
drivers/message/fusion/mptscsih.c
806
sc->result=DID_SOFT_ERROR << 16;
drivers/message/fusion/mptscsih.c
808
sc->result = (DID_OK << 16) | scsi_status;
drivers/message/fusion/mptscsih.c
811
ioc->name, sc->result, sc->device->channel, sc->device->id));
drivers/message/fusion/mptscsih.c
819
sc->result = (DID_OK << 16) | scsi_status;
drivers/message/fusion/mptscsih.c
837
if (scsi_bufflen(sc) !=
drivers/message/fusion/mptscsih.c
839
sc->result =
drivers/message/fusion/mptscsih.c
845
scsi_bufflen(sc),
drivers/message/fusion/mptscsih.c
851
if (xfer_cnt < sc->underflow) {
drivers/message/fusion/mptscsih.c
853
sc->result = SAM_STAT_BUSY;
drivers/message/fusion/mptscsih.c
855
sc->result = DID_SOFT_ERROR << 16;
drivers/message/fusion/mptscsih.c
860
sc->result = DID_SOFT_ERROR << 16;
drivers/message/fusion/mptscsih.c
864
sc->result = DID_RESET << 16;
drivers/message/fusion/mptscsih.c
871
ioc->name, sc->underflow));
drivers/message/fusion/mptscsih.c
878
mptscsih_report_queue_full(sc, pScsiReply, pScsiReq);
drivers/message/fusion/mptscsih.c
883
scsi_set_resid(sc, 0);
drivers/message/fusion/mptscsih.c
887
sc->result = (DID_OK << 16) | scsi_status;
drivers/message/fusion/mptscsih.c
89
static void mptscsih_report_queue_full(struct scsi_cmnd *sc, SCSIIOReply_t *pScsiReply, SCSIIORequest_t *pScsiReq);
drivers/message/fusion/mptscsih.c
902
(sc->sense_buffer[2] & 0x20)) {
drivers/message/fusion/mptscsih.c
905
sc->sense_buffer[3] << 24 |
drivers/message/fusion/mptscsih.c
906
sc->sense_buffer[4] << 16 |
drivers/message/fusion/mptscsih.c
907
sc->sense_buffer[5] << 8 |
drivers/message/fusion/mptscsih.c
908
sc->sense_buffer[6];
drivers/message/fusion/mptscsih.c
909
if (((sc->sense_buffer[3] & 0x80) ==
drivers/message/fusion/mptscsih.c
910
0x80) && (scsi_bufflen(sc)
drivers/message/fusion/mptscsih.c
912
sc->sense_buffer[2] =
drivers/message/fusion/mptscsih.c
914
sc->sense_buffer[12] = 0xff;
drivers/message/fusion/mptscsih.c
915
sc->sense_buffer[13] = 0xff;
drivers/message/fusion/mptscsih.c
920
scsi_bufflen(sc),
drivers/message/fusion/mptscsih.c
923
if (((sc->sense_buffer[3] & 0x80)
drivers/message/fusion/mptscsih.c
925
(scsi_bufflen(sc) !=
drivers/message/fusion/mptscsih.c
927
sc->sense_buffer[2] =
drivers/message/fusion/mptscsih.c
929
sc->sense_buffer[12] = 0xff;
drivers/message/fusion/mptscsih.c
930
sc->sense_buffer[13] = 0xff;
drivers/message/fusion/mptscsih.c
936
scsi_bufflen(sc),
drivers/message/fusion/mptscsih.c
949
mptscsih_report_queue_full(sc, pScsiReply, pScsiReq);
drivers/message/fusion/mptscsih.c
95
static void mptscsih_copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR *mf, SCSIIOReply_t *pScsiReply);
drivers/message/fusion/mptscsih.c
958
sc->result = DID_SOFT_ERROR << 16;
drivers/message/fusion/mptscsih.c
962
sc->result = DID_RESET << 16;
drivers/message/fusion/mptscsih.c
972
if (sc->result == MPI_SCSI_STATUS_TASK_SET_FULL)
drivers/message/fusion/mptscsih.c
973
mptscsih_report_queue_full(sc, pScsiReply, pScsiReq);
drivers/message/fusion/mptscsih.c
982
sc->result = DID_SOFT_ERROR << 16;
drivers/message/fusion/mptscsih.c
997
sc->result = DID_SOFT_ERROR << 16;
drivers/misc/fastrpc.c
1127
inbufs = REMOTE_SCALARS_INBUFS(ctx->sc);
drivers/misc/fastrpc.c
1128
outbufs = REMOTE_SCALARS_OUTBUFS(ctx->sc);
drivers/misc/fastrpc.c
1129
handles = REMOTE_SCALARS_INHANDLES(ctx->sc) + REMOTE_SCALARS_OUTHANDLES(ctx->sc);
drivers/misc/fastrpc.c
1181
msg->sc = ctx->sc;
drivers/misc/fastrpc.c
1196
u32 handle, u32 sc,
drivers/misc/fastrpc.c
1215
ctx = fastrpc_context_alloc(fl, kernel, sc, args);
drivers/misc/fastrpc.c
1306
u32 sc;
drivers/misc/fastrpc.c
1373
sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_CREATE_STATIC, 3, 0);
drivers/misc/fastrpc.c
1376
sc, args);
drivers/misc/fastrpc.c
1431
u32 sc;
drivers/misc/fastrpc.c
1505
sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_CREATE, 4, 0);
drivers/misc/fastrpc.c
1507
sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_CREATE_ATTR, 4, 0);
drivers/misc/fastrpc.c
1510
sc, args);
drivers/misc/fastrpc.c
1566
u32 sc;
drivers/misc/fastrpc.c
1572
sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_RELEASE, 1, 0);
drivers/misc/fastrpc.c
1575
sc, &args[0]);
drivers/misc/fastrpc.c
1711
u32 sc;
drivers/misc/fastrpc.c
1716
sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_ATTACH, 1, 0);
drivers/misc/fastrpc.c
1720
sc, &args[0]);
drivers/misc/fastrpc.c
173
u32 sc; /* scalars structure describing the data */
drivers/misc/fastrpc.c
1734
nscalars = REMOTE_SCALARS_LENGTH(inv.sc);
drivers/misc/fastrpc.c
1747
err = fastrpc_internal_invoke(fl, false, inv.handle, inv.sc, args);
drivers/misc/fastrpc.c
1852
u32 sc;
drivers/misc/fastrpc.c
1861
sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_MUNMAP, 1, 0);
drivers/misc/fastrpc.c
1862
err = fastrpc_internal_invoke(fl, true, FASTRPC_INIT_HANDLE, sc,
drivers/misc/fastrpc.c
1914
u32 sc;
drivers/misc/fastrpc.c
1957
sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_MMAP, 2, 1);
drivers/misc/fastrpc.c
1958
err = fastrpc_internal_invoke(fl, true, FASTRPC_INIT_HANDLE, sc,
drivers/misc/fastrpc.c
2012
u32 sc;
drivers/misc/fastrpc.c
2038
sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_MEM_UNMAP, 1, 0);
drivers/misc/fastrpc.c
2039
err = fastrpc_internal_invoke(fl, true, FASTRPC_INIT_HANDLE, sc,
drivers/misc/fastrpc.c
2071
u32 sc;
drivers/misc/fastrpc.c
2107
sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_MEM_MAP, 3, 1);
drivers/misc/fastrpc.c
2108
err = fastrpc_internal_invoke(fl, true, FASTRPC_INIT_HANDLE, sc, &args[0]);
drivers/misc/fastrpc.c
235
u32 sc;
drivers/misc/fastrpc.c
595
struct fastrpc_user *user, u32 kernel, u32 sc,
drivers/misc/fastrpc.c
609
ctx->nscalars = REMOTE_SCALARS_LENGTH(sc);
drivers/misc/fastrpc.c
610
ctx->nbufs = REMOTE_SCALARS_INBUFS(sc) +
drivers/misc/fastrpc.c
611
REMOTE_SCALARS_OUTBUFS(sc);
drivers/misc/fastrpc.c
62
#define REMOTE_SCALARS_INBUFS(sc) (((sc) >> 16) & 0x0ff)
drivers/misc/fastrpc.c
632
ctx->sc = sc;
drivers/misc/fastrpc.c
65
#define REMOTE_SCALARS_OUTBUFS(sc) (((sc) >> 8) & 0x0ff)
drivers/misc/fastrpc.c
68
#define REMOTE_SCALARS_INHANDLES(sc) (((sc) >> 4) & 0x0f)
drivers/misc/fastrpc.c
71
#define REMOTE_SCALARS_OUTHANDLES(sc) ((sc) & 0x0f)
drivers/misc/fastrpc.c
73
#define REMOTE_SCALARS_LENGTH(sc) (REMOTE_SCALARS_INBUFS(sc) + \
drivers/misc/fastrpc.c
74
REMOTE_SCALARS_OUTBUFS(sc) + \
drivers/misc/fastrpc.c
75
REMOTE_SCALARS_INHANDLES(sc)+ \
drivers/misc/fastrpc.c
76
REMOTE_SCALARS_OUTHANDLES(sc))
drivers/misc/fastrpc.c
998
inbufs = REMOTE_SCALARS_INBUFS(ctx->sc);
drivers/misc/vmw_balloon.c
1514
struct shrink_control *sc)
drivers/misc/vmw_balloon.c
1530
deflated_frames = vmballoon_deflate(b, sc->nr_to_scan, true);
drivers/misc/vmw_balloon.c
1556
struct shrink_control *sc)
drivers/mmc/host/sdhci-s3c.c
490
struct sdhci_s3c *sc;
drivers/mmc/host/sdhci-s3c.c
507
sc = sdhci_priv(host);
drivers/mmc/host/sdhci-s3c.c
523
sc->host = host;
drivers/mmc/host/sdhci-s3c.c
524
sc->pdev = pdev;
drivers/mmc/host/sdhci-s3c.c
525
sc->pdata = pdata;
drivers/mmc/host/sdhci-s3c.c
526
sc->cur_clk = -1;
drivers/mmc/host/sdhci-s3c.c
530
sc->clk_io = devm_clk_get(dev, "hsmmc");
drivers/mmc/host/sdhci-s3c.c
531
if (IS_ERR(sc->clk_io)) {
drivers/mmc/host/sdhci-s3c.c
533
return PTR_ERR(sc->clk_io);
drivers/mmc/host/sdhci-s3c.c
537
clk_prepare_enable(sc->clk_io);
drivers/mmc/host/sdhci-s3c.c
543
sc->clk_bus[ptr] = devm_clk_get(dev, name);
drivers/mmc/host/sdhci-s3c.c
544
if (IS_ERR(sc->clk_bus[ptr]))
drivers/mmc/host/sdhci-s3c.c
548
sc->clk_rates[ptr] = clk_get_rate(sc->clk_bus[ptr]);
drivers/mmc/host/sdhci-s3c.c
551
ptr, name, sc->clk_rates[ptr]);
drivers/mmc/host/sdhci-s3c.c
582
sc->no_divider = drv_data->no_divider;
drivers/mmc/host/sdhci-s3c.c
651
clk_disable_unprepare(sc->clk_io);
drivers/mmc/host/sdhci-s3c.c
659
clk_disable_unprepare(sc->clk_io);
drivers/mmc/host/sdhci-s3c.c
667
struct sdhci_s3c *sc = sdhci_priv(host);
drivers/mmc/host/sdhci-s3c.c
669
if (sc->ext_cd_irq)
drivers/mmc/host/sdhci-s3c.c
670
free_irq(sc->ext_cd_irq, sc);
drivers/mmc/host/sdhci-s3c.c
673
if (sc->pdata->cd_type != S3C_SDHCI_CD_INTERNAL)
drivers/mmc/host/sdhci-s3c.c
674
clk_prepare_enable(sc->clk_io);
drivers/mmc/host/sdhci-s3c.c
681
clk_disable_unprepare(sc->clk_io);
drivers/mtd/nand/raw/brcmnand/bcma_nand.c
48
struct brcmnand_bcma_soc *sc = to_bcma_soc(soc);
drivers/mtd/nand/raw/brcmnand/bcma_nand.c
57
val = bcma_cc_read32(sc->cc, offset);
drivers/mtd/nand/raw/brcmnand/bcma_nand.c
68
struct brcmnand_bcma_soc *sc = to_bcma_soc(soc);
drivers/mtd/nand/raw/brcmnand/bcma_nand.c
80
bcma_cc_write32(sc->cc, offset, val);
drivers/mtd/nand/raw/brcmnand/bcma_nand.c
91
struct brcmnand_bcma_soc *sc = to_bcma_soc(soc);
drivers/mtd/nand/raw/brcmnand/bcma_nand.c
96
bcma_cc_write32(sc->cc, BCMA_CC_NAND_CACHE_ADDR, 0);
drivers/net/eql.c
267
static int eql_g_slave_cfg(struct net_device *dev, slave_config_t __user *sc);
drivers/net/eql.c
268
static int eql_s_slave_cfg(struct net_device *dev, slave_config_t __user *sc);
drivers/net/eql.c
487
slave_config_t sc;
drivers/net/eql.c
490
if (copy_from_user(&sc, scp, sizeof (slave_config_t)))
drivers/net/eql.c
493
slave_dev = __dev_get_by_name(&init_net, sc.slave_name);
drivers/net/eql.c
503
sc.priority = slave->priority;
drivers/net/eql.c
509
if (!ret && copy_to_user(scp, &sc, sizeof (slave_config_t)))
drivers/net/eql.c
520
slave_config_t sc;
drivers/net/eql.c
523
if (copy_from_user(&sc, scp, sizeof (slave_config_t)))
drivers/net/eql.c
526
slave_dev = __dev_get_by_name(&init_net, sc.slave_name);
drivers/net/eql.c
537
slave->priority = sc.priority;
drivers/net/eql.c
538
slave->priority_bps = sc.priority;
drivers/net/eql.c
539
slave->priority_Bps = sc.priority / 8;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
910
const struct macsec_rx_sc *rx_sc = ctx->sa.rx_sa->sc;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
937
const struct macsec_rx_sc *rx_sc = ctx->sa.rx_sa->sc;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
986
const struct macsec_rx_sc *rx_sc = ctx->sa.rx_sa->sc;
drivers/net/ethernet/broadcom/bnxt/bnxt.c
7056
req->sc = cpu_to_le16(bp->grp_info[grp_idx].fw_stats_ctx);
drivers/net/ethernet/broadcom/sb1250-mac.c
1003
static void sbdma_fillring(struct sbmac_softc *sc, struct sbmacdma *d)
drivers/net/ethernet/broadcom/sb1250-mac.c
1008
if (sbdma_add_rcvbuffer(sc, d, NULL) != 0)
drivers/net/ethernet/broadcom/sb1250-mac.c
1016
struct sbmac_softc *sc = netdev_priv(netdev);
drivers/net/ethernet/broadcom/sb1250-mac.c
1017
int irq = sc->sbm_dev->irq;
drivers/net/ethernet/broadcom/sb1250-mac.c
1019
__raw_writeq(0, sc->sbm_imr);
drivers/net/ethernet/broadcom/sb1250-mac.c
1026
sc->sbm_imr);
drivers/net/ethernet/broadcom/sb1250-mac.c
1029
(M_MAC_INT_CHANNEL << S_MAC_RX_CH0), sc->sbm_imr);
drivers/net/ethernet/broadcom/sb1250-mac.c
1050
static int sbdma_rx_process(struct sbmac_softc *sc, struct sbmacdma *d,
drivers/net/ethernet/broadcom/sb1250-mac.c
1053
struct net_device *dev = sc->sbm_dev;
drivers/net/ethernet/broadcom/sb1250-mac.c
1067
+= __raw_readq(sc->sbm_rxdma.sbdma_oodpktlost) & 0xffff;
drivers/net/ethernet/broadcom/sb1250-mac.c
1068
__raw_writeq(0, sc->sbm_rxdma.sbdma_oodpktlost);
drivers/net/ethernet/broadcom/sb1250-mac.c
1124
if (unlikely(sbdma_add_rcvbuffer(sc, d, NULL) ==
drivers/net/ethernet/broadcom/sb1250-mac.c
1128
sbdma_add_rcvbuffer(sc, d, sb);
drivers/net/ethernet/broadcom/sb1250-mac.c
1146
if (sc->rx_hw_checksum == ENABLE) {
drivers/net/ethernet/broadcom/sb1250-mac.c
1178
sbdma_add_rcvbuffer(sc, d, sb);
drivers/net/ethernet/broadcom/sb1250-mac.c
1215
static void sbdma_tx_process(struct sbmac_softc *sc, struct sbmacdma *d,
drivers/net/ethernet/broadcom/sb1250-mac.c
1218
struct net_device *dev = sc->sbm_dev;
drivers/net/ethernet/broadcom/sb1250-mac.c
1226
spin_lock_irqsave(&(sc->sbm_lock), flags);
drivers/net/ethernet/broadcom/sb1250-mac.c
1298
spin_unlock_irqrestore(&(sc->sbm_lock), flags);
drivers/net/ethernet/broadcom/sb1250-mac.c
1363
static void sbmac_uninitctx(struct sbmac_softc *sc)
drivers/net/ethernet/broadcom/sb1250-mac.c
1365
sbdma_uninitctx(&(sc->sbm_txdma));
drivers/net/ethernet/broadcom/sb1250-mac.c
1366
sbdma_uninitctx(&(sc->sbm_rxdma));
drivers/net/ethernet/broadcom/sb1250-mac.c
1638
static enum sbmac_state sbmac_set_channel_state(struct sbmac_softc *sc,
drivers/net/ethernet/broadcom/sb1250-mac.c
1641
enum sbmac_state oldstate = sc->sbm_state;
drivers/net/ethernet/broadcom/sb1250-mac.c
1656
sbmac_channel_start(sc);
drivers/net/ethernet/broadcom/sb1250-mac.c
1659
sbmac_channel_stop(sc);
drivers/net/ethernet/broadcom/sb1250-mac.c
1683
static void sbmac_promiscuous_mode(struct sbmac_softc *sc,int onoff)
drivers/net/ethernet/broadcom/sb1250-mac.c
1687
if (sc->sbm_state != sbmac_state_on)
drivers/net/ethernet/broadcom/sb1250-mac.c
1691
reg = __raw_readq(sc->sbm_rxfilter);
drivers/net/ethernet/broadcom/sb1250-mac.c
1693
__raw_writeq(reg, sc->sbm_rxfilter);
drivers/net/ethernet/broadcom/sb1250-mac.c
1696
reg = __raw_readq(sc->sbm_rxfilter);
drivers/net/ethernet/broadcom/sb1250-mac.c
1698
__raw_writeq(reg, sc->sbm_rxfilter);
drivers/net/ethernet/broadcom/sb1250-mac.c
1714
static void sbmac_set_iphdr_offset(struct sbmac_softc *sc)
drivers/net/ethernet/broadcom/sb1250-mac.c
1719
reg = __raw_readq(sc->sbm_rxfilter);
drivers/net/ethernet/broadcom/sb1250-mac.c
1721
__raw_writeq(reg, sc->sbm_rxfilter);
drivers/net/ethernet/broadcom/sb1250-mac.c
1726
sc->rx_hw_checksum = DISABLE;
drivers/net/ethernet/broadcom/sb1250-mac.c
1728
sc->rx_hw_checksum = ENABLE;
drivers/net/ethernet/broadcom/sb1250-mac.c
1966
struct sbmac_softc *sc = netdev_priv(dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
1975
isr = __raw_readq(sc->sbm_isr) & ~M_MAC_COUNTER_ADDR;
drivers/net/ethernet/broadcom/sb1250-mac.c
1986
sbdma_tx_process(sc,&(sc->sbm_txdma), 0);
drivers/net/ethernet/broadcom/sb1250-mac.c
1989
if (napi_schedule_prep(&sc->napi)) {
drivers/net/ethernet/broadcom/sb1250-mac.c
1990
__raw_writeq(0, sc->sbm_imr);
drivers/net/ethernet/broadcom/sb1250-mac.c
1991
__napi_schedule(&sc->napi);
drivers/net/ethernet/broadcom/sb1250-mac.c
1996
sbdma_rx_process(sc,&(sc->sbm_rxdma),
drivers/net/ethernet/broadcom/sb1250-mac.c
2018
struct sbmac_softc *sc = netdev_priv(dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2022
spin_lock_irqsave(&sc->sbm_lock, flags);
drivers/net/ethernet/broadcom/sb1250-mac.c
2029
if (sbdma_add_txbuffer(&(sc->sbm_txdma),skb)) {
drivers/net/ethernet/broadcom/sb1250-mac.c
2032
spin_unlock_irqrestore(&sc->sbm_lock, flags);
drivers/net/ethernet/broadcom/sb1250-mac.c
2037
spin_unlock_irqrestore(&sc->sbm_lock, flags);
drivers/net/ethernet/broadcom/sb1250-mac.c
2056
static void sbmac_setmulti(struct sbmac_softc *sc)
drivers/net/ethernet/broadcom/sb1250-mac.c
2062
struct net_device *dev = sc->sbm_dev;
drivers/net/ethernet/broadcom/sb1250-mac.c
2071
port = sc->sbm_base + R_MAC_ADDR_BASE+(idx*sizeof(uint64_t));
drivers/net/ethernet/broadcom/sb1250-mac.c
2076
port = sc->sbm_base + R_MAC_HASH_BASE+(idx*sizeof(uint64_t));
drivers/net/ethernet/broadcom/sb1250-mac.c
2084
reg = __raw_readq(sc->sbm_rxfilter);
drivers/net/ethernet/broadcom/sb1250-mac.c
2086
__raw_writeq(reg, sc->sbm_rxfilter);
drivers/net/ethernet/broadcom/sb1250-mac.c
2093
reg = __raw_readq(sc->sbm_rxfilter);
drivers/net/ethernet/broadcom/sb1250-mac.c
2095
__raw_writeq(reg, sc->sbm_rxfilter);
drivers/net/ethernet/broadcom/sb1250-mac.c
2114
port = sc->sbm_base + R_MAC_ADDR_BASE+(idx * sizeof(uint64_t));
drivers/net/ethernet/broadcom/sb1250-mac.c
2125
reg = __raw_readq(sc->sbm_rxfilter);
drivers/net/ethernet/broadcom/sb1250-mac.c
2127
__raw_writeq(reg, sc->sbm_rxfilter);
drivers/net/ethernet/broadcom/sb1250-mac.c
2161
struct sbmac_softc *sc = netdev_priv(dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2167
sc->sbm_dev = dev;
drivers/net/ethernet/broadcom/sb1250-mac.c
2168
sc->sbe_idx = idx;
drivers/net/ethernet/broadcom/sb1250-mac.c
2170
eaddr = sc->sbm_hwaddr;
drivers/net/ethernet/broadcom/sb1250-mac.c
2177
ea_reg = __raw_readq(sc->sbm_base + R_MAC_ETHERNET_ADDR);
drivers/net/ethernet/broadcom/sb1250-mac.c
2178
__raw_writeq(0, sc->sbm_base + R_MAC_ETHERNET_ADDR);
drivers/net/ethernet/broadcom/sb1250-mac.c
2191
sbmac_initctx(sc);
drivers/net/ethernet/broadcom/sb1250-mac.c
2197
spin_lock_init(&(sc->sbm_lock));
drivers/net/ethernet/broadcom/sb1250-mac.c
2204
netif_napi_add_weight(dev, &sc->napi, sbmac_poll, 16);
drivers/net/ethernet/broadcom/sb1250-mac.c
2209
sbmac_set_iphdr_offset(sc);
drivers/net/ethernet/broadcom/sb1250-mac.c
2211
sc->mii_bus = mdiobus_alloc();
drivers/net/ethernet/broadcom/sb1250-mac.c
2212
if (sc->mii_bus == NULL) {
drivers/net/ethernet/broadcom/sb1250-mac.c
2217
sc->mii_bus->name = sbmac_mdio_string;
drivers/net/ethernet/broadcom/sb1250-mac.c
2218
snprintf(sc->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x",
drivers/net/ethernet/broadcom/sb1250-mac.c
2220
sc->mii_bus->priv = sc;
drivers/net/ethernet/broadcom/sb1250-mac.c
2221
sc->mii_bus->read = sbmac_mii_read;
drivers/net/ethernet/broadcom/sb1250-mac.c
2222
sc->mii_bus->write = sbmac_mii_write;
drivers/net/ethernet/broadcom/sb1250-mac.c
2224
sc->mii_bus->parent = &pldev->dev;
drivers/net/ethernet/broadcom/sb1250-mac.c
2228
err = mdiobus_register(sc->mii_bus);
drivers/net/ethernet/broadcom/sb1250-mac.c
2234
platform_set_drvdata(pldev, sc->mii_bus);
drivers/net/ethernet/broadcom/sb1250-mac.c
2245
if (sc->rx_hw_checksum == ENABLE)
drivers/net/ethernet/broadcom/sb1250-mac.c
2258
mdiobus_unregister(sc->mii_bus);
drivers/net/ethernet/broadcom/sb1250-mac.c
2260
mdiobus_free(sc->mii_bus);
drivers/net/ethernet/broadcom/sb1250-mac.c
2262
sbmac_uninitctx(sc);
drivers/net/ethernet/broadcom/sb1250-mac.c
2269
struct sbmac_softc *sc = netdev_priv(dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2281
__raw_readq(sc->sbm_isr);
drivers/net/ethernet/broadcom/sb1250-mac.c
2289
sc->sbm_speed = sbmac_speed_none;
drivers/net/ethernet/broadcom/sb1250-mac.c
2290
sc->sbm_duplex = sbmac_duplex_none;
drivers/net/ethernet/broadcom/sb1250-mac.c
2291
sc->sbm_fc = sbmac_fc_none;
drivers/net/ethernet/broadcom/sb1250-mac.c
2292
sc->sbm_pause = -1;
drivers/net/ethernet/broadcom/sb1250-mac.c
2293
sc->sbm_link = 0;
drivers/net/ethernet/broadcom/sb1250-mac.c
2306
sbmac_set_channel_state(sc,sbmac_state_on);
drivers/net/ethernet/broadcom/sb1250-mac.c
2312
phy_start(sc->phy_dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2314
napi_enable(&sc->napi);
drivers/net/ethernet/broadcom/sb1250-mac.c
2326
struct sbmac_softc *sc = netdev_priv(dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2329
phy_dev = phy_find_first(sc->mii_bus);
drivers/net/ethernet/broadcom/sb1250-mac.c
2348
sc->phy_dev = phy_dev;
drivers/net/ethernet/broadcom/sb1250-mac.c
2356
struct sbmac_softc *sc = netdev_priv(dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2357
struct phy_device *phy_dev = sc->phy_dev;
drivers/net/ethernet/broadcom/sb1250-mac.c
2362
link_chg = (sc->sbm_link != phy_dev->link);
drivers/net/ethernet/broadcom/sb1250-mac.c
2363
speed_chg = (sc->sbm_speed != phy_dev->speed);
drivers/net/ethernet/broadcom/sb1250-mac.c
2364
duplex_chg = (sc->sbm_duplex != phy_dev->duplex);
drivers/net/ethernet/broadcom/sb1250-mac.c
2365
pause_chg = (sc->sbm_pause != phy_dev->pause);
drivers/net/ethernet/broadcom/sb1250-mac.c
2372
sc->sbm_link = phy_dev->link;
drivers/net/ethernet/broadcom/sb1250-mac.c
2373
sc->sbm_speed = sbmac_speed_none;
drivers/net/ethernet/broadcom/sb1250-mac.c
2374
sc->sbm_duplex = sbmac_duplex_none;
drivers/net/ethernet/broadcom/sb1250-mac.c
2375
sc->sbm_fc = sbmac_fc_disabled;
drivers/net/ethernet/broadcom/sb1250-mac.c
2376
sc->sbm_pause = -1;
drivers/net/ethernet/broadcom/sb1250-mac.c
2389
fc_chg = (sc->sbm_fc != fc);
drivers/net/ethernet/broadcom/sb1250-mac.c
2394
spin_lock_irqsave(&sc->sbm_lock, flags);
drivers/net/ethernet/broadcom/sb1250-mac.c
2396
sc->sbm_speed = phy_dev->speed;
drivers/net/ethernet/broadcom/sb1250-mac.c
2397
sc->sbm_duplex = phy_dev->duplex;
drivers/net/ethernet/broadcom/sb1250-mac.c
2398
sc->sbm_fc = fc;
drivers/net/ethernet/broadcom/sb1250-mac.c
2399
sc->sbm_pause = phy_dev->pause;
drivers/net/ethernet/broadcom/sb1250-mac.c
2400
sc->sbm_link = phy_dev->link;
drivers/net/ethernet/broadcom/sb1250-mac.c
2403
sc->sbm_state != sbmac_state_off) {
drivers/net/ethernet/broadcom/sb1250-mac.c
2410
sbmac_channel_stop(sc);
drivers/net/ethernet/broadcom/sb1250-mac.c
2411
sbmac_channel_start(sc);
drivers/net/ethernet/broadcom/sb1250-mac.c
2414
spin_unlock_irqrestore(&sc->sbm_lock, flags);
drivers/net/ethernet/broadcom/sb1250-mac.c
2420
struct sbmac_softc *sc = netdev_priv(dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2423
spin_lock_irqsave(&sc->sbm_lock, flags);
drivers/net/ethernet/broadcom/sb1250-mac.c
2429
spin_unlock_irqrestore(&sc->sbm_lock, flags);
drivers/net/ethernet/broadcom/sb1250-mac.c
2440
struct sbmac_softc *sc = netdev_priv(dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2442
spin_lock_irqsave(&sc->sbm_lock, flags);
drivers/net/ethernet/broadcom/sb1250-mac.c
2443
if ((dev->flags ^ sc->sbm_devflags) & IFF_PROMISC) {
drivers/net/ethernet/broadcom/sb1250-mac.c
2449
sbmac_promiscuous_mode(sc,1);
drivers/net/ethernet/broadcom/sb1250-mac.c
2452
sbmac_promiscuous_mode(sc,0);
drivers/net/ethernet/broadcom/sb1250-mac.c
2455
spin_unlock_irqrestore(&sc->sbm_lock, flags);
drivers/net/ethernet/broadcom/sb1250-mac.c
2461
sbmac_setmulti(sc);
drivers/net/ethernet/broadcom/sb1250-mac.c
2467
struct sbmac_softc *sc = netdev_priv(dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2469
if (!netif_running(dev) || !sc->phy_dev)
drivers/net/ethernet/broadcom/sb1250-mac.c
2472
return phy_mii_ioctl(sc->phy_dev, rq, cmd);
drivers/net/ethernet/broadcom/sb1250-mac.c
2477
struct sbmac_softc *sc = netdev_priv(dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2479
napi_disable(&sc->napi);
drivers/net/ethernet/broadcom/sb1250-mac.c
2481
phy_stop(sc->phy_dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2483
sbmac_set_channel_state(sc, sbmac_state_off);
drivers/net/ethernet/broadcom/sb1250-mac.c
2490
phy_disconnect(sc->phy_dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2491
sc->phy_dev = NULL;
drivers/net/ethernet/broadcom/sb1250-mac.c
2494
sbdma_emptyring(&(sc->sbm_txdma));
drivers/net/ethernet/broadcom/sb1250-mac.c
2495
sbdma_emptyring(&(sc->sbm_rxdma));
drivers/net/ethernet/broadcom/sb1250-mac.c
2502
struct sbmac_softc *sc = container_of(napi, struct sbmac_softc, napi);
drivers/net/ethernet/broadcom/sb1250-mac.c
2505
work_done = sbdma_rx_process(sc, &(sc->sbm_rxdma), budget, 1);
drivers/net/ethernet/broadcom/sb1250-mac.c
2506
sbdma_tx_process(sc, &(sc->sbm_txdma), 1);
drivers/net/ethernet/broadcom/sb1250-mac.c
2514
sc->sbm_imr);
drivers/net/ethernet/broadcom/sb1250-mac.c
2517
(M_MAC_INT_CHANNEL << S_MAC_RX_CH0), sc->sbm_imr);
drivers/net/ethernet/broadcom/sb1250-mac.c
2528
struct sbmac_softc *sc;
drivers/net/ethernet/broadcom/sb1250-mac.c
2574
sc = netdev_priv(dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2575
sc->sbm_base = sbm_base;
drivers/net/ethernet/broadcom/sb1250-mac.c
2597
struct sbmac_softc *sc = netdev_priv(dev);
drivers/net/ethernet/broadcom/sb1250-mac.c
2600
sbmac_uninitctx(sc);
drivers/net/ethernet/broadcom/sb1250-mac.c
2601
mdiobus_unregister(sc->mii_bus);
drivers/net/ethernet/broadcom/sb1250-mac.c
2602
mdiobus_free(sc->mii_bus);
drivers/net/ethernet/broadcom/sb1250-mac.c
2603
iounmap(sc->sbm_base);
drivers/net/ethernet/broadcom/sb1250-mac.c
272
static int sbdma_add_rcvbuffer(struct sbmac_softc *sc, struct sbmacdma *d,
drivers/net/ethernet/broadcom/sb1250-mac.c
276
static void sbdma_fillring(struct sbmac_softc *sc, struct sbmacdma *d);
drivers/net/ethernet/broadcom/sb1250-mac.c
277
static int sbdma_rx_process(struct sbmac_softc *sc, struct sbmacdma *d,
drivers/net/ethernet/broadcom/sb1250-mac.c
279
static void sbdma_tx_process(struct sbmac_softc *sc, struct sbmacdma *d,
drivers/net/ethernet/broadcom/sb1250-mac.c
286
static void sbmac_promiscuous_mode(struct sbmac_softc *sc, int onoff);
drivers/net/ethernet/broadcom/sb1250-mac.c
290
static void sbmac_setmulti(struct sbmac_softc *sc);
drivers/net/ethernet/broadcom/sb1250-mac.c
423
struct sbmac_softc *sc = (struct sbmac_softc *)bus->priv;
drivers/net/ethernet/broadcom/sb1250-mac.c
424
void __iomem *sbm_mdio = sc->sbm_mdio;
drivers/net/ethernet/broadcom/sb1250-mac.c
517
struct sbmac_softc *sc = (struct sbmac_softc *)bus->priv;
drivers/net/ethernet/broadcom/sb1250-mac.c
518
void __iomem *sbm_mdio = sc->sbm_mdio;
drivers/net/ethernet/broadcom/sb1250-mac.c
769
static int sbdma_add_rcvbuffer(struct sbmac_softc *sc, struct sbmacdma *d,
drivers/net/ethernet/broadcom/sb1250-mac.c
772
struct net_device *dev = sc->sbm_dev;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1216
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1220
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/lio_core.c
1222
if (!sc) {
drivers/net/ethernet/cavium/liquidio/lio_core.c
1228
ncmd = (union octnet_cmd *)sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1230
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1231
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1239
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1241
octeon_prepare_soft_command(oct, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_core.c
1244
ret = octeon_send_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1247
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1253
ret = wait_for_sc_completion_timeout(oct, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1257
if (sc->sc_status) {
drivers/net/ethernet/cavium/liquidio/lio_core.c
1258
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1265
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1298
struct octeon_soft_command *sc = (struct octeon_soft_command *)ptr;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1300
(struct oct_nic_stats_resp *)sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1396
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1402
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/lio_core.c
1408
if (!sc) {
drivers/net/ethernet/cavium/liquidio/lio_core.c
1414
resp = (struct oct_nic_vf_stats_resp *)sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1417
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1418
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1420
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1422
octeon_prepare_soft_command(oct_dev, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_core.c
1425
retval = octeon_send_soft_command(oct_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1427
octeon_free_soft_command(oct_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1432
wait_for_sc_completion_timeout(oct_dev, sc,
drivers/net/ethernet/cavium/liquidio/lio_core.c
1440
if (sc->sc_status != OCTEON_REQUEST_TIMEOUT && !resp->status) {
drivers/net/ethernet/cavium/liquidio/lio_core.c
1450
WRITE_ONCE(sc->caller_is_done, 1);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1461
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1478
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/lio_core.c
1484
if (!sc) {
drivers/net/ethernet/cavium/liquidio/lio_core.c
1489
resp = (struct oct_nic_stats_resp *)sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1492
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1493
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1495
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1497
octeon_prepare_soft_command(oct_dev, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_core.c
1500
retval = octeon_send_soft_command(oct_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1502
octeon_free_soft_command(oct_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1506
retval = wait_for_sc_completion_timeout(oct_dev, sc,
drivers/net/ethernet/cavium/liquidio/lio_core.c
1513
octnet_nic_stats_callback(oct_dev, sc->sc_status, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1514
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1529
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1543
sc = octeon_alloc_soft_command(oct, OCTNET_CMD_SIZE,
drivers/net/ethernet/cavium/liquidio/lio_core.c
1546
if (!sc)
drivers/net/ethernet/cavium/liquidio/lio_core.c
1549
ncmd = sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1550
resp = sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1553
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1554
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1562
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1564
octeon_prepare_soft_command(oct, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_core.c
1567
retval = octeon_send_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1570
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1574
retval = wait_for_sc_completion_timeout(oct, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1583
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1596
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1606
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1610
sc = octeon_alloc_soft_command(oct, OCTNET_CMD_SIZE,
drivers/net/ethernet/cavium/liquidio/lio_core.c
1613
if (!sc)
drivers/net/ethernet/cavium/liquidio/lio_core.c
1616
ncmd = sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1617
resp = sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1620
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1621
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1628
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1630
octeon_prepare_soft_command(oct, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_core.c
1633
retval = octeon_send_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1636
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1639
retval = wait_for_sc_completion_timeout(oct, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1669
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1679
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1702
sc = octeon_alloc_soft_command(oct, OCTNET_CMD_SIZE,
drivers/net/ethernet/cavium/liquidio/lio_core.c
1704
if (!sc) {
drivers/net/ethernet/cavium/liquidio/lio_core.c
1710
ncmd = sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1711
resp = sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1714
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1715
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1724
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1726
octeon_prepare_soft_command(oct, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_core.c
1729
retval = octeon_send_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1732
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1736
retval = wait_for_sc_completion_timeout(oct, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1753
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1768
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1776
sc = octeon_alloc_soft_command(oct, OCTNET_CMD_SIZE,
drivers/net/ethernet/cavium/liquidio/lio_core.c
1778
if (!sc)
drivers/net/ethernet/cavium/liquidio/lio_core.c
1781
ncmd = sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1782
resp = sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1785
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1786
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1793
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_core.c
1795
octeon_prepare_soft_command(oct, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_core.c
1798
retval = octeon_send_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1802
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1806
retval = wait_for_sc_completion_timeout(oct, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_core.c
1817
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_core.c
203
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_core.c
214
sc = buf;
drivers/net/ethernet/cavium/liquidio/lio_core.c
215
skb = sc->callback_arg;
drivers/net/ethernet/cavium/liquidio/lio_core.c
230
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_core.c
242
sc = buf;
drivers/net/ethernet/cavium/liquidio/lio_core.c
243
skb = sc->callback_arg;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1002
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1005
if (!sc) {
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1011
resp = (struct liquidio_if_cfg_resp *)sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1012
vdata = (struct lio_version *)sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1026
sc->iq_no = 0;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1027
octeon_prepare_soft_command(oct, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1031
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1032
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1034
retval = octeon_send_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1039
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1043
retval = wait_for_sc_completion_timeout(oct, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1051
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
1080
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2004
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2010
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2015
if (!sc)
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2018
resp = (struct oct_intrmod_resp *)sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2021
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2023
octeon_prepare_soft_command(oct_dev, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2026
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2027
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2029
retval = octeon_send_soft_command(oct_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2031
octeon_free_soft_command(oct_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2038
retval = wait_for_sc_completion_timeout(oct_dev, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2045
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2052
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2061
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2067
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2072
if (!sc)
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2075
cfg = (struct oct_intrmod_cfg *)sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2080
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2082
octeon_prepare_soft_command(oct_dev, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2085
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2086
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2088
retval = octeon_send_soft_command(oct_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2090
octeon_free_soft_command(oct_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2097
retval = wait_for_sc_completion_timeout(oct_dev, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2101
retval = sc->sc_status;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2107
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
2113
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
765
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
770
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
775
if (!sc)
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
778
mdio_cmd_rsp = (struct oct_mdio_cmd_resp *)sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
779
mdio_cmd = (struct oct_mdio_cmd *)sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
787
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
789
octeon_prepare_soft_command(oct_dev, sc, OPCODE_NIC, OPCODE_NIC_MDIO45,
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
792
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
793
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
795
retval = octeon_send_soft_command(oct_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
800
octeon_free_soft_command(oct_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
806
retval = wait_for_sc_completion_timeout(oct_dev, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
814
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
824
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
993
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_main.c
1145
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_main.c
1153
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/lio_main.c
1156
if (!sc) {
drivers/net/ethernet/cavium/liquidio/lio_main.c
1162
ncmd = (union octnet_cmd *)sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_main.c
1170
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_main.c
1172
octeon_prepare_soft_command(oct, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_main.c
1175
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_main.c
1176
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_main.c
1178
retval = octeon_send_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_main.c
1181
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_main.c
1186
retval = wait_for_sc_completion_timeout(oct, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_main.c
1191
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_main.c
1468
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_main.c
1475
sc = (struct octeon_soft_command *)buf;
drivers/net/ethernet/cavium/liquidio/lio_main.c
1476
skb = (struct sk_buff *)sc->callback_arg;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2184
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2191
sc = finfo->sc;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2193
resp = (struct oct_timestamp_resp *)sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2214
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_main.c
2231
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2238
sc = octeon_alloc_soft_command_resp(oct, &ndata->cmd,
drivers/net/ethernet/cavium/liquidio/lio_main.c
2240
finfo->sc = sc;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2242
if (!sc) {
drivers/net/ethernet/cavium/liquidio/lio_main.c
2252
sc->callback = handle_timestamp;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2253
sc->callback_arg = finfo->skb;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2254
sc->iq_no = ndata->q_no;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2258
(&sc->cmd.cmd3.ih3))->dlengsz;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2261
(&sc->cmd.cmd2.ih2))->dlengsz;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2265
retval = octeon_send_command(oct, sc->iq_no, ring_doorbell, &sc->cmd,
drivers/net/ethernet/cavium/liquidio/lio_main.c
2266
sc, len, ndata->reqtype);
drivers/net/ethernet/cavium/liquidio/lio_main.c
2271
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_main.c
2330
finfo->sc = NULL;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2994
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_main.c
2997
sc = octeon_alloc_soft_command(oct, 0, 16, 0);
drivers/net/ethernet/cavium/liquidio/lio_main.c
2998
if (!sc)
drivers/net/ethernet/cavium/liquidio/lio_main.c
3001
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_main.c
3004
octeon_prepare_soft_command(oct, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_main.c
3008
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3009
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_main.c
3011
retval = octeon_send_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3013
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3017
retval = wait_for_sc_completion_timeout(oct, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3021
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3331
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_main.c
3365
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/lio_main.c
3368
resp = (struct liquidio_if_cfg_resp *)sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_main.c
3369
vdata = (struct lio_version *)sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_main.c
3405
sc->iq_no = 0;
drivers/net/ethernet/cavium/liquidio/lio_main.c
3407
octeon_prepare_soft_command(octeon_dev, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_main.c
3411
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3412
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_main.c
3414
retval = octeon_send_soft_command(octeon_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3420
octeon_free_soft_command(octeon_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3427
retval = wait_for_sc_completion_timeout(octeon_dev, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3434
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3449
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3477
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3497
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3529
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3537
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_main.c
3555
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_main.c
611
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_main.c
616
sc = octeon_alloc_soft_command(oct, sizeof(struct lio_time), 16, 0);
drivers/net/ethernet/cavium/liquidio/lio_main.c
617
if (!sc) {
drivers/net/ethernet/cavium/liquidio/lio_main.c
623
lt = (struct lio_time *)sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_main.c
631
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_main.c
632
octeon_prepare_soft_command(oct, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_main.c
635
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_main.c
636
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_main.c
638
ret = octeon_send_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_main.c
642
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_main.c
644
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1303
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1308
sc = finfo->sc;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1310
resp = (struct oct_timestamp_resp *)sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1331
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1345
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1353
sc = octeon_alloc_soft_command_resp(oct, &ndata->cmd,
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1355
finfo->sc = sc;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1357
if (!sc) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1367
sc->callback = handle_timestamp;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1368
sc->callback_arg = finfo->skb;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1369
sc->iq_no = ndata->q_no;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1371
len = (u32)((struct octeon_instr_ih3 *)(&sc->cmd.cmd3.ih3))->dlengsz;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1375
retval = octeon_send_command(oct, sc->iq_no, ring_doorbell, &sc->cmd,
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1376
sc, len, ndata->reqtype);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1381
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1438
finfo->sc = NULL;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1927
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1957
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1960
resp = (struct liquidio_if_cfg_resp *)sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1961
vdata = (struct lio_version *)sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1974
sc->iq_no = 0;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1976
octeon_prepare_soft_command(octeon_dev, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1980
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1981
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1983
retval = octeon_send_soft_command(octeon_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1988
octeon_free_soft_command(octeon_dev, sc);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
1995
retval = wait_for_sc_completion_timeout(octeon_dev, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
2003
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
2021
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
2033
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
2114
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
599
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
606
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
609
if (!sc) {
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
615
ncmd = (union octnet_cmd *)sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
623
sc->iq_no = lio->linfo.txpciq[0].s.q_no;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
625
octeon_prepare_soft_command(oct, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
628
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
629
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
631
retval = octeon_send_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
634
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
639
retval = wait_for_sc_completion_timeout(oct, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
644
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
865
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
871
sc = (struct octeon_soft_command *)buf;
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
872
skb = (struct sk_buff *)sc->callback_arg;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
103
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
350
struct octeon_soft_command *sc = (struct octeon_soft_command *)buf;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
351
struct sk_buff *skb = sc->ctxptr;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
355
dma_unmap_single(&oct->pci_dev->dev, sc->dmadptr,
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
356
sc->datasize, DMA_TO_DEVICE);
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
358
iq_no = sc->iq_no;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
359
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
375
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
391
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
393
if (!sc) {
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
401
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
405
sc->dmadptr = dma_map_single(&oct->pci_dev->dev,
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
407
if (dma_mapping_error(&oct->pci_dev->dev, sc->dmadptr)) {
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
409
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
413
sc->virtdptr = skb->data;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
414
sc->datasize = skb->len;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
415
sc->ctxptr = skb;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
416
sc->iq_no = parent_lio->txq;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
418
octeon_prepare_soft_command(oct, sc, OPCODE_NIC, OPCODE_NIC_VF_REP_PKT,
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
420
pki_ih3 = (struct octeon_instr_pki_ih3 *)&sc->cmd.cmd3.pki_ih3;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
423
sc->callback = lio_vf_rep_packet_sent_callback;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
424
sc->callback_arg = sc;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
426
status = octeon_send_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
428
dma_unmap_single(&oct->pci_dev->dev, sc->dmadptr,
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
429
sc->datasize, DMA_TO_DEVICE);
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
430
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
60
struct octeon_soft_command *sc = NULL;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
65
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
68
if (!sc)
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
71
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
72
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
74
sc_req = (struct lio_vf_rep_req *)sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
77
rep_resp = (struct lio_vf_rep_resp *)sc->virtrptr;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
81
sc->iq_no = 0;
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
82
octeon_prepare_soft_command(oct, sc, OPCODE_NIC,
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
85
err = octeon_send_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
89
err = wait_for_sc_completion_timeout(oct, sc, 0);
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
99
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/octeon_iq.h
336
struct octeon_soft_command *sc);
drivers/net/ethernet/cavium/liquidio/octeon_iq.h
382
struct octeon_soft_command *sc,
drivers/net/ethernet/cavium/liquidio/octeon_iq.h
388
struct octeon_soft_command *sc);
drivers/net/ethernet/cavium/liquidio/octeon_main.h
186
struct octeon_soft_command *sc,
drivers/net/ethernet/cavium/liquidio/octeon_main.h
198
wait_for_completion_interruptible_timeout(&sc->complete,
drivers/net/ethernet/cavium/liquidio/octeon_main.h
203
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/octeon_main.h
208
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/octeon_main.h
210
} else if (sc->sc_status == OCTEON_REQUEST_TIMEOUT) {
drivers/net/ethernet/cavium/liquidio/octeon_main.h
213
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/octeon_main.h
63
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
100
struct octeon_soft_command *sc = NULL;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
110
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
113
if (!sc)
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
116
data = (u8 *)sc->virtdptr;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
127
sc->iq_no = (u32)nctrl->iq_no;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
129
octeon_prepare_soft_command(oct, sc, OPCODE_NIC, OPCODE_NIC_CMD,
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
132
init_completion(&sc->complete);
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
133
sc->sc_status = OCTEON_REQUEST_PENDING;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
135
return sc;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
143
struct octeon_soft_command *sc = NULL;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
158
sc = octnic_alloc_ctrl_pkt_sc(oct, nctrl);
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
159
if (!sc) {
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
166
retval = octeon_send_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
168
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
183
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
188
retval = wait_for_sc_completion_timeout(oct, sc, 0);
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
192
nctrl->sc_status = sc->sc_status;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
197
WRITE_ONCE(sc->caller_is_done, true);
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
34
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
40
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
43
if (!sc)
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
47
memcpy(&sc->cmd, cmd, sizeof(union octeon_instr_64B));
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
53
ih3 = (struct octeon_instr_ih3 *)&sc->cmd.cmd3.ih3;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
54
rdp = (struct octeon_instr_rdp *)&sc->cmd.cmd3.rdp;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
55
irh = (struct octeon_instr_irh *)&sc->cmd.cmd3.irh;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
59
ih2 = (struct octeon_instr_ih2 *)&sc->cmd.cmd2.ih2;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
60
rdp = (struct octeon_instr_rdp *)&sc->cmd.cmd2.rdp;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
61
irh = (struct octeon_instr_irh *)&sc->cmd.cmd2.irh;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
71
*sc->status_word = COMPLETION_WORD_INIT;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
74
sc->cmd.cmd3.rptr = sc->dmarptr;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
76
sc->cmd.cmd2.rptr = sc->dmarptr;
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
78
sc->expiry_time = jiffies + msecs_to_jiffies(LIO_SC_MAX_TMO_MS);
drivers/net/ethernet/cavium/liquidio/octeon_nic.c
80
return sc;
drivers/net/ethernet/cavium/liquidio/request_manager.c
372
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/request_manager.c
393
sc = buf;
drivers/net/ethernet/cavium/liquidio/request_manager.c
404
list_add_tail(&sc->node, &oct->response_list
drivers/net/ethernet/cavium/liquidio/request_manager.c
578
struct octeon_soft_command *sc,
drivers/net/ethernet/cavium/liquidio/request_manager.c
598
ih3 = (struct octeon_instr_ih3 *)&sc->cmd.cmd3.ih3;
drivers/net/ethernet/cavium/liquidio/request_manager.c
600
ih3->pkind = oct->instr_queue[sc->iq_no]->txpciq.s.pkind;
drivers/net/ethernet/cavium/liquidio/request_manager.c
602
pki_ih3 = (struct octeon_instr_pki_ih3 *)&sc->cmd.cmd3.pki_ih3;
drivers/net/ethernet/cavium/liquidio/request_manager.c
608
oct->instr_queue[sc->iq_no]->txpciq.s.use_qpg;
drivers/net/ethernet/cavium/liquidio/request_manager.c
613
oct->instr_queue[sc->iq_no]->txpciq.s.ctrl_qpg;
drivers/net/ethernet/cavium/liquidio/request_manager.c
618
if (sc->datasize)
drivers/net/ethernet/cavium/liquidio/request_manager.c
619
ih3->dlengsz = sc->datasize;
drivers/net/ethernet/cavium/liquidio/request_manager.c
621
irh = (struct octeon_instr_irh *)&sc->cmd.cmd3.irh;
drivers/net/ethernet/cavium/liquidio/request_manager.c
627
sc->cmd.cmd3.ossp[0] = ossp0;
drivers/net/ethernet/cavium/liquidio/request_manager.c
628
sc->cmd.cmd3.ossp[1] = ossp1;
drivers/net/ethernet/cavium/liquidio/request_manager.c
630
if (sc->rdatasize) {
drivers/net/ethernet/cavium/liquidio/request_manager.c
631
rdp = (struct octeon_instr_rdp *)&sc->cmd.cmd3.rdp;
drivers/net/ethernet/cavium/liquidio/request_manager.c
633
rdp->rlen = sc->rdatasize;
drivers/net/ethernet/cavium/liquidio/request_manager.c
647
ih2 = (struct octeon_instr_ih2 *)&sc->cmd.cmd2.ih2;
drivers/net/ethernet/cavium/liquidio/request_manager.c
653
if (sc->datasize) {
drivers/net/ethernet/cavium/liquidio/request_manager.c
654
ih2->dlengsz = sc->datasize;
drivers/net/ethernet/cavium/liquidio/request_manager.c
658
irh = (struct octeon_instr_irh *)&sc->cmd.cmd2.irh;
drivers/net/ethernet/cavium/liquidio/request_manager.c
664
sc->cmd.cmd2.ossp[0] = ossp0;
drivers/net/ethernet/cavium/liquidio/request_manager.c
665
sc->cmd.cmd2.ossp[1] = ossp1;
drivers/net/ethernet/cavium/liquidio/request_manager.c
667
if (sc->rdatasize) {
drivers/net/ethernet/cavium/liquidio/request_manager.c
668
rdp = (struct octeon_instr_rdp *)&sc->cmd.cmd2.rdp;
drivers/net/ethernet/cavium/liquidio/request_manager.c
670
rdp->rlen = sc->rdatasize;
drivers/net/ethernet/cavium/liquidio/request_manager.c
685
struct octeon_soft_command *sc)
drivers/net/ethernet/cavium/liquidio/request_manager.c
693
iq = oct->instr_queue[sc->iq_no];
drivers/net/ethernet/cavium/liquidio/request_manager.c
696
sc->iq_no);
drivers/net/ethernet/cavium/liquidio/request_manager.c
697
INCR_INSTRQUEUE_PKT_COUNT(oct, sc->iq_no, instr_dropped, 1);
drivers/net/ethernet/cavium/liquidio/request_manager.c
702
ih3 = (struct octeon_instr_ih3 *)&sc->cmd.cmd3.ih3;
drivers/net/ethernet/cavium/liquidio/request_manager.c
704
WARN_ON(!sc->dmadptr);
drivers/net/ethernet/cavium/liquidio/request_manager.c
705
sc->cmd.cmd3.dptr = sc->dmadptr;
drivers/net/ethernet/cavium/liquidio/request_manager.c
707
irh = (struct octeon_instr_irh *)&sc->cmd.cmd3.irh;
drivers/net/ethernet/cavium/liquidio/request_manager.c
709
WARN_ON(!sc->dmarptr);
drivers/net/ethernet/cavium/liquidio/request_manager.c
710
WARN_ON(!sc->status_word);
drivers/net/ethernet/cavium/liquidio/request_manager.c
711
*sc->status_word = COMPLETION_WORD_INIT;
drivers/net/ethernet/cavium/liquidio/request_manager.c
712
sc->cmd.cmd3.rptr = sc->dmarptr;
drivers/net/ethernet/cavium/liquidio/request_manager.c
716
ih2 = (struct octeon_instr_ih2 *)&sc->cmd.cmd2.ih2;
drivers/net/ethernet/cavium/liquidio/request_manager.c
718
WARN_ON(!sc->dmadptr);
drivers/net/ethernet/cavium/liquidio/request_manager.c
719
sc->cmd.cmd2.dptr = sc->dmadptr;
drivers/net/ethernet/cavium/liquidio/request_manager.c
721
irh = (struct octeon_instr_irh *)&sc->cmd.cmd2.irh;
drivers/net/ethernet/cavium/liquidio/request_manager.c
723
WARN_ON(!sc->dmarptr);
drivers/net/ethernet/cavium/liquidio/request_manager.c
724
WARN_ON(!sc->status_word);
drivers/net/ethernet/cavium/liquidio/request_manager.c
725
*sc->status_word = COMPLETION_WORD_INIT;
drivers/net/ethernet/cavium/liquidio/request_manager.c
726
sc->cmd.cmd2.rptr = sc->dmarptr;
drivers/net/ethernet/cavium/liquidio/request_manager.c
731
sc->expiry_time = jiffies + msecs_to_jiffies(LIO_SC_MAX_TMO_MS);
drivers/net/ethernet/cavium/liquidio/request_manager.c
733
return (octeon_send_command(oct, sc->iq_no, 1, &sc->cmd, sc,
drivers/net/ethernet/cavium/liquidio/request_manager.c
742
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/request_manager.c
749
sc = (struct octeon_soft_command *)
drivers/net/ethernet/cavium/liquidio/request_manager.c
753
if (!sc) {
drivers/net/ethernet/cavium/liquidio/request_manager.c
758
sc->dma_addr = dma_addr;
drivers/net/ethernet/cavium/liquidio/request_manager.c
759
sc->size = SOFT_COMMAND_BUFFER_SIZE;
drivers/net/ethernet/cavium/liquidio/request_manager.c
761
list_add_tail(&sc->node, &oct->sc_buf_pool.head);
drivers/net/ethernet/cavium/liquidio/request_manager.c
771
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/request_manager.c
786
sc = list_entry(tmp, struct octeon_soft_command, node);
drivers/net/ethernet/cavium/liquidio/request_manager.c
788
if (READ_ONCE(sc->caller_is_done)) {
drivers/net/ethernet/cavium/liquidio/request_manager.c
789
list_del(&sc->node);
drivers/net/ethernet/cavium/liquidio/request_manager.c
792
if (*sc->status_word == COMPLETION_WORD_INIT) {
drivers/net/ethernet/cavium/liquidio/request_manager.c
794
list_add_tail(&sc->node, &zombie_sc_list->head);
drivers/net/ethernet/cavium/liquidio/request_manager.c
797
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/request_manager.c
811
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/request_manager.c
823
sc = list_entry(tmp, struct octeon_soft_command, node);
drivers/net/ethernet/cavium/liquidio/request_manager.c
824
octeon_free_soft_command(oct, sc);
drivers/net/ethernet/cavium/liquidio/request_manager.c
836
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/request_manager.c
845
sc = (struct octeon_soft_command *)tmp;
drivers/net/ethernet/cavium/liquidio/request_manager.c
847
lio_dma_free(oct, sc->size, sc, sc->dma_addr);
drivers/net/ethernet/cavium/liquidio/request_manager.c
866
struct octeon_soft_command *sc = NULL;
drivers/net/ethernet/cavium/liquidio/request_manager.c
891
sc = (struct octeon_soft_command *)tmp;
drivers/net/ethernet/cavium/liquidio/request_manager.c
893
dma_addr = sc->dma_addr;
drivers/net/ethernet/cavium/liquidio/request_manager.c
894
size = sc->size;
drivers/net/ethernet/cavium/liquidio/request_manager.c
896
memset(sc, 0, sc->size);
drivers/net/ethernet/cavium/liquidio/request_manager.c
898
sc->dma_addr = dma_addr;
drivers/net/ethernet/cavium/liquidio/request_manager.c
899
sc->size = size;
drivers/net/ethernet/cavium/liquidio/request_manager.c
902
sc->ctxptr = (u8 *)sc + offset;
drivers/net/ethernet/cavium/liquidio/request_manager.c
903
sc->ctxsize = ctxsize;
drivers/net/ethernet/cavium/liquidio/request_manager.c
910
sc->virtdptr = (u8 *)sc + offset;
drivers/net/ethernet/cavium/liquidio/request_manager.c
911
sc->dmadptr = dma_addr + offset;
drivers/net/ethernet/cavium/liquidio/request_manager.c
912
sc->datasize = datasize;
drivers/net/ethernet/cavium/liquidio/request_manager.c
920
sc->virtrptr = (u8 *)sc + offset;
drivers/net/ethernet/cavium/liquidio/request_manager.c
921
sc->dmarptr = dma_addr + offset;
drivers/net/ethernet/cavium/liquidio/request_manager.c
922
sc->rdatasize = rdatasize;
drivers/net/ethernet/cavium/liquidio/request_manager.c
923
sc->status_word = (u64 *)((u8 *)(sc->virtrptr) + rdatasize - 8);
drivers/net/ethernet/cavium/liquidio/request_manager.c
926
return sc;
drivers/net/ethernet/cavium/liquidio/request_manager.c
931
struct octeon_soft_command *sc)
drivers/net/ethernet/cavium/liquidio/request_manager.c
935
list_add_tail(&sc->node, &oct->sc_buf_pool.head);
drivers/net/ethernet/cavium/liquidio/response_manager.c
119
} else if (unlikely(force_quit) || (sc->expiry_time &&
drivers/net/ethernet/cavium/liquidio/response_manager.c
120
time_after(jiffies, (unsigned long)sc->expiry_time))) {
drivers/net/ethernet/cavium/liquidio/response_manager.c
122
(struct octeon_instr_irh *)&sc->cmd.cmd3.irh;
drivers/net/ethernet/cavium/liquidio/response_manager.c
128
sc->cmd.cmd3.ossp[0], sc->cmd.cmd3.ossp[1]);
drivers/net/ethernet/cavium/liquidio/response_manager.c
131
(long)jiffies, (long)sc->expiry_time);
drivers/net/ethernet/cavium/liquidio/response_manager.c
136
sc->sc_status = status;
drivers/net/ethernet/cavium/liquidio/response_manager.c
140
list_del(&sc->node);
drivers/net/ethernet/cavium/liquidio/response_manager.c
145
if (!sc->callback) {
drivers/net/ethernet/cavium/liquidio/response_manager.c
149
list_add_tail(&sc->node,
drivers/net/ethernet/cavium/liquidio/response_manager.c
153
if (unlikely(READ_ONCE(sc->caller_is_done))) {
drivers/net/ethernet/cavium/liquidio/response_manager.c
162
&sc->cmd.cmd3.irh;
drivers/net/ethernet/cavium/liquidio/response_manager.c
171
sc->cmd.cmd3.ossp[0]);
drivers/net/ethernet/cavium/liquidio/response_manager.c
175
sc->cmd.cmd3.ossp[1],
drivers/net/ethernet/cavium/liquidio/response_manager.c
179
complete(&sc->complete);
drivers/net/ethernet/cavium/liquidio/response_manager.c
189
list_add_tail(&sc->node,
drivers/net/ethernet/cavium/liquidio/response_manager.c
197
sc->callback(octeon_dev, status,
drivers/net/ethernet/cavium/liquidio/response_manager.c
198
sc->callback_arg);
drivers/net/ethernet/cavium/liquidio/response_manager.c
69
struct octeon_soft_command *sc;
drivers/net/ethernet/cavium/liquidio/response_manager.c
87
sc = list_first_entry(&ordered_sc_list->head,
drivers/net/ethernet/cavium/liquidio/response_manager.c
95
status64 = *sc->status_word;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
108
struct ulptx_idata *sc = (struct ulptx_idata *)(txpkt + 1);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
112
sc->cmd_more = htonl(ULPTX_CMD_V(ULP_TX_SC_IMM));
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
113
sc->len = htonl(sizeof(*abort_rpl) - sizeof(struct work_request_hdr));
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
126
struct ulptx_idata *sc = (struct ulptx_idata *)(txpkt + 1);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
130
sc->cmd_more = htonl(ULPTX_CMD_V(ULP_TX_SC_IMM));
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
131
sc->len = htonl(sizeof(*req) - sizeof(struct work_request_hdr));
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
138
sc = (struct ulptx_idata *)(req + 1);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
139
sc->cmd_more = htonl(ULPTX_CMD_V(ULP_TX_SC_NOOP));
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
140
sc->len = htonl(0);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
93
struct ulptx_idata *sc = (struct ulptx_idata *)(txpkt + 1);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
97
sc->cmd_more = htonl(ULPTX_CMD_V(ULP_TX_SC_IMM));
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
98
sc->len = htonl(sizeof(*abort_req) - sizeof(struct work_request_hdr));
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c
139
c.u.init.sc = FW_PTP_SC_RXTIME_STAMP;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c
160
c.u.init.sc = FW_PTP_SC_TX_TYPE;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c
185
c.u.init.sc = FW_PTP_SC_RDRX_TYPE;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c
220
c.u.ts.sc = FW_PTP_SC_ADJ_FREQ;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c
252
c.u.ts.sc = FW_PTP_SC_ADJ_FTIME;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c
291
c.u.ts.sc = FW_PTP_SC_ADJ_TIME;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c
354
c.u.ts.sc = FW_PTP_SC_SET_TIME;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c
378
c.u.scmd.sc = FW_PTP_SC_INIT_TIMER;
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
10388
cmd.u.params.sc = FW_SCHED_SC_PARAMS;
drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h
3359
__u8 sc;
drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h
3363
__u8 sc;
drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h
3370
__u8 sc;
drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h
3567
__u8 sc;
drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h
3575
__u8 sc;
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_hw.c
27
struct ulptx_idata *sc;
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_hw.c
36
sc = (struct ulptx_idata *)(req + 1);
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_hw.c
37
sc->cmd_more = htonl(ULPTX_CMD_V(ULP_TX_SC_NOOP));
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_hw.c
38
sc->len = htonl(0);
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_hw.c
46
struct ulptx_idata *sc;
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_hw.c
49
wrlen = roundup(sizeof(*req) + sizeof(*sc), 16);
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_hw.c
66
struct ulptx_idata *sc;
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_hw.c
71
wrlen = roundup(sizeof(*req) + sizeof(*sc), 16);
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c
275
struct ulptx_idata *sc;
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c
284
immdlen = sizeof(*sc) + sizeof(*sc_memrd);
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c
286
sc = (struct ulptx_idata *)__skb_push(skb, immdlen);
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c
287
if (sc) {
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c
288
sc->cmd_more = htonl(ULPTX_CMD_V(ULP_TX_SC_NOOP));
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c
289
sc->len = htonl(0);
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c
290
sc_memrd = (struct ulptx_sc_memrd *)(sc + 1);
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
107
while (((sc = CBDR_SC(bdp)) & BD_ENET_TX_READY) == 0 && tx_left) {
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
116
if (sc & (BD_ENET_TX_HB | BD_ENET_TX_LC |
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
118
if (sc & BD_ENET_TX_HB) /* No heartbeat */
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
120
if (sc & BD_ENET_TX_LC) /* Late collision */
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
122
if (sc & BD_ENET_TX_RL) /* Retrans limit */
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
124
if (sc & BD_ENET_TX_UN) /* Underrun */
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
126
if (sc & BD_ENET_TX_CSL) /* Carrier lost */
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
129
if (sc & (BD_ENET_TX_LC | BD_ENET_TX_RL | BD_ENET_TX_UN)) {
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
137
if (sc & BD_ENET_TX_READY) {
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
145
if (sc & BD_ENET_TX_DEF)
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
164
if ((sc & BD_ENET_TX_WRAP) == 0)
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
191
while (((sc = CBDR_SC(bdp)) & BD_ENET_RX_EMPTY) == 0 &&
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
198
if ((sc & BD_ENET_RX_LAST) == 0)
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
202
if (sc & (BD_ENET_RX_LG | BD_ENET_RX_SH | BD_ENET_RX_CL |
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
206
if (sc & (BD_ENET_RX_LG | BD_ENET_RX_SH))
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
209
if (sc & (BD_ENET_RX_NO | BD_ENET_RX_CL))
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
212
if (sc & BD_ENET_RX_CR)
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
215
if (sc & BD_ENET_RX_OV)
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
272
CBDW_SC(bdp, (sc & ~BD_ENET_RX_STATS) | BD_ENET_RX_EMPTY);
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
275
if ((sc & BD_ENET_RX_WRAP) == 0)
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
458
u16 sc;
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
547
sc = BD_ENET_TX_READY | BD_ENET_TX_INTR |
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
555
sc |= BD_ENET_TX_PAD;
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
558
CBDS_SC(bdp, sc);
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
99
u16 pkt_len, sc;
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
1119
res->sc.max = hw->sc_entries;
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
1120
err = rvu_alloc_bitmap(&res->sc);
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
437
val |= (map->sc & 0x7F) << 9;
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
534
map.sc = secy_id;
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
744
mcs_free_rsrc(&map->sc, map->sc2pf_map, id, pcifunc);
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
792
id = mcs_alloc_rsrc(&map->sc, map->sc2pf_map, pcifunc);
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
815
int sc;
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
817
sc_bmap = &mcs->tx.sc;
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
822
for_each_set_bit(sc, sc_bmap->bmap, mcs->hw->sc_entries) {
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
823
val = mcs_reg_read(mcs, MCSX_CPM_TX_SLAVE_SA_MAP_MEM_0X(sc));
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
825
if (mcs->tx_sa_active[sc])
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
842
int sc;
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
844
sc_bmap = &mcs->tx.sc;
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
854
for_each_set_bit(sc, sc_bmap->bmap, mcs->hw->sc_entries) {
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
855
val = mcs_reg_read(mcs, MCSX_CPM_TX_SLAVE_SA_MAP_MEM_0X(sc));
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
863
if (status == mcs->tx_sa_active[sc])
drivers/net/ethernet/marvell/octeontx2/af/mcs.h
104
u8 sc;
drivers/net/ethernet/marvell/octeontx2/af/mcs.h
117
struct rsrc_bmap sc;
drivers/net/ethernet/marvell/octeontx2/af/mcs.h
193
void mcs_map_sc_to_sa(struct mcs *mcs, u64 *sa_map, int sc, int dir);
drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c
162
int sc;
drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c
164
sc_bmap = &mcs->tx.sc;
drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c
171
for_each_set_bit(sc, sc_bmap->bmap, mcs->hw->sc_entries) {
drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c
173
if (!test_bit(sc, &rekey_ena))
drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c
175
sa_status = mcs_reg_read(mcs, MCSX_CPM_TX_SLAVE_TX_SA_ACTIVEX(sc));
drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c
177
if (sa_status == mcs->tx_sa_active[sc])
drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c
181
val = mcs_reg_read(mcs, MCSX_CPM_TX_SLAVE_SA_MAP_MEM_0X(sc));
drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c
197
int sc;
drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c
199
sc_bmap = &mcs->tx.sc;
drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c
204
for_each_set_bit(sc, sc_bmap->bmap, mcs->hw->sc_entries) {
drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c
205
val = mcs_reg_read(mcs, MCSX_CPM_TX_SLAVE_SA_MAP_MEM_0X(sc));
drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c
207
if (mcs->tx_sa_active[sc])
drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c
83
val |= (map->sc & 0x3F) << 7;
drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c
618
map.sc = req->sc_id;
drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c
665
rc = mcs_free_rsrc(&map->sc, map->sc2pf_map, req->rsrc_id, pcifunc);
drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c
731
rsrc_id = mcs_alloc_rsrc(&map->sc, map->sc2pf_map, pcifunc);
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
301
map = &mcs->tx.sc;
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
331
map = &mcs->rx.sc;
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c
1469
struct macsec_rx_sc *sw_rx_sc = ctx->sa.rx_sa->sc;
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c
1512
struct macsec_rx_sc *sw_rx_sc = ctx->sa.rx_sa->sc;
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c
1548
struct macsec_rx_sc *sw_rx_sc = ctx->sa.rx_sa->sc;
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c
1693
struct macsec_rx_sc *sw_rx_sc = ctx->sa.rx_sa->sc;
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
1020
sci_t sci = ctx->sa.rx_sa->sc->sci;
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
1043
ctx->sa.rx_sa->sc->sci);
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
861
ctx->sa.rx_sa->sc->sci);
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
881
sci_t sci = ctx_rx_sa->sc->sci;
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
902
ctx->sa.rx_sa->sc->sci);
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
965
sci_t sci = ctx_rx_sa->sc->sci;
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
986
ctx->sa.rx_sa->sc->sci);
drivers/net/ethernet/microsoft/mana/shm_channel.c
116
dev_err(sc->dev, "Wrong SMC response 0x%x, type=%d, ver=%d\n",
drivers/net/ethernet/microsoft/mana/shm_channel.c
123
dev_err(sc->dev, "SMC operation failed: 0x%x\n", hdr.status);
drivers/net/ethernet/microsoft/mana/shm_channel.c
130
void mana_smc_init(struct shm_channel *sc, struct device *dev,
drivers/net/ethernet/microsoft/mana/shm_channel.c
133
sc->dev = dev;
drivers/net/ethernet/microsoft/mana/shm_channel.c
134
sc->base = base;
drivers/net/ethernet/microsoft/mana/shm_channel.c
137
int mana_smc_setup_hwc(struct shm_channel *sc, bool reset_vf, u64 eq_addr,
drivers/net/ethernet/microsoft/mana/shm_channel.c
153
err = mana_smc_poll_register(sc->base, false);
drivers/net/ethernet/microsoft/mana/shm_channel.c
155
dev_err(sc->dev, "Timeout when setting up HWC: %d\n", err);
drivers/net/ethernet/microsoft/mana/shm_channel.c
239
writel(*dword++, sc->base + i * SMC_BASIC_UNIT);
drivers/net/ethernet/microsoft/mana/shm_channel.c
245
err = mana_smc_read_response(sc, SMC_MSG_TYPE_ESTABLISH_HWC,
drivers/net/ethernet/microsoft/mana/shm_channel.c
249
dev_err(sc->dev, "Error when setting up HWC: %d\n", err);
drivers/net/ethernet/microsoft/mana/shm_channel.c
256
int mana_smc_teardown_hwc(struct shm_channel *sc, bool reset_vf)
drivers/net/ethernet/microsoft/mana/shm_channel.c
262
err = mana_smc_poll_register(sc->base, false);
drivers/net/ethernet/microsoft/mana/shm_channel.c
264
dev_err(sc->dev, "Timeout when tearing down HWC\n");
drivers/net/ethernet/microsoft/mana/shm_channel.c
277
writel(hdr.as_uint32, sc->base + SMC_LAST_DWORD * SMC_BASIC_UNIT);
drivers/net/ethernet/microsoft/mana/shm_channel.c
283
err = mana_smc_read_response(sc, SMC_MSG_TYPE_DESTROY_HWC,
drivers/net/ethernet/microsoft/mana/shm_channel.c
287
dev_err(sc->dev, "Error when tearing down HWC: %d\n", err);
drivers/net/ethernet/microsoft/mana/shm_channel.c
96
static int mana_smc_read_response(struct shm_channel *sc, u32 msg_type,
drivers/net/ethernet/microsoft/mana/shm_channel.c
99
void __iomem *base = sc->base;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1026
enum shf_sc sc;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1056
sc = SHF_SC_NONE;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1059
sc = SHF_SC_L_SHF;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1061
sc = SHF_SC_R_SHF;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1080
emit_ld_field_any(nfp_prog, reg_both(dst), mask, reg, sc, shf, new_gpr);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1095
enum shf_sc sc;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1126
sc = SHF_SC_NONE;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1129
sc = SHF_SC_L_SHF;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1131
sc = SHF_SC_R_SHF;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1148
emit_ld_field(nfp_prog, reg, mask, reg_b(src), sc, shf);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
320
enum shf_sc sc, u8 shift,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
342
if (sc == SHF_SC_L_SHF && shift)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
347
FIELD_PREP(OP_SHF_SC, sc) |
drivers/net/ethernet/netronome/nfp/bpf/jit.c
364
swreg lreg, enum shf_op op, swreg rreg, enum shf_sc sc, u8 shift)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
375
__emit_shf(nfp_prog, reg.dst, reg.dst_ab, sc, shift,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
382
swreg lreg, enum shf_op op, swreg rreg, enum shf_sc sc)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
384
if (sc == SHF_SC_R_ROT) {
drivers/net/ethernet/netronome/nfp/bpf/jit.c
390
emit_shf(nfp_prog, dst, lreg, op, rreg, sc, 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
487
__emit_ld_field(struct nfp_prog *nfp_prog, enum shf_sc sc,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
496
FIELD_PREP(OP_LDF_SC, sc) |
drivers/net/ethernet/netronome/nfp/bpf/jit.c
512
enum shf_sc sc, u8 shift, bool zero)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
524
__emit_ld_field(nfp_prog, sc, reg.areg, bmask, reg.breg, shift,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
531
enum shf_sc sc, u8 shift)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
533
emit_ld_field_any(nfp_prog, dst, bmask, src, sc, shift, false);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
696
enum shf_sc sc = offset ? SHF_SC_R_SHF : SHF_SC_NONE;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
699
emit_ld_field_any(nfp_prog, dst, mask, src, sc, offset * 8, true);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
709
enum shf_sc sc = offset ? SHF_SC_L_SHF : SHF_SC_NONE;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
712
emit_ld_field(nfp_prog, dst, mask, src, sc, 32 - offset * 8);
drivers/net/ethernet/qualcomm/ppe/ppe_config.c
1123
int ppe_sc_config_set(struct ppe_device *ppe_dev, int sc, struct ppe_sc_cfg cfg)
drivers/net/ethernet/qualcomm/ppe/ppe_config.c
1139
reg = PPE_IN_L2_SERVICE_TBL_ADDR + PPE_IN_L2_SERVICE_TBL_INC * sc;
drivers/net/ethernet/qualcomm/ppe/ppe_config.c
1149
reg = PPE_SERVICE_TBL_ADDR + PPE_SERVICE_TBL_INC * sc;
drivers/net/ethernet/qualcomm/ppe/ppe_config.c
1156
reg = PPE_EG_SERVICE_TBL_ADDR + PPE_EG_SERVICE_TBL_INC * sc;
drivers/net/ethernet/qualcomm/ppe/ppe_config.c
1176
reg = PPE_TL_SERVICE_TBL_ADDR + PPE_TL_SERVICE_TBL_INC * sc;
drivers/net/ethernet/qualcomm/ppe/ppe_config.h
309
int ppe_sc_config_set(struct ppe_device *ppe_dev, int sc,
drivers/net/fddi/skfp/pmf.c
529
struct smt_p_setcount *sc ;
drivers/net/fddi/skfp/pmf.c
533
sc = (struct smt_p_setcount *) pa ;
drivers/net/fddi/skfp/pmf.c
534
if ((smc->mib.fddiSMTSetCount.count != sc->count) ||
drivers/net/fddi/skfp/pmf.c
536
(char *)sc->timestamp,8))
drivers/net/macsec.c
1192
struct macsec_rx_sc *sc = find_rx_sc(&macsec->secy, sci);
drivers/net/macsec.c
1194
sc = sc ? macsec_rxsc_get(sc) : NULL;
drivers/net/macsec.c
1196
if (sc) {
drivers/net/macsec.c
1198
rx_sc = sc;
drivers/net/macsec.c
166
static struct macsec_rx_sc *macsec_rxsc_get(struct macsec_rx_sc *sc)
drivers/net/macsec.c
168
return refcount_inc_not_zero(&sc->refcnt) ? sc : NULL;
drivers/net/macsec.c
171
static void macsec_rxsc_put(struct macsec_rx_sc *sc)
drivers/net/macsec.c
173
if (refcount_dec_and_test(&sc->refcnt))
drivers/net/macsec.c
174
call_rcu(&sc->rcu_head, free_rx_sc_rcu);
drivers/net/macsec.c
1823
rx_sa->sc = rx_sc;
drivers/net/macsec.c
54
#define for_each_rxsc(secy, sc) \
drivers/net/macsec.c
55
for (sc = rcu_dereference_bh(secy->rx_sc); \
drivers/net/macsec.c
56
sc; \
drivers/net/macsec.c
57
sc = rcu_dereference_bh(sc->next))
drivers/net/macsec.c
58
#define for_each_rxsc_rtnl(secy, sc) \
drivers/net/macsec.c
59
for (sc = rtnl_dereference(secy->rx_sc); \
drivers/net/macsec.c
60
sc; \
drivers/net/macsec.c
61
sc = rtnl_dereference(sc->next))
drivers/net/macsec.c
738
struct pcpu_rx_sc_stats *rxsc_stats = this_cpu_ptr(rx_sa->sc->stats);
drivers/net/macsec.c
848
struct macsec_rx_sc *rx_sc = rx_sa->sc;
drivers/net/netdevsim/macsec.c
206
idx = nsim_macsec_find_rxsc(secy, ctx->sa.rx_sa->sc->sci);
drivers/net/netdevsim/macsec.c
209
__func__, sci_to_cpu(ctx->sa.rx_sa->sc->sci));
drivers/net/netdevsim/macsec.c
214
__func__, sci_to_cpu(ctx->sa.rx_sa->sc->sci), ctx->sa.assoc_num);
drivers/net/netdevsim/macsec.c
233
idx = nsim_macsec_find_rxsc(secy, ctx->sa.rx_sa->sc->sci);
drivers/net/netdevsim/macsec.c
236
__func__, sci_to_cpu(ctx->sa.rx_sa->sc->sci));
drivers/net/netdevsim/macsec.c
241
__func__, sci_to_cpu(ctx->sa.rx_sa->sc->sci), ctx->sa.assoc_num);
drivers/net/netdevsim/macsec.c
260
idx = nsim_macsec_find_rxsc(secy, ctx->sa.rx_sa->sc->sci);
drivers/net/netdevsim/macsec.c
263
__func__, sci_to_cpu(ctx->sa.rx_sa->sc->sci));
drivers/net/netdevsim/macsec.c
268
__func__, sci_to_cpu(ctx->sa.rx_sa->sc->sci), ctx->sa.assoc_num);
drivers/net/phy/mscc/mscc_macsec.c
387
if (bank == MACSEC_INGR && flow->match.sci && flow->rx_sa->sc->sci) {
drivers/net/phy/mscc/mscc_macsec.c
388
u64 sci = (__force u64)flow->rx_sa->sc->sci;
drivers/net/phy/mscc/mscc_macsec.c
586
sci = (__force u64)(bank == MACSEC_INGR ? flow->rx_sa->sc->sci : priv->secy->sci);
drivers/net/phy/mscc/mscc_macsec.c
821
flow->rx_sa->sc->sci == ctx->rx_sc->sci)
drivers/net/phy/nxp-c45-tja11xx-macsec.c
1198
sci_to_cpu(rx_sa->sc->sci));
drivers/net/phy/nxp-c45-tja11xx-macsec.c
1228
sci_to_cpu(rx_sa->sc->sci));
drivers/net/phy/nxp-c45-tja11xx-macsec.c
1258
sci_to_cpu(rx_sa->sc->sci));
drivers/net/usb/cx82310_eth.c
343
#define USB_DEVICE_CLASS(vend, prod, cl, sc, pr) \
drivers/net/usb/cx82310_eth.c
349
.bDeviceSubClass = (sc), \
drivers/net/wireless/ath/ath10k/htt_rx.c
2771
u16 peer_id, sc, hdr_space;
drivers/net/wireless/ath/ath10k/htt_rx.c
2825
sc = __le16_to_cpu(hdr->seq_ctrl);
drivers/net/wireless/ath/ath10k/htt_rx.c
2826
seq = IEEE80211_SEQ_TO_SN(sc);
drivers/net/wireless/ath/ath10k/htt_rx.c
2827
frag = sc & IEEE80211_SCTL_FRAG;
drivers/net/wireless/ath/ath6kl/wmi.c
1958
struct wmi_start_scan_cmd *sc;
drivers/net/wireless/ath/ath6kl/wmi.c
1967
skb = ath6kl_wmi_get_new_buf(struct_size(sc, ch_list, num_chan));
drivers/net/wireless/ath/ath6kl/wmi.c
1971
sc = (struct wmi_start_scan_cmd *) skb->data;
drivers/net/wireless/ath/ath6kl/wmi.c
1972
sc->scan_type = scan_type;
drivers/net/wireless/ath/ath6kl/wmi.c
1973
sc->force_fg_scan = cpu_to_le32(force_fgscan);
drivers/net/wireless/ath/ath6kl/wmi.c
1974
sc->is_legacy = cpu_to_le32(is_legacy);
drivers/net/wireless/ath/ath6kl/wmi.c
1975
sc->home_dwell_time = cpu_to_le32(home_dwell_time);
drivers/net/wireless/ath/ath6kl/wmi.c
1976
sc->force_scan_intvl = cpu_to_le32(force_scan_interval);
drivers/net/wireless/ath/ath6kl/wmi.c
1977
sc->num_ch = num_chan;
drivers/net/wireless/ath/ath6kl/wmi.c
1980
sc->ch_list[i] = cpu_to_le16(ch_list[i]);
drivers/net/wireless/ath/ath6kl/wmi.c
2001
struct wmi_begin_scan_cmd *sc;
drivers/net/wireless/ath/ath6kl/wmi.c
2023
skb = ath6kl_wmi_get_new_buf(struct_size(sc, ch_list, num_chan));
drivers/net/wireless/ath/ath6kl/wmi.c
2027
sc = (struct wmi_begin_scan_cmd *) skb->data;
drivers/net/wireless/ath/ath6kl/wmi.c
2028
sc->scan_type = scan_type;
drivers/net/wireless/ath/ath6kl/wmi.c
2029
sc->force_fg_scan = cpu_to_le32(force_fgscan);
drivers/net/wireless/ath/ath6kl/wmi.c
2030
sc->is_legacy = cpu_to_le32(is_legacy);
drivers/net/wireless/ath/ath6kl/wmi.c
2031
sc->home_dwell_time = cpu_to_le32(home_dwell_time);
drivers/net/wireless/ath/ath6kl/wmi.c
2032
sc->force_scan_intvl = cpu_to_le32(force_scan_interval);
drivers/net/wireless/ath/ath6kl/wmi.c
2033
sc->no_cck = cpu_to_le32(no_cck);
drivers/net/wireless/ath/ath6kl/wmi.c
2034
sc->num_ch = num_chan;
drivers/net/wireless/ath/ath6kl/wmi.c
2046
supp_rates = sc->supp_rates[band].rates;
drivers/net/wireless/ath/ath6kl/wmi.c
2055
sc->supp_rates[band].nrates = num_rates;
drivers/net/wireless/ath/ath6kl/wmi.c
2059
sc->ch_list[i] = cpu_to_le16(ch_list[i]);
drivers/net/wireless/ath/ath6kl/wmi.c
2070
struct wmi_enable_sched_scan_cmd *sc;
drivers/net/wireless/ath/ath6kl/wmi.c
2073
skb = ath6kl_wmi_get_new_buf(sizeof(*sc));
drivers/net/wireless/ath/ath6kl/wmi.c
2079
sc = (struct wmi_enable_sched_scan_cmd *) skb->data;
drivers/net/wireless/ath/ath6kl/wmi.c
2080
sc->enable = enable ? 1 : 0;
drivers/net/wireless/ath/ath6kl/wmi.c
2097
struct wmi_scan_params_cmd *sc;
drivers/net/wireless/ath/ath6kl/wmi.c
2100
skb = ath6kl_wmi_get_new_buf(sizeof(*sc));
drivers/net/wireless/ath/ath6kl/wmi.c
2104
sc = (struct wmi_scan_params_cmd *) skb->data;
drivers/net/wireless/ath/ath6kl/wmi.c
2105
sc->fg_start_period = cpu_to_le16(fg_start_sec);
drivers/net/wireless/ath/ath6kl/wmi.c
2106
sc->fg_end_period = cpu_to_le16(fg_end_sec);
drivers/net/wireless/ath/ath6kl/wmi.c
2107
sc->bg_period = cpu_to_le16(bg_sec);
drivers/net/wireless/ath/ath6kl/wmi.c
2108
sc->minact_chdwell_time = cpu_to_le16(minact_chdw_msec);
drivers/net/wireless/ath/ath6kl/wmi.c
2109
sc->maxact_chdwell_time = cpu_to_le16(maxact_chdw_msec);
drivers/net/wireless/ath/ath6kl/wmi.c
2110
sc->pas_chdwell_time = cpu_to_le16(pas_chdw_msec);
drivers/net/wireless/ath/ath6kl/wmi.c
2111
sc->short_scan_ratio = short_scan_ratio;
drivers/net/wireless/ath/ath6kl/wmi.c
2112
sc->scan_ctrl_flags = scan_ctrl_flag;
drivers/net/wireless/ath/ath6kl/wmi.c
2113
sc->max_dfsch_act_time = cpu_to_le32(max_dfsch_act_time);
drivers/net/wireless/ath/ath6kl/wmi.c
2114
sc->maxact_scan_per_ssid = cpu_to_le16(maxact_scan_per_ssid);
drivers/net/wireless/ath/ath9k/ahb.c
100
ret = ath9k_init_device(dev_id, sc, &ath_ahb_bus_ops);
drivers/net/wireless/ath/ath9k/ahb.c
106
ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/ahb.c
114
free_irq(irq, sc);
drivers/net/wireless/ath/ath9k/ahb.c
125
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/ahb.c
127
ath9k_deinit_device(sc);
drivers/net/wireless/ath/ath9k/ahb.c
128
free_irq(sc->irq, sc);
drivers/net/wireless/ath/ath9k/ahb.c
129
ieee80211_free_hw(sc->hw);
drivers/net/wireless/ath/ath9k/ahb.c
59
struct ath_softc *sc;
drivers/net/wireless/ath/ath9k/ahb.c
87
sc = hw->priv;
drivers/net/wireless/ath/ath9k/ahb.c
88
sc->hw = hw;
drivers/net/wireless/ath/ath9k/ahb.c
89
sc->dev = &pdev->dev;
drivers/net/wireless/ath/ath9k/ahb.c
90
sc->mem = mem;
drivers/net/wireless/ath/ath9k/ahb.c
91
sc->irq = irq;
drivers/net/wireless/ath/ath9k/ahb.c
93
ret = request_irq(irq, ath_isr, IRQF_SHARED, "ath9k", sc);
drivers/net/wireless/ath/ath9k/antenna.c
721
void ath_ant_comb_scan(struct ath_softc *sc, struct ath_rx_status *rs)
drivers/net/wireless/ath/ath9k/antenna.c
724
struct ath_ant_comb *antcomb = &sc->ant_comb;
drivers/net/wireless/ath/ath9k/antenna.c
758
ANT_STAT_INC(sc, ANT_MAIN, recv_cnt);
drivers/net/wireless/ath/ath9k/antenna.c
759
ANT_LNA_INC(sc, ANT_MAIN, rx_ant_conf);
drivers/net/wireless/ath/ath9k/antenna.c
761
ANT_STAT_INC(sc, ANT_ALT, recv_cnt);
drivers/net/wireless/ath/ath9k/antenna.c
762
ANT_LNA_INC(sc, ANT_ALT, rx_ant_conf);
drivers/net/wireless/ath/ath9k/antenna.c
781
ath9k_hw_antdiv_comb_conf_get(sc->sc_ah, &div_ant_conf);
drivers/net/wireless/ath/ath9k/antenna.c
840
ath9k_hw_antdiv_comb_conf_set(sc->sc_ah, &div_ant_conf);
drivers/net/wireless/ath/ath9k/antenna.c
841
ath9k_debug_stat_ant(sc, &div_ant_conf, main_rssi_avg, alt_rssi_avg);
drivers/net/wireless/ath/ath9k/ath9k.h
1088
void ath9k_tx99_init_debug(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
1089
int ath9k_tx99_send(struct ath_softc *sc, struct sk_buff *skb,
drivers/net/wireless/ath/ath9k/ath9k.h
1092
static inline void ath9k_tx99_init_debug(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
1095
static inline int ath9k_tx99_send(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
1107
void ath9k_rng_start(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
1108
void ath9k_rng_stop(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
1110
static inline void ath9k_rng_start(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
1114
static inline void ath9k_rng_stop(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
1128
int ath_reset(struct ath_softc *sc, struct ath9k_channel *hchan);
drivers/net/wireless/ath/ath9k/ath9k.h
1129
void ath_cancel_work(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
1130
void ath_restart_work(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
1131
int ath9k_init_device(u16 devid, struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
1133
void ath9k_deinit_device(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
1134
u8 ath_txchainmask_reduction(struct ath_softc *sc, u8 chainmask, u32 rate);
drivers/net/wireless/ath/ath9k/ath9k.h
1135
void ath_start_rfkill_poll(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
1137
void ath9k_ps_wakeup(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
1138
void ath9k_ps_restore(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
252
void ath_tx_queue_tid(struct ath_softc *sc, struct ath_atx_tid *tid);
drivers/net/wireless/ath/ath9k/ath9k.h
255
struct ath_softc *sc;
drivers/net/wireless/ath/ath9k/ath9k.h
447
for (ctx = &sc->chanctx[0]; \
drivers/net/wireless/ath/ath9k/ath9k.h
448
ctx <= &sc->chanctx[ARRAY_SIZE(sc->chanctx) - 1]; \
drivers/net/wireless/ath/ath9k/ath9k.h
451
void ath_chanctx_init(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
452
void ath_chanctx_set_channel(struct ath_softc *sc, struct ath_chanctx *ctx,
drivers/net/wireless/ath/ath9k/ath9k.h
466
void ath9k_init_channel_context(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
467
void ath9k_offchannel_init(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
468
void ath9k_deinit_channel_context(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
469
int ath9k_init_p2p(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
470
void ath9k_deinit_p2p(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
471
void ath9k_p2p_remove_vif(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
473
void ath9k_p2p_beacon_sync(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
474
void ath9k_p2p_bss_info_changed(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
476
void ath9k_beacon_add_noa(struct ath_softc *sc, struct ath_vif *avp,
drivers/net/wireless/ath/ath9k/ath9k.h
479
void ath9k_chanctx_wake_queues(struct ath_softc *sc, struct ath_chanctx *ctx);
drivers/net/wireless/ath/ath9k/ath9k.h
480
void ath9k_chanctx_stop_queues(struct ath_softc *sc, struct ath_chanctx *ctx);
drivers/net/wireless/ath/ath9k/ath9k.h
481
void ath_chanctx_check_active(struct ath_softc *sc, struct ath_chanctx *ctx);
drivers/net/wireless/ath/ath9k/ath9k.h
483
void ath_chanctx_beacon_recv_ev(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
485
void ath_chanctx_beacon_sent_ev(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
487
void ath_chanctx_event(struct ath_softc *sc, struct ieee80211_vif *vif,
drivers/net/wireless/ath/ath9k/ath9k.h
489
void ath_chanctx_set_next(struct ath_softc *sc, bool force);
drivers/net/wireless/ath/ath9k/ath9k.h
490
void ath_offchannel_next(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
491
void ath_scan_complete(struct ath_softc *sc, bool abort);
drivers/net/wireless/ath/ath9k/ath9k.h
492
void ath_roc_complete(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
494
struct ath_chanctx* ath_is_go_chanctx_present(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
505
static inline void ath9k_init_channel_context(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
508
static inline void ath9k_offchannel_init(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
511
static inline void ath9k_deinit_channel_context(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
514
static inline void ath_chanctx_beacon_recv_ev(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
518
static inline void ath_chanctx_beacon_sent_ev(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
522
static inline void ath_chanctx_event(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
527
static inline int ath9k_init_p2p(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
531
static inline void ath9k_deinit_p2p(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
534
static inline void ath9k_p2p_remove_vif(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
538
static inline void ath9k_p2p_beacon_sync(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
541
static inline void ath9k_p2p_bss_info_changed(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
545
static inline void ath9k_beacon_add_noa(struct ath_softc *sc, struct ath_vif *avp,
drivers/net/wireless/ath/ath9k/ath9k.h
549
static inline void ath9k_p2p_ps_timer(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
552
static inline void ath9k_chanctx_wake_queues(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
556
static inline void ath9k_chanctx_stop_queues(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
560
static inline void ath_chanctx_check_active(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
567
static inline void ath_txq_lock(struct ath_softc *sc, struct ath_txq *txq)
drivers/net/wireless/ath/ath9k/ath9k.h
571
static inline void ath_txq_unlock(struct ath_softc *sc, struct ath_txq *txq)
drivers/net/wireless/ath/ath9k/ath9k.h
576
void ath_startrecv(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
577
bool ath_stoprecv(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
578
u32 ath_calcrxfilter(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
579
int ath_rx_init(struct ath_softc *sc, int nbufs);
drivers/net/wireless/ath/ath9k/ath9k.h
580
void ath_rx_cleanup(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
581
int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp);
drivers/net/wireless/ath/ath9k/ath9k.h
582
struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype);
drivers/net/wireless/ath/ath9k/ath9k.h
583
void ath_txq_unlock_complete(struct ath_softc *sc, struct ath_txq *txq);
drivers/net/wireless/ath/ath9k/ath9k.h
584
void ath_tx_cleanupq(struct ath_softc *sc, struct ath_txq *txq);
drivers/net/wireless/ath/ath9k/ath9k.h
585
bool ath_drain_all_txq(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
586
void ath_draintxq(struct ath_softc *sc, struct ath_txq *txq);
drivers/net/wireless/ath/ath9k/ath9k.h
587
void ath_tx_node_init(struct ath_softc *sc, struct ath_node *an);
drivers/net/wireless/ath/ath9k/ath9k.h
588
void ath_tx_node_cleanup(struct ath_softc *sc, struct ath_node *an);
drivers/net/wireless/ath/ath9k/ath9k.h
589
void ath_txq_schedule(struct ath_softc *sc, struct ath_txq *txq);
drivers/net/wireless/ath/ath9k/ath9k.h
590
void ath_txq_schedule_all(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
591
int ath_tx_init(struct ath_softc *sc, int nbufs);
drivers/net/wireless/ath/ath9k/ath9k.h
592
int ath_txq_update(struct ath_softc *sc, int qnum,
drivers/net/wireless/ath/ath9k/ath9k.h
596
void ath_update_max_aggr_framelen(struct ath_softc *sc, int queue, int txop);
drivers/net/wireless/ath/ath9k/ath9k.h
602
void ath_tx_tasklet(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
603
void ath_tx_edma_tasklet(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
604
int ath_tx_aggr_start(struct ath_softc *sc, struct ieee80211_sta *sta,
drivers/net/wireless/ath/ath9k/ath9k.h
606
void ath_tx_aggr_stop(struct ath_softc *sc, struct ieee80211_sta *sta, u16 tid);
drivers/net/wireless/ath/ath9k/ath9k.h
608
void ath_tx_aggr_wakeup(struct ath_softc *sc, struct ath_node *an);
drivers/net/wireless/ath/ath9k/ath9k.h
609
void ath_tx_aggr_sleep(struct ieee80211_sta *sta, struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
673
void ath9k_calculate_iter_data(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
676
void ath9k_calculate_summary_state(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
678
void ath9k_set_txpower(struct ath_softc *sc, struct ieee80211_vif *vif);
drivers/net/wireless/ath/ath9k/ath9k.h
718
void ath9k_beacon_config(struct ath_softc *sc, struct ieee80211_vif *main_vif,
drivers/net/wireless/ath/ath9k/ath9k.h
720
void ath9k_beacon_assign_slot(struct ath_softc *sc, struct ieee80211_vif *vif);
drivers/net/wireless/ath/ath9k/ath9k.h
721
void ath9k_beacon_remove_slot(struct ath_softc *sc, struct ieee80211_vif *vif);
drivers/net/wireless/ath/ath9k/ath9k.h
722
void ath9k_beacon_ensure_primary_slot(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
723
void ath9k_set_beacon(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
724
bool ath9k_csa_is_finished(struct ath_softc *sc, struct ieee80211_vif *vif);
drivers/net/wireless/ath/ath9k/ath9k.h
725
void ath9k_csa_update(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
744
bool ath_hw_check(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
748
void ath_start_ani(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
749
void ath_stop_ani(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
750
void ath_check_ani(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
751
int ath_update_survey_stats(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
752
void ath_update_survey_nf(struct ath_softc *sc, int channel);
drivers/net/wireless/ath/ath9k/ath9k.h
753
void ath9k_queue_reset(struct ath_softc *sc, enum ath_reset_type type);
drivers/net/wireless/ath/ath9k/ath9k.h
77
int ath_descdma_setup(struct ath_softc *sc, struct ath_descdma *dd,
drivers/net/wireless/ath/ath9k/ath9k.h
792
int ath9k_init_btcoex(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
793
void ath9k_deinit_btcoex(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
794
void ath9k_start_btcoex(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
795
void ath9k_stop_btcoex(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
796
void ath9k_btcoex_timer_resume(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
797
void ath9k_btcoex_timer_pause(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
798
void ath9k_btcoex_handle_interrupt(struct ath_softc *sc, u32 status);
drivers/net/wireless/ath/ath9k/ath9k.h
799
u16 ath9k_btcoex_aggr_limit(struct ath_softc *sc, u32 max_4ms_framelen);
drivers/net/wireless/ath/ath9k/ath9k.h
800
void ath9k_btcoex_stop_gen_timer(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
801
int ath9k_dump_btcoex(struct ath_softc *sc, u8 *buf, u32 size);
drivers/net/wireless/ath/ath9k/ath9k.h
803
static inline int ath9k_init_btcoex(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
807
static inline void ath9k_deinit_btcoex(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
810
static inline void ath9k_start_btcoex(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
813
static inline void ath9k_stop_btcoex(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
816
static inline void ath9k_btcoex_handle_interrupt(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
820
static inline u16 ath9k_btcoex_aggr_limit(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/ath9k.h
825
static inline void ath9k_btcoex_stop_gen_timer(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
828
static inline int ath9k_dump_btcoex(struct ath_softc *sc, u8 *buf, u32 size)
drivers/net/wireless/ath/ath9k/ath9k.h
845
void ath_init_leds(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
846
void ath_deinit_leds(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/ath9k.h
848
static inline void ath_init_leds(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
85
#define ATH_TXQ_SETUP(sc, i) ((sc)->tx.txqsetup & (1<<i))
drivers/net/wireless/ath/ath9k/ath9k.h
852
static inline void ath_deinit_leds(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/ath9k.h
945
void ath_ant_comb_scan(struct ath_softc *sc, struct ath_rx_status *rs);
drivers/net/wireless/ath/ath9k/beacon.c
103
info.qcu = sc->beacon.beaconq;
drivers/net/wireless/ath/ath9k/beacon.c
107
info.rates[0].ChSel = ath_txchainmask_reduction(sc, chainmask, rate);
drivers/net/wireless/ath/ath9k/beacon.c
115
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/beacon.c
116
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/beacon.c
120
struct ath_txq *cabq = sc->beacon.cabq;
drivers/net/wireless/ath/ath9k/beacon.c
131
dma_unmap_single(sc->dev, bf->bf_buf_addr,
drivers/net/wireless/ath/ath9k/beacon.c
153
ath9k_beacon_add_noa(sc, avp, skb);
drivers/net/wireless/ath/ath9k/beacon.c
155
bf->bf_buf_addr = dma_map_single(sc->dev, skb->data,
drivers/net/wireless/ath/ath9k/beacon.c
157
if (unlikely(dma_mapping_error(sc->dev, bf->bf_buf_addr))) {
drivers/net/wireless/ath/ath9k/beacon.c
180
if (sc->cur_chan->nvifs > 1) {
drivers/net/wireless/ath/ath9k/beacon.c
183
ath_draintxq(sc, cabq);
drivers/net/wireless/ath/ath9k/beacon.c
187
ath9k_beacon_setup(sc, vif, bf, info->control.rates[0].idx);
drivers/net/wireless/ath/ath9k/beacon.c
195
void ath9k_beacon_assign_slot(struct ath_softc *sc, struct ieee80211_vif *vif)
drivers/net/wireless/ath/ath9k/beacon.c
197
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/beacon.c
201
avp->av_bcbuf = list_first_entry(&sc->beacon.bbuf, struct ath_buf, list);
drivers/net/wireless/ath/ath9k/beacon.c
205
if (sc->beacon.bslot[slot] == NULL) {
drivers/net/wireless/ath/ath9k/beacon.c
211
sc->beacon.bslot[avp->av_bslot] = vif;
drivers/net/wireless/ath/ath9k/beacon.c
217
void ath9k_beacon_remove_slot(struct ath_softc *sc, struct ieee80211_vif *vif)
drivers/net/wireless/ath/ath9k/beacon.c
219
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/beacon.c
22
static void ath9k_reset_beacon_status(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/beacon.c
226
tasklet_disable(&sc->bcon_tasklet);
drivers/net/wireless/ath/ath9k/beacon.c
230
dma_unmap_single(sc->dev, bf->bf_buf_addr,
drivers/net/wireless/ath/ath9k/beacon.c
238
sc->beacon.bslot[avp->av_bslot] = NULL;
drivers/net/wireless/ath/ath9k/beacon.c
239
list_add_tail(&bf->list, &sc->beacon.bbuf);
drivers/net/wireless/ath/ath9k/beacon.c
24
sc->beacon.tx_processed = false;
drivers/net/wireless/ath/ath9k/beacon.c
241
tasklet_enable(&sc->bcon_tasklet);
drivers/net/wireless/ath/ath9k/beacon.c
244
void ath9k_beacon_ensure_primary_slot(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/beacon.c
246
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/beacon.c
25
sc->beacon.tx_last = false;
drivers/net/wireless/ath/ath9k/beacon.c
254
tasklet_disable_in_atomic(&sc->bcon_tasklet);
drivers/net/wireless/ath/ath9k/beacon.c
258
if (sc->beacon.bslot[slot]) {
drivers/net/wireless/ath/ath9k/beacon.c
269
vif = sc->beacon.bslot[slot + first_slot];
drivers/net/wireless/ath/ath9k/beacon.c
270
sc->beacon.bslot[slot] = vif;
drivers/net/wireless/ath/ath9k/beacon.c
277
sc->beacon.bslot[slot] = NULL;
drivers/net/wireless/ath/ath9k/beacon.c
281
vif = sc->beacon.bslot[0];
drivers/net/wireless/ath/ath9k/beacon.c
295
if (sc->cur_chan == avp->chanctx) {
drivers/net/wireless/ath/ath9k/beacon.c
297
ath9k_hw_settsf64(sc->sc_ah, avp->chanctx->tsf_val + offset);
drivers/net/wireless/ath/ath9k/beacon.c
303
tasklet_enable(&sc->bcon_tasklet);
drivers/net/wireless/ath/ath9k/beacon.c
306
static int ath9k_beacon_choose_slot(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/beacon.c
308
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/beacon.c
309
struct ath_beacon_config *cur_conf = &sc->cur_chan->beacon;
drivers/net/wireless/ath/ath9k/beacon.c
315
if (sc->sc_ah->opmode != NL80211_IFTYPE_AP &&
drivers/net/wireless/ath/ath9k/beacon.c
316
sc->sc_ah->opmode != NL80211_IFTYPE_MESH_POINT) {
drivers/net/wireless/ath/ath9k/beacon.c
318
ath9k_hw_gettsf64(sc->sc_ah));
drivers/net/wireless/ath/ath9k/beacon.c
323
tsf = ath9k_hw_gettsf64(sc->sc_ah);
drivers/net/wireless/ath/ath9k/beacon.c
324
tsf += TU_TO_USEC(sc->sc_ah->config.sw_beacon_response_time);
drivers/net/wireless/ath/ath9k/beacon.c
33
static void ath9k_beaconq_config(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/beacon.c
334
static void ath9k_set_tsfadjust(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/beacon.c
337
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/beacon.c
344
if (!sc->beacon.bslot[slot])
drivers/net/wireless/ath/ath9k/beacon.c
347
avp = (void *)sc->beacon.bslot[slot]->drv_priv;
drivers/net/wireless/ath/ath9k/beacon.c
35
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
363
bool ath9k_csa_is_finished(struct ath_softc *sc, struct ieee80211_vif *vif)
drivers/net/wireless/ath/ath9k/beacon.c
377
struct ath_softc *sc = data;
drivers/net/wireless/ath/ath9k/beacon.c
378
ath9k_csa_is_finished(sc, vif);
drivers/net/wireless/ath/ath9k/beacon.c
381
void ath9k_csa_update(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/beacon.c
383
ieee80211_iterate_active_interfaces_atomic(sc->hw,
drivers/net/wireless/ath/ath9k/beacon.c
385
ath9k_csa_update_vif, sc);
drivers/net/wireless/ath/ath9k/beacon.c
390
struct ath_softc *sc = from_tasklet(sc, t, bcon_tasklet);
drivers/net/wireless/ath/ath9k/beacon.c
391
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
40
ath9k_hw_get_txq_props(ah, sc->beacon.beaconq, &qi);
drivers/net/wireless/ath/ath9k/beacon.c
411
if (ath9k_hw_numtxpending(ah, sc->beacon.beaconq) != 0) {
drivers/net/wireless/ath/ath9k/beacon.c
412
sc->beacon.bmisscnt++;
drivers/net/wireless/ath/ath9k/beacon.c
42
if (sc->sc_ah->opmode == NL80211_IFTYPE_AP ||
drivers/net/wireless/ath/ath9k/beacon.c
422
if (!ath_hw_check(sc))
drivers/net/wireless/ath/ath9k/beacon.c
425
if (sc->beacon.bmisscnt < BSTUCK_THRESH * sc->nbcnvifs) {
drivers/net/wireless/ath/ath9k/beacon.c
428
sc->beacon.bmisscnt);
drivers/net/wireless/ath/ath9k/beacon.c
429
ath9k_hw_stop_dma_queue(ah, sc->beacon.beaconq);
drivers/net/wireless/ath/ath9k/beacon.c
43
sc->sc_ah->opmode == NL80211_IFTYPE_MESH_POINT) {
drivers/net/wireless/ath/ath9k/beacon.c
430
if (sc->beacon.bmisscnt > 3)
drivers/net/wireless/ath/ath9k/beacon.c
432
} else if (sc->beacon.bmisscnt >= BSTUCK_THRESH) {
drivers/net/wireless/ath/ath9k/beacon.c
434
sc->beacon.bmisscnt = 0;
drivers/net/wireless/ath/ath9k/beacon.c
435
ath9k_queue_reset(sc, RESET_TYPE_BEACON_STUCK);
drivers/net/wireless/ath/ath9k/beacon.c
441
slot = ath9k_beacon_choose_slot(sc);
drivers/net/wireless/ath/ath9k/beacon.c
442
vif = sc->beacon.bslot[slot];
drivers/net/wireless/ath/ath9k/beacon.c
447
ath_chanctx_beacon_sent_ev(sc,
drivers/net/wireless/ath/ath9k/beacon.c
451
if (ath9k_csa_is_finished(sc, vif))
drivers/net/wireless/ath/ath9k/beacon.c
459
ath_chanctx_event(sc, vif, ATH_CHANCTX_EVENT_BEACON_PREPARE);
drivers/net/wireless/ath/ath9k/beacon.c
462
bf = ath9k_beacon_generate(sc->hw, vif);
drivers/net/wireless/ath/ath9k/beacon.c
464
if (sc->beacon.bmisscnt != 0) {
drivers/net/wireless/ath/ath9k/beacon.c
466
sc->beacon.bmisscnt);
drivers/net/wireless/ath/ath9k/beacon.c
467
sc->beacon.bmisscnt = 0;
drivers/net/wireless/ath/ath9k/beacon.c
486
if (sc->beacon.updateslot == UPDATE) {
drivers/net/wireless/ath/ath9k/beacon.c
487
sc->beacon.updateslot = COMMIT;
drivers/net/wireless/ath/ath9k/beacon.c
488
sc->beacon.slotupdate = slot;
drivers/net/wireless/ath/ath9k/beacon.c
489
} else if (sc->beacon.updateslot == COMMIT &&
drivers/net/wireless/ath/ath9k/beacon.c
490
sc->beacon.slotupdate == slot) {
drivers/net/wireless/ath/ath9k/beacon.c
491
ah->slottime = sc->beacon.slottime;
drivers/net/wireless/ath/ath9k/beacon.c
493
sc->beacon.updateslot = OK;
drivers/net/wireless/ath/ath9k/beacon.c
497
ath9k_reset_beacon_status(sc);
drivers/net/wireless/ath/ath9k/beacon.c
50
txq = sc->tx.txq_map[IEEE80211_AC_BE];
drivers/net/wireless/ath/ath9k/beacon.c
503
ath9k_hw_puttxbuf(ah, sc->beacon.beaconq, bf->bf_daddr);
drivers/net/wireless/ath/ath9k/beacon.c
506
ath9k_hw_txstart(ah, sc->beacon.beaconq);
drivers/net/wireless/ath/ath9k/beacon.c
513
static void ath9k_beacon_init(struct ath_softc *sc, u32 nexttbtt,
drivers/net/wireless/ath/ath9k/beacon.c
516
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
519
ath9k_beaconq_config(sc);
drivers/net/wireless/ath/ath9k/beacon.c
522
sc->beacon.bmisscnt = 0;
drivers/net/wireless/ath/ath9k/beacon.c
527
static void ath9k_beacon_stop(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/beacon.c
529
ath9k_hw_disable_interrupts(sc->sc_ah);
drivers/net/wireless/ath/ath9k/beacon.c
530
sc->sc_ah->imask &= ~(ATH9K_INT_SWBA | ATH9K_INT_BMISS);
drivers/net/wireless/ath/ath9k/beacon.c
531
sc->beacon.bmisscnt = 0;
drivers/net/wireless/ath/ath9k/beacon.c
532
ath9k_hw_set_interrupts(sc->sc_ah);
drivers/net/wireless/ath/ath9k/beacon.c
533
ath9k_hw_enable_interrupts(sc->sc_ah);
drivers/net/wireless/ath/ath9k/beacon.c
541
static void ath9k_beacon_config_ap(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/beacon.c
544
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
547
ath9k_beacon_init(sc, conf->nexttbtt, conf->intval);
drivers/net/wireless/ath/ath9k/beacon.c
566
static void ath9k_beacon_config_adhoc(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/beacon.c
569
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
572
ath9k_reset_beacon_status(sc);
drivers/net/wireless/ath/ath9k/beacon.c
576
ath9k_beacon_init(sc, conf->nexttbtt, conf->intval);
drivers/net/wireless/ath/ath9k/beacon.c
586
static void ath9k_cache_beacon_config(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/beacon.c
591
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/beacon.c
60
if (!ath9k_hw_set_txq_props(ah, sc->beacon.beaconq, &qi)) {
drivers/net/wireless/ath/ath9k/beacon.c
622
ath9k_set_tsfadjust(sc, cur_conf);
drivers/net/wireless/ath/ath9k/beacon.c
625
void ath9k_beacon_config(struct ath_softc *sc, struct ieee80211_vif *main_vif,
drivers/net/wireless/ath/ath9k/beacon.c
628
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
63
ath9k_hw_resettxqueue(ah, sc->beacon.beaconq);
drivers/net/wireless/ath/ath9k/beacon.c
639
ath9k_beacon_stop(sc);
drivers/net/wireless/ath/ath9k/beacon.c
652
if (sc->sc_ah->opmode == NL80211_IFTYPE_STATION) {
drivers/net/wireless/ath/ath9k/beacon.c
653
ath9k_cache_beacon_config(sc, ctx, main_vif);
drivers/net/wireless/ath/ath9k/beacon.c
655
ath9k_set_beacon(sc);
drivers/net/wireless/ath/ath9k/beacon.c
661
ath9k_cache_beacon_config(sc, ctx, main_vif);
drivers/net/wireless/ath/ath9k/beacon.c
673
if (sc->sc_ah->opmode == NL80211_IFTYPE_ADHOC &&
drivers/net/wireless/ath/ath9k/beacon.c
675
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/beacon.c
676
sc->ps_flags |= PS_BEACON_SYNC | PS_WAIT_FOR_BEACON;
drivers/net/wireless/ath/ath9k/beacon.c
677
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/beacon.c
687
ath9k_set_beacon(sc);
drivers/net/wireless/ath/ath9k/beacon.c
690
ath9k_beacon_stop(sc);
drivers/net/wireless/ath/ath9k/beacon.c
694
ath9k_beacon_stop(sc);
drivers/net/wireless/ath/ath9k/beacon.c
698
void ath9k_set_beacon(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/beacon.c
700
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/beacon.c
701
struct ath_beacon_config *cur_conf = &sc->cur_chan->beacon;
drivers/net/wireless/ath/ath9k/beacon.c
703
switch (sc->sc_ah->opmode) {
drivers/net/wireless/ath/ath9k/beacon.c
706
ath9k_beacon_config_ap(sc, cur_conf);
drivers/net/wireless/ath/ath9k/beacon.c
709
ath9k_beacon_config_adhoc(sc, cur_conf);
drivers/net/wireless/ath/ath9k/beacon.c
712
ath9k_beacon_config_sta(sc->sc_ah, cur_conf);
drivers/net/wireless/ath/ath9k/beacon.c
72
static void ath9k_beacon_setup(struct ath_softc *sc, struct ieee80211_vif *vif,
drivers/net/wireless/ath/ath9k/beacon.c
76
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
83
sband = &common->sbands[sc->cur_chandef.chan->band];
drivers/net/wireless/ath/ath9k/channel.c
1008
if (!ieee80211_tx_prepare_skb(sc->hw, vif, skb, band, NULL))
drivers/net/wireless/ath/ath9k/channel.c
1011
txctl.txq = sc->tx.txq_map[IEEE80211_AC_VO];
drivers/net/wireless/ath/ath9k/channel.c
1012
if (ath_tx_start(sc->hw, skb, &txctl))
drivers/net/wireless/ath/ath9k/channel.c
1018
ieee80211_free_txskb(sc->hw, skb);
drivers/net/wireless/ath/ath9k/channel.c
1021
static void ath_scan_channel_start(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
1023
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
1024
struct cfg80211_scan_request *req = sc->offchannel.scan_req;
drivers/net/wireless/ath/ath9k/channel.c
1027
if (!(sc->cur_chan->chandef.chan->flags & IEEE80211_CHAN_NO_IR) &&
drivers/net/wireless/ath/ath9k/channel.c
103
void ath_chanctx_init(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
1030
ath_scan_send_probe(sc, &req->ssids[i]);
drivers/net/wireless/ath/ath9k/channel.c
1037
sc->offchannel.state = ATH_OFFCHANNEL_PROBE_WAIT;
drivers/net/wireless/ath/ath9k/channel.c
1038
mod_timer(&sc->offchannel.timer, jiffies + sc->offchannel.duration);
drivers/net/wireless/ath/ath9k/channel.c
1043
struct ath_softc *sc = timer_container_of(sc, t, sched.timer);
drivers/net/wireless/ath/ath9k/channel.c
1044
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
1049
ath_chanctx_event(sc, NULL, ATH_CHANCTX_EVENT_TSF_TIMER);
drivers/net/wireless/ath/ath9k/channel.c
1054
struct ath_softc *sc = timer_container_of(sc, t, offchannel.timer);
drivers/net/wireless/ath/ath9k/channel.c
1056
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
1059
__func__, offchannel_state_string(sc->offchannel.state));
drivers/net/wireless/ath/ath9k/channel.c
106
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
1061
switch (sc->offchannel.state) {
drivers/net/wireless/ath/ath9k/channel.c
1063
if (!sc->offchannel.scan_req)
drivers/net/wireless/ath/ath9k/channel.c
1067
ctx = ath_chanctx_get_oper_chan(sc, true);
drivers/net/wireless/ath/ath9k/channel.c
1073
sc->offchannel.state = ATH_OFFCHANNEL_SUSPEND;
drivers/net/wireless/ath/ath9k/channel.c
1074
ath_chanctx_switch(sc, ctx, NULL);
drivers/net/wireless/ath/ath9k/channel.c
1075
mod_timer(&sc->offchannel.timer, jiffies + HZ / 10);
drivers/net/wireless/ath/ath9k/channel.c
1080
if (!sc->offchannel.scan_req)
drivers/net/wireless/ath/ath9k/channel.c
1083
ath_scan_next_channel(sc);
drivers/net/wireless/ath/ath9k/channel.c
1087
sc->offchannel.state = ATH_OFFCHANNEL_ROC_DONE;
drivers/net/wireless/ath/ath9k/channel.c
1088
ath_roc_complete(sc, ATH_ROC_COMPLETE_EXPIRE);
drivers/net/wireless/ath/ath9k/channel.c
1096
ath_chanctx_send_vif_ps_frame(struct ath_softc *sc, struct ath_vif *avp,
drivers/net/wireless/ath/ath9k/channel.c
1104
int band = sc->cur_chan->chandef.chan->band;
drivers/net/wireless/ath/ath9k/channel.c
1111
skb = ieee80211_nullfunc_get(sc->hw, vif, -1, false);
drivers/net/wireless/ath/ath9k/channel.c
1122
if (!ieee80211_tx_prepare_skb(sc->hw, vif, skb, band, &sta))
drivers/net/wireless/ath/ath9k/channel.c
1130
txctl.txq = sc->tx.txq_map[IEEE80211_AC_VO];
drivers/net/wireless/ath/ath9k/channel.c
1132
if (ath_tx_start(sc->hw, skb, &txctl)) {
drivers/net/wireless/ath/ath9k/channel.c
1133
ieee80211_free_txskb(sc->hw, skb);
drivers/net/wireless/ath/ath9k/channel.c
1141
ath_chanctx_send_ps_frame(struct ath_softc *sc, bool powersave)
drivers/net/wireless/ath/ath9k/channel.c
1147
list_for_each_entry(avp, &sc->cur_chan->vifs, list) {
drivers/net/wireless/ath/ath9k/channel.c
1148
if (ath_chanctx_send_vif_ps_frame(sc, avp, powersave))
drivers/net/wireless/ath/ath9k/channel.c
1156
static bool ath_chanctx_defer_switch(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
1158
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
1160
if (sc->cur_chan == &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/channel.c
1163
switch (sc->sched.state) {
drivers/net/wireless/ath/ath9k/channel.c
1167
if (!sc->cur_chan->switch_after_beacon)
drivers/net/wireless/ath/ath9k/channel.c
117
ctx = &sc->chanctx[i];
drivers/net/wireless/ath/ath9k/channel.c
1173
sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON;
drivers/net/wireless/ath/ath9k/channel.c
1182
static void ath_offchannel_channel_change(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
1184
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
1187
__func__, offchannel_state_string(sc->offchannel.state));
drivers/net/wireless/ath/ath9k/channel.c
1189
switch (sc->offchannel.state) {
drivers/net/wireless/ath/ath9k/channel.c
1191
if (!sc->offchannel.scan_req)
drivers/net/wireless/ath/ath9k/channel.c
1194
if (sc->cur_chan->chandef.chan !=
drivers/net/wireless/ath/ath9k/channel.c
1195
sc->offchannel.chan.chandef.chan)
drivers/net/wireless/ath/ath9k/channel.c
1198
ath_scan_channel_start(sc);
drivers/net/wireless/ath/ath9k/channel.c
1201
if (!sc->offchannel.scan_req)
drivers/net/wireless/ath/ath9k/channel.c
1204
ath_scan_complete(sc, false);
drivers/net/wireless/ath/ath9k/channel.c
1207
if (sc->cur_chan != &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/channel.c
1210
sc->offchannel.state = ATH_OFFCHANNEL_ROC_WAIT;
drivers/net/wireless/ath/ath9k/channel.c
1211
mod_timer(&sc->offchannel.timer,
drivers/net/wireless/ath/ath9k/channel.c
1212
jiffies + sc->offchannel.duration);
drivers/net/wireless/ath/ath9k/channel.c
1213
ieee80211_ready_on_channel(sc->hw);
drivers/net/wireless/ath/ath9k/channel.c
1222
void ath_chanctx_set_next(struct ath_softc *sc, bool force)
drivers/net/wireless/ath/ath9k/channel.c
1224
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
1231
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
1232
if (!sc->next_chan) {
drivers/net/wireless/ath/ath9k/channel.c
1233
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
1237
if (!force && ath_chanctx_defer_switch(sc)) {
drivers/net/wireless/ath/ath9k/channel.c
1238
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
1245
sc->cur_chan->chandef.center_freq1,
drivers/net/wireless/ath/ath9k/channel.c
1246
sc->next_chan->chandef.center_freq1);
drivers/net/wireless/ath/ath9k/channel.c
1248
if (sc->cur_chan != sc->next_chan) {
drivers/net/wireless/ath/ath9k/channel.c
1251
sc->cur_chan->chandef.center_freq1);
drivers/net/wireless/ath/ath9k/channel.c
1252
sc->cur_chan->stopped = true;
drivers/net/wireless/ath/ath9k/channel.c
1253
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
1255
if (sc->next_chan == &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
1260
ath9k_chanctx_stop_queues(sc, sc->cur_chan);
drivers/net/wireless/ath/ath9k/channel.c
1263
__ath9k_flush(sc->hw, ~0, true, false, false);
drivers/net/wireless/ath/ath9k/channel.c
1265
if (ath_chanctx_send_ps_frame(sc, true))
drivers/net/wireless/ath/ath9k/channel.c
1266
__ath9k_flush(sc->hw, BIT(IEEE80211_AC_VO),
drivers/net/wireless/ath/ath9k/channel.c
1270
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
1272
if (sc->cur_chan != &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
1273
sc->cur_chan->tsf_ts = ktime_get_raw();
drivers/net/wireless/ath/ath9k/channel.c
1274
sc->cur_chan->tsf_val = ath9k_hw_gettsf64(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
1277
old_ctx = sc->cur_chan;
drivers/net/wireless/ath/ath9k/channel.c
1278
sc->cur_chan = sc->next_chan;
drivers/net/wireless/ath/ath9k/channel.c
1279
sc->cur_chan->stopped = false;
drivers/net/wireless/ath/ath9k/channel.c
1280
sc->next_chan = NULL;
drivers/net/wireless/ath/ath9k/channel.c
1282
if (!sc->sched.offchannel_pending)
drivers/net/wireless/ath/ath9k/channel.c
1283
sc->sched.offchannel_duration = 0;
drivers/net/wireless/ath/ath9k/channel.c
1285
if (sc->sched.state != ATH_CHANCTX_STATE_FORCE_ACTIVE)
drivers/net/wireless/ath/ath9k/channel.c
1286
sc->sched.state = ATH_CHANCTX_STATE_IDLE;
drivers/net/wireless/ath/ath9k/channel.c
1288
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
1290
if (sc->sc_ah->chip_fullsleep ||
drivers/net/wireless/ath/ath9k/channel.c
1291
memcmp(&sc->cur_chandef, &sc->cur_chan->chandef,
drivers/net/wireless/ath/ath9k/channel.c
1292
sizeof(sc->cur_chandef))) {
drivers/net/wireless/ath/ath9k/channel.c
1295
__func__, sc->cur_chan->chandef.center_freq1);
drivers/net/wireless/ath/ath9k/channel.c
1296
ath_set_channel(sc);
drivers/net/wireless/ath/ath9k/channel.c
1298
sc->sched.channel_switch_time =
drivers/net/wireless/ath/ath9k/channel.c
130
void ath_chanctx_set_channel(struct ath_softc *sc, struct ath_chanctx *ctx,
drivers/net/wireless/ath/ath9k/channel.c
1308
ath9k_chanctx_wake_queues(sc, old_ctx);
drivers/net/wireless/ath/ath9k/channel.c
1311
ath_chanctx_send_ps_frame(sc, false);
drivers/net/wireless/ath/ath9k/channel.c
1313
ath_offchannel_channel_change(sc);
drivers/net/wireless/ath/ath9k/channel.c
1314
ath_chanctx_event(sc, NULL, ATH_CHANCTX_EVENT_SWITCH);
drivers/net/wireless/ath/ath9k/channel.c
1319
struct ath_softc *sc = container_of(work, struct ath_softc,
drivers/net/wireless/ath/ath9k/channel.c
1321
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/channel.c
1322
ath_chanctx_set_next(sc, false);
drivers/net/wireless/ath/ath9k/channel.c
1323
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/channel.c
1326
void ath9k_offchannel_init(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
1329
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
133
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
1340
ctx = &sc->offchannel.chan;
drivers/net/wireless/ath/ath9k/channel.c
1351
sc->offchannel.chan.offchannel = true;
drivers/net/wireless/ath/ath9k/channel.c
1354
void ath9k_init_channel_context(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
1356
INIT_WORK(&sc->chanctx_work, ath_chanctx_work);
drivers/net/wireless/ath/ath9k/channel.c
1358
timer_setup(&sc->offchannel.timer, ath_offchannel_timer, 0);
drivers/net/wireless/ath/ath9k/channel.c
1359
timer_setup(&sc->sched.timer, ath_chanctx_timer, 0);
drivers/net/wireless/ath/ath9k/channel.c
136
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
1361
init_completion(&sc->go_beacon);
drivers/net/wireless/ath/ath9k/channel.c
1364
void ath9k_deinit_channel_context(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
1366
cancel_work_sync(&sc->chanctx_work);
drivers/net/wireless/ath/ath9k/channel.c
1378
void ath9k_chanctx_stop_queues(struct ath_softc *sc, struct ath_chanctx *ctx)
drivers/net/wireless/ath/ath9k/channel.c
1380
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/channel.c
1383
if (ctx == &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
1384
ieee80211_stop_queue(sc->hw,
drivers/net/wireless/ath/ath9k/channel.c
1385
sc->hw->offchannel_tx_hw_queue);
drivers/net/wireless/ath/ath9k/channel.c
1388
ieee80211_stop_queue(sc->hw,
drivers/net/wireless/ath/ath9k/channel.c
139
cur_chan = sc->cur_chan == ctx;
drivers/net/wireless/ath/ath9k/channel.c
1393
ieee80211_stop_queue(sc->hw, sc->hw->queues - 2);
drivers/net/wireless/ath/ath9k/channel.c
1397
void ath9k_chanctx_wake_queues(struct ath_softc *sc, struct ath_chanctx *ctx)
drivers/net/wireless/ath/ath9k/channel.c
1399
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/channel.c
140
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
1402
if (ctx == &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
1403
ieee80211_wake_queue(sc->hw,
drivers/net/wireless/ath/ath9k/channel.c
1404
sc->hw->offchannel_tx_hw_queue);
drivers/net/wireless/ath/ath9k/channel.c
1407
ieee80211_wake_queue(sc->hw,
drivers/net/wireless/ath/ath9k/channel.c
1412
ieee80211_wake_queue(sc->hw, sc->hw->queues - 2);
drivers/net/wireless/ath/ath9k/channel.c
1419
static void ath9k_update_p2p_ps_timer(struct ath_softc *sc, struct ath_vif *avp)
drivers/net/wireless/ath/ath9k/channel.c
1421
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
1422
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/channel.c
1428
ath9k_hw_gen_timer_stop(ah, sc->p2p_ps_timer);
drivers/net/wireless/ath/ath9k/channel.c
1430
tsf = ath9k_hw_gettsf32(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
1445
ath9k_hw_gen_timer_start(ah, sc->p2p_ps_timer, target_tsf, 1000000);
drivers/net/wireless/ath/ath9k/channel.c
1448
static void ath9k_update_p2p_ps(struct ath_softc *sc, struct ieee80211_vif *vif)
drivers/net/wireless/ath/ath9k/channel.c
1453
if (!sc->p2p_ps_timer)
drivers/net/wireless/ath/ath9k/channel.c
1459
sc->p2p_ps_vif = avp;
drivers/net/wireless/ath/ath9k/channel.c
1461
if (sc->ps_flags & PS_BEACON_SYNC)
drivers/net/wireless/ath/ath9k/channel.c
1464
tsf = ath9k_hw_gettsf32(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
1466
ath9k_update_p2p_ps_timer(sc, avp);
drivers/net/wireless/ath/ath9k/channel.c
1469
static u8 ath9k_get_ctwin(struct ath_softc *sc, struct ath_vif *avp)
drivers/net/wireless/ath/ath9k/channel.c
1471
struct ath_beacon_config *cur_conf = &sc->cur_chan->beacon;
drivers/net/wireless/ath/ath9k/channel.c
148
ath_set_channel(sc);
drivers/net/wireless/ath/ath9k/channel.c
1493
void ath9k_beacon_add_noa(struct ath_softc *sc, struct ath_vif *avp,
drivers/net/wireless/ath/ath9k/channel.c
1523
noa->oppps_ctwindow = ath9k_get_ctwin(sc, avp);
drivers/net/wireless/ath/ath9k/channel.c
1529
u32 interval = TU_TO_USEC(sc->cur_chan->beacon.beacon_interval);
drivers/net/wireless/ath/ath9k/channel.c
1550
struct ath_softc *sc = priv;
drivers/net/wireless/ath/ath9k/channel.c
1551
struct ath_vif *avp = sc->p2p_ps_vif;
drivers/net/wireless/ath/ath9k/channel.c
1557
timer_delete_sync(&sc->sched.timer);
drivers/net/wireless/ath/ath9k/channel.c
1558
ath9k_hw_gen_timer_stop(sc->sc_ah, sc->p2p_ps_timer);
drivers/net/wireless/ath/ath9k/channel.c
1559
ath_chanctx_event(sc, NULL, ATH_CHANCTX_EVENT_TSF_TIMER);
drivers/net/wireless/ath/ath9k/channel.c
1561
if (!avp || avp->chanctx != sc->cur_chan)
drivers/net/wireless/ath/ath9k/channel.c
1564
tsf = ath9k_hw_gettsf32(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
157
struct ath_chanctx* ath_is_go_chanctx_present(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
1574
ath9k_update_p2p_ps_timer(sc, avp);
drivers/net/wireless/ath/ath9k/channel.c
1589
ath_tx_aggr_sleep(sta, sc, an);
drivers/net/wireless/ath/ath9k/channel.c
1591
ath_tx_aggr_wakeup(sc, an);
drivers/net/wireless/ath/ath9k/channel.c
1597
void ath9k_p2p_bss_info_changed(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/channel.c
1602
spin_lock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/channel.c
1603
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/channel.c
1604
ath9k_update_p2p_ps(sc, vif);
drivers/net/wireless/ath/ath9k/channel.c
1605
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/channel.c
1606
spin_unlock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/channel.c
1609
void ath9k_p2p_beacon_sync(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
1611
if (sc->p2p_ps_vif)
drivers/net/wireless/ath/ath9k/channel.c
1612
ath9k_update_p2p_ps(sc, sc->p2p_ps_vif->vif);
drivers/net/wireless/ath/ath9k/channel.c
1615
void ath9k_p2p_remove_vif(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/channel.c
1620
spin_lock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/channel.c
1621
if (avp == sc->p2p_ps_vif) {
drivers/net/wireless/ath/ath9k/channel.c
1622
sc->p2p_ps_vif = NULL;
drivers/net/wireless/ath/ath9k/channel.c
1623
ath9k_update_p2p_ps_timer(sc, NULL);
drivers/net/wireless/ath/ath9k/channel.c
1625
spin_unlock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/channel.c
1628
int ath9k_init_p2p(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
163
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
1630
sc->p2p_ps_timer = ath_gen_timer_alloc(sc->sc_ah, ath9k_p2p_ps_timer,
drivers/net/wireless/ath/ath9k/channel.c
1631
NULL, sc, AR_FIRST_NDP_TIMER);
drivers/net/wireless/ath/ath9k/channel.c
1632
if (!sc->p2p_ps_timer)
drivers/net/wireless/ath/ath9k/channel.c
1638
void ath9k_deinit_p2p(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
1640
if (sc->p2p_ps_timer)
drivers/net/wireless/ath/ath9k/channel.c
1641
ath_gen_timer_free(sc->sc_ah, sc->p2p_ps_timer);
drivers/net/wireless/ath/ath9k/channel.c
165
ath_for_each_chanctx(sc, ctx) {
drivers/net/wireless/ath/ath9k/channel.c
173
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
179
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
23
static int ath_set_channel(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
233
static u32 chanctx_event_delta(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
236
s64 ms = ktime_ms_delta(ts, sc->last_event_time);
drivers/net/wireless/ath/ath9k/channel.c
238
sc->last_event_time = ts;
drivers/net/wireless/ath/ath9k/channel.c
242
void ath_chanctx_check_active(struct ath_softc *sc, struct ath_chanctx *ctx)
drivers/net/wireless/ath/ath9k/channel.c
244
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
25
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/channel.c
253
if (ctx == &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
254
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
256
if (likely(sc->sched.channel_switch_time))
drivers/net/wireless/ath/ath9k/channel.c
258
usecs_to_jiffies(sc->sched.channel_switch_time);
drivers/net/wireless/ath/ath9k/channel.c
263
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
27
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/channel.c
29
struct cfg80211_chan_def *chandef = &sc->cur_chan->chandef;
drivers/net/wireless/ath/ath9k/channel.c
291
ath_for_each_chanctx(sc, ctx) {
drivers/net/wireless/ath/ath9k/channel.c
297
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
302
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
306
ictx->flush_timeout = usecs_to_jiffies(sc->sched.channel_switch_time);
drivers/net/wireless/ath/ath9k/channel.c
309
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
313
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
316
ath_chanctx_event(sc, NULL,
drivers/net/wireless/ath/ath9k/channel.c
322
ath_chanctx_get_next(struct ath_softc *sc, struct ath_chanctx *ctx)
drivers/net/wireless/ath/ath9k/channel.c
324
int idx = ctx - &sc->chanctx[0];
drivers/net/wireless/ath/ath9k/channel.c
326
return &sc->chanctx[!idx];
drivers/net/wireless/ath/ath9k/channel.c
329
static void ath_chanctx_adjust_tbtt_delta(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
336
beacon_int = TU_TO_USEC(sc->cur_chan->beacon.beacon_interval);
drivers/net/wireless/ath/ath9k/channel.c
338
cur = sc->cur_chan;
drivers/net/wireless/ath/ath9k/channel.c
339
prev = ath_chanctx_get_next(sc, cur);
drivers/net/wireless/ath/ath9k/channel.c
368
static void ath_chanctx_setup_timer(struct ath_softc *sc, u32 tsf_time)
drivers/net/wireless/ath/ath9k/channel.c
370
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
371
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/channel.c
374
ath9k_hw_gen_timer_start(ah, sc->p2p_ps_timer, tsf_time, 1000000);
drivers/net/wireless/ath/ath9k/channel.c
377
mod_timer(&sc->sched.timer, jiffies + timeout);
drivers/net/wireless/ath/ath9k/channel.c
384
static void ath_chanctx_handle_bmiss(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/channel.c
394
if (ctx->active && sc->sched.extend_absence) {
drivers/net/wireless/ath/ath9k/channel.c
396
sc->sched.extend_absence = false;
drivers/net/wireless/ath/ath9k/channel.c
403
if (ctx->active && sc->sched.beacon_miss >= 2) {
drivers/net/wireless/ath/ath9k/channel.c
405
sc->sched.extend_absence = true;
drivers/net/wireless/ath/ath9k/channel.c
409
static void ath_chanctx_offchannel_noa(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/channel.c
414
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
418
avp->offchannel_duration = sc->sched.offchannel_duration;
drivers/net/wireless/ath/ath9k/channel.c
435
static void ath_chanctx_set_periodic_noa(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/channel.c
441
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
446
if (sc->sched.extend_absence)
drivers/net/wireless/ath/ath9k/channel.c
448
sc->sched.channel_switch_time;
drivers/net/wireless/ath/ath9k/channel.c
452
sc->sched.channel_switch_time;
drivers/net/wireless/ath/ath9k/channel.c
455
sc->sched.extend_absence)
drivers/net/wireless/ath/ath9k/channel.c
468
static void ath_chanctx_set_oneshot_noa(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/channel.c
47
ath_update_survey_stats(sc);
drivers/net/wireless/ath/ath9k/channel.c
473
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
479
avp->noa_duration = duration + sc->sched.channel_switch_time;
drivers/net/wireless/ath/ath9k/channel.c
489
void ath_chanctx_event(struct ath_softc *sc, struct ieee80211_vif *vif,
drivers/net/wireless/ath/ath9k/channel.c
492
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/channel.c
503
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
506
sc->cur_chan->chandef.center_freq1,
drivers/net/wireless/ath/ath9k/channel.c
508
chanctx_state_string(sc->sched.state),
drivers/net/wireless/ath/ath9k/channel.c
509
chanctx_event_delta(sc));
drivers/net/wireless/ath/ath9k/channel.c
524
if (avp->chanctx != sc->cur_chan) {
drivers/net/wireless/ath/ath9k/channel.c
530
if (sc->sched.offchannel_pending && !sc->sched.wait_switch) {
drivers/net/wireless/ath/ath9k/channel.c
531
sc->sched.offchannel_pending = false;
drivers/net/wireless/ath/ath9k/channel.c
532
sc->next_chan = &sc->offchannel.chan;
drivers/net/wireless/ath/ath9k/channel.c
533
sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON;
drivers/net/wireless/ath/ath9k/channel.c
538
ctx = ath_chanctx_get_next(sc, sc->cur_chan);
drivers/net/wireless/ath/ath9k/channel.c
539
if (ctx->active && sc->sched.state == ATH_CHANCTX_STATE_IDLE) {
drivers/net/wireless/ath/ath9k/channel.c
540
sc->next_chan = ctx;
drivers/net/wireless/ath/ath9k/channel.c
541
sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON;
drivers/net/wireless/ath/ath9k/channel.c
547
if (sc->sched.state == ATH_CHANCTX_STATE_WAIT_FOR_TIMER) {
drivers/net/wireless/ath/ath9k/channel.c
548
sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON;
drivers/net/wireless/ath/ath9k/channel.c
553
if (sc->sched.mgd_prepare_tx)
drivers/net/wireless/ath/ath9k/channel.c
554
sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON;
drivers/net/wireless/ath/ath9k/channel.c
563
sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_BEACON) {
drivers/net/wireless/ath/ath9k/channel.c
57
if (!sc->cur_chan->offchannel && sc->cur_survey != &sc->survey[pos]) {
drivers/net/wireless/ath/ath9k/channel.c
571
if (sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_BEACON)
drivers/net/wireless/ath/ath9k/channel.c
576
sc->sched.beacon_pending = true;
drivers/net/wireless/ath/ath9k/channel.c
577
sc->sched.next_tbtt = REG_READ(ah, AR_NEXT_TBTT_TIMER);
drivers/net/wireless/ath/ath9k/channel.c
579
cur_conf = &sc->cur_chan->beacon;
drivers/net/wireless/ath/ath9k/channel.c
58
if (sc->cur_survey)
drivers/net/wireless/ath/ath9k/channel.c
583
tsf_time = sc->sched.next_tbtt + beacon_int / 4;
drivers/net/wireless/ath/ath9k/channel.c
584
sc->sched.switch_start_time = tsf_time;
drivers/net/wireless/ath/ath9k/channel.c
585
sc->cur_chan->last_beacon = sc->sched.next_tbtt;
drivers/net/wireless/ath/ath9k/channel.c
59
sc->cur_survey->filled &= ~SURVEY_INFO_IN_USE;
drivers/net/wireless/ath/ath9k/channel.c
592
if (sc->next_chan == &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
593
ath_chanctx_offchannel_noa(sc, ctx, avp, tsf_time);
drivers/net/wireless/ath/ath9k/channel.c
597
ath_chanctx_handle_bmiss(sc, ctx, avp);
drivers/net/wireless/ath/ath9k/channel.c
605
if (sc->sched.mgd_prepare_tx) {
drivers/net/wireless/ath/ath9k/channel.c
606
ath_chanctx_set_oneshot_noa(sc, avp, tsf_time,
drivers/net/wireless/ath/ath9k/channel.c
61
sc->cur_survey = &sc->survey[pos];
drivers/net/wireless/ath/ath9k/channel.c
621
(!avp->noa_duration || sc->sched.force_noa_update))
drivers/net/wireless/ath/ath9k/channel.c
622
ath_chanctx_set_periodic_noa(sc, avp, cur_conf,
drivers/net/wireless/ath/ath9k/channel.c
625
if (ctx->active && sc->sched.force_noa_update)
drivers/net/wireless/ath/ath9k/channel.c
626
sc->sched.force_noa_update = false;
drivers/net/wireless/ath/ath9k/channel.c
63
memset(sc->cur_survey, 0, sizeof(struct survey_info));
drivers/net/wireless/ath/ath9k/channel.c
630
if (!sc->sched.beacon_pending) {
drivers/net/wireless/ath/ath9k/channel.c
636
sc->sched.beacon_pending = false;
drivers/net/wireless/ath/ath9k/channel.c
638
if (sc->sched.mgd_prepare_tx) {
drivers/net/wireless/ath/ath9k/channel.c
639
sc->sched.mgd_prepare_tx = false;
drivers/net/wireless/ath/ath9k/channel.c
64
sc->cur_survey->filled |= SURVEY_INFO_IN_USE;
drivers/net/wireless/ath/ath9k/channel.c
640
complete(&sc->go_beacon);
drivers/net/wireless/ath/ath9k/channel.c
646
if (sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_BEACON)
drivers/net/wireless/ath/ath9k/channel.c
65
} else if (!(sc->survey[pos].filled & SURVEY_INFO_IN_USE)) {
drivers/net/wireless/ath/ath9k/channel.c
652
sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_TIMER;
drivers/net/wireless/ath/ath9k/channel.c
653
ath_chanctx_setup_timer(sc, sc->sched.switch_start_time);
drivers/net/wireless/ath/ath9k/channel.c
656
if (sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_TIMER)
drivers/net/wireless/ath/ath9k/channel.c
659
if (!sc->cur_chan->switch_after_beacon &&
drivers/net/wireless/ath/ath9k/channel.c
66
memset(&sc->survey[pos], 0, sizeof(struct survey_info));
drivers/net/wireless/ath/ath9k/channel.c
660
sc->sched.beacon_pending)
drivers/net/wireless/ath/ath9k/channel.c
661
sc->sched.beacon_miss++;
drivers/net/wireless/ath/ath9k/channel.c
666
sc->sched.state = ATH_CHANCTX_STATE_SWITCH;
drivers/net/wireless/ath/ath9k/channel.c
667
ieee80211_queue_work(sc->hw, &sc->chanctx_work);
drivers/net/wireless/ath/ath9k/channel.c
671
sc->cur_chan == &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/channel.c
674
sc->sched.beacon_pending = false;
drivers/net/wireless/ath/ath9k/channel.c
675
sc->sched.beacon_miss = 0;
drivers/net/wireless/ath/ath9k/channel.c
677
if (sc->sched.state == ATH_CHANCTX_STATE_FORCE_ACTIVE ||
drivers/net/wireless/ath/ath9k/channel.c
678
!sc->sched.beacon_adjust ||
drivers/net/wireless/ath/ath9k/channel.c
679
!sc->cur_chan->tsf_val)
drivers/net/wireless/ath/ath9k/channel.c
682
ath_chanctx_adjust_tbtt_delta(sc);
drivers/net/wireless/ath/ath9k/channel.c
687
tsf_time = sc->sched.switch_start_time;
drivers/net/wireless/ath/ath9k/channel.c
688
tsf_time -= (u32) sc->cur_chan->tsf_val +
drivers/net/wireless/ath/ath9k/channel.c
689
ath9k_hw_get_tsf_offset(sc->cur_chan->tsf_ts, 0);
drivers/net/wireless/ath/ath9k/channel.c
69
hchan = &sc->sc_ah->channels[pos];
drivers/net/wireless/ath/ath9k/channel.c
692
sc->sched.beacon_adjust = false;
drivers/net/wireless/ath/ath9k/channel.c
693
ath_chanctx_setup_timer(sc, tsf_time);
drivers/net/wireless/ath/ath9k/channel.c
696
if (sc->sched.state != ATH_CHANCTX_STATE_FORCE_ACTIVE ||
drivers/net/wireless/ath/ath9k/channel.c
697
avp->chanctx != sc->cur_chan)
drivers/net/wireless/ath/ath9k/channel.c
70
r = ath_reset(sc, hchan);
drivers/net/wireless/ath/ath9k/channel.c
703
sc->sched.state = ATH_CHANCTX_STATE_IDLE;
drivers/net/wireless/ath/ath9k/channel.c
707
sc->sched.state == ATH_CHANCTX_STATE_FORCE_ACTIVE ||
drivers/net/wireless/ath/ath9k/channel.c
708
sc->cur_chan->switch_after_beacon ||
drivers/net/wireless/ath/ath9k/channel.c
709
sc->cur_chan == &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/channel.c
715
sc->next_chan = ath_chanctx_get_next(sc, sc->cur_chan);
drivers/net/wireless/ath/ath9k/channel.c
716
cur_conf = &sc->cur_chan->beacon;
drivers/net/wireless/ath/ath9k/channel.c
721
sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_TIMER;
drivers/net/wireless/ath/ath9k/channel.c
722
sc->sched.wait_switch = false;
drivers/net/wireless/ath/ath9k/channel.c
726
if (sc->sched.extend_absence) {
drivers/net/wireless/ath/ath9k/channel.c
727
sc->sched.beacon_miss = 0;
drivers/net/wireless/ath/ath9k/channel.c
731
tsf_time -= sc->sched.channel_switch_time;
drivers/net/wireless/ath/ath9k/channel.c
732
tsf_time += ath9k_hw_gettsf32(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
733
sc->sched.switch_start_time = tsf_time;
drivers/net/wireless/ath/ath9k/channel.c
735
ath_chanctx_setup_timer(sc, tsf_time);
drivers/net/wireless/ath/ath9k/channel.c
736
sc->sched.beacon_pending = true;
drivers/net/wireless/ath/ath9k/channel.c
737
sc->sched.beacon_adjust = true;
drivers/net/wireless/ath/ath9k/channel.c
740
if (sc->cur_chan == &sc->offchannel.chan ||
drivers/net/wireless/ath/ath9k/channel.c
741
sc->cur_chan->switch_after_beacon)
drivers/net/wireless/ath/ath9k/channel.c
744
sc->next_chan = ath_chanctx_get_next(sc, sc->cur_chan);
drivers/net/wireless/ath/ath9k/channel.c
745
ieee80211_queue_work(sc->hw, &sc->chanctx_work);
drivers/net/wireless/ath/ath9k/channel.c
748
if (sc->cur_chan->assigned) {
drivers/net/wireless/ath/ath9k/channel.c
749
if (sc->next_chan && !sc->next_chan->assigned &&
drivers/net/wireless/ath/ath9k/channel.c
750
sc->next_chan != &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/channel.c
751
sc->sched.state = ATH_CHANCTX_STATE_IDLE;
drivers/net/wireless/ath/ath9k/channel.c
755
ctx = ath_chanctx_get_next(sc, sc->cur_chan);
drivers/net/wireless/ath/ath9k/channel.c
756
sc->sched.state = ATH_CHANCTX_STATE_IDLE;
drivers/net/wireless/ath/ath9k/channel.c
760
sc->next_chan = ctx;
drivers/net/wireless/ath/ath9k/channel.c
761
ieee80211_queue_work(sc->hw, &sc->chanctx_work);
drivers/net/wireless/ath/ath9k/channel.c
769
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
772
void ath_chanctx_beacon_sent_ev(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/channel.c
775
if (sc->sched.beacon_pending)
drivers/net/wireless/ath/ath9k/channel.c
776
ath_chanctx_event(sc, NULL, ev);
drivers/net/wireless/ath/ath9k/channel.c
779
void ath_chanctx_beacon_recv_ev(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/channel.c
782
ath_chanctx_event(sc, NULL, ev);
drivers/net/wireless/ath/ath9k/channel.c
785
static int ath_scan_channel_duration(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/channel.c
788
struct cfg80211_scan_request *req = sc->offchannel.scan_req;
drivers/net/wireless/ath/ath9k/channel.c
79
ath_update_survey_nf(sc, old_pos);
drivers/net/wireless/ath/ath9k/channel.c
796
static void ath_chanctx_switch(struct ath_softc *sc, struct ath_chanctx *ctx,
drivers/net/wireless/ath/ath9k/channel.c
799
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
801
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
804
(sc->cur_chan != ctx) && (ctx == &sc->offchannel.chan)) {
drivers/net/wireless/ath/ath9k/channel.c
808
sc->sched.offchannel_pending = true;
drivers/net/wireless/ath/ath9k/channel.c
809
sc->sched.wait_switch = true;
drivers/net/wireless/ath/ath9k/channel.c
810
sc->sched.offchannel_duration =
drivers/net/wireless/ath/ath9k/channel.c
811
jiffies_to_usecs(sc->offchannel.duration) +
drivers/net/wireless/ath/ath9k/channel.c
812
sc->sched.channel_switch_time;
drivers/net/wireless/ath/ath9k/channel.c
814
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
820
sc->next_chan = ctx;
drivers/net/wireless/ath/ath9k/channel.c
827
if (sc->next_chan == &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
828
sc->sched.offchannel_duration =
drivers/net/wireless/ath/ath9k/channel.c
829
jiffies_to_usecs(sc->offchannel.duration) +
drivers/net/wireless/ath/ath9k/channel.c
830
sc->sched.channel_switch_time;
drivers/net/wireless/ath/ath9k/channel.c
836
sc->sched.offchannel_duration);
drivers/net/wireless/ath/ath9k/channel.c
839
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
840
ieee80211_queue_work(sc->hw, &sc->chanctx_work);
drivers/net/wireless/ath/ath9k/channel.c
843
static void ath_chanctx_offchan_switch(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/channel.c
846
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
853
ath_chanctx_switch(sc, &sc->offchannel.chan, &chandef);
drivers/net/wireless/ath/ath9k/channel.c
856
static struct ath_chanctx *ath_chanctx_get_oper_chan(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/channel.c
861
ath_for_each_chanctx(sc, ctx) {
drivers/net/wireless/ath/ath9k/channel.c
871
return &sc->chanctx[0];
drivers/net/wireless/ath/ath9k/channel.c
875
ath_scan_next_channel(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
877
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
878
struct cfg80211_scan_request *req = sc->offchannel.scan_req;
drivers/net/wireless/ath/ath9k/channel.c
881
if (sc->offchannel.scan_idx >= req->n_channels) {
drivers/net/wireless/ath/ath9k/channel.c
885
sc->offchannel.scan_idx,
drivers/net/wireless/ath/ath9k/channel.c
888
sc->offchannel.state = ATH_OFFCHANNEL_IDLE;
drivers/net/wireless/ath/ath9k/channel.c
889
ath_chanctx_switch(sc, ath_chanctx_get_oper_chan(sc, false),
drivers/net/wireless/ath/ath9k/channel.c
896
sc->offchannel.scan_idx);
drivers/net/wireless/ath/ath9k/channel.c
898
chan = req->channels[sc->offchannel.scan_idx++];
drivers/net/wireless/ath/ath9k/channel.c
899
sc->offchannel.duration = ath_scan_channel_duration(sc, chan);
drivers/net/wireless/ath/ath9k/channel.c
900
sc->offchannel.state = ATH_OFFCHANNEL_PROBE_SEND;
drivers/net/wireless/ath/ath9k/channel.c
902
ath_chanctx_offchan_switch(sc, chan);
drivers/net/wireless/ath/ath9k/channel.c
905
void ath_offchannel_next(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/channel.c
909
if (sc->offchannel.scan_req) {
drivers/net/wireless/ath/ath9k/channel.c
910
vif = sc->offchannel.scan_vif;
drivers/net/wireless/ath/ath9k/channel.c
911
sc->offchannel.chan.txpower = vif->bss_conf.txpower;
drivers/net/wireless/ath/ath9k/channel.c
912
ath_scan_next_channel(sc);
drivers/net/wireless/ath/ath9k/channel.c
913
} else if (sc->offchannel.roc_vif) {
drivers/net/wireless/ath/ath9k/channel.c
914
vif = sc->offchannel.roc_vif;
drivers/net/wireless/ath/ath9k/channel.c
915
sc->offchannel.chan.txpower = vif->bss_conf.txpower;
drivers/net/wireless/ath/ath9k/channel.c
916
sc->offchannel.duration =
drivers/net/wireless/ath/ath9k/channel.c
917
msecs_to_jiffies(sc->offchannel.roc_duration);
drivers/net/wireless/ath/ath9k/channel.c
918
sc->offchannel.state = ATH_OFFCHANNEL_ROC_START;
drivers/net/wireless/ath/ath9k/channel.c
919
ath_chanctx_offchan_switch(sc, sc->offchannel.roc_chan);
drivers/net/wireless/ath/ath9k/channel.c
921
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
922
sc->sched.offchannel_pending = false;
drivers/net/wireless/ath/ath9k/channel.c
923
sc->sched.wait_switch = false;
drivers/net/wireless/ath/ath9k/channel.c
924
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
926
ath_chanctx_switch(sc, ath_chanctx_get_oper_chan(sc, false),
drivers/net/wireless/ath/ath9k/channel.c
928
sc->offchannel.state = ATH_OFFCHANNEL_IDLE;
drivers/net/wireless/ath/ath9k/channel.c
929
if (sc->ps_idle)
drivers/net/wireless/ath/ath9k/channel.c
930
ath_cancel_work(sc);
drivers/net/wireless/ath/ath9k/channel.c
934
void ath_roc_complete(struct ath_softc *sc, enum ath_roc_complete_reason reason)
drivers/net/wireless/ath/ath9k/channel.c
936
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
938
sc->offchannel.roc_vif = NULL;
drivers/net/wireless/ath/ath9k/channel.c
939
sc->offchannel.roc_chan = NULL;
drivers/net/wireless/ath/ath9k/channel.c
944
ieee80211_remain_on_channel_expired(sc->hw);
drivers/net/wireless/ath/ath9k/channel.c
948
ieee80211_remain_on_channel_expired(sc->hw);
drivers/net/wireless/ath/ath9k/channel.c
955
ath_offchannel_next(sc);
drivers/net/wireless/ath/ath9k/channel.c
956
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/channel.c
959
void ath_scan_complete(struct ath_softc *sc, bool abort)
drivers/net/wireless/ath/ath9k/channel.c
96
sc->spec_priv.spectral_mode == SPECTRAL_CHANSCAN)
drivers/net/wireless/ath/ath9k/channel.c
961
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/channel.c
97
ath9k_cmn_spectral_scan_trigger(common, &sc->spec_priv);
drivers/net/wireless/ath/ath9k/channel.c
971
sc->offchannel.scan_req = NULL;
drivers/net/wireless/ath/ath9k/channel.c
972
sc->offchannel.scan_vif = NULL;
drivers/net/wireless/ath/ath9k/channel.c
973
sc->offchannel.state = ATH_OFFCHANNEL_IDLE;
drivers/net/wireless/ath/ath9k/channel.c
974
ieee80211_scan_completed(sc->hw, &info);
drivers/net/wireless/ath/ath9k/channel.c
976
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
978
sc->sched.force_noa_update = true;
drivers/net/wireless/ath/ath9k/channel.c
979
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/channel.c
980
ath_offchannel_next(sc);
drivers/net/wireless/ath/ath9k/channel.c
981
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/channel.c
984
static void ath_scan_send_probe(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/channel.c
987
struct cfg80211_scan_request *req = sc->offchannel.scan_req;
drivers/net/wireless/ath/ath9k/channel.c
988
struct ieee80211_vif *vif = sc->offchannel.scan_vif;
drivers/net/wireless/ath/ath9k/channel.c
992
int band = sc->offchannel.chan.chandef.chan->band;
drivers/net/wireless/ath/ath9k/channel.c
994
skb = ieee80211_probereq_get(sc->hw, vif->addr,
drivers/net/wireless/ath/ath9k/common-spectral.c
475
struct ath_softc *sc = common->priv;
drivers/net/wireless/ath/ath9k/common-spectral.c
628
RX_STAT_INC(sc, rx_spectral_sample_good);
drivers/net/wireless/ath/ath9k/common-spectral.c
630
RX_STAT_INC(sc, rx_spectral_sample_err);
drivers/net/wireless/ath/ath9k/common-spectral.c
646
RX_STAT_INC(sc, rx_spectral_sample_good);
drivers/net/wireless/ath/ath9k/common-spectral.c
648
RX_STAT_INC(sc, rx_spectral_sample_err);
drivers/net/wireless/ath/ath9k/debug.c
101
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
1017
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
102
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/debug.c
1026
if (!sc->sc_ah->common.btcoex_enabled) {
drivers/net/wireless/ath/ath9k/debug.c
1032
len = ath9k_dump_btcoex(sc, buf, size);
drivers/net/wireless/ath/ath9k/debug.c
1052
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
1053
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
1076
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
1086
sc->force_wow ? "ENABLED" : "DISABLED");
drivers/net/wireless/ath/ath9k/debug.c
1100
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
1111
if (!sc->force_wow) {
drivers/net/wireless/ath/ath9k/debug.c
1112
sc->force_wow = true;
drivers/net/wireless/ath/ath9k/debug.c
1113
ath9k_init_wow(sc->hw);
drivers/net/wireless/ath/ath9k/debug.c
1132
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
1133
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
1157
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
1158
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
1175
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/debug.c
1176
ath9k_set_txpower(sc, NULL);
drivers/net/wireless/ath/ath9k/debug.c
1177
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/debug.c
1195
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
1196
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
1212
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
1213
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
1237
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/debug.c
1239
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/debug.c
130
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
131
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/debug.c
1311
data[i++] = sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_BE)].elem; \
drivers/net/wireless/ath/ath9k/debug.c
1312
data[i++] = sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_BK)].elem; \
drivers/net/wireless/ath/ath9k/debug.c
1313
data[i++] = sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_VI)].elem; \
drivers/net/wireless/ath/ath9k/debug.c
1314
data[i++] = sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_VO)].elem; \
drivers/net/wireless/ath/ath9k/debug.c
1319
data[i++] = sc->debug.stats.rxstats.elem; \
drivers/net/wireless/ath/ath9k/debug.c
132
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
1326
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/debug.c
1329
data[i++] = ((u64)sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_BE)].tx_pkts_all +
drivers/net/wireless/ath/ath9k/debug.c
1330
sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_BK)].tx_pkts_all +
drivers/net/wireless/ath/ath9k/debug.c
1331
sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_VI)].tx_pkts_all +
drivers/net/wireless/ath/ath9k/debug.c
1332
sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_VO)].tx_pkts_all);
drivers/net/wireless/ath/ath9k/debug.c
1333
data[i++] = ((u64)sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_BE)].tx_bytes_all +
drivers/net/wireless/ath/ath9k/debug.c
1334
sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_BK)].tx_bytes_all +
drivers/net/wireless/ath/ath9k/debug.c
1335
sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_VI)].tx_bytes_all +
drivers/net/wireless/ath/ath9k/debug.c
1336
sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_VO)].tx_bytes_all);
drivers/net/wireless/ath/ath9k/debug.c
1372
void ath9k_deinit_debug(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/debug.c
1374
ath9k_cmn_spectral_deinit_debug(&sc->spec_priv);
drivers/net/wireless/ath/ath9k/debug.c
1380
struct ath_softc *sc = common->priv;
drivers/net/wireless/ath/ath9k/debug.c
1382
sc->debug.debugfs_phy = debugfs_create_dir("ath9k",
drivers/net/wireless/ath/ath9k/debug.c
1383
sc->hw->wiphy->debugfsdir);
drivers/net/wireless/ath/ath9k/debug.c
1386
debugfs_create_file("debug", 0600, sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1387
sc, &fops_debug);
drivers/net/wireless/ath/ath9k/debug.c
1390
ath9k_dfs_init_debug(sc);
drivers/net/wireless/ath/ath9k/debug.c
1391
ath9k_tx99_init_debug(sc);
drivers/net/wireless/ath/ath9k/debug.c
1392
ath9k_cmn_spectral_init_debug(&sc->spec_priv, sc->debug.debugfs_phy);
drivers/net/wireless/ath/ath9k/debug.c
1394
debugfs_create_devm_seqfile(sc->dev, "dma", sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1396
debugfs_create_devm_seqfile(sc->dev, "interrupt", sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1398
debugfs_create_devm_seqfile(sc->dev, "xmit", sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1400
debugfs_create_devm_seqfile(sc->dev, "queues", sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1402
debugfs_create_devm_seqfile(sc->dev, "misc", sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1404
debugfs_create_file("reset", 0600, sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1405
sc, &fops_reset);
drivers/net/wireless/ath/ath9k/debug.c
1407
ath9k_cmn_debug_recv(sc->debug.debugfs_phy, &sc->debug.stats.rxstats);
drivers/net/wireless/ath/ath9k/debug.c
1408
ath9k_cmn_debug_phy_err(sc->debug.debugfs_phy, &sc->debug.stats.rxstats);
drivers/net/wireless/ath/ath9k/debug.c
1410
debugfs_create_u8("rx_chainmask", 0400, sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1412
debugfs_create_u8("tx_chainmask", 0400, sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1415
sc->debug.debugfs_phy, sc, &fops_ani);
drivers/net/wireless/ath/ath9k/debug.c
1416
debugfs_create_bool("paprd", 0600, sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1417
&sc->sc_ah->config.enable_paprd);
drivers/net/wireless/ath/ath9k/debug.c
1418
debugfs_create_file("regidx", 0600, sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1419
sc, &fops_regidx);
drivers/net/wireless/ath/ath9k/debug.c
1420
debugfs_create_file("regval", 0600, sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1421
sc, &fops_regval);
drivers/net/wireless/ath/ath9k/debug.c
1423
sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1425
debugfs_create_file("regdump", 0400, sc->debug.debugfs_phy, sc,
drivers/net/wireless/ath/ath9k/debug.c
1427
debugfs_create_devm_seqfile(sc->dev, "dump_nfcal",
drivers/net/wireless/ath/ath9k/debug.c
1428
sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1431
ath9k_cmn_debug_base_eeprom(sc->debug.debugfs_phy, sc->sc_ah);
drivers/net/wireless/ath/ath9k/debug.c
1432
ath9k_cmn_debug_modal_eeprom(sc->debug.debugfs_phy, sc->sc_ah);
drivers/net/wireless/ath/ath9k/debug.c
1435
sc->debug.debugfs_phy, &sc->sc_ah->gpio_mask);
drivers/net/wireless/ath/ath9k/debug.c
1437
sc->debug.debugfs_phy, &sc->sc_ah->gpio_val);
drivers/net/wireless/ath/ath9k/debug.c
1439
sc->debug.debugfs_phy, sc, &fops_antenna_diversity);
drivers/net/wireless/ath/ath9k/debug.c
1442
sc->debug.debugfs_phy, sc, &fops_bt_ant_diversity);
drivers/net/wireless/ath/ath9k/debug.c
1443
debugfs_create_file("btcoex", 0400, sc->debug.debugfs_phy, sc,
drivers/net/wireless/ath/ath9k/debug.c
1448
debugfs_create_file("wow", 0600, sc->debug.debugfs_phy, sc, &fops_wow);
drivers/net/wireless/ath/ath9k/debug.c
1452
debugfs_create_file("ack_to", 0400, sc->debug.debugfs_phy,
drivers/net/wireless/ath/ath9k/debug.c
1453
sc, &fops_ackto);
drivers/net/wireless/ath/ath9k/debug.c
1455
debugfs_create_file("tpc", 0600, sc->debug.debugfs_phy, sc, &fops_tpc);
drivers/net/wireless/ath/ath9k/debug.c
1458
sc->debug.debugfs_phy, sc, &fops_nf_override);
drivers/net/wireless/ath/ath9k/debug.c
186
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
187
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/debug.c
202
ath_stop_ani(sc);
drivers/net/wireless/ath/ath9k/debug.c
204
ath_check_ani(sc);
drivers/net/wireless/ath/ath9k/debug.c
224
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
225
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/debug.c
237
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
238
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/debug.c
239
struct ath9k_hw_capabilities *pCap = &sc->sc_ah->caps;
drivers/net/wireless/ath/ath9k/debug.c
251
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/debug.c
252
ath9k_hw_set_bt_ant_diversity(sc->sc_ah, common->bt_ant_diversity);
drivers/net/wireless/ath/ath9k/debug.c
255
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/debug.c
270
void ath9k_debug_stat_ant(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/debug.c
274
struct ath_antenna_stats *as_main = &sc->debug.stats.ant_stats[ANT_MAIN];
drivers/net/wireless/ath/ath9k/debug.c
275
struct ath_antenna_stats *as_alt = &sc->debug.stats.ant_stats[ANT_ALT];
drivers/net/wireless/ath/ath9k/debug.c
288
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
289
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
29
void ath9k_debug_sync_cause(struct ath_softc *sc, u32 sync_cause)
drivers/net/wireless/ath/ath9k/debug.c
291
struct ath_antenna_stats *as_main = &sc->debug.stats.ant_stats[ANT_MAIN];
drivers/net/wireless/ath/ath9k/debug.c
292
struct ath_antenna_stats *as_alt = &sc->debug.stats.ant_stats[ANT_ALT];
drivers/net/wireless/ath/ath9k/debug.c
312
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/debug.c
32
sc->debug.stats.istats.sync_cause_all++;
drivers/net/wireless/ath/ath9k/debug.c
322
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/debug.c
34
sc->debug.stats.istats.sync_rtc_irq++;
drivers/net/wireless/ath/ath9k/debug.c
36
sc->debug.stats.istats.sync_mac_irq++;
drivers/net/wireless/ath/ath9k/debug.c
38
sc->debug.stats.istats.eeprom_illegal_access++;
drivers/net/wireless/ath/ath9k/debug.c
392
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/debug.c
393
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
398
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/debug.c
40
sc->debug.stats.istats.apb_timeout++;
drivers/net/wireless/ath/ath9k/debug.c
42
sc->debug.stats.istats.pci_mode_conflict++;
drivers/net/wireless/ath/ath9k/debug.c
44
sc->debug.stats.istats.host1_fatal++;
drivers/net/wireless/ath/ath9k/debug.c
454
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/debug.c
459
void ath_debug_stat_interrupt(struct ath_softc *sc, enum ath9k_int status)
drivers/net/wireless/ath/ath9k/debug.c
46
sc->debug.stats.istats.host1_perr++;
drivers/net/wireless/ath/ath9k/debug.c
462
sc->debug.stats.istats.total++;
drivers/net/wireless/ath/ath9k/debug.c
463
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
drivers/net/wireless/ath/ath9k/debug.c
465
sc->debug.stats.istats.rxlp++;
drivers/net/wireless/ath/ath9k/debug.c
467
sc->debug.stats.istats.rxhp++;
drivers/net/wireless/ath/ath9k/debug.c
469
sc->debug.stats.istats.bb_watchdog++;
drivers/net/wireless/ath/ath9k/debug.c
472
sc->debug.stats.istats.rxok++;
drivers/net/wireless/ath/ath9k/debug.c
475
sc->debug.stats.istats.rxeol++;
drivers/net/wireless/ath/ath9k/debug.c
477
sc->debug.stats.istats.rxorn++;
drivers/net/wireless/ath/ath9k/debug.c
479
sc->debug.stats.istats.txok++;
drivers/net/wireless/ath/ath9k/debug.c
48
sc->debug.stats.istats.trcv_fifo_perr++;
drivers/net/wireless/ath/ath9k/debug.c
481
sc->debug.stats.istats.txurn++;
drivers/net/wireless/ath/ath9k/debug.c
483
sc->debug.stats.istats.rxphyerr++;
drivers/net/wireless/ath/ath9k/debug.c
485
sc->debug.stats.istats.rx_keycache_miss++;
drivers/net/wireless/ath/ath9k/debug.c
487
sc->debug.stats.istats.swba++;
drivers/net/wireless/ath/ath9k/debug.c
489
sc->debug.stats.istats.bmiss++;
drivers/net/wireless/ath/ath9k/debug.c
491
sc->debug.stats.istats.bnr++;
drivers/net/wireless/ath/ath9k/debug.c
493
sc->debug.stats.istats.cst++;
drivers/net/wireless/ath/ath9k/debug.c
495
sc->debug.stats.istats.gtt++;
drivers/net/wireless/ath/ath9k/debug.c
497
sc->debug.stats.istats.tim++;
drivers/net/wireless/ath/ath9k/debug.c
499
sc->debug.stats.istats.cabend++;
drivers/net/wireless/ath/ath9k/debug.c
50
sc->debug.stats.istats.radm_cpl_ep++;
drivers/net/wireless/ath/ath9k/debug.c
501
sc->debug.stats.istats.dtimsync++;
drivers/net/wireless/ath/ath9k/debug.c
503
sc->debug.stats.istats.dtim++;
drivers/net/wireless/ath/ath9k/debug.c
505
sc->debug.stats.istats.tsfoor++;
drivers/net/wireless/ath/ath9k/debug.c
507
sc->debug.stats.istats.mci++;
drivers/net/wireless/ath/ath9k/debug.c
509
sc->debug.stats.istats.gen_timer++;
drivers/net/wireless/ath/ath9k/debug.c
515
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/debug.c
52
sc->debug.stats.istats.radm_cpl_dllp_abort++;
drivers/net/wireless/ath/ath9k/debug.c
520
sc->debug.stats.istats.s); \
drivers/net/wireless/ath/ath9k/debug.c
523
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
drivers/net/wireless/ath/ath9k/debug.c
54
sc->debug.stats.istats.radm_cpl_tlp_abort++;
drivers/net/wireless/ath/ath9k/debug.c
56
sc->debug.stats.istats.radm_cpl_ecrc_err++;
drivers/net/wireless/ath/ath9k/debug.c
579
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/debug.c
58
sc->debug.stats.istats.radm_cpl_timeout++;
drivers/net/wireless/ath/ath9k/debug.c
60
sc->debug.stats.istats.local_timeout++;
drivers/net/wireless/ath/ath9k/debug.c
608
static void print_queue(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/debug.c
611
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/debug.c
618
ath_txq_unlock(sc, txq);
drivers/net/wireless/ath/ath9k/debug.c
62
sc->debug.stats.istats.pm_access++;
drivers/net/wireless/ath/ath9k/debug.c
624
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/debug.c
632
txq = sc->tx.txq_map[i];
drivers/net/wireless/ath/ath9k/debug.c
634
print_queue(sc, txq, file);
drivers/net/wireless/ath/ath9k/debug.c
638
print_queue(sc, sc->beacon.cabq, file);
drivers/net/wireless/ath/ath9k/debug.c
64
sc->debug.stats.istats.mac_awake++;
drivers/net/wireless/ath/ath9k/debug.c
646
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/debug.c
647
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/debug.c
656
ath_opmode_to_string(sc->sc_ah->opmode));
drivers/net/wireless/ath/ath9k/debug.c
658
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/debug.c
659
rxfilter = ath9k_hw_getrxfilter(sc->sc_ah);
drivers/net/wireless/ath/ath9k/debug.c
66
sc->debug.stats.istats.mac_asleep++;
drivers/net/wireless/ath/ath9k/debug.c
660
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/debug.c
68
sc->debug.stats.istats.mac_sleep_access++;
drivers/net/wireless/ath/ath9k/debug.c
695
reg = sc->sc_ah->imask;
drivers/net/wireless/ath/ath9k/debug.c
717
ath_for_each_chanctx(sc, ctx) {
drivers/net/wireless/ath/ath9k/debug.c
720
ath9k_calculate_iter_data(sc, ctx, &iter_data);
drivers/net/wireless/ath/ath9k/debug.c
728
iter_data.nadhocs, iter_data.nocbs, sc->cur_chan->nvifs,
drivers/net/wireless/ath/ath9k/debug.c
729
sc->nbcnvifs);
drivers/net/wireless/ath/ath9k/debug.c
737
struct ath_softc *sc = file->private;
drivers/net/wireless/ath/ath9k/debug.c
762
sc->debug.stats.reset[i]);
drivers/net/wireless/ath/ath9k/debug.c
777
struct ath_softc *sc = file_inode(file)->i_private;
drivers/net/wireless/ath/ath9k/debug.c
778
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
791
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/debug.c
793
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/debug.c
797
ath9k_queue_reset(sc, RESET_TYPE_USER);
drivers/net/wireless/ath/ath9k/debug.c
798
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/debug.c
812
void ath_debug_stat_tx(struct ath_softc *sc, struct ath_buf *bf,
drivers/net/wireless/ath/ath9k/debug.c
818
TX_STAT_INC(sc, qnum, tx_pkts_all);
drivers/net/wireless/ath/ath9k/debug.c
819
sc->debug.stats.txstats[qnum].tx_bytes_all += bf->bf_mpdu->len;
drivers/net/wireless/ath/ath9k/debug.c
823
TX_STAT_INC(sc, qnum, a_xretries);
drivers/net/wireless/ath/ath9k/debug.c
825
TX_STAT_INC(sc, qnum, a_completed);
drivers/net/wireless/ath/ath9k/debug.c
828
TX_STAT_INC(sc, qnum, xretries);
drivers/net/wireless/ath/ath9k/debug.c
830
TX_STAT_INC(sc, qnum, completed);
drivers/net/wireless/ath/ath9k/debug.c
834
TX_STAT_INC(sc, qnum, txerr_filtered);
drivers/net/wireless/ath/ath9k/debug.c
836
TX_STAT_INC(sc, qnum, fifo_underrun);
drivers/net/wireless/ath/ath9k/debug.c
838
TX_STAT_INC(sc, qnum, xtxop);
drivers/net/wireless/ath/ath9k/debug.c
840
TX_STAT_INC(sc, qnum, timer_exp);
drivers/net/wireless/ath/ath9k/debug.c
842
TX_STAT_INC(sc, qnum, desc_cfg_err);
drivers/net/wireless/ath/ath9k/debug.c
844
TX_STAT_INC(sc, qnum, data_underrun);
drivers/net/wireless/ath/ath9k/debug.c
846
TX_STAT_INC(sc, qnum, delim_underrun);
drivers/net/wireless/ath/ath9k/debug.c
849
void ath_debug_stat_rx(struct ath_softc *sc, struct ath_rx_status *rs)
drivers/net/wireless/ath/ath9k/debug.c
851
ath9k_cmn_debug_stat_rx(&sc->debug.stats.rxstats, rs);
drivers/net/wireless/ath/ath9k/debug.c
857
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
861
len = sprintf(buf, "0x%08x\n", sc->debug.regidx);
drivers/net/wireless/ath/ath9k/debug.c
868
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
876
sc->debug.regidx = regidx;
drivers/net/wireless/ath/ath9k/debug.c
89
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
891
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
892
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
897
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/debug.c
898
regval = REG_READ_D(ah, sc->debug.regidx);
drivers/net/wireless/ath/ath9k/debug.c
899
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/debug.c
90
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/debug.c
907
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/debug.c
908
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
916
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/debug.c
917
REG_WRITE_D(ah, sc->debug.regidx, regval);
drivers/net/wireless/ath/ath9k/debug.c
918
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/debug.c
934
struct ath_softc *sc = inode->i_private;
drivers/net/wireless/ath/ath9k/debug.c
951
max_reg_offset = AR_SREV_9300_20_OR_LATER(sc->sc_ah) ? 0x8800 : 0xb500;
drivers/net/wireless/ath/ath9k/debug.c
958
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/debug.c
967
"0x%06x 0x%08x\n", i << 2, REG_READ(sc->sc_ah, i << 2));
drivers/net/wireless/ath/ath9k/debug.c
969
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/debug.c
987
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/debug.c
988
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
989
struct ath9k_nfcal_hist *h = sc->cur_chan->caldata.nfCalHist;
drivers/net/wireless/ath/ath9k/debug.h
198
#define PR_QNUM(_n) sc->tx.txq_map[_n]->axq_qnum
drivers/net/wireless/ath/ath9k/debug.h
199
#define TXSTATS sc->debug.stats.txstats
drivers/net/wireless/ath/ath9k/debug.h
258
void ath9k_deinit_debug(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/debug.h
260
void ath_debug_stat_interrupt(struct ath_softc *sc, enum ath9k_int status);
drivers/net/wireless/ath/ath9k/debug.h
261
void ath_debug_stat_tx(struct ath_softc *sc, struct ath_buf *bf,
drivers/net/wireless/ath/ath9k/debug.h
264
void ath_debug_stat_rx(struct ath_softc *sc, struct ath_rx_status *rs);
drivers/net/wireless/ath/ath9k/debug.h
277
void ath9k_debug_stat_ant(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/debug.h
28
#define TX_STAT_INC(sc, q, c) do { (sc)->debug.stats.txstats[q].c++; } while (0)
drivers/net/wireless/ath/ath9k/debug.h
280
void ath9k_debug_sync_cause(struct ath_softc *sc, u32 sync_cause);
drivers/net/wireless/ath/ath9k/debug.h
289
static inline void ath9k_deinit_debug(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/debug.h
29
#define RX_STAT_INC(sc, c) do { (sc)->debug.stats.rxstats.c++; } while (0)
drivers/net/wireless/ath/ath9k/debug.h
292
static inline void ath_debug_stat_interrupt(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/debug.h
296
static inline void ath_debug_stat_tx(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/debug.h
30
#define RESET_STAT_INC(sc, type) do { (sc)->debug.stats.reset[type]++; } while (0)
drivers/net/wireless/ath/ath9k/debug.h
303
static inline void ath_debug_stat_rx(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/debug.h
307
static inline void ath9k_debug_stat_ant(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/debug.h
31
#define ANT_STAT_INC(sc, i, c) do { (sc)->debug.stats.ant_stats[i].c++; } while (0)
drivers/net/wireless/ath/ath9k/debug.h
315
ath9k_debug_sync_cause(struct ath_softc *sc, u32 sync_cause)
drivers/net/wireless/ath/ath9k/debug.h
32
#define ANT_LNA_INC(sc, i, c) do { (sc)->debug.stats.ant_stats[i].lna_recv_cnt[c]++; } while (0)
drivers/net/wireless/ath/ath9k/debug.h
322
void ath_debug_rate_stats(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/debug.h
326
static inline void ath_debug_rate_stats(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/debug.h
34
#define TX_STAT_INC(sc, q, c) do { (void)(sc); } while (0)
drivers/net/wireless/ath/ath9k/debug.h
35
#define RX_STAT_INC(sc, c) do { (void)(sc); } while (0)
drivers/net/wireless/ath/ath9k/debug.h
36
#define RESET_STAT_INC(sc, type) do { (void)(sc); } while (0)
drivers/net/wireless/ath/ath9k/debug.h
37
#define ANT_STAT_INC(sc, i, c) do { (void)(sc); } while (0)
drivers/net/wireless/ath/ath9k/debug.h
38
#define ANT_LNA_INC(sc, i, c) do { (void)(sc); } while (0)
drivers/net/wireless/ath/ath9k/debug_sta.c
107
sta = ieee80211_find_sta_by_ifaddr(sc->hw, hdr->addr2, NULL);
drivers/net/wireless/ath/ath9k/debug_sta.c
172
struct ath_softc *sc = an->sc;
drivers/net/wireless/ath/ath9k/debug_sta.c
173
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug_sta.c
27
struct ath_softc *sc = an->sc;
drivers/net/wireless/ath/ath9k/debug_sta.c
58
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/debug_sta.c
71
ath_txq_unlock(sc, txq);
drivers/net/wireless/ath/ath9k/debug_sta.c
91
void ath_debug_rate_stats(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/debug_sta.c
96
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/dfs.c
100
static bool ath9k_check_chirping(struct ath_softc *sc, u8 *data,
drivers/net/wireless/ath/ath9k/dfs.c
105
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/dfs.c
200
ath9k_postprocess_radar_event(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/dfs.c
217
DFS_STAT_INC(sc, pri_phy_errors);
drivers/net/wireless/ath/ath9k/dfs.c
227
DFS_STAT_INC(sc, ext_phy_errors);
drivers/net/wireless/ath/ath9k/dfs.c
246
DFS_STAT_INC(sc, dc_phy_errors);
drivers/net/wireless/ath/ath9k/dfs.c
256
DFS_STAT_INC(sc, bwinfo_discards);
drivers/net/wireless/ath/ath9k/dfs.c
261
DFS_STAT_INC(sc, rssi_discards);
drivers/net/wireless/ath/ath9k/dfs.c
266
pe->width = dur_to_usecs(sc->sc_ah, dur);
drivers/net/wireless/ath/ath9k/dfs.c
269
DFS_STAT_INC(sc, pulses_detected);
drivers/net/wireless/ath/ath9k/dfs.c
274
ath9k_dfs_process_radar_pulse(struct ath_softc *sc, struct pulse_event *pe)
drivers/net/wireless/ath/ath9k/dfs.c
276
struct dfs_pattern_detector *pd = sc->dfs_detector;
drivers/net/wireless/ath/ath9k/dfs.c
277
DFS_STAT_INC(sc, pulses_processed);
drivers/net/wireless/ath/ath9k/dfs.c
282
DFS_STAT_INC(sc, radar_detected);
drivers/net/wireless/ath/ath9k/dfs.c
283
ieee80211_radar_detected(sc->hw, NULL);
drivers/net/wireless/ath/ath9k/dfs.c
289
void ath9k_dfs_process_phyerr(struct ath_softc *sc, void *data,
drivers/net/wireless/ath/ath9k/dfs.c
296
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/dfs.c
299
DFS_STAT_INC(sc, pulses_total);
drivers/net/wireless/ath/ath9k/dfs.c
305
DFS_STAT_INC(sc, pulses_no_dfs);
drivers/net/wireless/ath/ath9k/dfs.c
311
DFS_STAT_INC(sc, datalen_discards);
drivers/net/wireless/ath/ath9k/dfs.c
333
if (!ath9k_postprocess_radar_event(sc, &ard, &pe))
drivers/net/wireless/ath/ath9k/dfs.c
341
pe.chirp = ath9k_check_chirping(sc, data, clen, is_ctl, is_ext);
drivers/net/wireless/ath/ath9k/dfs.c
350
pe.ts - sc->dfs_prev_pulse_ts);
drivers/net/wireless/ath/ath9k/dfs.c
351
sc->dfs_prev_pulse_ts = pe.ts;
drivers/net/wireless/ath/ath9k/dfs.c
353
ath9k_dfs_process_radar_pulse(sc, &pe);
drivers/net/wireless/ath/ath9k/dfs.c
357
ath9k_dfs_process_radar_pulse(sc, &pe);
drivers/net/wireless/ath/ath9k/dfs.h
37
void ath9k_dfs_process_phyerr(struct ath_softc *sc, void *data,
drivers/net/wireless/ath/ath9k/dfs.h
41
ath9k_dfs_process_phyerr(struct ath_softc *sc, void *data,
drivers/net/wireless/ath/ath9k/dfs_debug.c
100
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/dfs_debug.c
108
memset(&sc->debug.stats.dfs_stats, 0,
drivers/net/wireless/ath/ath9k/dfs_debug.c
109
sizeof(sc->debug.stats.dfs_stats));
drivers/net/wireless/ath/ath9k/dfs_debug.c
117
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/dfs_debug.c
119
ieee80211_radar_detected(sc->hw, NULL);
drivers/net/wireless/ath/ath9k/dfs_debug.c
139
void ath9k_dfs_init_debug(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/dfs_debug.c
142
sc->debug.debugfs_phy, sc, &fops_dfs_stats);
drivers/net/wireless/ath/ath9k/dfs_debug.c
144
sc->debug.debugfs_phy, sc, &fops_simulate_radar);
drivers/net/wireless/ath/ath9k/dfs_debug.c
29
sc->debug.stats.dfs_stats.p)
drivers/net/wireless/ath/ath9k/dfs_debug.c
37
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/dfs_debug.c
38
struct ath9k_hw_version *hw_ver = &sc->sc_ah->hw_version;
drivers/net/wireless/ath/ath9k/dfs_debug.c
50
(sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_DFS) ?
drivers/net/wireless/ath/ath9k/dfs_debug.c
53
if (!sc->dfs_detector) {
drivers/net/wireless/ath/ath9k/dfs_debug.c
59
dfs_pool_stats = sc->dfs_detector->get_stats(sc->dfs_detector);
drivers/net/wireless/ath/ath9k/dfs_debug.c
73
sc->dfs_detector->region);
drivers/net/wireless/ath/ath9k/dfs_debug.h
58
#define DFS_STAT_INC(sc, c) (sc->debug.stats.dfs_stats.c++)
drivers/net/wireless/ath/ath9k/dfs_debug.h
59
void ath9k_dfs_init_debug(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/dfs_debug.h
65
#define DFS_STAT_INC(sc, c) do { } while (0)
drivers/net/wireless/ath/ath9k/dfs_debug.h
66
static inline void ath9k_dfs_init_debug(struct ath_softc *sc) { }
drivers/net/wireless/ath/ath9k/gpio.c
104
static bool ath_is_rfkill_set(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
106
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
109
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/gpio.c
112
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/gpio.c
119
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/gpio.c
120
bool blocked = !!ath_is_rfkill_set(sc);
drivers/net/wireless/ath/ath9k/gpio.c
125
void ath_start_rfkill_poll(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
127
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
130
wiphy_rfkill_start_polling(sc->hw->wiphy);
drivers/net/wireless/ath/ath9k/gpio.c
142
static void ath_detect_bt_priority(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
144
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/gpio.c
145
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
147
if (ath9k_hw_gpio_get(sc->sc_ah, ah->btcoex_hw.btpriority_gpio))
drivers/net/wireless/ath/ath9k/gpio.c
156
ath_dbg(ath9k_hw_common(sc->sc_ah), BTCOEX,
drivers/net/wireless/ath/ath9k/gpio.c
161
ath_dbg(ath9k_hw_common(sc->sc_ah), BTCOEX,
drivers/net/wireless/ath/ath9k/gpio.c
171
static void ath_mci_ftp_adjust(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
173
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/gpio.c
175
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
181
(sc->rx.num_pkts < ATH_BTCOEX_STOMP_FTP_THRESH);
drivers/net/wireless/ath/ath9k/gpio.c
185
sc->rx.num_pkts = 0;
drivers/net/wireless/ath/ath9k/gpio.c
196
struct ath_softc *sc = timer_container_of(sc, t, btcoex.period_timer);
drivers/net/wireless/ath/ath9k/gpio.c
197
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
198
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/gpio.c
203
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/gpio.c
204
if (sc->sc_ah->power_mode == ATH9K_PM_NETWORK_SLEEP) {
drivers/net/wireless/ath/ath9k/gpio.c
206
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/gpio.c
209
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/gpio.c
211
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/gpio.c
215
ath9k_mci_update_rssi(sc);
drivers/net/wireless/ath/ath9k/gpio.c
216
ath_mci_ftp_adjust(sc);
drivers/net/wireless/ath/ath9k/gpio.c
220
ath_detect_bt_priority(sc);
drivers/net/wireless/ath/ath9k/gpio.c
244
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/gpio.c
25
static void ath_fill_led_pin(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
257
struct ath_softc *sc = timer_container_of(sc, t,
drivers/net/wireless/ath/ath9k/gpio.c
259
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
260
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/gpio.c
262
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/gpio.c
27
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
274
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/gpio.c
277
static void ath_init_btcoex_timer(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
279
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/gpio.c
297
void ath9k_btcoex_timer_resume(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
299
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/gpio.c
300
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
322
void ath9k_btcoex_timer_pause(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
324
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/gpio.c
325
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
337
void ath9k_btcoex_stop_gen_timer(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
339
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/gpio.c
344
u16 ath9k_btcoex_aggr_limit(struct ath_softc *sc, u32 max_4ms_framelen)
drivers/net/wireless/ath/ath9k/gpio.c
346
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/gpio.c
347
struct ath_mci_profile *mci = &sc->btcoex.mci;
drivers/net/wireless/ath/ath9k/gpio.c
350
if ((sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_MCI) && mci->aggr_limit)
drivers/net/wireless/ath/ath9k/gpio.c
359
void ath9k_btcoex_handle_interrupt(struct ath_softc *sc, u32 status)
drivers/net/wireless/ath/ath9k/gpio.c
362
ath_mci_intr(sc);
drivers/net/wireless/ath/ath9k/gpio.c
365
void ath9k_start_btcoex(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
367
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
380
ath9k_btcoex_timer_resume(sc);
drivers/net/wireless/ath/ath9k/gpio.c
383
void ath9k_stop_btcoex(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
385
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
391
ath9k_btcoex_timer_pause(sc);
drivers/net/wireless/ath/ath9k/gpio.c
395
ath_mci_flush_profile(&sc->btcoex.mci);
drivers/net/wireless/ath/ath9k/gpio.c
398
void ath9k_deinit_btcoex(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
400
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
403
ath_mci_cleanup(sc);
drivers/net/wireless/ath/ath9k/gpio.c
409
ath9k_hw_btcoex_deinit(sc->sc_ah);
drivers/net/wireless/ath/ath9k/gpio.c
413
int ath9k_init_btcoex(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
416
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
421
switch (ath9k_hw_get_btcoex_scheme(sc->sc_ah)) {
drivers/net/wireless/ath/ath9k/gpio.c
425
ath9k_hw_btcoex_init_2wire(sc->sc_ah);
drivers/net/wireless/ath/ath9k/gpio.c
428
ath9k_hw_btcoex_init_3wire(sc->sc_ah);
drivers/net/wireless/ath/ath9k/gpio.c
429
ath_init_btcoex_timer(sc);
drivers/net/wireless/ath/ath9k/gpio.c
430
txq = sc->tx.txq_map[IEEE80211_AC_BE];
drivers/net/wireless/ath/ath9k/gpio.c
431
ath9k_hw_init_btcoex_hw(sc->sc_ah, txq->axq_qnum);
drivers/net/wireless/ath/ath9k/gpio.c
434
ath_init_btcoex_timer(sc);
drivers/net/wireless/ath/ath9k/gpio.c
436
sc->btcoex.duty_cycle = ATH_BTCOEX_DEF_DUTY_CYCLE;
drivers/net/wireless/ath/ath9k/gpio.c
437
INIT_LIST_HEAD(&sc->btcoex.mci.info);
drivers/net/wireless/ath/ath9k/gpio.c
440
r = ath_mci_setup(sc);
drivers/net/wireless/ath/ath9k/gpio.c
453
static int ath9k_dump_mci_btcoex(struct ath_softc *sc, u8 *buf, u32 size)
drivers/net/wireless/ath/ath9k/gpio.c
455
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/gpio.c
457
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
498
static int ath9k_dump_legacy_btcoex(struct ath_softc *sc, u8 *buf, u32 size)
drivers/net/wireless/ath/ath9k/gpio.c
501
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/gpio.c
512
int ath9k_dump_btcoex(struct ath_softc *sc, u8 *buf, u32 size)
drivers/net/wireless/ath/ath9k/gpio.c
514
if (ath9k_hw_mci_is_enabled(sc->sc_ah))
drivers/net/wireless/ath/ath9k/gpio.c
515
return ath9k_dump_mci_btcoex(sc, buf, size);
drivers/net/wireless/ath/ath9k/gpio.c
517
return ath9k_dump_legacy_btcoex(sc, buf, size);
drivers/net/wireless/ath/ath9k/gpio.c
54
struct ath_softc *sc = container_of(led_cdev, struct ath_softc, led_cdev);
drivers/net/wireless/ath/ath9k/gpio.c
57
if (sc->sc_ah->config.led_active_high)
drivers/net/wireless/ath/ath9k/gpio.c
60
ath9k_hw_set_gpio(sc->sc_ah, sc->sc_ah->led_pin, val);
drivers/net/wireless/ath/ath9k/gpio.c
63
void ath_deinit_leds(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
65
if (!sc->led_registered)
drivers/net/wireless/ath/ath9k/gpio.c
68
ath_led_brightness(&sc->led_cdev, LED_OFF);
drivers/net/wireless/ath/ath9k/gpio.c
69
led_classdev_unregister(&sc->led_cdev);
drivers/net/wireless/ath/ath9k/gpio.c
71
ath9k_hw_gpio_free(sc->sc_ah, sc->sc_ah->led_pin);
drivers/net/wireless/ath/ath9k/gpio.c
74
void ath_init_leds(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/gpio.c
78
if (AR_SREV_9100(sc->sc_ah))
drivers/net/wireless/ath/ath9k/gpio.c
81
ath_fill_led_pin(sc);
drivers/net/wireless/ath/ath9k/gpio.c
84
sc->led_cdev.default_trigger =
drivers/net/wireless/ath/ath9k/gpio.c
85
ieee80211_get_radio_led_name(sc->hw);
drivers/net/wireless/ath/ath9k/gpio.c
87
snprintf(sc->led_name, sizeof(sc->led_name),
drivers/net/wireless/ath/ath9k/gpio.c
88
"ath9k-%s", wiphy_name(sc->hw->wiphy));
drivers/net/wireless/ath/ath9k/gpio.c
89
sc->led_cdev.name = sc->led_name;
drivers/net/wireless/ath/ath9k/gpio.c
90
sc->led_cdev.brightness_set = ath_led_brightness;
drivers/net/wireless/ath/ath9k/gpio.c
92
ret = led_classdev_register(wiphy_dev(sc->hw->wiphy), &sc->led_cdev);
drivers/net/wireless/ath/ath9k/gpio.c
96
sc->led_registered = true;
drivers/net/wireless/ath/ath9k/init.c
1006
int ath9k_init_device(u16 devid, struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/init.c
1009
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/init.c
1016
error = ath9k_init_softc(devid, sc, bus_ops);
drivers/net/wireless/ath/ath9k/init.c
1020
ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
1022
ath9k_set_hw_capab(sc, hw);
drivers/net/wireless/ath/ath9k/init.c
1025
error = ath_regd_init(&common->regulatory, sc->hw->wiphy,
drivers/net/wireless/ath/ath9k/init.c
1033
error = ath_tx_init(sc, ATH_TXBUF);
drivers/net/wireless/ath/ath9k/init.c
1038
error = ath_rx_init(sc, ATH_RXBUF);
drivers/net/wireless/ath/ath9k/init.c
1042
ath9k_init_txpower_limits(sc);
drivers/net/wireless/ath/ath9k/init.c
1046
sc->led_cdev.default_trigger = ieee80211_create_tpt_led_trigger(sc->hw,
drivers/net/wireless/ath/ath9k/init.c
1071
ath_init_leds(sc);
drivers/net/wireless/ath/ath9k/init.c
1072
ath_start_rfkill_poll(sc);
drivers/net/wireless/ath/ath9k/init.c
1077
ath9k_deinit_debug(sc);
drivers/net/wireless/ath/ath9k/init.c
1081
ath_rx_cleanup(sc);
drivers/net/wireless/ath/ath9k/init.c
1083
ath9k_deinit_softc(sc);
drivers/net/wireless/ath/ath9k/init.c
1091
static void ath9k_deinit_softc(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/init.c
1095
ath9k_deinit_p2p(sc);
drivers/net/wireless/ath/ath9k/init.c
1096
ath9k_deinit_btcoex(sc);
drivers/net/wireless/ath/ath9k/init.c
1099
if (ATH_TXQ_SETUP(sc, i))
drivers/net/wireless/ath/ath9k/init.c
1100
ath_tx_cleanupq(sc, &sc->tx.txq[i]);
drivers/net/wireless/ath/ath9k/init.c
1102
timer_delete_sync(&sc->sleep_timer);
drivers/net/wireless/ath/ath9k/init.c
1103
ath9k_hw_deinit(sc->sc_ah);
drivers/net/wireless/ath/ath9k/init.c
1104
if (sc->dfs_detector != NULL)
drivers/net/wireless/ath/ath9k/init.c
1105
sc->dfs_detector->exit(sc->dfs_detector);
drivers/net/wireless/ath/ath9k/init.c
1107
ath9k_eeprom_release(sc);
drivers/net/wireless/ath/ath9k/init.c
1110
void ath9k_deinit_device(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/init.c
1112
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/init.c
1114
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/init.c
1116
wiphy_rfkill_stop_polling(sc->hw->wiphy);
drivers/net/wireless/ath/ath9k/init.c
1117
ath_deinit_leds(sc);
drivers/net/wireless/ath/ath9k/init.c
1119
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/init.c
1121
ath9k_deinit_debug(sc);
drivers/net/wireless/ath/ath9k/init.c
1124
ath_rx_cleanup(sc);
drivers/net/wireless/ath/ath9k/init.c
1125
ath9k_deinit_softc(sc);
drivers/net/wireless/ath/ath9k/init.c
149
static void ath9k_deinit_softc(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/init.c
176
struct ath_softc *sc = common->priv;
drivers/net/wireless/ath/ath9k/init.c
180
spin_lock_irqsave(&sc->sc_serial_rw, flags);
drivers/net/wireless/ath/ath9k/init.c
181
iowrite32(val, sc->mem + reg_offset);
drivers/net/wireless/ath/ath9k/init.c
182
spin_unlock_irqrestore(&sc->sc_serial_rw, flags);
drivers/net/wireless/ath/ath9k/init.c
184
iowrite32(val, sc->mem + reg_offset);
drivers/net/wireless/ath/ath9k/init.c
191
struct ath_softc *sc = common->priv;
drivers/net/wireless/ath/ath9k/init.c
196
spin_lock_irqsave(&sc->sc_serial_rw, flags);
drivers/net/wireless/ath/ath9k/init.c
197
val = ioread32(sc->mem + reg_offset);
drivers/net/wireless/ath/ath9k/init.c
198
spin_unlock_irqrestore(&sc->sc_serial_rw, flags);
drivers/net/wireless/ath/ath9k/init.c
200
val = ioread32(sc->mem + reg_offset);
drivers/net/wireless/ath/ath9k/init.c
214
static unsigned int __ath9k_reg_rmw(struct ath_softc *sc, u32 reg_offset,
drivers/net/wireless/ath/ath9k/init.c
219
val = ioread32(sc->mem + reg_offset);
drivers/net/wireless/ath/ath9k/init.c
222
iowrite32(val, sc->mem + reg_offset);
drivers/net/wireless/ath/ath9k/init.c
231
struct ath_softc *sc = common->priv;
drivers/net/wireless/ath/ath9k/init.c
236
spin_lock_irqsave(&sc->sc_serial_rw, flags);
drivers/net/wireless/ath/ath9k/init.c
237
val = __ath9k_reg_rmw(sc, reg_offset, set, clr);
drivers/net/wireless/ath/ath9k/init.c
238
spin_unlock_irqrestore(&sc->sc_serial_rw, flags);
drivers/net/wireless/ath/ath9k/init.c
240
val = __ath9k_reg_rmw(sc, reg_offset, set, clr);
drivers/net/wireless/ath/ath9k/init.c
253
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/init.c
254
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
260
if (sc->dfs_detector != NULL)
drivers/net/wireless/ath/ath9k/init.c
261
sc->dfs_detector->set_dfs_domain(sc->dfs_detector,
drivers/net/wireless/ath/ath9k/init.c
268
sc->cur_chan->txpower = 2 * ah->curchan->chan->max_power;
drivers/net/wireless/ath/ath9k/init.c
269
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/init.c
270
ath9k_hw_set_txpowerlimit(ah, sc->cur_chan->txpower, false);
drivers/net/wireless/ath/ath9k/init.c
271
ath9k_cmn_update_txpow(ah, sc->cur_chan->cur_txpower,
drivers/net/wireless/ath/ath9k/init.c
272
sc->cur_chan->txpower,
drivers/net/wireless/ath/ath9k/init.c
273
&sc->cur_chan->cur_txpower);
drivers/net/wireless/ath/ath9k/init.c
274
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/init.c
282
int ath_descdma_setup(struct ath_softc *sc, struct ath_descdma *dd,
drivers/net/wireless/ath/ath9k/init.c
286
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/init.c
296
desc_len = sc->sc_ah->caps.tx_desc_len;
drivers/net/wireless/ath/ath9k/init.c
314
if (!(sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_4KB_SPLITTRANS)) {
drivers/net/wireless/ath/ath9k/init.c
328
dd->dd_desc = dmam_alloc_coherent(sc->dev, dd->dd_desc_len,
drivers/net/wireless/ath/ath9k/init.c
343
bf = devm_kzalloc(sc->dev, bsize, GFP_KERNEL);
drivers/net/wireless/ath/ath9k/init.c
351
if (!(sc->sc_ah->caps.hw_caps &
drivers/net/wireless/ath/ath9k/init.c
374
bf = devm_kzalloc(sc->dev, bsize, GFP_KERNEL);
drivers/net/wireless/ath/ath9k/init.c
382
if (!(sc->sc_ah->caps.hw_caps &
drivers/net/wireless/ath/ath9k/init.c
405
static int ath9k_init_queues(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/init.c
409
sc->beacon.beaconq = ath9k_hw_beaconq_setup(sc->sc_ah);
drivers/net/wireless/ath/ath9k/init.c
410
sc->beacon.cabq = ath_txq_setup(sc, ATH9K_TX_QUEUE_CAB, 0);
drivers/net/wireless/ath/ath9k/init.c
411
ath_cabq_update(sc);
drivers/net/wireless/ath/ath9k/init.c
413
sc->tx.uapsdq = ath_txq_setup(sc, ATH9K_TX_QUEUE_UAPSD, 0);
drivers/net/wireless/ath/ath9k/init.c
416
sc->tx.txq_map[i] = ath_txq_setup(sc, ATH9K_TX_QUEUE_DATA, i);
drivers/net/wireless/ath/ath9k/init.c
417
sc->tx.txq_map[i]->mac80211_qnum = i;
drivers/net/wireless/ath/ath9k/init.c
422
static void ath9k_init_misc(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/init.c
424
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/init.c
431
sc->beacon.slottime = 9;
drivers/net/wireless/ath/ath9k/init.c
433
for (i = 0; i < ARRAY_SIZE(sc->beacon.bslot); i++)
drivers/net/wireless/ath/ath9k/init.c
434
sc->beacon.bslot[i] = NULL;
drivers/net/wireless/ath/ath9k/init.c
436
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_ANT_DIV_COMB)
drivers/net/wireless/ath/ath9k/init.c
437
sc->ant_comb.count = ATH_ANT_DIV_COMB_INIT_COUNT;
drivers/net/wireless/ath/ath9k/init.c
439
sc->spec_priv.ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
440
sc->spec_priv.spec_config.enabled = 0;
drivers/net/wireless/ath/ath9k/init.c
441
sc->spec_priv.spec_config.short_repeat = true;
drivers/net/wireless/ath/ath9k/init.c
442
sc->spec_priv.spec_config.count = 8;
drivers/net/wireless/ath/ath9k/init.c
443
sc->spec_priv.spec_config.endless = false;
drivers/net/wireless/ath/ath9k/init.c
444
sc->spec_priv.spec_config.period = 0xFF;
drivers/net/wireless/ath/ath9k/init.c
445
sc->spec_priv.spec_config.fft_period = 0xF;
drivers/net/wireless/ath/ath9k/init.c
448
static void ath9k_init_pcoem_platform(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/init.c
450
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
460
if (sc->driver_data & (ATH9K_PCI_CUS198 |
drivers/net/wireless/ath/ath9k/init.c
466
sc->ant_comb.low_rssi_thresh = 20;
drivers/net/wireless/ath/ath9k/init.c
467
sc->ant_comb.fast_div_bias = 3;
drivers/net/wireless/ath/ath9k/init.c
470
(sc->driver_data & ATH9K_PCI_CUS198) ?
drivers/net/wireless/ath/ath9k/init.c
474
if (sc->driver_data & ATH9K_PCI_CUS217)
drivers/net/wireless/ath/ath9k/init.c
477
if (sc->driver_data & ATH9K_PCI_CUS252)
drivers/net/wireless/ath/ath9k/init.c
480
if (sc->driver_data & ATH9K_PCI_AR9565_1ANT)
drivers/net/wireless/ath/ath9k/init.c
483
if (sc->driver_data & ATH9K_PCI_AR9565_2ANT)
drivers/net/wireless/ath/ath9k/init.c
486
if (sc->driver_data & ATH9K_PCI_KILLER)
drivers/net/wireless/ath/ath9k/init.c
495
if (sc->driver_data & (ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_AR9565_2ANT)) {
drivers/net/wireless/ath/ath9k/init.c
496
if (!(sc->driver_data & ATH9K_PCI_BT_ANT_DIV))
drivers/net/wireless/ath/ath9k/init.c
500
if (sc->driver_data & ATH9K_PCI_BT_ANT_DIV) {
drivers/net/wireless/ath/ath9k/init.c
505
if (sc->driver_data & ATH9K_PCI_D3_L1_WAR) {
drivers/net/wireless/ath/ath9k/init.c
517
if (sc->driver_data & ATH9K_PCI_NO_PLL_PWRSAVE) {
drivers/net/wireless/ath/ath9k/init.c
522
if (sc->driver_data & ATH9K_PCI_LED_ACT_HI)
drivers/net/wireless/ath/ath9k/init.c
537
static int ath9k_eeprom_request(struct ath_softc *sc, const char *name)
drivers/net/wireless/ath/ath9k/init.c
540
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
545
ec.ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
547
err = request_firmware_nowait(THIS_MODULE, 1, name, sc->dev, GFP_KERNEL,
drivers/net/wireless/ath/ath9k/init.c
566
static void ath9k_eeprom_release(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/init.c
568
release_firmware(sc->sc_ah->eeprom_blob);
drivers/net/wireless/ath/ath9k/init.c
571
static int ath9k_nvmem_request_eeprom(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/init.c
573
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
579
cell = devm_nvmem_cell_get(sc->dev, "calibration");
drivers/net/wireless/ath/ath9k/init.c
610
ah->nvmem_blob = devm_kmemdup(sc->dev, buf, len, GFP_KERNEL);
drivers/net/wireless/ath/ath9k/init.c
622
static int ath9k_of_init(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/init.c
624
struct device_node *np = sc->dev->of_node;
drivers/net/wireless/ath/ath9k/init.c
625
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
642
ret = ath9k_eeprom_request(sc, eeprom_name);
drivers/net/wireless/ath/ath9k/init.c
657
static int ath9k_init_softc(u16 devid, struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/init.c
666
ah = devm_kzalloc(sc->dev, sizeof(struct ath_hw), GFP_KERNEL);
drivers/net/wireless/ath/ath9k/init.c
670
ah->dev = sc->dev;
drivers/net/wireless/ath/ath9k/init.c
671
ah->hw = sc->hw;
drivers/net/wireless/ath/ath9k/init.c
686
sc->sc_ah = ah;
drivers/net/wireless/ath/ath9k/init.c
687
sc->dfs_detector = dfs_pattern_detector_init(common, NL80211_DFS_UNSET);
drivers/net/wireless/ath/ath9k/init.c
688
sc->tx99_power = MAX_RATE_POWER + 1;
drivers/net/wireless/ath/ath9k/init.c
689
init_waitqueue_head(&sc->tx_wait);
drivers/net/wireless/ath/ath9k/init.c
690
sc->cur_chan = &sc->chanctx[0];
drivers/net/wireless/ath/ath9k/init.c
692
sc->cur_chan->hw_queue_base = 0;
drivers/net/wireless/ath/ath9k/init.c
698
common->hw = sc->hw;
drivers/net/wireless/ath/ath9k/init.c
699
common->priv = sc;
drivers/net/wireless/ath/ath9k/init.c
707
ath9k_init_pcoem_platform(sc);
drivers/net/wireless/ath/ath9k/init.c
709
ret = ath9k_of_init(sc);
drivers/net/wireless/ath/ath9k/init.c
713
ret = ath9k_nvmem_request_eeprom(sc);
drivers/net/wireless/ath/ath9k/init.c
732
spin_lock_init(&sc->intr_lock);
drivers/net/wireless/ath/ath9k/init.c
733
spin_lock_init(&sc->sc_serial_rw);
drivers/net/wireless/ath/ath9k/init.c
734
spin_lock_init(&sc->sc_pm_lock);
drivers/net/wireless/ath/ath9k/init.c
735
spin_lock_init(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/init.c
736
mutex_init(&sc->mutex);
drivers/net/wireless/ath/ath9k/init.c
737
tasklet_setup(&sc->intr_tq, ath9k_tasklet);
drivers/net/wireless/ath/ath9k/init.c
738
tasklet_setup(&sc->bcon_tasklet, ath9k_beacon_tasklet);
drivers/net/wireless/ath/ath9k/init.c
740
timer_setup(&sc->sleep_timer, ath_ps_full_sleep, 0);
drivers/net/wireless/ath/ath9k/init.c
741
INIT_WORK(&sc->hw_reset_work, ath_reset_work);
drivers/net/wireless/ath/ath9k/init.c
742
INIT_WORK(&sc->paprd_work, ath_paprd_calibrate);
drivers/net/wireless/ath/ath9k/init.c
743
INIT_DELAYED_WORK(&sc->hw_pll_work, ath_hw_pll_work);
drivers/net/wireless/ath/ath9k/init.c
744
INIT_DELAYED_WORK(&sc->hw_check_work, ath_hw_check_work);
drivers/net/wireless/ath/ath9k/init.c
746
ath9k_init_channel_context(sc);
drivers/net/wireless/ath/ath9k/init.c
760
ret = ath9k_init_queues(sc);
drivers/net/wireless/ath/ath9k/init.c
764
ret = ath9k_init_btcoex(sc);
drivers/net/wireless/ath/ath9k/init.c
772
ret = ath9k_init_p2p(sc);
drivers/net/wireless/ath/ath9k/init.c
776
ath9k_cmn_init_crypto(sc->sc_ah);
drivers/net/wireless/ath/ath9k/init.c
777
ath9k_init_misc(sc);
drivers/net/wireless/ath/ath9k/init.c
778
ath_chanctx_init(sc);
drivers/net/wireless/ath/ath9k/init.c
779
ath9k_offchannel_init(sc);
drivers/net/wireless/ath/ath9k/init.c
788
if (ATH_TXQ_SETUP(sc, i))
drivers/net/wireless/ath/ath9k/init.c
789
ath_tx_cleanupq(sc, &sc->tx.txq[i]);
drivers/net/wireless/ath/ath9k/init.c
793
ath9k_eeprom_release(sc);
drivers/net/wireless/ath/ath9k/init.c
794
dev_kfree_skb_any(sc->tx99_skb);
drivers/net/wireless/ath/ath9k/init.c
798
static void ath9k_init_band_txpower(struct ath_softc *sc, int band)
drivers/net/wireless/ath/ath9k/init.c
802
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
812
ath9k_cmn_get_channel(sc->hw, ah, &chandef);
drivers/net/wireless/ath/ath9k/init.c
817
static void ath9k_init_txpower_limits(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/init.c
819
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
823
ath9k_init_band_txpower(sc, NL80211_BAND_2GHZ);
drivers/net/wireless/ath/ath9k/init.c
825
ath9k_init_band_txpower(sc, NL80211_BAND_5GHZ);
drivers/net/wireless/ath/ath9k/init.c
880
static void ath9k_set_mcc_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
drivers/net/wireless/ath/ath9k/init.c
882
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
904
static void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
drivers/net/wireless/ath/ath9k/init.c
906
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
923
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) {
drivers/net/wireless/ath/ath9k/init.c
931
if (AR_SREV_9160_10_OR_LATER(sc->sc_ah) || ath9k_modparam_nohwcrypt)
drivers/net/wireless/ath/ath9k/init.c
981
sc->ant_rx = hw->wiphy->available_antennas_rx;
drivers/net/wireless/ath/ath9k/init.c
982
sc->ant_tx = hw->wiphy->available_antennas_tx;
drivers/net/wireless/ath/ath9k/init.c
984
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_2GHZ)
drivers/net/wireless/ath/ath9k/init.c
987
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_5GHZ)
drivers/net/wireless/ath/ath9k/init.c
992
ath9k_set_mcc_capab(sc, hw);
drivers/net/wireless/ath/ath9k/link.c
101
bool ath_hw_check(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/link.c
103
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/link.c
107
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/link.c
109
is_alive = ath9k_hw_check_alive(sc->sc_ah);
drivers/net/wireless/ath/ath9k/link.c
115
ath9k_queue_reset(sc, type);
drivers/net/wireless/ath/ath9k/link.c
118
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/link.c
126
static bool ath_hw_pll_rx_hang_check(struct ath_softc *sc, u32 pll_sqsum)
drivers/net/wireless/ath/ath9k/link.c
129
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/link.c
135
ath9k_queue_reset(sc, RESET_TYPE_PLL_HANG);
drivers/net/wireless/ath/ath9k/link.c
149
struct ath_softc *sc = container_of(work, struct ath_softc,
drivers/net/wireless/ath/ath9k/link.c
151
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/link.c
161
if (sc->tx99_state)
drivers/net/wireless/ath/ath9k/link.c
164
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/link.c
165
pll_sqsum = ar9003_get_pll_sqsum_dvc(sc->sc_ah);
drivers/net/wireless/ath/ath9k/link.c
166
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/link.c
167
if (ath_hw_pll_rx_hang_check(sc, pll_sqsum))
drivers/net/wireless/ath/ath9k/link.c
170
ieee80211_queue_delayed_work(sc->hw, &sc->hw_pll_work,
drivers/net/wireless/ath/ath9k/link.c
177
static void ath_paprd_activate(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/link.c
179
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
201
static bool ath_paprd_send_frame(struct ath_softc *sc, struct sk_buff *skb, int chain)
drivers/net/wireless/ath/ath9k/link.c
203
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/link.c
205
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
211
txctl.txq = sc->tx.txq_map[IEEE80211_AC_BE];
drivers/net/wireless/ath/ath9k/link.c
214
tx_info->band = sc->cur_chandef.chan->band;
drivers/net/wireless/ath/ath9k/link.c
221
init_completion(&sc->paprd_complete);
drivers/net/wireless/ath/ath9k/link.c
23
static bool ath_tx_complete_check(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/link.c
230
time_left = wait_for_completion_timeout(&sc->paprd_complete,
drivers/net/wireless/ath/ath9k/link.c
243
struct ath_softc *sc = container_of(work, struct ath_softc, paprd_work);
drivers/net/wireless/ath/ath9k/link.c
244
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/link.c
245
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
263
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/link.c
28
if (sc->tx99_state)
drivers/net/wireless/ath/ath9k/link.c
291
if (!ath_paprd_send_frame(sc, skb, chain))
drivers/net/wireless/ath/ath9k/link.c
319
ath_paprd_activate(sc);
drivers/net/wireless/ath/ath9k/link.c
32
txq = sc->tx.txq_map[i];
drivers/net/wireless/ath/ath9k/link.c
323
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/link.c
336
struct ath_softc *sc = common->priv;
drivers/net/wireless/ath/ath9k/link.c
337
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
34
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/link.c
354
if (sc->sc_ah->power_mode != ATH9K_PM_AWAKE) {
drivers/net/wireless/ath/ath9k/link.c
356
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/link.c
357
sc->ps_flags |= PS_WAIT_FOR_ANI;
drivers/net/wireless/ath/ath9k/link.c
358
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/link.c
363
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/link.c
364
sc->ps_flags &= ~PS_WAIT_FOR_ANI;
drivers/net/wireless/ath/ath9k/link.c
365
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/link.c
367
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/link.c
37
ath_txq_unlock(sc, txq);
drivers/net/wireless/ath/ath9k/link.c
401
ath_update_survey_stats(sc);
drivers/net/wireless/ath/ath9k/link.c
411
ath9k_queue_reset(sc, RESET_TYPE_CALIBRATION);
drivers/net/wireless/ath/ath9k/link.c
424
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/link.c
43
ath_txq_unlock(sc, txq);
drivers/net/wireless/ath/ath9k/link.c
441
ieee80211_queue_work(sc->hw, &sc->paprd_work);
drivers/net/wireless/ath/ath9k/link.c
443
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/link.c
444
ath_paprd_activate(sc);
drivers/net/wireless/ath/ath9k/link.c
445
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/link.c
450
void ath_start_ani(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/link.c
452
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
458
sc->cur_chan->offchannel)
drivers/net/wireless/ath/ath9k/link.c
470
void ath_stop_ani(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/link.c
472
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/link.c
478
void ath_check_ani(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/link.c
480
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
481
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/link.c
482
struct ath_beacon_config *cur_conf = &sc->cur_chan->beacon;
drivers/net/wireless/ath/ath9k/link.c
49
ath_dbg(ath9k_hw_common(sc->sc_ah), RESET,
drivers/net/wireless/ath/ath9k/link.c
507
ath_start_ani(sc);
drivers/net/wireless/ath/ath9k/link.c
51
ath9k_queue_reset(sc, RESET_TYPE_TX_HANG);
drivers/net/wireless/ath/ath9k/link.c
514
ath_stop_ani(sc);
drivers/net/wireless/ath/ath9k/link.c
517
void ath_update_survey_nf(struct ath_softc *sc, int channel)
drivers/net/wireless/ath/ath9k/link.c
519
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
521
struct survey_info *survey = &sc->survey[channel];
drivers/net/wireless/ath/ath9k/link.c
535
int ath_update_survey_stats(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/link.c
537
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
540
struct survey_info *survey = &sc->survey[pos];
drivers/net/wireless/ath/ath9k/link.c
57
static bool ath_hw_rx_inactive_check(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/link.c
570
ath_update_survey_nf(sc, pos);
drivers/net/wireless/ath/ath9k/link.c
59
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/link.c
62
interval = jiffies_to_msecs(jiffies - sc->rx_active_check_time);
drivers/net/wireless/ath/ath9k/link.c
63
count = sc->rx_active_count;
drivers/net/wireless/ath/ath9k/link.c
68
sc->rx_active_count = 0;
drivers/net/wireless/ath/ath9k/link.c
69
sc->rx_active_check_time = jiffies;
drivers/net/wireless/ath/ath9k/link.c
80
ath9k_queue_reset(sc, RESET_TYPE_RX_INACTIVE);
drivers/net/wireless/ath/ath9k/link.c
87
struct ath_softc *sc = container_of(work, struct ath_softc,
drivers/net/wireless/ath/ath9k/link.c
90
if (!ath_hw_check(sc) || !ath_tx_complete_check(sc) ||
drivers/net/wireless/ath/ath9k/link.c
91
!ath_hw_rx_inactive_check(sc))
drivers/net/wireless/ath/ath9k/link.c
94
ieee80211_queue_delayed_work(sc->hw, &sc->hw_check_work,
drivers/net/wireless/ath/ath9k/main.c
101
struct ath_softc *sc = timer_container_of(sc, t, sleep_timer);
drivers/net/wireless/ath/ath9k/main.c
102
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1064
static void ath9k_update_bssid_mask(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/main.c
1068
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1088
sc->hw->wiphy->perm_addr[i]);
drivers/net/wireless/ath/ath9k/main.c
1093
void ath9k_calculate_iter_data(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/main.c
110
ath9k_hw_setrxabort(sc->sc_ah, 1);
drivers/net/wireless/ath/ath9k/main.c
111
ath9k_hw_stopdmarecv(sc->sc_ah, &reset);
drivers/net/wireless/ath/ath9k/main.c
1110
ath9k_update_bssid_mask(sc, ctx, iter_data);
drivers/net/wireless/ath/ath9k/main.c
1113
static void ath9k_set_assoc_state(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/main.c
1116
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1124
ath9k_hw_write_associd(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1128
sc->sc_ah->stats.avgbrssi = ATH_RSSI_DUMMY_MARKER;
drivers/net/wireless/ath/ath9k/main.c
113
ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_FULL_SLEEP);
drivers/net/wireless/ath/ath9k/main.c
1130
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
1131
sc->ps_flags |= PS_BEACON_SYNC | PS_WAIT_FOR_BEACON;
drivers/net/wireless/ath/ath9k/main.c
1132
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
1135
if (ath9k_hw_mci_is_enabled(sc->sc_ah))
drivers/net/wireless/ath/ath9k/main.c
1136
ath9k_mci_update_wlan_channels(sc, false);
drivers/net/wireless/ath/ath9k/main.c
1144
static void ath9k_set_offchannel_state(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/main.c
1146
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1150
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
1152
if (sc->offchannel.state < ATH_OFFCHANNEL_ROC_START)
drivers/net/wireless/ath/ath9k/main.c
1153
vif = sc->offchannel.scan_vif;
drivers/net/wireless/ath/ath9k/main.c
1155
vif = sc->offchannel.roc_vif;
drivers/net/wireless/ath/ath9k/main.c
116
void ath9k_ps_wakeup(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/main.c
1171
ath9k_hw_write_associd(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1176
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
118
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1181
void ath9k_calculate_summary_state(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/main.c
1184
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1188
ath_chanctx_check_active(sc, ctx);
drivers/net/wireless/ath/ath9k/main.c
1190
if (ctx != sc->cur_chan)
drivers/net/wireless/ath/ath9k/main.c
1194
if (ctx == &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/main.c
1195
return ath9k_set_offchannel_state(sc);
drivers/net/wireless/ath/ath9k/main.c
1198
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
1199
ath9k_calculate_iter_data(sc, ctx, &iter_data);
drivers/net/wireless/ath/ath9k/main.c
1213
ath9k_beacon_ensure_primary_slot(sc);
drivers/net/wireless/ath/ath9k/main.c
122
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
123
if (++sc->ps_usecount != 1)
drivers/net/wireless/ath/ath9k/main.c
1242
ath9k_set_assoc_state(sc, iter_data.primary_sta,
drivers/net/wireless/ath/ath9k/main.c
1249
ath9k_hw_write_associd(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1250
if (ath9k_hw_mci_is_enabled(sc->sc_ah))
drivers/net/wireless/ath/ath9k/main.c
1251
ath9k_mci_update_wlan_channels(sc, true);
drivers/net/wireless/ath/ath9k/main.c
1254
sc->nbcnvifs = iter_data.nbcnvifs;
drivers/net/wireless/ath/ath9k/main.c
1255
ath9k_beacon_config(sc, iter_data.primary_beacon_vif,
drivers/net/wireless/ath/ath9k/main.c
126
timer_delete_sync(&sc->sleep_timer);
drivers/net/wireless/ath/ath9k/main.c
127
power_mode = sc->sc_ah->power_mode;
drivers/net/wireless/ath/ath9k/main.c
1273
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
128
ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_AWAKE);
drivers/net/wireless/ath/ath9k/main.c
1288
void ath9k_set_txpower(struct ath_softc *sc, struct ieee80211_vif *vif)
drivers/net/wireless/ath/ath9k/main.c
1291
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1294
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
1298
sc->hw, IEEE80211_IFACE_ITER_RESUME_ALL,
drivers/net/wireless/ath/ath9k/main.c
1301
power = sc->hw->conf.power_level;
drivers/net/wireless/ath/ath9k/main.c
1303
power = sc->hw->conf.power_level;
drivers/net/wireless/ath/ath9k/main.c
1305
sc->cur_chan->txpower = 2 * power;
drivers/net/wireless/ath/ath9k/main.c
1306
ath9k_hw_set_txpowerlimit(ah, sc->cur_chan->txpower, false);
drivers/net/wireless/ath/ath9k/main.c
1307
sc->cur_chan->cur_txpower = reg->max_power_level;
drivers/net/wireless/ath/ath9k/main.c
1308
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
1332
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
1333
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1338
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1340
if (sc->cur_chan->nvifs >= 1) {
drivers/net/wireless/ath/ath9k/main.c
1341
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1344
sc->tx99_vif = vif;
drivers/net/wireless/ath/ath9k/main.c
1348
sc->cur_chan->nvifs++;
drivers/net/wireless/ath/ath9k/main.c
1354
ath9k_beacon_assign_slot(sc, vif);
drivers/net/wireless/ath/ath9k/main.c
1358
avp->chanctx = sc->cur_chan;
drivers/net/wireless/ath/ath9k/main.c
1362
ath9k_calculate_summary_state(sc, avp->chanctx);
drivers/net/wireless/ath/ath9k/main.c
1366
ath9k_set_txpower(sc, vif);
drivers/net/wireless/ath/ath9k/main.c
1368
an->sc = sc;
drivers/net/wireless/ath/ath9k/main.c
1372
ath_tx_node_init(sc, an);
drivers/net/wireless/ath/ath9k/main.c
1374
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1383
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
1384
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1387
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1390
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1397
ath9k_beacon_remove_slot(sc, vif);
drivers/net/wireless/ath/ath9k/main.c
1403
ath9k_beacon_assign_slot(sc, vif);
drivers/net/wireless/ath/ath9k/main.c
1406
ath9k_calculate_summary_state(sc, avp->chanctx);
drivers/net/wireless/ath/ath9k/main.c
1408
ath9k_set_txpower(sc, vif);
drivers/net/wireless/ath/ath9k/main.c
1410
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1417
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
1418
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1423
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1425
ath9k_p2p_remove_vif(sc, vif);
drivers/net/wireless/ath/ath9k/main.c
1427
sc->cur_chan->nvifs--;
drivers/net/wireless/ath/ath9k/main.c
1428
sc->tx99_vif = NULL;
drivers/net/wireless/ath/ath9k/main.c
143
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
1433
ath9k_beacon_remove_slot(sc, vif);
drivers/net/wireless/ath/ath9k/main.c
1435
ath_tx_node_cleanup(sc, &avp->mcast_node);
drivers/net/wireless/ath/ath9k/main.c
1437
ath9k_calculate_summary_state(sc, avp->chanctx);
drivers/net/wireless/ath/ath9k/main.c
1439
ath9k_set_txpower(sc, NULL);
drivers/net/wireless/ath/ath9k/main.c
1441
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1444
static void ath9k_enable_ps(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/main.c
1446
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1452
sc->ps_enabled = true;
drivers/net/wireless/ath/ath9k/main.c
146
void ath9k_ps_restore(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/main.c
1463
static void ath9k_disable_ps(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/main.c
1465
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1471
sc->ps_enabled = false;
drivers/net/wireless/ath/ath9k/main.c
1475
sc->ps_flags &= ~(PS_WAIT_FOR_BEACON |
drivers/net/wireless/ath/ath9k/main.c
148
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1489
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
1490
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1493
struct ath_chanctx *ctx = sc->cur_chan;
drivers/net/wireless/ath/ath9k/main.c
1495
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
1496
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1499
sc->ps_idle = !!(conf->flags & IEEE80211_CONF_IDLE);
drivers/net/wireless/ath/ath9k/main.c
1500
if (sc->ps_idle) {
drivers/net/wireless/ath/ath9k/main.c
1501
ath_cancel_work(sc);
drivers/net/wireless/ath/ath9k/main.c
1502
ath9k_stop_btcoex(sc);
drivers/net/wireless/ath/ath9k/main.c
1504
ath9k_start_btcoex(sc);
drivers/net/wireless/ath/ath9k/main.c
1509
ath_chanctx_set_channel(sc, ctx, &ctx->chandef);
drivers/net/wireless/ath/ath9k/main.c
152
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
1521
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
1523
ath9k_enable_ps(sc);
drivers/net/wireless/ath/ath9k/main.c
1525
ath9k_disable_ps(sc);
drivers/net/wireless/ath/ath9k/main.c
1526
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
153
if (--sc->ps_usecount != 0)
drivers/net/wireless/ath/ath9k/main.c
1532
sc->sc_ah->is_monitoring = true;
drivers/net/wireless/ath/ath9k/main.c
1535
sc->sc_ah->is_monitoring = false;
drivers/net/wireless/ath/ath9k/main.c
1541
ath_chanctx_set_channel(sc, ctx, &hw->conf.chandef);
drivers/net/wireless/ath/ath9k/main.c
1545
ath9k_set_txpower(sc, NULL);
drivers/net/wireless/ath/ath9k/main.c
1547
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1548
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
156
if (sc->ps_idle) {
drivers/net/wireless/ath/ath9k/main.c
1569
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
157
mod_timer(&sc->sleep_timer, jiffies + HZ / 10);
drivers/net/wireless/ath/ath9k/main.c
1575
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
1576
ath_for_each_chanctx(sc, ctx)
drivers/net/wireless/ath/ath9k/main.c
1579
sc->offchannel.chan.rxfilter = *total_flags;
drivers/net/wireless/ath/ath9k/main.c
1581
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
1583
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
1584
rfilt = ath_calcrxfilter(sc);
drivers/net/wireless/ath/ath9k/main.c
1585
ath9k_hw_setrxfilter(sc->sc_ah, rfilt);
drivers/net/wireless/ath/ath9k/main.c
1586
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
1588
ath_dbg(ath9k_hw_common(sc->sc_ah), CONFIG, "Set HW RX filter: 0x%x\n",
drivers/net/wireless/ath/ath9k/main.c
1596
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
1597
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1602
ath_node_attach(sc, sta, vif);
drivers/net/wireless/ath/ath9k/main.c
161
if (sc->ps_enabled &&
drivers/net/wireless/ath/ath9k/main.c
1617
static void ath9k_del_ps_key(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/main.c
162
!(sc->ps_flags & (PS_WAIT_FOR_BEACON |
drivers/net/wireless/ath/ath9k/main.c
1621
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1636
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
1638
ath9k_del_ps_key(sc, vif, sta);
drivers/net/wireless/ath/ath9k/main.c
1639
ath_node_detach(sc, sta);
drivers/net/wireless/ath/ath9k/main.c
1650
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
1651
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1670
ath_chanctx_event(sc, vif,
drivers/net/wireless/ath/ath9k/main.c
168
if (ath9k_hw_btcoex_is_enabled(sc->sc_ah))
drivers/net/wireless/ath/ath9k/main.c
169
ath9k_btcoex_stop_gen_timer(sc);
drivers/net/wireless/ath/ath9k/main.c
1696
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
1702
ath_tx_aggr_sleep(sta, sc, an);
drivers/net/wireless/ath/ath9k/main.c
1703
ath9k_sta_set_tx_filter(sc->sc_ah, an, true);
drivers/net/wireless/ath/ath9k/main.c
1706
ath9k_sta_set_tx_filter(sc->sc_ah, an, false);
drivers/net/wireless/ath/ath9k/main.c
1708
ath_tx_aggr_wakeup(sc, an);
drivers/net/wireless/ath/ath9k/main.c
1718
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
1719
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1727
txq = sc->tx.txq_map[queue];
drivers/net/wireless/ath/ath9k/main.c
1729
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
1730
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1744
ath_update_max_aggr_framelen(sc, queue, qi.tqi_burstTime);
drivers/net/wireless/ath/ath9k/main.c
1745
ret = ath_txq_update(sc, txq->axq_qnum, &qi);
drivers/net/wireless/ath/ath9k/main.c
1749
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1750
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
1761
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
1762
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
178
ath9k_hw_setpower(sc->sc_ah, mode);
drivers/net/wireless/ath/ath9k/main.c
1793
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1794
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
1803
ath9k_pending_key_del(sc, i);
drivers/net/wireless/ath/ath9k/main.c
1808
ath9k_del_ps_key(sc, vif, sta);
drivers/net/wireless/ath/ath9k/main.c
181
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
1818
if (sc->sc_ah->sw_mgmt_crypto_tx &&
drivers/net/wireless/ath/ath9k/main.c
1834
if (ath9k_txq_has_key(sc, key->hw_key_idx)) {
drivers/net/wireless/ath/ath9k/main.c
1838
set_bit(key->hw_key_idx, sc->sc_ah->pending_del_keymap);
drivers/net/wireless/ath/ath9k/main.c
184
static void __ath_cancel_work(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/main.c
1857
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
1858
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
186
cancel_work_sync(&sc->paprd_work);
drivers/net/wireless/ath/ath9k/main.c
187
cancel_delayed_work_sync(&sc->hw_check_work);
drivers/net/wireless/ath/ath9k/main.c
1873
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
1874
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1879
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
188
cancel_delayed_work_sync(&sc->hw_pll_work);
drivers/net/wireless/ath/ath9k/main.c
1880
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1890
ath9k_calculate_summary_state(sc, avp->chanctx);
drivers/net/wireless/ath/ath9k/main.c
1897
ath9k_hw_write_associd(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1903
ath9k_calculate_summary_state(sc, avp->chanctx);
drivers/net/wireless/ath/ath9k/main.c
1906
if ((avp->chanctx == sc->cur_chan) &&
drivers/net/wireless/ath/ath9k/main.c
191
if (ath9k_hw_mci_is_enabled(sc->sc_ah))
drivers/net/wireless/ath/ath9k/main.c
1919
sc->beacon.slottime = slottime;
drivers/net/wireless/ath/ath9k/main.c
192
cancel_work_sync(&sc->mci_work);
drivers/net/wireless/ath/ath9k/main.c
1920
sc->beacon.updateslot = UPDATE;
drivers/net/wireless/ath/ath9k/main.c
1928
ath9k_p2p_bss_info_changed(sc, vif);
drivers/net/wireless/ath/ath9k/main.c
1931
ath_check_ani(sc);
drivers/net/wireless/ath/ath9k/main.c
1936
ath9k_set_txpower(sc, vif);
drivers/net/wireless/ath/ath9k/main.c
1939
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1940
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
1947
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
1951
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1952
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
1954
if (sc->cur_chan == avp->chanctx) {
drivers/net/wireless/ath/ath9k/main.c
1955
tsf = ath9k_hw_gettsf64(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1957
tsf = sc->cur_chan->tsf_val +
drivers/net/wireless/ath/ath9k/main.c
1958
ath9k_hw_get_tsf_offset(sc->cur_chan->tsf_ts, 0);
drivers/net/wireless/ath/ath9k/main.c
196
void ath_cancel_work(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/main.c
1961
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
1962
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1971
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
1974
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1975
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
1978
if (sc->cur_chan == avp->chanctx)
drivers/net/wireless/ath/ath9k/main.c
1979
ath9k_hw_settsf64(sc->sc_ah, tsf);
drivers/net/wireless/ath/ath9k/main.c
198
__ath_cancel_work(sc);
drivers/net/wireless/ath/ath9k/main.c
1981
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
1982
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1987
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
199
cancel_work_sync(&sc->hw_reset_work);
drivers/net/wireless/ath/ath9k/main.c
1990
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
1992
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
1994
if (sc->cur_chan == avp->chanctx)
drivers/net/wireless/ath/ath9k/main.c
1995
ath9k_hw_reset_tsf(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
1997
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
1999
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2006
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2007
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
2017
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
202
void ath_restart_work(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/main.c
2031
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
2032
ret = ath_tx_aggr_start(sc, sta, tid, ssn);
drivers/net/wireless/ath/ath9k/main.c
2035
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
204
ieee80211_queue_delayed_work(sc->hw, &sc->hw_check_work,
drivers/net/wireless/ath/ath9k/main.c
2042
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
2043
ath_tx_aggr_stop(sc, sta, tid);
drivers/net/wireless/ath/ath9k/main.c
2046
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
2054
ath_err(ath9k_hw_common(sc->sc_ah), "Unknown AMPDU action\n");
drivers/net/wireless/ath/ath9k/main.c
2057
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2065
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2066
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
207
if (AR_SREV_9340(sc->sc_ah) || AR_SREV_9330(sc->sc_ah))
drivers/net/wireless/ath/ath9k/main.c
2077
ath_update_survey_stats(sc);
drivers/net/wireless/ath/ath9k/main.c
208
ieee80211_queue_delayed_work(sc->hw, &sc->hw_pll_work,
drivers/net/wireless/ath/ath9k/main.c
2095
memcpy(survey, &sc->survey[pos], sizeof(*survey));
drivers/net/wireless/ath/ath9k/main.c
2102
static void ath9k_enable_dynack(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/main.c
2106
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
211
ath_start_ani(sc);
drivers/net/wireless/ath/ath9k/main.c
2111
rfilt = ath_calcrxfilter(sc);
drivers/net/wireless/ath/ath9k/main.c
2120
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2121
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
2126
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2134
rfilt = ath_calcrxfilter(sc);
drivers/net/wireless/ath/ath9k/main.c
2137
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
2139
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
214
static bool ath_prepare_reset(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/main.c
2141
ath9k_enable_dynack(sc);
drivers/net/wireless/ath/ath9k/main.c
2144
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2147
static bool ath9k_has_tx_pending(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/main.c
2153
if (!ATH_TXQ_SETUP(sc, i))
drivers/net/wireless/ath/ath9k/main.c
2156
npend = ath9k_has_pending_frames(sc, &sc->tx.txq[i],
drivers/net/wireless/ath/ath9k/main.c
216
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
2168
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2169
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
2189
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
219
ieee80211_stop_queues(sc->hw);
drivers/net/wireless/ath/ath9k/main.c
2191
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2197
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2198
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
220
ath_stop_ani(sc);
drivers/net/wireless/ath/ath9k/main.c
2203
cancel_delayed_work_sync(&sc->hw_check_work);
drivers/net/wireless/ath/ath9k/main.c
2215
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
2219
timeout = sc->cur_chan->flush_timeout;
drivers/net/wireless/ath/ath9k/main.c
2220
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
2225
if (wait_event_timeout(sc->tx_wait, !ath9k_has_tx_pending(sc, sw_pending),
drivers/net/wireless/ath/ath9k/main.c
2230
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
2231
spin_lock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/main.c
2232
drain_txq = ath_drain_all_txq(sc);
drivers/net/wireless/ath/ath9k/main.c
2233
spin_unlock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/main.c
2236
ath_reset(sc, NULL);
drivers/net/wireless/ath/ath9k/main.c
2238
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
224
ret &= ath_stoprecv(sc);
drivers/net/wireless/ath/ath9k/main.c
2241
ieee80211_queue_delayed_work(hw, &sc->hw_check_work,
drivers/net/wireless/ath/ath9k/main.c
2247
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2249
return ath9k_has_tx_pending(sc, true);
drivers/net/wireless/ath/ath9k/main.c
225
ret &= ath_drain_all_txq(sc);
drivers/net/wireless/ath/ath9k/main.c
2254
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2255
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
2263
vif = sc->beacon.bslot[0];
drivers/net/wireless/ath/ath9k/main.c
227
ret &= ath_drain_all_txq(sc);
drivers/net/wireless/ath/ath9k/main.c
2272
if (!sc->beacon.tx_processed && !edma) {
drivers/net/wireless/ath/ath9k/main.c
2273
tasklet_disable(&sc->bcon_tasklet);
drivers/net/wireless/ath/ath9k/main.c
228
ret &= ath_stoprecv(sc);
drivers/net/wireless/ath/ath9k/main.c
2283
sc->beacon.tx_processed = true;
drivers/net/wireless/ath/ath9k/main.c
2284
sc->beacon.tx_last = !(ts.ts_status & ATH9K_TXERR_MASK);
drivers/net/wireless/ath/ath9k/main.c
2287
tasklet_enable(&sc->bcon_tasklet);
drivers/net/wireless/ath/ath9k/main.c
2290
return sc->beacon.tx_last;
drivers/net/wireless/ath/ath9k/main.c
2296
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2297
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
234
static bool ath_complete_reset(struct ath_softc *sc, bool start)
drivers/net/wireless/ath/ath9k/main.c
2345
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2346
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
2354
sc->ant_rx = rx_ant;
drivers/net/wireless/ath/ath9k/main.c
2355
sc->ant_tx = tx_ant;
drivers/net/wireless/ath/ath9k/main.c
236
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
2375
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2377
*tx_ant = sc->ant_tx;
drivers/net/wireless/ath/ath9k/main.c
2378
*rx_ant = sc->ant_rx;
drivers/net/wireless/ath/ath9k/main.c
2386
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2387
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
2388
struct cfg80211_chan_def *chandef = &sc->cur_chan->chandef;
drivers/net/wireless/ath/ath9k/main.c
2394
if (!sc->cur_chan->offchannel) {
drivers/net/wireless/ath/ath9k/main.c
2395
if (sc->cur_survey != &sc->survey[pos]) {
drivers/net/wireless/ath/ath9k/main.c
2396
if (sc->cur_survey)
drivers/net/wireless/ath/ath9k/main.c
2397
sc->cur_survey->filled &= ~SURVEY_INFO_IN_USE;
drivers/net/wireless/ath/ath9k/main.c
2398
sc->cur_survey = &sc->survey[pos];
drivers/net/wireless/ath/ath9k/main.c
240
ath9k_calculate_summary_state(sc, sc->cur_chan);
drivers/net/wireless/ath/ath9k/main.c
2401
memset(sc->cur_survey, 0, sizeof(struct survey_info));
drivers/net/wireless/ath/ath9k/main.c
2402
sc->cur_survey->filled |= SURVEY_INFO_IN_USE;
drivers/net/wireless/ath/ath9k/main.c
2409
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
241
ath_startrecv(sc);
drivers/net/wireless/ath/ath9k/main.c
2410
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
2416
static void ath9k_cancel_pending_offchannel(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/main.c
2418
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
242
ath9k_cmn_update_txpow(ah, sc->cur_chan->cur_txpower,
drivers/net/wireless/ath/ath9k/main.c
2420
if (sc->offchannel.roc_vif) {
drivers/net/wireless/ath/ath9k/main.c
2424
timer_delete_sync(&sc->offchannel.timer);
drivers/net/wireless/ath/ath9k/main.c
2425
if (sc->offchannel.state >= ATH_OFFCHANNEL_ROC_START)
drivers/net/wireless/ath/ath9k/main.c
2426
ath_roc_complete(sc, ATH_ROC_COMPLETE_ABORT);
drivers/net/wireless/ath/ath9k/main.c
243
sc->cur_chan->txpower,
drivers/net/wireless/ath/ath9k/main.c
2433
timer_delete_sync(&sc->offchannel.timer);
drivers/net/wireless/ath/ath9k/main.c
2434
ath_scan_complete(sc, true);
drivers/net/wireless/ath/ath9k/main.c
244
&sc->cur_chan->cur_txpower);
drivers/net/wireless/ath/ath9k/main.c
2442
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2443
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
2446
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2448
if (WARN_ON(sc->offchannel.scan_req)) {
drivers/net/wireless/ath/ath9k/main.c
2453
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
2455
sc->offchannel.scan_vif = vif;
drivers/net/wireless/ath/ath9k/main.c
2456
sc->offchannel.scan_req = req;
drivers/net/wireless/ath/ath9k/main.c
2457
sc->offchannel.scan_idx = 0;
drivers/net/wireless/ath/ath9k/main.c
2462
if (sc->offchannel.state == ATH_OFFCHANNEL_IDLE) {
drivers/net/wireless/ath/ath9k/main.c
2464
ath_offchannel_next(sc);
drivers/net/wireless/ath/ath9k/main.c
2468
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
247
if (!sc->cur_chan->offchannel && start) {
drivers/net/wireless/ath/ath9k/main.c
2476
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2477
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
2481
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2482
timer_delete_sync(&sc->offchannel.timer);
drivers/net/wireless/ath/ath9k/main.c
2483
ath_scan_complete(sc, true);
drivers/net/wireless/ath/ath9k/main.c
2484
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
249
if (sc->cur_chan->tsf_val) {
drivers/net/wireless/ath/ath9k/main.c
2492
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2493
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
2496
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2498
if (WARN_ON(sc->offchannel.roc_vif)) {
drivers/net/wireless/ath/ath9k/main.c
2503
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
2504
sc->offchannel.roc_vif = vif;
drivers/net/wireless/ath/ath9k/main.c
2505
sc->offchannel.roc_chan = chan;
drivers/net/wireless/ath/ath9k/main.c
2506
sc->offchannel.roc_duration = duration;
drivers/net/wireless/ath/ath9k/main.c
2512
if (sc->offchannel.state == ATH_OFFCHANNEL_IDLE) {
drivers/net/wireless/ath/ath9k/main.c
2514
ath_offchannel_next(sc);
drivers/net/wireless/ath/ath9k/main.c
2518
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
252
offset = ath9k_hw_get_tsf_offset(sc->cur_chan->tsf_ts, 0);
drivers/net/wireless/ath/ath9k/main.c
2526
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2527
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
2529
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
253
ath9k_hw_settsf64(ah, sc->cur_chan->tsf_val + offset);
drivers/net/wireless/ath/ath9k/main.c
2532
timer_delete_sync(&sc->offchannel.timer);
drivers/net/wireless/ath/ath9k/main.c
2534
if (sc->offchannel.roc_vif) {
drivers/net/wireless/ath/ath9k/main.c
2535
if (sc->offchannel.state >= ATH_OFFCHANNEL_ROC_START)
drivers/net/wireless/ath/ath9k/main.c
2536
ath_roc_complete(sc, ATH_ROC_COMPLETE_CANCEL);
drivers/net/wireless/ath/ath9k/main.c
2539
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2547
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2548
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
2552
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2554
ath_for_each_chanctx(sc, ctx) {
drivers/net/wireless/ath/ath9k/main.c
2561
pos = ctx - &sc->chanctx[0];
drivers/net/wireless/ath/ath9k/main.c
2568
ath_chanctx_set_channel(sc, ctx, &conf->def);
drivers/net/wireless/ath/ath9k/main.c
2570
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2574
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2582
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2583
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
2586
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2594
ath_chanctx_event(sc, NULL, ATH_CHANCTX_EVENT_UNASSIGN);
drivers/net/wireless/ath/ath9k/main.c
2596
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2603
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2604
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
2607
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2611
ath_chanctx_set_channel(sc, ctx, &conf->def);
drivers/net/wireless/ath/ath9k/main.c
2612
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
262
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
2620
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2621
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
2626
ath9k_cancel_pending_offchannel(sc);
drivers/net/wireless/ath/ath9k/main.c
2628
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
263
sc->ps_flags |= PS_BEACON_SYNC | PS_WAIT_FOR_BEACON;
drivers/net/wireless/ath/ath9k/main.c
2638
ath9k_calculate_summary_state(sc, ctx);
drivers/net/wireless/ath/ath9k/main.c
264
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
2642
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2652
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2653
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
2658
ath9k_cancel_pending_offchannel(sc);
drivers/net/wireless/ath/ath9k/main.c
266
ath9k_set_beacon(sc);
drivers/net/wireless/ath/ath9k/main.c
2660
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2670
ath9k_calculate_summary_state(sc, ctx);
drivers/net/wireless/ath/ath9k/main.c
2674
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2681
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2682
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
269
ath_restart_work(sc);
drivers/net/wireless/ath/ath9k/main.c
2696
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2698
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
2699
if (sc->next_chan || (sc->cur_chan != avp->chanctx))
drivers/net/wireless/ath/ath9k/main.c
270
ath_txq_schedule_all(sc);
drivers/net/wireless/ath/ath9k/main.c
2701
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
2706
ath9k_cancel_pending_offchannel(sc);
drivers/net/wireless/ath/ath9k/main.c
2708
go_ctx = ath_is_go_chanctx_present(sc);
drivers/net/wireless/ath/ath9k/main.c
2715
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
2716
sc->sched.mgd_prepare_tx = true;
drivers/net/wireless/ath/ath9k/main.c
2719
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
2722
init_completion(&sc->go_beacon);
drivers/net/wireless/ath/ath9k/main.c
2724
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2726
if (wait_for_completion_timeout(&sc->go_beacon,
drivers/net/wireless/ath/ath9k/main.c
273
sc->gtt_cnt = 0;
drivers/net/wireless/ath/ath9k/main.c
2731
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
2732
sc->sched.mgd_prepare_tx = false;
drivers/net/wireless/ath/ath9k/main.c
2733
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
2736
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
2743
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
2744
sc->next_chan = avp->chanctx;
drivers/net/wireless/ath/ath9k/main.c
2745
sc->sched.state = ATH_CHANCTX_STATE_FORCE_ACTIVE;
drivers/net/wireless/ath/ath9k/main.c
2746
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
2748
ath_chanctx_set_next(sc, true);
drivers/net/wireless/ath/ath9k/main.c
2750
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
277
ieee80211_wake_queues(sc->hw);
drivers/net/wireless/ath/ath9k/main.c
2775
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
2778
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
278
ath9k_p2p_ps_timer(sc);
drivers/net/wireless/ath/ath9k/main.c
2782
*dbm = sc->cur_chan->cur_txpower;
drivers/net/wireless/ath/ath9k/main.c
2783
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
283
static int ath_reset_internal(struct ath_softc *sc, struct ath9k_channel *hchan)
drivers/net/wireless/ath/ath9k/main.c
285
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
291
__ath_cancel_work(sc);
drivers/net/wireless/ath/ath9k/main.c
293
disable_irq(sc->irq);
drivers/net/wireless/ath/ath9k/main.c
294
tasklet_disable(&sc->intr_tq);
drivers/net/wireless/ath/ath9k/main.c
295
tasklet_disable(&sc->bcon_tasklet);
drivers/net/wireless/ath/ath9k/main.c
296
spin_lock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/main.c
298
if (!sc->cur_chan->offchannel) {
drivers/net/wireless/ath/ath9k/main.c
300
caldata = &sc->cur_chan->caldata;
drivers/net/wireless/ath/ath9k/main.c
310
hchan = ath9k_cmn_get_channel(sc->hw, ah, &sc->cur_chan->chandef);
drivers/net/wireless/ath/ath9k/main.c
313
if (!ath_prepare_reset(sc))
drivers/net/wireless/ath/ath9k/main.c
319
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
320
sc->cur_chandef = sc->cur_chan->chandef;
drivers/net/wireless/ath/ath9k/main.c
321
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/main.c
332
ath9k_queue_reset(sc, RESET_TYPE_BB_HANG);
drivers/net/wireless/ath/ath9k/main.c
337
if (ath9k_hw_mci_is_enabled(sc->sc_ah) &&
drivers/net/wireless/ath/ath9k/main.c
338
sc->cur_chan->offchannel)
drivers/net/wireless/ath/ath9k/main.c
339
ath9k_mci_set_txpower(sc, true, false);
drivers/net/wireless/ath/ath9k/main.c
341
if (!ath_complete_reset(sc, true))
drivers/net/wireless/ath/ath9k/main.c
345
enable_irq(sc->irq);
drivers/net/wireless/ath/ath9k/main.c
346
spin_unlock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/main.c
347
tasklet_enable(&sc->bcon_tasklet);
drivers/net/wireless/ath/ath9k/main.c
348
tasklet_enable(&sc->intr_tq);
drivers/net/wireless/ath/ath9k/main.c
353
static void ath_node_attach(struct ath_softc *sc, struct ieee80211_sta *sta,
drivers/net/wireless/ath/ath9k/main.c
359
an->sc = sc;
drivers/net/wireless/ath/ath9k/main.c
364
ath_tx_node_init(sc, an);
drivers/net/wireless/ath/ath9k/main.c
366
ath_dynack_node_init(sc->sc_ah, an);
drivers/net/wireless/ath/ath9k/main.c
369
static void ath_node_detach(struct ath_softc *sc, struct ieee80211_sta *sta)
drivers/net/wireless/ath/ath9k/main.c
372
ath_tx_node_cleanup(sc, an);
drivers/net/wireless/ath/ath9k/main.c
374
ath_dynack_node_deinit(sc->sc_ah, an);
drivers/net/wireless/ath/ath9k/main.c
379
struct ath_softc *sc = from_tasklet(sc, t, intr_tq);
drivers/net/wireless/ath/ath9k/main.c
380
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
387
spin_lock_irqsave(&sc->intr_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
388
status = sc->intrstatus;
drivers/net/wireless/ath/ath9k/main.c
389
sc->intrstatus = 0;
drivers/net/wireless/ath/ath9k/main.c
390
spin_unlock_irqrestore(&sc->intr_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
392
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
393
spin_lock(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/main.c
397
ath9k_queue_reset(sc, type);
drivers/net/wireless/ath/ath9k/main.c
411
ath9k_queue_reset(sc, type);
drivers/net/wireless/ath/ath9k/main.c
420
sc->gtt_cnt++;
drivers/net/wireless/ath/ath9k/main.c
422
if ((sc->gtt_cnt >= MAX_GTT_CNT) && !ath9k_hw_check_alive(ah)) {
drivers/net/wireless/ath/ath9k/main.c
424
ath9k_queue_reset(sc, type);
drivers/net/wireless/ath/ath9k/main.c
431
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
432
if ((status & ATH9K_INT_TSFOOR) && sc->ps_enabled) {
drivers/net/wireless/ath/ath9k/main.c
438
sc->ps_flags |= PS_WAIT_FOR_BEACON | PS_BEACON_SYNC;
drivers/net/wireless/ath/ath9k/main.c
440
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
452
ath_rx_tasklet(sc, 0, true);
drivers/net/wireless/ath/ath9k/main.c
454
ath_rx_tasklet(sc, 0, false);
drivers/net/wireless/ath/ath9k/main.c
455
sc->rx_active_count++;
drivers/net/wireless/ath/ath9k/main.c
466
sc->gtt_cnt = 0;
drivers/net/wireless/ath/ath9k/main.c
468
ath_tx_edma_tasklet(sc);
drivers/net/wireless/ath/ath9k/main.c
470
ath_tx_tasklet(sc);
drivers/net/wireless/ath/ath9k/main.c
473
wake_up(&sc->tx_wait);
drivers/net/wireless/ath/ath9k/main.c
477
ath_gen_timer_isr(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
479
ath9k_btcoex_handle_interrupt(sc, status);
drivers/net/wireless/ath/ath9k/main.c
484
spin_unlock(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/main.c
485
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
506
struct ath_softc *sc = dev;
drivers/net/wireless/ath/ath9k/main.c
507
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
532
ath9k_debug_sync_cause(sc, sync_cause);
drivers/net/wireless/ath/ath9k/main.c
536
ath9k_hw_kill_interrupts(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
548
spin_lock(&sc->intr_lock);
drivers/net/wireless/ath/ath9k/main.c
549
sc->intrstatus |= status;
drivers/net/wireless/ath/ath9k/main.c
550
spin_unlock(&sc->intr_lock);
drivers/net/wireless/ath/ath9k/main.c
567
tasklet_schedule(&sc->bcon_tasklet);
drivers/net/wireless/ath/ath9k/main.c
579
if (ATH_DBG_WARN_ON_ONCE(sc->ps_idle))
drivers/net/wireless/ath/ath9k/main.c
583
ath9k_setpower(sc, ATH9K_PM_AWAKE);
drivers/net/wireless/ath/ath9k/main.c
584
spin_lock(&sc->sc_pm_lock);
drivers/net/wireless/ath/ath9k/main.c
585
ath9k_hw_setrxabort(sc->sc_ah, 0);
drivers/net/wireless/ath/ath9k/main.c
586
sc->ps_flags |= PS_WAIT_FOR_BEACON;
drivers/net/wireless/ath/ath9k/main.c
587
spin_unlock(&sc->sc_pm_lock);
drivers/net/wireless/ath/ath9k/main.c
592
ath_debug_stat_interrupt(sc, status);
drivers/net/wireless/ath/ath9k/main.c
597
tasklet_schedule(&sc->intr_tq);
drivers/net/wireless/ath/ath9k/main.c
60
static bool ath9k_has_pending_frames(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/main.c
609
int ath_reset(struct ath_softc *sc, struct ath9k_channel *hchan)
drivers/net/wireless/ath/ath9k/main.c
611
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
614
ath9k_hw_kill_interrupts(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
617
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
618
r = ath_reset_internal(sc, hchan);
drivers/net/wireless/ath/ath9k/main.c
619
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
629
void ath9k_queue_reset(struct ath_softc *sc, enum ath_reset_type type)
drivers/net/wireless/ath/ath9k/main.c
631
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
633
RESET_STAT_INC(sc, type);
drivers/net/wireless/ath/ath9k/main.c
635
ath9k_hw_kill_interrupts(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
637
ieee80211_queue_work(sc->hw, &sc->hw_reset_work);
drivers/net/wireless/ath/ath9k/main.c
642
struct ath_softc *sc = container_of(work, struct ath_softc, hw_reset_work);
drivers/net/wireless/ath/ath9k/main.c
644
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
645
ath_reset_internal(sc, NULL);
drivers/net/wireless/ath/ath9k/main.c
646
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
655
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
656
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
658
struct ieee80211_channel *curchan = sc->cur_chan->chandef.chan;
drivers/net/wireless/ath/ath9k/main.c
659
struct ath_chanctx *ctx = sc->cur_chan;
drivers/net/wireless/ath/ath9k/main.c
667
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
668
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
671
sc->cur_chandef = hw->conf.chandef;
drivers/net/wireless/ath/ath9k/main.c
683
spin_lock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/main.c
719
ath_mci_enable(sc);
drivers/net/wireless/ath/ath9k/main.c
722
sc->sc_ah->is_monitoring = false;
drivers/net/wireless/ath/ath9k/main.c
724
if (!ath_complete_reset(sc, false))
drivers/net/wireless/ath/ath9k/main.c
738
ath9k_cmn_init_crypto(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
742
spin_unlock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/main.c
744
ath9k_rng_start(sc);
drivers/net/wireless/ath/ath9k/main.c
746
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
748
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
757
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
758
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
763
if (sc->ps_enabled) {
drivers/net/wireless/ath/ath9k/main.c
777
if (unlikely(sc->sc_ah->power_mode == ATH9K_PM_NETWORK_SLEEP)) {
drivers/net/wireless/ath/ath9k/main.c
78
acq = &sc->cur_chan->acq[txq->mac80211_qnum];
drivers/net/wireless/ath/ath9k/main.c
783
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
784
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
785
if (!(sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_AUTOSLEEP))
drivers/net/wireless/ath/ath9k/main.c
786
ath9k_hw_setrxabort(sc->sc_ah, 0);
drivers/net/wireless/ath/ath9k/main.c
790
sc->ps_flags |= PS_WAIT_FOR_PSPOLL_DATA;
drivers/net/wireless/ath/ath9k/main.c
793
sc->ps_flags |= PS_WAIT_FOR_TX_ACK;
drivers/net/wireless/ath/ath9k/main.c
800
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
801
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
808
if (unlikely(sc->sc_ah->power_mode == ATH9K_PM_FULL_SLEEP)) {
drivers/net/wireless/ath/ath9k/main.c
814
txctl.txq = sc->tx.txq_map[skb_get_queue_mapping(skb)];
drivers/net/wireless/ath/ath9k/main.c
821
TX_STAT_INC(sc, txctl.txq->axq_qnum, txfailed);
drivers/net/wireless/ath/ath9k/main.c
849
static bool ath9k_txq_has_key(struct ath_softc *sc, u32 keyix)
drivers/net/wireless/ath/ath9k/main.c
851
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
857
if (!ATH_TXQ_SETUP(sc, i))
drivers/net/wireless/ath/ath9k/main.c
859
txq = &sc->tx.txq[i];
drivers/net/wireless/ath/ath9k/main.c
865
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/main.c
867
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
drivers/net/wireless/ath/ath9k/main.c
87
static bool ath9k_setpower(struct ath_softc *sc, enum ath9k_power_mode mode)
drivers/net/wireless/ath/ath9k/main.c
878
ath_txq_unlock(sc, txq);
drivers/net/wireless/ath/ath9k/main.c
884
static void ath9k_pending_key_del(struct ath_softc *sc, u8 keyix)
drivers/net/wireless/ath/ath9k/main.c
886
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
890
ath9k_txq_has_key(sc, keyix))
drivers/net/wireless/ath/ath9k/main.c
900
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/main.c
901
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
906
ath9k_deinit_channel_context(sc);
drivers/net/wireless/ath/ath9k/main.c
908
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
910
ath9k_rng_stop(sc);
drivers/net/wireless/ath/ath9k/main.c
912
ath_cancel_work(sc);
drivers/net/wireless/ath/ath9k/main.c
916
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/main.c
92
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
921
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/main.c
923
spin_lock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/main.c
93
ret = ath9k_hw_setpower(sc->sc_ah, mode);
drivers/net/wireless/ath/ath9k/main.c
932
spin_unlock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/main.c
936
synchronize_irq(sc->irq);
drivers/net/wireless/ath/ath9k/main.c
937
tasklet_kill(&sc->intr_tq);
drivers/net/wireless/ath/ath9k/main.c
938
tasklet_kill(&sc->bcon_tasklet);
drivers/net/wireless/ath/ath9k/main.c
94
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/main.c
940
prev_idle = sc->ps_idle;
drivers/net/wireless/ath/ath9k/main.c
941
sc->ps_idle = true;
drivers/net/wireless/ath/ath9k/main.c
943
spin_lock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/main.c
951
ath_prepare_reset(sc);
drivers/net/wireless/ath/ath9k/main.c
953
if (sc->rx.frag) {
drivers/net/wireless/ath/ath9k/main.c
954
dev_kfree_skb_any(sc->rx.frag);
drivers/net/wireless/ath/ath9k/main.c
955
sc->rx.frag = NULL;
drivers/net/wireless/ath/ath9k/main.c
960
&sc->cur_chan->chandef);
drivers/net/wireless/ath/ath9k/main.c
970
spin_unlock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/main.c
973
ath9k_pending_key_del(sc, i);
drivers/net/wireless/ath/ath9k/main.c
978
ath9k_cmn_init_crypto(sc->sc_ah);
drivers/net/wireless/ath/ath9k/main.c
980
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/main.c
982
sc->ps_idle = prev_idle;
drivers/net/wireless/ath/ath9k/main.c
984
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/mci.c
119
static void ath_mci_update_scheme(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/mci.c
121
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/mci.c
122
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/mci.c
124
struct ath9k_hw_mci *mci_hw = &sc->sc_ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/mci.c
160
btcoex->duty_cycle = AR_SREV_9565(sc->sc_ah) ? 40 : 35;
drivers/net/wireless/ath/ath9k/mci.c
186
if (IS_CHAN_2GHZ(sc->sc_ah->curchan)) {
drivers/net/wireless/ath/ath9k/mci.c
187
if (IS_CHAN_HT(sc->sc_ah->curchan))
drivers/net/wireless/ath/ath9k/mci.c
193
ath9k_btcoex_timer_pause(sc);
drivers/net/wireless/ath/ath9k/mci.c
194
ath9k_hw_btcoex_disable(sc->sc_ah);
drivers/net/wireless/ath/ath9k/mci.c
196
if (IS_CHAN_5GHZ(sc->sc_ah->curchan))
drivers/net/wireless/ath/ath9k/mci.c
206
ath9k_hw_btcoex_enable(sc->sc_ah);
drivers/net/wireless/ath/ath9k/mci.c
207
ath9k_btcoex_timer_resume(sc);
drivers/net/wireless/ath/ath9k/mci.c
210
static void ath_mci_cal_msg(struct ath_softc *sc, u8 opcode, u8 *rx_payload)
drivers/net/wireless/ath/ath9k/mci.c
212
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
221
ath9k_queue_reset(sc, RESET_TYPE_MCI);
drivers/net/wireless/ath/ath9k/mci.c
227
ar9003_mci_send_message(sc->sc_ah, MCI_GPM, 0, payload,
drivers/net/wireless/ath/ath9k/mci.c
238
struct ath_softc *sc = container_of(work, struct ath_softc, mci_work);
drivers/net/wireless/ath/ath9k/mci.c
240
ath_mci_update_scheme(sc);
drivers/net/wireless/ath/ath9k/mci.c
256
static void ath_mci_set_concur_txprio(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/mci.c
258
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/mci.c
294
ath9k_hw_btcoex_set_concur_txprio(sc->sc_ah, stomp_txprio);
drivers/net/wireless/ath/ath9k/mci.c
297
static u8 ath_mci_process_profile(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/mci.c
300
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/mci.c
301
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/mci.c
328
ath_mci_set_concur_txprio(sc);
drivers/net/wireless/ath/ath9k/mci.c
332
static u8 ath_mci_process_status(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/mci.c
335
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/mci.c
362
ath_mci_set_concur_txprio(sc);
drivers/net/wireless/ath/ath9k/mci.c
369
static void ath_mci_msg(struct ath_softc *sc, u8 opcode, u8 *rx_payload)
drivers/net/wireless/ath/ath9k/mci.c
371
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
374
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/mci.c
381
ath_mci_flush_profile(&sc->btcoex.mci);
drivers/net/wireless/ath/ath9k/mci.c
410
update_scheme += ath_mci_process_profile(sc, &profile_info);
drivers/net/wireless/ath/ath9k/mci.c
426
update_scheme += ath_mci_process_status(sc, &profile_status);
drivers/net/wireless/ath/ath9k/mci.c
433
ieee80211_queue_work(sc->hw, &sc->mci_work);
drivers/net/wireless/ath/ath9k/mci.c
436
int ath_mci_setup(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/mci.c
438
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/mci.c
439
struct ath_mci_coex *mci = &sc->mci_coex;
drivers/net/wireless/ath/ath9k/mci.c
443
buf->bf_addr = dmam_alloc_coherent(sc->dev,
drivers/net/wireless/ath/ath9k/mci.c
461
ret = ar9003_mci_setup(sc->sc_ah, mci->gpm_buf.bf_paddr,
drivers/net/wireless/ath/ath9k/mci.c
469
INIT_WORK(&sc->mci_work, ath9k_mci_work);
drivers/net/wireless/ath/ath9k/mci.c
475
void ath_mci_cleanup(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/mci.c
477
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/mci.c
478
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
485
void ath_mci_intr(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/mci.c
487
struct ath_mci_coex *mci = &sc->mci_coex;
drivers/net/wireless/ath/ath9k/mci.c
488
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
497
ar9003_mci_get_interrupt(sc->sc_ah, &mci_int, &mci_int_rxmsg);
drivers/net/wireless/ath/ath9k/mci.c
582
ath_mci_cal_msg(sc, subtype, (u8 *)pgpm);
drivers/net/wireless/ath/ath9k/mci.c
586
ath_mci_msg(sc, opcode, (u8 *)pgpm);
drivers/net/wireless/ath/ath9k/mci.c
629
ath_mci_msg(sc, MCI_GPM_COEX_NOOP, NULL);
drivers/net/wireless/ath/ath9k/mci.c
633
void ath_mci_enable(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/mci.c
635
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/mci.c
640
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_MCI)
drivers/net/wireless/ath/ath9k/mci.c
641
sc->sc_ah->imask |= ATH9K_INT_MCI;
drivers/net/wireless/ath/ath9k/mci.c
644
void ath9k_mci_update_wlan_channels(struct ath_softc *sc, bool allow_all)
drivers/net/wireless/ath/ath9k/mci.c
646
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
694
void ath9k_mci_set_txpower(struct ath_softc *sc, bool setchannel,
drivers/net/wireless/ath/ath9k/mci.c
697
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
698
struct ath9k_hw_mci *mci_hw = &sc->sc_ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/mci.c
710
struct ath9k_hw_cal_data *caldata = &sc->cur_chan->caldata;
drivers/net/wireless/ath/ath9k/mci.c
724
ath9k_hw_set_txpowerlimit(ah, sc->cur_chan->txpower, false);
drivers/net/wireless/ath/ath9k/mci.c
727
static void ath9k_mci_stomp_audio(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/mci.c
729
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
730
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/mci.c
743
void ath9k_mci_update_rssi(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/mci.c
745
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
746
struct ath_btcoex *btcoex = &sc->btcoex;
drivers/net/wireless/ath/ath9k/mci.c
747
struct ath9k_hw_mci *mci_hw = &sc->sc_ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/mci.c
749
ath9k_mci_stomp_audio(sc);
drivers/net/wireless/ath/ath9k/mci.c
759
ath9k_mci_set_txpower(sc, false, true);
drivers/net/wireless/ath/ath9k/mci.c
766
ath9k_mci_set_txpower(sc, false, false);
drivers/net/wireless/ath/ath9k/mci.h
154
int ath_mci_setup(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/mci.h
155
void ath_mci_cleanup(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/mci.h
156
void ath_mci_intr(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/mci.h
157
void ath9k_mci_update_rssi(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/mci.h
160
void ath_mci_enable(struct ath_softc *sc);
drivers/net/wireless/ath/ath9k/mci.h
161
void ath9k_mci_update_wlan_channels(struct ath_softc *sc, bool allow_all);
drivers/net/wireless/ath/ath9k/mci.h
162
void ath9k_mci_set_txpower(struct ath_softc *sc, bool setchannel,
drivers/net/wireless/ath/ath9k/mci.h
165
static inline void ath_mci_enable(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/mci.h
168
static inline void ath9k_mci_update_wlan_channels(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/mci.h
172
static inline void ath9k_mci_set_txpower(struct ath_softc *sc, bool setchannel,
drivers/net/wireless/ath/ath9k/pci.c
1004
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/pci.c
1007
sc->sc_ah->ah_flags |= AH_UNPLUGGED;
drivers/net/wireless/ath/ath9k/pci.c
1008
ath9k_deinit_device(sc);
drivers/net/wireless/ath/ath9k/pci.c
1009
free_irq(sc->irq, sc);
drivers/net/wireless/ath/ath9k/pci.c
1010
ieee80211_free_hw(sc->hw);
drivers/net/wireless/ath/ath9k/pci.c
1018
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/pci.c
1019
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/pci.c
1030
ath9k_stop_btcoex(sc);
drivers/net/wireless/ath/ath9k/pci.c
1031
ath9k_hw_disable(sc->sc_ah);
drivers/net/wireless/ath/ath9k/pci.c
1032
timer_delete_sync(&sc->sleep_timer);
drivers/net/wireless/ath/ath9k/pci.c
1033
ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_FULL_SLEEP);
drivers/net/wireless/ath/ath9k/pci.c
1042
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/pci.c
1043
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/pci.c
782
struct ath_softc *sc = common->priv;
drivers/net/wireless/ath/ath9k/pci.c
785
pci_read_config_byte(to_pci_dev(sc->dev), PCI_CACHE_LINE_SIZE, &u8tmp);
drivers/net/wireless/ath/ath9k/pci.c
821
struct ath_softc *sc = common->priv;
drivers/net/wireless/ath/ath9k/pci.c
822
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/pci.c
823
struct pci_dev *pdev = to_pci_dev(sc->dev);
drivers/net/wireless/ath/ath9k/pci.c
886
struct ath_softc *sc;
drivers/net/wireless/ath/ath9k/pci.c
952
sc = hw->priv;
drivers/net/wireless/ath/ath9k/pci.c
953
sc->hw = hw;
drivers/net/wireless/ath/ath9k/pci.c
954
sc->dev = &pdev->dev;
drivers/net/wireless/ath/ath9k/pci.c
955
sc->mem = pcim_iomap_table(pdev)[0];
drivers/net/wireless/ath/ath9k/pci.c
956
sc->driver_data = id->driver_data;
drivers/net/wireless/ath/ath9k/pci.c
968
ret = request_irq(pdev->irq, ath_isr, IRQF_SHARED, "ath9k", sc);
drivers/net/wireless/ath/ath9k/pci.c
970
ret = request_irq(pdev->irq, ath_isr, 0, "ath9k", sc);
drivers/net/wireless/ath/ath9k/pci.c
977
sc->irq = pdev->irq;
drivers/net/wireless/ath/ath9k/pci.c
979
ret = ath9k_init_device(id->device, sc, &ath_pci_bus_ops);
drivers/net/wireless/ath/ath9k/pci.c
985
sc->sc_ah->msi_enabled = msi_enabled;
drivers/net/wireless/ath/ath9k/pci.c
986
sc->sc_ah->msi_reg = 0;
drivers/net/wireless/ath/ath9k/pci.c
988
ath9k_hw_name(sc->sc_ah, hw_name, sizeof(hw_name));
drivers/net/wireless/ath/ath9k/pci.c
990
hw_name, sc->mem, pdev->irq);
drivers/net/wireless/ath/ath9k/pci.c
995
free_irq(sc->irq, sc);
drivers/net/wireless/ath/ath9k/recv.c
1002
sc->rx.ampdu_ref++;
drivers/net/wireless/ath/ath9k/recv.c
1010
static void ath_rx_count_airtime(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/recv.c
1015
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
1031
sta = ieee80211_find_sta_by_ifaddr(sc->hw, hdr->addr2, NULL);
drivers/net/wireless/ath/ath9k/recv.c
1060
int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
drivers/net/wireless/ath/ath9k/recv.c
1065
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
1067
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/recv.c
1093
bf = ath_edma_get_next_rx_buf(sc, &rs, qtype);
drivers/net/wireless/ath/ath9k/recv.c
1095
bf = ath_get_next_rx_buf(sc, &rs);
drivers/net/wireless/ath/ath9k/recv.c
110
static bool ath_rx_edma_buf_link(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/recv.c
1108
if (sc->rx.frag)
drivers/net/wireless/ath/ath9k/recv.c
1109
hdr_skb = sc->rx.frag;
drivers/net/wireless/ath/ath9k/recv.c
1116
retval = ath9k_rx_skb_preprocess(sc, hdr_skb, &rs, rxs,
drivers/net/wireless/ath/ath9k/recv.c
113
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
1130
RX_STAT_INC(sc, rx_oom_err);
drivers/net/wireless/ath/ath9k/recv.c
1135
new_buf_addr = dma_map_single(sc->dev, requeue_skb->data,
drivers/net/wireless/ath/ath9k/recv.c
1137
if (unlikely(dma_mapping_error(sc->dev, new_buf_addr))) {
drivers/net/wireless/ath/ath9k/recv.c
1143
dma_unmap_single(sc->dev, bf->bf_buf_addr,
drivers/net/wireless/ath/ath9k/recv.c
1158
RX_STAT_INC(sc, rx_frags);
drivers/net/wireless/ath/ath9k/recv.c
1164
if (sc->rx.frag) {
drivers/net/wireless/ath/ath9k/recv.c
1166
dev_kfree_skb_any(sc->rx.frag);
drivers/net/wireless/ath/ath9k/recv.c
1168
RX_STAT_INC(sc, rx_too_many_frags_err);
drivers/net/wireless/ath/ath9k/recv.c
1171
sc->rx.frag = skb;
drivers/net/wireless/ath/ath9k/recv.c
1175
if (sc->rx.frag) {
drivers/net/wireless/ath/ath9k/recv.c
118
rx_edma = &sc->rx.rx_edma[qtype];
drivers/net/wireless/ath/ath9k/recv.c
1180
RX_STAT_INC(sc, rx_oom_err);
drivers/net/wireless/ath/ath9k/recv.c
1184
sc->rx.frag = NULL;
drivers/net/wireless/ath/ath9k/recv.c
1195
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/recv.c
1196
if ((sc->ps_flags & (PS_WAIT_FOR_BEACON |
drivers/net/wireless/ath/ath9k/recv.c
1199
ath9k_check_auto_sleep(sc))
drivers/net/wireless/ath/ath9k/recv.c
1200
ath_rx_ps(sc, skb, rs.is_mybeacon);
drivers/net/wireless/ath/ath9k/recv.c
1201
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/recv.c
1203
ath9k_antenna_check(sc, &rs);
drivers/net/wireless/ath/ath9k/recv.c
1204
ath9k_apply_ampdu_details(sc, &rs, rxs);
drivers/net/wireless/ath/ath9k/recv.c
1205
ath_debug_rate_stats(sc, &rs, skb);
drivers/net/wireless/ath/ath9k/recv.c
1206
ath_rx_count_airtime(sc, &rs, skb);
drivers/net/wireless/ath/ath9k/recv.c
1210
ath_dynack_sample_ack_ts(sc->sc_ah, skb, rs.rs_tstamp);
drivers/net/wireless/ath/ath9k/recv.c
1215
if (sc->rx.frag) {
drivers/net/wireless/ath/ath9k/recv.c
1216
dev_kfree_skb_any(sc->rx.frag);
drivers/net/wireless/ath/ath9k/recv.c
1217
sc->rx.frag = NULL;
drivers/net/wireless/ath/ath9k/recv.c
122
bf = list_first_entry(&sc->rx.rxbuf, struct ath_rxbuf, list);
drivers/net/wireless/ath/ath9k/recv.c
1220
list_add_tail(&bf->list, &sc->rx.rxbuf);
drivers/net/wireless/ath/ath9k/recv.c
1223
ath_rx_buf_relink(sc, bf, flush);
drivers/net/wireless/ath/ath9k/recv.c
1227
ath_rx_edma_buf_link(sc, qtype);
drivers/net/wireless/ath/ath9k/recv.c
128
dma_sync_single_for_device(sc->dev, bf->bf_buf_addr,
drivers/net/wireless/ath/ath9k/recv.c
138
static void ath_rx_addbuffer_edma(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/recv.c
141
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/recv.c
144
if (list_empty(&sc->rx.rxbuf)) {
drivers/net/wireless/ath/ath9k/recv.c
149
list_for_each_entry_safe(bf, tbf, &sc->rx.rxbuf, list)
drivers/net/wireless/ath/ath9k/recv.c
150
if (!ath_rx_edma_buf_link(sc, qtype))
drivers/net/wireless/ath/ath9k/recv.c
155
static void ath_rx_remove_buffer(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/recv.c
162
rx_edma = &sc->rx.rx_edma[qtype];
drivers/net/wireless/ath/ath9k/recv.c
167
list_add_tail(&bf->list, &sc->rx.rxbuf);
drivers/net/wireless/ath/ath9k/recv.c
171
static void ath_rx_edma_cleanup(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/recv.c
173
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
177
ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_LP);
drivers/net/wireless/ath/ath9k/recv.c
178
ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_HP);
drivers/net/wireless/ath/ath9k/recv.c
180
list_for_each_entry(bf, &sc->rx.rxbuf, list) {
drivers/net/wireless/ath/ath9k/recv.c
182
dma_unmap_single(sc->dev, bf->bf_buf_addr,
drivers/net/wireless/ath/ath9k/recv.c
198
static int ath_rx_edma_init(struct ath_softc *sc, int nbufs)
drivers/net/wireless/ath/ath9k/recv.c
200
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/recv.c
201
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
210
ath_rx_edma_init_queue(&sc->rx.rx_edma[ATH9K_RX_QUEUE_LP],
drivers/net/wireless/ath/ath9k/recv.c
212
ath_rx_edma_init_queue(&sc->rx.rx_edma[ATH9K_RX_QUEUE_HP],
drivers/net/wireless/ath/ath9k/recv.c
216
bf = devm_kzalloc(sc->dev, size, GFP_KERNEL);
drivers/net/wireless/ath/ath9k/recv.c
220
INIT_LIST_HEAD(&sc->rx.rxbuf);
drivers/net/wireless/ath/ath9k/recv.c
23
static inline bool ath9k_check_auto_sleep(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/recv.c
232
bf->bf_buf_addr = dma_map_single(sc->dev, skb->data,
drivers/net/wireless/ath/ath9k/recv.c
235
if (unlikely(dma_mapping_error(sc->dev,
drivers/net/wireless/ath/ath9k/recv.c
246
list_add_tail(&bf->list, &sc->rx.rxbuf);
drivers/net/wireless/ath/ath9k/recv.c
25
return sc->ps_enabled &&
drivers/net/wireless/ath/ath9k/recv.c
252
ath_rx_edma_cleanup(sc);
drivers/net/wireless/ath/ath9k/recv.c
256
static void ath_edma_start_recv(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/recv.c
258
ath9k_hw_rxena(sc->sc_ah);
drivers/net/wireless/ath/ath9k/recv.c
259
ath_rx_addbuffer_edma(sc, ATH9K_RX_QUEUE_HP);
drivers/net/wireless/ath/ath9k/recv.c
26
(sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_AUTOSLEEP);
drivers/net/wireless/ath/ath9k/recv.c
260
ath_rx_addbuffer_edma(sc, ATH9K_RX_QUEUE_LP);
drivers/net/wireless/ath/ath9k/recv.c
261
ath_opmode_init(sc);
drivers/net/wireless/ath/ath9k/recv.c
262
ath9k_hw_startpcureceive(sc->sc_ah, sc->cur_chan->offchannel);
drivers/net/wireless/ath/ath9k/recv.c
265
static void ath_edma_stop_recv(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/recv.c
267
ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_HP);
drivers/net/wireless/ath/ath9k/recv.c
268
ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_LP);
drivers/net/wireless/ath/ath9k/recv.c
271
int ath_rx_init(struct ath_softc *sc, int nbufs)
drivers/net/wireless/ath/ath9k/recv.c
273
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/recv.c
278
spin_lock_init(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/recv.c
281
sc->sc_ah->caps.rx_status_len;
drivers/net/wireless/ath/ath9k/recv.c
283
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
drivers/net/wireless/ath/ath9k/recv.c
284
return ath_rx_edma_init(sc, nbufs);
drivers/net/wireless/ath/ath9k/recv.c
291
error = ath_descdma_setup(sc, &sc->rx.rxdma, &sc->rx.rxbuf,
drivers/net/wireless/ath/ath9k/recv.c
300
list_for_each_entry(bf, &sc->rx.rxbuf, list) {
drivers/net/wireless/ath/ath9k/recv.c
309
bf->bf_buf_addr = dma_map_single(sc->dev, skb->data,
drivers/net/wireless/ath/ath9k/recv.c
312
if (unlikely(dma_mapping_error(sc->dev,
drivers/net/wireless/ath/ath9k/recv.c
323
sc->rx.rxlink = NULL;
drivers/net/wireless/ath/ath9k/recv.c
326
ath_rx_cleanup(sc);
drivers/net/wireless/ath/ath9k/recv.c
331
void ath_rx_cleanup(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/recv.c
333
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
338
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
drivers/net/wireless/ath/ath9k/recv.c
339
ath_rx_edma_cleanup(sc);
drivers/net/wireless/ath/ath9k/recv.c
343
list_for_each_entry(bf, &sc->rx.rxbuf, list) {
drivers/net/wireless/ath/ath9k/recv.c
346
dma_unmap_single(sc->dev, bf->bf_buf_addr,
drivers/net/wireless/ath/ath9k/recv.c
37
static void ath_rx_buf_link(struct ath_softc *sc, struct ath_rxbuf *bf,
drivers/net/wireless/ath/ath9k/recv.c
375
u32 ath_calcrxfilter(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/recv.c
377
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/recv.c
387
if (sc->hw->conf.radar_enabled)
drivers/net/wireless/ath/ath9k/recv.c
390
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/recv.c
392
if (sc->cur_chan->rxfilter & FIF_PROBE_REQ)
drivers/net/wireless/ath/ath9k/recv.c
395
if (sc->sc_ah->is_monitoring)
drivers/net/wireless/ath/ath9k/recv.c
398
if ((sc->cur_chan->rxfilter & FIF_CONTROL) ||
drivers/net/wireless/ath/ath9k/recv.c
399
sc->sc_ah->dynack.enabled)
drivers/net/wireless/ath/ath9k/recv.c
40
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
402
if ((sc->sc_ah->opmode == NL80211_IFTYPE_STATION) &&
drivers/net/wireless/ath/ath9k/recv.c
403
(sc->cur_chan->nvifs <= 1) &&
drivers/net/wireless/ath/ath9k/recv.c
404
!(sc->cur_chan->rxfilter & FIF_BCN_PRBRESP_PROMISC))
drivers/net/wireless/ath/ath9k/recv.c
406
else if (sc->sc_ah->opmode != NL80211_IFTYPE_OCB)
drivers/net/wireless/ath/ath9k/recv.c
409
if ((sc->sc_ah->opmode == NL80211_IFTYPE_AP) ||
drivers/net/wireless/ath/ath9k/recv.c
410
(sc->cur_chan->rxfilter & FIF_PSPOLL))
drivers/net/wireless/ath/ath9k/recv.c
413
if (sc->cur_chandef.width != NL80211_CHAN_WIDTH_20_NOHT)
drivers/net/wireless/ath/ath9k/recv.c
416
if (sc->cur_chan->nvifs > 1 ||
drivers/net/wireless/ath/ath9k/recv.c
417
(sc->cur_chan->rxfilter & (FIF_OTHER_BSS | FIF_MCAST_ACTION))) {
drivers/net/wireless/ath/ath9k/recv.c
419
if (sc->sc_ah->hw_version.macVersion <= AR_SREV_VERSION_9160)
drivers/net/wireless/ath/ath9k/recv.c
424
if (AR_SREV_9550(sc->sc_ah) || AR_SREV_9531(sc->sc_ah) ||
drivers/net/wireless/ath/ath9k/recv.c
425
AR_SREV_9561(sc->sc_ah))
drivers/net/wireless/ath/ath9k/recv.c
428
if (AR_SREV_9462(sc->sc_ah) || AR_SREV_9565(sc->sc_ah))
drivers/net/wireless/ath/ath9k/recv.c
435
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/recv.c
441
void ath_startrecv(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/recv.c
443
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
447
ath_edma_start_recv(sc);
drivers/net/wireless/ath/ath9k/recv.c
451
if (list_empty(&sc->rx.rxbuf))
drivers/net/wireless/ath/ath9k/recv.c
454
sc->rx.buf_hold = NULL;
drivers/net/wireless/ath/ath9k/recv.c
455
sc->rx.rxlink = NULL;
drivers/net/wireless/ath/ath9k/recv.c
456
list_for_each_entry_safe(bf, tbf, &sc->rx.rxbuf, list) {
drivers/net/wireless/ath/ath9k/recv.c
457
ath_rx_buf_link(sc, bf, false);
drivers/net/wireless/ath/ath9k/recv.c
461
if (list_empty(&sc->rx.rxbuf))
drivers/net/wireless/ath/ath9k/recv.c
464
bf = list_first_entry(&sc->rx.rxbuf, struct ath_rxbuf, list);
drivers/net/wireless/ath/ath9k/recv.c
469
ath_opmode_init(sc);
drivers/net/wireless/ath/ath9k/recv.c
470
ath9k_hw_startpcureceive(ah, sc->cur_chan->offchannel);
drivers/net/wireless/ath/ath9k/recv.c
473
static void ath_flushrecv(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/recv.c
475
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
drivers/net/wireless/ath/ath9k/recv.c
476
ath_rx_tasklet(sc, 1, true);
drivers/net/wireless/ath/ath9k/recv.c
477
ath_rx_tasklet(sc, 1, false);
drivers/net/wireless/ath/ath9k/recv.c
480
bool ath_stoprecv(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/recv.c
482
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
489
ath_flushrecv(sc);
drivers/net/wireless/ath/ath9k/recv.c
491
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
drivers/net/wireless/ath/ath9k/recv.c
492
ath_edma_stop_recv(sc);
drivers/net/wireless/ath/ath9k/recv.c
494
sc->rx.rxlink = NULL;
drivers/net/wireless/ath/ath9k/recv.c
498
ath_dbg(ath9k_hw_common(sc->sc_ah), RESET,
drivers/net/wireless/ath/ath9k/recv.c
500
RESET_STAT_INC(sc, RESET_RX_DMA_ERROR);
drivers/net/wireless/ath/ath9k/recv.c
537
static void ath_rx_ps_beacon(struct ath_softc *sc, struct sk_buff *skb)
drivers/net/wireless/ath/ath9k/recv.c
539
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/recv.c
545
sc->ps_flags &= ~PS_WAIT_FOR_BEACON;
drivers/net/wireless/ath/ath9k/recv.c
547
if (sc->ps_flags & PS_BEACON_SYNC) {
drivers/net/wireless/ath/ath9k/recv.c
548
sc->ps_flags &= ~PS_BEACON_SYNC;
drivers/net/wireless/ath/ath9k/recv.c
554
if (sc->cur_chan == &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/recv.c
560
!(WARN_ON_ONCE(sc->cur_chan->beacon.beacon_interval == 0)))
drivers/net/wireless/ath/ath9k/recv.c
561
ath9k_set_beacon(sc);
drivers/net/wireless/ath/ath9k/recv.c
563
ath9k_p2p_beacon_sync(sc);
drivers/net/wireless/ath/ath9k/recv.c
576
sc->ps_flags |= PS_WAIT_FOR_CAB | PS_WAIT_FOR_BEACON;
drivers/net/wireless/ath/ath9k/recv.c
580
if (sc->ps_flags & PS_WAIT_FOR_CAB) {
drivers/net/wireless/ath/ath9k/recv.c
586
sc->ps_flags &= ~PS_WAIT_FOR_CAB;
drivers/net/wireless/ath/ath9k/recv.c
591
static void ath_rx_ps(struct ath_softc *sc, struct sk_buff *skb, bool mybeacon)
drivers/net/wireless/ath/ath9k/recv.c
594
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/recv.c
599
if (((sc->ps_flags & PS_WAIT_FOR_BEACON) || ath9k_check_auto_sleep(sc))
drivers/net/wireless/ath/ath9k/recv.c
601
ath_rx_ps_beacon(sc, skb);
drivers/net/wireless/ath/ath9k/recv.c
602
} else if ((sc->ps_flags & PS_WAIT_FOR_CAB) &&
drivers/net/wireless/ath/ath9k/recv.c
611
sc->ps_flags &= ~(PS_WAIT_FOR_CAB | PS_WAIT_FOR_BEACON);
drivers/net/wireless/ath/ath9k/recv.c
614
} else if ((sc->ps_flags & PS_WAIT_FOR_PSPOLL_DATA) &&
drivers/net/wireless/ath/ath9k/recv.c
617
sc->ps_flags &= ~PS_WAIT_FOR_PSPOLL_DATA;
drivers/net/wireless/ath/ath9k/recv.c
620
sc->ps_flags & (PS_WAIT_FOR_BEACON |
drivers/net/wireless/ath/ath9k/recv.c
627
static bool ath_edma_get_buffers(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/recv.c
63
if (sc->rx.rxlink)
drivers/net/wireless/ath/ath9k/recv.c
632
struct ath_rx_edma *rx_edma = &sc->rx.rx_edma[qtype];
drivers/net/wireless/ath/ath9k/recv.c
633
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
64
*sc->rx.rxlink = bf->bf_daddr;
drivers/net/wireless/ath/ath9k/recv.c
646
dma_sync_single_for_cpu(sc->dev, bf->bf_buf_addr,
drivers/net/wireless/ath/ath9k/recv.c
652
dma_sync_single_for_device(sc->dev, bf->bf_buf_addr,
drivers/net/wireless/ath/ath9k/recv.c
660
list_add_tail(&bf->list, &sc->rx.rxbuf);
drivers/net/wireless/ath/ath9k/recv.c
661
ath_rx_edma_buf_link(sc, qtype);
drivers/net/wireless/ath/ath9k/recv.c
669
list_add_tail(&bf->list, &sc->rx.rxbuf);
drivers/net/wireless/ath/ath9k/recv.c
670
ath_rx_edma_buf_link(sc, qtype);
drivers/net/wireless/ath/ath9k/recv.c
68
sc->rx.rxlink = &ds->ds_link;
drivers/net/wireless/ath/ath9k/recv.c
680
static struct ath_rxbuf *ath_edma_get_next_rx_buf(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/recv.c
686
while (ath_edma_get_buffers(sc, qtype, rs, &bf)) {
drivers/net/wireless/ath/ath9k/recv.c
695
static struct ath_rxbuf *ath_get_next_rx_buf(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/recv.c
698
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
704
if (list_empty(&sc->rx.rxbuf)) {
drivers/net/wireless/ath/ath9k/recv.c
705
sc->rx.rxlink = NULL;
drivers/net/wireless/ath/ath9k/recv.c
709
bf = list_first_entry(&sc->rx.rxbuf, struct ath_rxbuf, list);
drivers/net/wireless/ath/ath9k/recv.c
71
static void ath_rx_buf_relink(struct ath_softc *sc, struct ath_rxbuf *bf,
drivers/net/wireless/ath/ath9k/recv.c
710
if (bf == sc->rx.buf_hold)
drivers/net/wireless/ath/ath9k/recv.c
733
if (list_is_last(&bf->list, &sc->rx.rxbuf)) {
drivers/net/wireless/ath/ath9k/recv.c
734
sc->rx.rxlink = NULL;
drivers/net/wireless/ath/ath9k/recv.c
74
if (sc->rx.buf_hold)
drivers/net/wireless/ath/ath9k/recv.c
75
ath_rx_buf_link(sc, sc->rx.buf_hold, flush);
drivers/net/wireless/ath/ath9k/recv.c
77
sc->rx.buf_hold = bf;
drivers/net/wireless/ath/ath9k/recv.c
780
dma_sync_single_for_cpu(sc->dev, bf->bf_buf_addr,
drivers/net/wireless/ath/ath9k/recv.c
80
static void ath_setdefantenna(struct ath_softc *sc, u32 antenna)
drivers/net/wireless/ath/ath9k/recv.c
808
static int ath9k_rx_skb_preprocess(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/recv.c
814
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/recv.c
815
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
818
bool discard_current = sc->rx.discard_next;
drivers/net/wireless/ath/ath9k/recv.c
828
sc->rx.discard_next = false;
drivers/net/wireless/ath/ath9k/recv.c
83
ath9k_hw_setantenna(sc->sc_ah, antenna);
drivers/net/wireless/ath/ath9k/recv.c
837
RX_STAT_INC(sc, rx_len_err);
drivers/net/wireless/ath/ath9k/recv.c
84
sc->rx.defant = antenna;
drivers/net/wireless/ath/ath9k/recv.c
847
RX_STAT_INC(sc, rx_len_err);
drivers/net/wireless/ath/ath9k/recv.c
85
sc->rx.rxotherant = 0;
drivers/net/wireless/ath/ath9k/recv.c
868
ath_debug_stat_rx(sc, rx_stats);
drivers/net/wireless/ath/ath9k/recv.c
88
static void ath_opmode_init(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/recv.c
883
ath9k_dfs_process_phyerr(sc, hdr, rx_stats,
drivers/net/wireless/ath/ath9k/recv.c
885
} else if (sc->spec_priv.spectral_mode != SPECTRAL_DISABLED &&
drivers/net/wireless/ath/ath9k/recv.c
886
ath_cmn_process_fft(&sc->spec_priv, hdr, rx_stats,
drivers/net/wireless/ath/ath9k/recv.c
888
RX_STAT_INC(sc, rx_spectral);
drivers/net/wireless/ath/ath9k/recv.c
897
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/recv.c
899
sc->cur_chan->rxfilter)) {
drivers/net/wireless/ath/ath9k/recv.c
90
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
900
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/recv.c
903
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/recv.c
906
RX_STAT_INC(sc, rx_beacons);
drivers/net/wireless/ath/ath9k/recv.c
923
RX_STAT_INC(sc, rx_rate_err);
drivers/net/wireless/ath/ath9k/recv.c
929
ath_chanctx_beacon_recv_ev(sc,
drivers/net/wireless/ath/ath9k/recv.c
943
sc->rx.num_pkts++;
drivers/net/wireless/ath/ath9k/recv.c
949
sc->rx.discard_next = rx_stats->rs_more;
drivers/net/wireless/ath/ath9k/recv.c
96
rfilt = ath_calcrxfilter(sc);
drivers/net/wireless/ath/ath9k/recv.c
963
static void ath9k_antenna_check(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/recv.c
966
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
977
if (sc->rx.defant != rs->rs_antenna) {
drivers/net/wireless/ath/ath9k/recv.c
978
if (++sc->rx.rxotherant >= 3)
drivers/net/wireless/ath/ath9k/recv.c
979
ath_setdefantenna(sc, rs->rs_antenna);
drivers/net/wireless/ath/ath9k/recv.c
981
sc->rx.rxotherant = 0;
drivers/net/wireless/ath/ath9k/recv.c
986
ath_ant_comb_scan(sc, rs);
drivers/net/wireless/ath/ath9k/recv.c
988
ath_ant_comb_scan(sc, rs);
drivers/net/wireless/ath/ath9k/recv.c
992
static void ath9k_apply_ampdu_details(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/recv.c
998
rxs->ampdu_reference = sc->rx.ampdu_ref;
drivers/net/wireless/ath/ath9k/rng.c
100
if (sc->rng_ops.read)
drivers/net/wireless/ath/ath9k/rng.c
106
snprintf(sc->rng_name, sizeof(sc->rng_name), "ath9k_%u",
drivers/net/wireless/ath/ath9k/rng.c
108
sc->rng_ops.name = sc->rng_name;
drivers/net/wireless/ath/ath9k/rng.c
109
sc->rng_ops.read = ath9k_rng_read;
drivers/net/wireless/ath/ath9k/rng.c
110
sc->rng_ops.quality = 320;
drivers/net/wireless/ath/ath9k/rng.c
112
if (devm_hwrng_register(sc->dev, &sc->rng_ops))
drivers/net/wireless/ath/ath9k/rng.c
113
sc->rng_ops.read = NULL;
drivers/net/wireless/ath/ath9k/rng.c
116
void ath9k_rng_stop(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/rng.c
118
if (sc->rng_ops.read) {
drivers/net/wireless/ath/ath9k/rng.c
119
devm_hwrng_unregister(sc->dev, &sc->rng_ops);
drivers/net/wireless/ath/ath9k/rng.c
120
sc->rng_ops.read = NULL;
drivers/net/wireless/ath/ath9k/rng.c
24
static int ath9k_rng_data_read(struct ath_softc *sc, u32 *buf, u32 buf_size)
drivers/net/wireless/ath/ath9k/rng.c
27
u32 v1, v2, rng_last = sc->rng_last;
drivers/net/wireless/ath/ath9k/rng.c
28
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/rng.c
30
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/rng.c
48
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/rng.c
50
sc->rng_last = rng_last;
drivers/net/wireless/ath/ath9k/rng.c
71
struct ath_softc *sc = container_of(rng, struct ath_softc, rng_ops);
drivers/net/wireless/ath/ath9k/rng.c
77
bytes_read = ath9k_rng_data_read(sc, buf, max >> 2);
drivers/net/wireless/ath/ath9k/rng.c
78
if ((max & 3UL) && ath9k_rng_data_read(sc, &word, 1)) {
drivers/net/wireless/ath/ath9k/rng.c
95
void ath9k_rng_start(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/rng.c
98
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/tx99.c
100
ath_reset(sc, NULL);
drivers/net/wireless/ath/ath9k/tx99.c
102
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/tx99.c
103
ath9k_tx99_stop(sc);
drivers/net/wireless/ath/ath9k/tx99.c
104
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/tx99.c
107
static int ath9k_tx99_init(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/tx99.c
109
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/tx99.c
110
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/tx99.c
121
sc->tx99_skb = ath9k_build_tx99_skb(sc);
drivers/net/wireless/ath/ath9k/tx99.c
122
if (!sc->tx99_skb)
drivers/net/wireless/ath/ath9k/tx99.c
126
txctl.txq = sc->tx.txq_map[IEEE80211_AC_VO];
drivers/net/wireless/ath/ath9k/tx99.c
128
ath_reset(sc, NULL);
drivers/net/wireless/ath/ath9k/tx99.c
130
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/tx99.c
133
ath_drain_all_txq(sc);
drivers/net/wireless/ath/ath9k/tx99.c
134
ath_stoprecv(sc);
drivers/net/wireless/ath/ath9k/tx99.c
136
sc->tx99_state = true;
drivers/net/wireless/ath/ath9k/tx99.c
140
if (sc->tx99_power == MAX_RATE_POWER + 1)
drivers/net/wireless/ath/ath9k/tx99.c
141
sc->tx99_power = MAX_RATE_POWER;
drivers/net/wireless/ath/ath9k/tx99.c
143
ath9k_hw_tx99_set_txpower(ah, sc->tx99_power);
drivers/net/wireless/ath/ath9k/tx99.c
144
r = ath9k_tx99_send(sc, sc->tx99_skb, &txctl);
drivers/net/wireless/ath/ath9k/tx99.c
151
sc->tx99_power,
drivers/net/wireless/ath/ath9k/tx99.c
152
sc->tx99_power / 2);
drivers/net/wireless/ath/ath9k/tx99.c
162
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/tx99.c
166
len = sprintf(buf, "%d\n", sc->tx99_state);
drivers/net/wireless/ath/ath9k/tx99.c
173
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/tx99.c
174
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/tx99.c
182
if (sc->cur_chan->nvifs > 1)
drivers/net/wireless/ath/ath9k/tx99.c
189
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/tx99.c
19
static void ath9k_tx99_stop(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/tx99.c
191
if (start == sc->tx99_state) {
drivers/net/wireless/ath/ath9k/tx99.c
195
ath9k_tx99_deinit(sc);
drivers/net/wireless/ath/ath9k/tx99.c
199
ath9k_tx99_deinit(sc);
drivers/net/wireless/ath/ath9k/tx99.c
203
r = ath9k_tx99_init(sc);
drivers/net/wireless/ath/ath9k/tx99.c
205
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/tx99.c
209
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/tx99.c
21
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/tx99.c
225
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/tx99.c
230
sc->tx99_power,
drivers/net/wireless/ath/ath9k/tx99.c
231
sc->tx99_power / 2);
drivers/net/wireless/ath/ath9k/tx99.c
24
ath_drain_all_txq(sc);
drivers/net/wireless/ath/ath9k/tx99.c
240
struct ath_softc *sc = file->private_data;
drivers/net/wireless/ath/ath9k/tx99.c
25
ath_startrecv(sc);
drivers/net/wireless/ath/ath9k/tx99.c
251
sc->tx99_power = tx_power;
drivers/net/wireless/ath/ath9k/tx99.c
253
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/tx99.c
254
ath9k_hw_tx99_set_txpower(sc->sc_ah, sc->tx99_power);
drivers/net/wireless/ath/ath9k/tx99.c
255
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/tx99.c
268
void ath9k_tx99_init_debug(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/tx99.c
270
if (!AR_SREV_9280_20_OR_LATER(sc->sc_ah))
drivers/net/wireless/ath/ath9k/tx99.c
274
sc->debug.debugfs_phy, sc,
drivers/net/wireless/ath/ath9k/tx99.c
277
sc->debug.debugfs_phy, sc,
drivers/net/wireless/ath/ath9k/tx99.c
30
ieee80211_wake_queues(sc->hw);
drivers/net/wireless/ath/ath9k/tx99.c
32
kfree_skb(sc->tx99_skb);
drivers/net/wireless/ath/ath9k/tx99.c
33
sc->tx99_skb = NULL;
drivers/net/wireless/ath/ath9k/tx99.c
34
sc->tx99_state = false;
drivers/net/wireless/ath/ath9k/tx99.c
36
ath9k_hw_tx99_stop(sc->sc_ah);
drivers/net/wireless/ath/ath9k/tx99.c
40
static struct sk_buff *ath9k_build_tx99_skb(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/tx99.c
52
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/tx99.c
53
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/tx99.c
75
if (sc->tx99_vif) {
drivers/net/wireless/ath/ath9k/tx99.c
76
avp = (struct ath_vif *) sc->tx99_vif->drv_priv;
drivers/net/wireless/ath/ath9k/tx99.c
83
tx_info->band = sc->cur_chan->chandef.chan->band;
drivers/net/wireless/ath/ath9k/tx99.c
85
tx_info->control.vif = sc->tx99_vif;
drivers/net/wireless/ath/ath9k/tx99.c
98
static void ath9k_tx99_deinit(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/wow.c
138
static int ath9k_wow_add_pattern(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/wow.c
141
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/wow.c
170
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/wow.c
171
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/wow.c
176
ath9k_deinit_channel_context(sc);
drivers/net/wireless/ath/ath9k/wow.c
178
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/wow.c
192
if (sc->cur_chan->nvifs > 1) {
drivers/net/wireless/ath/ath9k/wow.c
213
triggers = ath9k_wow_map_triggers(sc, wowlan);
drivers/net/wireless/ath/ath9k/wow.c
220
ath_cancel_work(sc);
drivers/net/wireless/ath/ath9k/wow.c
221
ath_stop_ani(sc);
drivers/net/wireless/ath/ath9k/wow.c
223
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/wow.c
225
ath9k_stop_btcoex(sc);
drivers/net/wireless/ath/ath9k/wow.c
231
ret = ath9k_wow_add_disassoc_deauth_pattern(sc);
drivers/net/wireless/ath/ath9k/wow.c
239
ret = ath9k_wow_add_pattern(sc, wowlan);
drivers/net/wireless/ath/ath9k/wow.c
247
spin_lock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/wow.c
253
sc->wow_intr_before_sleep = ah->imask;
drivers/net/wireless/ath/ath9k/wow.c
260
spin_unlock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/wow.c
266
synchronize_irq(sc->irq);
drivers/net/wireless/ath/ath9k/wow.c
267
tasklet_kill(&sc->intr_tq);
drivers/net/wireless/ath/ath9k/wow.c
271
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/wow.c
276
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/wow.c
282
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/wow.c
283
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/wow.c
287
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/wow.c
289
ath9k_ps_wakeup(sc);
drivers/net/wireless/ath/ath9k/wow.c
291
spin_lock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/wow.c
294
ah->imask = sc->wow_intr_before_sleep;
drivers/net/wireless/ath/ath9k/wow.c
298
spin_unlock_bh(&sc->sc_pcu_lock);
drivers/net/wireless/ath/ath9k/wow.c
303
ath_restart_work(sc);
drivers/net/wireless/ath/ath9k/wow.c
304
ath9k_start_btcoex(sc);
drivers/net/wireless/ath/ath9k/wow.c
308
ath9k_ps_restore(sc);
drivers/net/wireless/ath/ath9k/wow.c
309
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/wow.c
316
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/wow.c
317
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/wow.c
319
mutex_lock(&sc->mutex);
drivers/net/wireless/ath/ath9k/wow.c
320
device_set_wakeup_enable(sc->dev, enabled);
drivers/net/wireless/ath/ath9k/wow.c
321
mutex_unlock(&sc->mutex);
drivers/net/wireless/ath/ath9k/wow.c
329
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/wow.c
33
static u8 ath9k_wow_map_triggers(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/wow.c
330
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/wow.c
332
if ((sc->driver_data & ATH9K_PCI_WOW) || sc->force_wow) {
drivers/net/wireless/ath/ath9k/wow.c
338
device_init_wakeup(sc->dev, 1);
drivers/net/wireless/ath/ath9k/wow.c
344
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/wow.c
346
if ((sc->driver_data & ATH9K_PCI_WOW) || sc->force_wow)
drivers/net/wireless/ath/ath9k/wow.c
347
device_init_wakeup(sc->dev, 0);
drivers/net/wireless/ath/ath9k/wow.c
50
static int ath9k_wow_add_disassoc_deauth_pattern(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/wow.c
52
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
1012
ath_tx_complete_buf(sc, bf, txq, &bf_head, NULL, &ts, 0);
drivers/net/wireless/ath/ath9k/xmit.c
1027
ath_tx_form_aggr(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/xmit.c
1042
aggr_limit = ath_lookup_rate(sc, bf, tid);
drivers/net/wireless/ath/ath9k/xmit.c
106
void ath_txq_unlock_complete(struct ath_softc *sc, struct ath_txq *txq)
drivers/net/wireless/ath/ath9k/xmit.c
1069
ndelim = ath_compute_num_delims(sc, tid, bf_first, fi->framelen,
drivers/net/wireless/ath/ath9k/xmit.c
1085
ret = ath_tx_get_tid_subframe(sc, txq, tid, &bf);
drivers/net/wireless/ath/ath9k/xmit.c
109
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/xmit.c
1100
TX_STAT_INC(sc, txq->axq_qnum, a_aggr);
drivers/net/wireless/ath/ath9k/xmit.c
1153
void ath_update_max_aggr_framelen(struct ath_softc *sc, int queue, int txop)
drivers/net/wireless/ath/ath9k/xmit.c
1162
cur_ht20 = sc->tx.max_aggr_framelen[queue][MCS_HT20];
drivers/net/wireless/ath/ath9k/xmit.c
1163
cur_ht20_sgi = sc->tx.max_aggr_framelen[queue][MCS_HT20_SGI];
drivers/net/wireless/ath/ath9k/xmit.c
1164
cur_ht40 = sc->tx.max_aggr_framelen[queue][MCS_HT40];
drivers/net/wireless/ath/ath9k/xmit.c
1165
cur_ht40_sgi = sc->tx.max_aggr_framelen[queue][MCS_HT40_SGI];
drivers/net/wireless/ath/ath9k/xmit.c
1174
static u8 ath_get_rate_txpower(struct ath_softc *sc, struct ath_buf *bf,
drivers/net/wireless/ath/ath9k/xmit.c
1181
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
1184
if (sc->tx99_state || !ah->tpc_enabled)
drivers/net/wireless/ath/ath9k/xmit.c
121
void ath_tx_queue_tid(struct ath_softc *sc, struct ath_atx_tid *tid)
drivers/net/wireless/ath/ath9k/xmit.c
126
ieee80211_schedule_txq(sc->hw, queue);
drivers/net/wireless/ath/ath9k/xmit.c
1260
static void ath_buf_set_rate(struct ath_softc *sc, struct ath_buf *bf,
drivers/net/wireless/ath/ath9k/xmit.c
1263
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
1271
u32 rts_thresh = sc->hw->wiphy->rts_threshold;
drivers/net/wireless/ath/ath9k/xmit.c
131
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/xmit.c
132
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/xmit.c
1324
info->rates[i].ChSel = ath_txchainmask_reduction(sc,
drivers/net/wireless/ath/ath9k/xmit.c
1336
info->txpower[i] = ath_get_rate_txpower(sc, bf, rix,
drivers/net/wireless/ath/ath9k/xmit.c
1360
info->rates[i].ChSel = ath_txchainmask_reduction(sc,
drivers/net/wireless/ath/ath9k/xmit.c
1363
info->rates[i].PktDuration = ath9k_hw_computetxtime(sc->sc_ah,
drivers/net/wireless/ath/ath9k/xmit.c
1367
info->txpower[i] = ath_get_rate_txpower(sc, bf, rix, false,
drivers/net/wireless/ath/ath9k/xmit.c
1372
if (bf_isaggr(bf) && (len > sc->sc_ah->caps.rts_aggr_limit))
drivers/net/wireless/ath/ath9k/xmit.c
140
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1403
static void ath_tx_fill_desc(struct ath_softc *sc, struct ath_buf *bf,
drivers/net/wireless/ath/ath9k/xmit.c
1406
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
1409
u32 rts_thresh = sc->hw->wiphy->rts_threshold;
drivers/net/wireless/ath/ath9k/xmit.c
141
ath_txq_schedule(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
142
ath_txq_unlock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1427
info.link = (sc->tx99_state) ? bf->bf_daddr : 0;
drivers/net/wireless/ath/ath9k/xmit.c
1432
if (!sc->tx99_state)
drivers/net/wireless/ath/ath9k/xmit.c
1435
txq == sc->tx.uapsdq)
drivers/net/wireless/ath/ath9k/xmit.c
1466
ath_buf_set_rate(sc, bf, &info, len, rts);
drivers/net/wireless/ath/ath9k/xmit.c
1496
ath_tx_form_burst(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/xmit.c
1515
ret = ath_tx_get_tid_subframe(sc, txq, tid, &bf);
drivers/net/wireless/ath/ath9k/xmit.c
1529
static int ath_tx_sched_aggr(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/xmit.c
1540
ret = ath_tx_get_tid_subframe(sc, txq, tid, &bf);
drivers/net/wireless/ath/ath9k/xmit.c
1554
aggr_len = ath_tx_form_aggr(sc, txq, tid, &bf_q, bf);
drivers/net/wireless/ath/ath9k/xmit.c
1556
ath_tx_form_burst(sc, txq, tid, &bf_q, bf);
drivers/net/wireless/ath/ath9k/xmit.c
1566
ath_tx_fill_desc(sc, bf, txq, aggr_len);
drivers/net/wireless/ath/ath9k/xmit.c
1567
ath_tx_txqaddbuf(sc, txq, &bf_q, false);
drivers/net/wireless/ath/ath9k/xmit.c
1571
int ath_tx_aggr_start(struct ath_softc *sc, struct ieee80211_sta *sta,
drivers/net/wireless/ath/ath9k/xmit.c
1574
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/xmit.c
1586
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1606
ath_txq_unlock_complete(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1611
void ath_tx_aggr_stop(struct ath_softc *sc, struct ieee80211_sta *sta, u16 tid)
drivers/net/wireless/ath/ath9k/xmit.c
1613
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/xmit.c
1620
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1622
ath_tx_flush_tid(sc, txtid);
drivers/net/wireless/ath/ath9k/xmit.c
1623
ath_txq_unlock_complete(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1626
void ath_tx_aggr_sleep(struct ieee80211_sta *sta, struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/xmit.c
1629
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/xmit.c
1644
void ath_tx_aggr_wakeup(struct ath_softc *sc, struct ath_node *an)
drivers/net/wireless/ath/ath9k/xmit.c
1646
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/xmit.c
1657
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1660
ath_tx_queue_tid(sc, tid);
drivers/net/wireless/ath/ath9k/xmit.c
1661
ath_txq_schedule(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1663
ath_txq_unlock_complete(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1670
ath9k_set_moredata(struct ath_softc *sc, struct ath_buf *bf, bool val)
drivers/net/wireless/ath/ath9k/xmit.c
1685
dma_sync_single_for_device(sc->dev, bf->bf_buf_addr,
drivers/net/wireless/ath/ath9k/xmit.c
1696
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/xmit.c
1698
struct ath_txq *txq = sc->tx.uapsdq;
drivers/net/wireless/ath/ath9k/xmit.c
1713
ath_txq_lock(sc, tid->txq);
drivers/net/wireless/ath/ath9k/xmit.c
1715
ret = ath_tx_get_tid_subframe(sc, sc->tx.uapsdq,
drivers/net/wireless/ath/ath9k/xmit.c
1720
ath9k_set_moredata(sc, bf, true);
drivers/net/wireless/ath/ath9k/xmit.c
1730
TX_STAT_INC(sc, txq->axq_qnum, a_queued_hw);
drivers/net/wireless/ath/ath9k/xmit.c
1735
ath_txq_unlock_complete(sc, tid->txq);
drivers/net/wireless/ath/ath9k/xmit.c
1742
ath9k_set_moredata(sc, bf_tail, false);
drivers/net/wireless/ath/ath9k/xmit.c
1748
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1749
ath_tx_fill_desc(sc, bf, txq, 0);
drivers/net/wireless/ath/ath9k/xmit.c
1750
ath_tx_txqaddbuf(sc, txq, &bf_q, false);
drivers/net/wireless/ath/ath9k/xmit.c
1751
ath_txq_unlock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1758
struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype)
drivers/net/wireless/ath/ath9k/xmit.c
1760
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
1809
if (!ATH_TXQ_SETUP(sc, axq_qnum)) {
drivers/net/wireless/ath/ath9k/xmit.c
1810
struct ath_txq *txq = &sc->tx.txq[axq_qnum];
drivers/net/wireless/ath/ath9k/xmit.c
1821
sc->tx.txqsetup |= 1<<axq_qnum;
drivers/net/wireless/ath/ath9k/xmit.c
1827
return &sc->tx.txq[axq_qnum];
drivers/net/wireless/ath/ath9k/xmit.c
1830
int ath_txq_update(struct ath_softc *sc, int qnum,
drivers/net/wireless/ath/ath9k/xmit.c
1833
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
1837
BUG_ON(sc->tx.txq[qnum].axq_qnum != qnum);
drivers/net/wireless/ath/ath9k/xmit.c
1847
ath_err(ath9k_hw_common(sc->sc_ah),
drivers/net/wireless/ath/ath9k/xmit.c
1857
int ath_cabq_update(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/xmit.c
1860
struct ath_beacon_config *cur_conf = &sc->cur_chan->beacon;
drivers/net/wireless/ath/ath9k/xmit.c
1861
int qnum = sc->beacon.cabq->axq_qnum;
drivers/net/wireless/ath/ath9k/xmit.c
1863
ath9k_hw_get_txq_props(sc->sc_ah, qnum, &qi);
drivers/net/wireless/ath/ath9k/xmit.c
1867
ath_txq_update(sc, qnum, &qi);
drivers/net/wireless/ath/ath9k/xmit.c
1872
static void ath_drain_txq_list(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/xmit.c
1889
ath_tx_return_buffer(sc, bf);
drivers/net/wireless/ath/ath9k/xmit.c
1895
ath_tx_process_buffer(sc, txq, &ts, bf, &bf_head);
drivers/net/wireless/ath/ath9k/xmit.c
1905
void ath_draintxq(struct ath_softc *sc, struct ath_txq *txq)
drivers/net/wireless/ath/ath9k/xmit.c
1908
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1910
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
drivers/net/wireless/ath/ath9k/xmit.c
1914
ath_drain_txq_list(sc, txq, &txq->txq_fifo[idx]);
drivers/net/wireless/ath/ath9k/xmit.c
1923
ath_drain_txq_list(sc, txq, &txq->axq_q);
drivers/net/wireless/ath/ath9k/xmit.c
1925
ath_txq_unlock_complete(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1929
bool ath_drain_all_txq(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/xmit.c
1931
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
1932
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/xmit.c
1944
if (!ATH_TXQ_SETUP(sc, i))
drivers/net/wireless/ath/ath9k/xmit.c
1947
if (!sc->tx.txq[i].axq_depth)
drivers/net/wireless/ath/ath9k/xmit.c
1950
if (ath9k_hw_numtxpending(ah, sc->tx.txq[i].axq_qnum))
drivers/net/wireless/ath/ath9k/xmit.c
1955
RESET_STAT_INC(sc, RESET_TX_DMA_ERROR);
drivers/net/wireless/ath/ath9k/xmit.c
1961
if (!ATH_TXQ_SETUP(sc, i))
drivers/net/wireless/ath/ath9k/xmit.c
1964
txq = &sc->tx.txq[i];
drivers/net/wireless/ath/ath9k/xmit.c
1965
ath_draintxq(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
1971
void ath_tx_cleanupq(struct ath_softc *sc, struct ath_txq *txq)
drivers/net/wireless/ath/ath9k/xmit.c
1973
ath9k_hw_releasetxqueue(sc->sc_ah, txq->axq_qnum);
drivers/net/wireless/ath/ath9k/xmit.c
1974
sc->tx.txqsetup &= ~(1<<txq->axq_qnum);
drivers/net/wireless/ath/ath9k/xmit.c
1980
void ath_txq_schedule(struct ath_softc *sc, struct ath_txq *txq)
drivers/net/wireless/ath/ath9k/xmit.c
1982
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/xmit.c
1983
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/xmit.c
1995
spin_lock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/xmit.c
1998
if (sc->cur_chan->stopped)
drivers/net/wireless/ath/ath9k/xmit.c
2006
ret = ath_tx_sched_aggr(sc, txq, tid);
drivers/net/wireless/ath/ath9k/xmit.c
2015
spin_unlock_bh(&sc->chan_lock);
drivers/net/wireless/ath/ath9k/xmit.c
2019
void ath_txq_schedule_all(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/xmit.c
2025
txq = sc->tx.txq_map[i];
drivers/net/wireless/ath/ath9k/xmit.c
2028
ath_txq_schedule(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
2041
static void ath_tx_txqaddbuf(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/xmit.c
2044
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
2084
TX_STAT_INC(sc, txq->axq_qnum, puttxbuf);
drivers/net/wireless/ath/ath9k/xmit.c
2090
if (!edma || sc->tx99_state) {
drivers/net/wireless/ath/ath9k/xmit.c
2091
TX_STAT_INC(sc, txq->axq_qnum, txstart);
drivers/net/wireless/ath/ath9k/xmit.c
210
static void ath_txq_skb_done(struct ath_softc *sc, struct sk_buff *skb)
drivers/net/wireless/ath/ath9k/xmit.c
2108
static void ath_tx_send_normal(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/xmit.c
2126
ath_tx_fill_desc(sc, bf, txq, fi->framelen);
drivers/net/wireless/ath/ath9k/xmit.c
2127
ath_tx_txqaddbuf(sc, txq, &bf_head, false);
drivers/net/wireless/ath/ath9k/xmit.c
2128
TX_STAT_INC(sc, txq->axq_qnum, queued);
drivers/net/wireless/ath/ath9k/xmit.c
2167
struct ath_softc *sc;
drivers/net/wireless/ath/ath9k/xmit.c
2169
sc = hw->priv;
drivers/net/wireless/ath/ath9k/xmit.c
2171
txpower = sc->cur_chan->cur_txpower;
drivers/net/wireless/ath/ath9k/xmit.c
219
txq = sc->tx.txq_map[q];
drivers/net/wireless/ath/ath9k/xmit.c
2194
u8 ath_txchainmask_reduction(struct ath_softc *sc, u8 chainmask, u32 rate)
drivers/net/wireless/ath/ath9k/xmit.c
2196
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
2213
static struct ath_buf *ath_tx_setup_buffer(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/xmit.c
2218
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/xmit.c
2225
bf = ath_tx_get_buffer(sc);
drivers/net/wireless/ath/ath9k/xmit.c
2249
bf->bf_buf_addr = dma_map_single(sc->dev, skb->data,
drivers/net/wireless/ath/ath9k/xmit.c
2251
if (unlikely(dma_mapping_error(sc->dev, bf->bf_buf_addr))) {
drivers/net/wireless/ath/ath9k/xmit.c
2254
ath_err(ath9k_hw_common(sc->sc_ah),
drivers/net/wireless/ath/ath9k/xmit.c
2256
ath_tx_return_buffer(sc, bf);
drivers/net/wireless/ath/ath9k/xmit.c
2294
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/xmit.c
2301
ath_assign_seq(ath9k_hw_common(sc->sc_ah), skb);
drivers/net/wireless/ath/ath9k/xmit.c
2332
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/xmit.c
2354
txq = sc->tx.uapsdq;
drivers/net/wireless/ath/ath9k/xmit.c
236
struct ath_softc *sc = tid->an->sc;
drivers/net/wireless/ath/ath9k/xmit.c
2361
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
2362
if (txq == sc->tx.txq_map[q]) {
drivers/net/wireless/ath/ath9k/xmit.c
2367
bf = ath_tx_setup_buffer(sc, txq, tid, skb);
drivers/net/wireless/ath/ath9k/xmit.c
2369
ath_txq_skb_done(sc, skb);
drivers/net/wireless/ath/ath9k/xmit.c
237
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/xmit.c
2373
ieee80211_free_txskb(sc->hw, skb);
drivers/net/wireless/ath/ath9k/xmit.c
2383
ath_tx_send_normal(sc, txq, tid, skb);
drivers/net/wireless/ath/ath9k/xmit.c
2386
ath_txq_unlock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
2394
struct ath_softc *sc = hw->priv;
drivers/net/wireless/ath/ath9k/xmit.c
2396
.txq = sc->beacon.cabq
drivers/net/wireless/ath/ath9k/xmit.c
2406
sc->cur_chan->beacon.beacon_interval * 1000 *
drivers/net/wireless/ath/ath9k/xmit.c
2407
sc->cur_chan->beacon.dtim_period / ATH_BCBUF;
drivers/net/wireless/ath/ath9k/xmit.c
2415
bf = ath_tx_setup_buffer(sc, txctl.txq, NULL, skb);
drivers/net/wireless/ath/ath9k/xmit.c
2421
ath_buf_set_rate(sc, bf, &info, fi->framelen, false);
drivers/net/wireless/ath/ath9k/xmit.c
2443
ath9k_set_moredata(sc, bf, false);
drivers/net/wireless/ath/ath9k/xmit.c
2446
ath_txq_lock(sc, txctl.txq);
drivers/net/wireless/ath/ath9k/xmit.c
2447
ath_tx_fill_desc(sc, bf, txctl.txq, 0);
drivers/net/wireless/ath/ath9k/xmit.c
2448
ath_tx_txqaddbuf(sc, txctl.txq, &bf_q, false);
drivers/net/wireless/ath/ath9k/xmit.c
2449
TX_STAT_INC(sc, txctl.txq->axq_qnum, queued);
drivers/net/wireless/ath/ath9k/xmit.c
2450
ath_txq_unlock(sc, txctl.txq);
drivers/net/wireless/ath/ath9k/xmit.c
2457
static void ath_tx_complete(struct ath_softc *sc, struct sk_buff *skb,
drivers/net/wireless/ath/ath9k/xmit.c
2462
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/xmit.c
2469
if (sc->sc_ah->caldata)
drivers/net/wireless/ath/ath9k/xmit.c
2470
set_bit(PAPRD_PACKET_SENT, &sc->sc_ah->caldata->cal_flags);
drivers/net/wireless/ath/ath9k/xmit.c
2492
spin_lock_irqsave(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/xmit.c
2493
if ((sc->ps_flags & PS_WAIT_FOR_TX_ACK) && !txq->axq_depth) {
drivers/net/wireless/ath/ath9k/xmit.c
2494
sc->ps_flags &= ~PS_WAIT_FOR_TX_ACK;
drivers/net/wireless/ath/ath9k/xmit.c
2497
sc->ps_flags & (PS_WAIT_FOR_BEACON |
drivers/net/wireless/ath/ath9k/xmit.c
2502
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
drivers/net/wireless/ath/ath9k/xmit.c
2504
ath_txq_skb_done(sc, skb);
drivers/net/wireless/ath/ath9k/xmit.c
2509
static void ath_tx_complete_buf(struct ath_softc *sc, struct ath_buf *bf,
drivers/net/wireless/ath/ath9k/xmit.c
2525
dma_unmap_single(sc->dev, bf->bf_buf_addr, skb->len, DMA_TO_DEVICE);
drivers/net/wireless/ath/ath9k/xmit.c
2527
if (sc->tx99_state)
drivers/net/wireless/ath/ath9k/xmit.c
2536
complete(&sc->paprd_complete);
drivers/net/wireless/ath/ath9k/xmit.c
2538
ath_debug_stat_tx(sc, bf, ts, txq, tx_flags);
drivers/net/wireless/ath/ath9k/xmit.c
2539
ath_tx_complete(sc, skb, tx_flags, txq, sta);
drivers/net/wireless/ath/ath9k/xmit.c
2550
spin_lock_irqsave(&sc->tx.txbuflock, flags);
drivers/net/wireless/ath/ath9k/xmit.c
2551
list_splice_tail_init(bf_q, &sc->tx.txbuf);
drivers/net/wireless/ath/ath9k/xmit.c
2552
spin_unlock_irqrestore(&sc->tx.txbuflock, flags);
drivers/net/wireless/ath/ath9k/xmit.c
2565
static void ath_tx_rc_status(struct ath_softc *sc, struct ath_buf *bf,
drivers/net/wireless/ath/ath9k/xmit.c
257
if (tid->txq == sc->tx.txq_map[q]) {
drivers/net/wireless/ath/ath9k/xmit.c
2572
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/xmit.c
2573
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
2616
ah->tx_trig_level >= sc->sc_ah->config.max_txtrig_level)
drivers/net/wireless/ath/ath9k/xmit.c
2622
static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq)
drivers/net/wireless/ath/ath9k/xmit.c
2624
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
2633
txq->axq_qnum, ath9k_hw_gettxbuf(sc->sc_ah, txq->axq_qnum),
drivers/net/wireless/ath/ath9k/xmit.c
2636
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
2643
ath_txq_schedule(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
2674
TX_STAT_INC(sc, txq->axq_qnum, txprocdesc);
drivers/net/wireless/ath/ath9k/xmit.c
2689
ath_tx_return_buffer(sc, bf_held);
drivers/net/wireless/ath/ath9k/xmit.c
2692
ath_tx_process_buffer(sc, txq, &ts, bf, &bf_head);
drivers/net/wireless/ath/ath9k/xmit.c
2694
ath_txq_unlock_complete(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
2697
void ath_tx_tasklet(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/xmit.c
2699
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
2705
if (ATH_TXQ_SETUP(sc, i) && (qcumask & (1 << i)))
drivers/net/wireless/ath/ath9k/xmit.c
2706
ath_tx_processq(sc, &sc->tx.txq[i]);
drivers/net/wireless/ath/ath9k/xmit.c
2711
void ath_tx_edma_tasklet(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/xmit.c
2714
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/xmit.c
2715
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
2736
if (ts.qid == sc->beacon.beaconq) {
drivers/net/wireless/ath/ath9k/xmit.c
2737
sc->beacon.tx_processed = true;
drivers/net/wireless/ath/ath9k/xmit.c
2738
sc->beacon.tx_last = !(ts.ts_status & ATH9K_TXERR_MASK);
drivers/net/wireless/ath/ath9k/xmit.c
2741
ath_chanctx_event(sc, NULL,
drivers/net/wireless/ath/ath9k/xmit.c
2745
ath9k_csa_update(sc);
drivers/net/wireless/ath/ath9k/xmit.c
2749
txq = &sc->tx.txq[ts.qid];
drivers/net/wireless/ath/ath9k/xmit.c
2751
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
2753
TX_STAT_INC(sc, txq->axq_qnum, txprocdesc);
drivers/net/wireless/ath/ath9k/xmit.c
2757
ath_txq_unlock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
2764
ath_tx_return_buffer(sc, bf);
drivers/net/wireless/ath/ath9k/xmit.c
278
static void ath_tx_flush_tid(struct ath_softc *sc, struct ath_atx_tid *tid)
drivers/net/wireless/ath/ath9k/xmit.c
2781
ath_tx_txqaddbuf(sc, txq, &bf_q, true);
drivers/net/wireless/ath/ath9k/xmit.c
2790
ath_tx_process_buffer(sc, txq, &ts, bf, &bf_head);
drivers/net/wireless/ath/ath9k/xmit.c
2791
ath_txq_unlock_complete(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
2800
static int ath_txstatus_setup(struct ath_softc *sc, int size)
drivers/net/wireless/ath/ath9k/xmit.c
2802
struct ath_descdma *dd = &sc->txsdma;
drivers/net/wireless/ath/ath9k/xmit.c
2803
u8 txs_len = sc->sc_ah->caps.txs_len;
drivers/net/wireless/ath/ath9k/xmit.c
2806
dd->dd_desc = dmam_alloc_coherent(sc->dev, dd->dd_desc_len,
drivers/net/wireless/ath/ath9k/xmit.c
2814
static int ath_tx_edma_init(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/xmit.c
2818
err = ath_txstatus_setup(sc, ATH_TXSTATUS_RING_SIZE);
drivers/net/wireless/ath/ath9k/xmit.c
2820
ath9k_hw_setup_statusring(sc->sc_ah, sc->txsdma.dd_desc,
drivers/net/wireless/ath/ath9k/xmit.c
2821
sc->txsdma.dd_desc_paddr,
drivers/net/wireless/ath/ath9k/xmit.c
2827
int ath_tx_init(struct ath_softc *sc, int nbufs)
drivers/net/wireless/ath/ath9k/xmit.c
2829
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/xmit.c
2832
spin_lock_init(&sc->tx.txbuflock);
drivers/net/wireless/ath/ath9k/xmit.c
2834
error = ath_descdma_setup(sc, &sc->tx.txdma, &sc->tx.txbuf,
drivers/net/wireless/ath/ath9k/xmit.c
2842
error = ath_descdma_setup(sc, &sc->beacon.bdma, &sc->beacon.bbuf,
drivers/net/wireless/ath/ath9k/xmit.c
2850
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
drivers/net/wireless/ath/ath9k/xmit.c
2851
error = ath_tx_edma_init(sc);
drivers/net/wireless/ath/ath9k/xmit.c
2856
void ath_tx_node_init(struct ath_softc *sc, struct ath_node *an)
drivers/net/wireless/ath/ath9k/xmit.c
2873
tid->txq = sc->tx.txq_map[acno];
drivers/net/wireless/ath/ath9k/xmit.c
2880
void ath_tx_node_cleanup(struct ath_softc *sc, struct ath_node *an)
drivers/net/wireless/ath/ath9k/xmit.c
2892
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
2897
ath_tid_drain(sc, txq, tid);
drivers/net/wireless/ath/ath9k/xmit.c
2900
ath_txq_unlock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
2911
int ath9k_tx99_send(struct ath_softc *sc, struct sk_buff *skb,
drivers/net/wireless/ath/ath9k/xmit.c
2916
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
drivers/net/wireless/ath/ath9k/xmit.c
2938
bf = ath_tx_setup_buffer(sc, txctl->txq, NULL, skb);
drivers/net/wireless/ath/ath9k/xmit.c
2944
ath_set_rates(sc->tx99_vif, NULL, bf);
drivers/net/wireless/ath/ath9k/xmit.c
2946
ath9k_hw_set_desc_link(sc->sc_ah, bf->bf_desc, bf->bf_daddr);
drivers/net/wireless/ath/ath9k/xmit.c
2947
ath9k_hw_tx99_start(sc->sc_ah, txctl->txq->axq_qnum);
drivers/net/wireless/ath/ath9k/xmit.c
2949
ath_tx_send_normal(sc, txctl->txq, NULL, skb);
drivers/net/wireless/ath/ath9k/xmit.c
296
ath_txq_skb_done(sc, skb);
drivers/net/wireless/ath/ath9k/xmit.c
297
ieee80211_free_txskb(sc->hw, skb);
drivers/net/wireless/ath/ath9k/xmit.c
307
ath_tx_complete_buf(sc, bf, txq, &bf_head, NULL, &ts, 0);
drivers/net/wireless/ath/ath9k/xmit.c
311
ath_txq_unlock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
313
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
360
static void ath_tid_drain(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/xmit.c
378
ath_tx_complete(sc, skb, ATH_TX_ERROR, txq, NULL);
drivers/net/wireless/ath/ath9k/xmit.c
383
ath_tx_complete_buf(sc, bf, txq, &bf_head, NULL, &ts, 0);
drivers/net/wireless/ath/ath9k/xmit.c
387
static void ath_tx_set_retry(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/xmit.c
395
TX_STAT_INC(sc, txq->axq_qnum, a_retries);
drivers/net/wireless/ath/ath9k/xmit.c
403
dma_sync_single_for_device(sc->dev, bf->bf_buf_addr,
drivers/net/wireless/ath/ath9k/xmit.c
407
static struct ath_buf *ath_tx_get_buffer(struct ath_softc *sc)
drivers/net/wireless/ath/ath9k/xmit.c
411
spin_lock_bh(&sc->tx.txbuflock);
drivers/net/wireless/ath/ath9k/xmit.c
413
if (unlikely(list_empty(&sc->tx.txbuf))) {
drivers/net/wireless/ath/ath9k/xmit.c
414
spin_unlock_bh(&sc->tx.txbuflock);
drivers/net/wireless/ath/ath9k/xmit.c
418
bf = list_first_entry(&sc->tx.txbuf, struct ath_buf, list);
drivers/net/wireless/ath/ath9k/xmit.c
421
spin_unlock_bh(&sc->tx.txbuflock);
drivers/net/wireless/ath/ath9k/xmit.c
426
static void ath_tx_return_buffer(struct ath_softc *sc, struct ath_buf *bf)
drivers/net/wireless/ath/ath9k/xmit.c
428
spin_lock_bh(&sc->tx.txbuflock);
drivers/net/wireless/ath/ath9k/xmit.c
429
list_add_tail(&bf->list, &sc->tx.txbuf);
drivers/net/wireless/ath/ath9k/xmit.c
430
spin_unlock_bh(&sc->tx.txbuflock);
drivers/net/wireless/ath/ath9k/xmit.c
433
static struct ath_buf* ath_clone_txbuf(struct ath_softc *sc, struct ath_buf *bf)
drivers/net/wireless/ath/ath9k/xmit.c
437
tbf = ath_tx_get_buffer(sc);
drivers/net/wireless/ath/ath9k/xmit.c
445
memcpy(tbf->bf_desc, bf->bf_desc, sc->sc_ah->caps.tx_desc_len);
drivers/net/wireless/ath/ath9k/xmit.c
483
static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/xmit.c
523
ath_tx_complete_buf(sc, bf, txq, &bf_head, NULL, ts, 0);
drivers/net/wireless/ath/ath9k/xmit.c
56
static void ath_tx_send_normal(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/xmit.c
560
if (sc->sc_ah->opmode == NL80211_IFTYPE_STATION)
drivers/net/wireless/ath/ath9k/xmit.c
58
static void ath_tx_complete(struct ath_softc *sc, struct sk_buff *skb,
drivers/net/wireless/ath/ath9k/xmit.c
596
ath_tx_set_retry(sc, txq, bf->bf_mpdu,
drivers/net/wireless/ath/ath9k/xmit.c
61
static void ath_tx_complete_buf(struct ath_softc *sc, struct ath_buf *bf,
drivers/net/wireless/ath/ath9k/xmit.c
624
ath_tx_rc_status(sc, bf, ts, nframes, nbad, txok);
drivers/net/wireless/ath/ath9k/xmit.c
627
ath_dynack_sample_tx_ts(sc->sc_ah,
drivers/net/wireless/ath/ath9k/xmit.c
632
ath_tx_complete_buf(sc, bf, txq, &bf_head, sta, ts,
drivers/net/wireless/ath/ath9k/xmit.c
643
tbf = ath_clone_txbuf(sc, bf_last);
drivers/net/wireless/ath/ath9k/xmit.c
65
static void ath_tx_txqaddbuf(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/xmit.c
652
ath_tx_complete_buf(sc, bf, txq,
drivers/net/wireless/ath/ath9k/xmit.c
67
static void ath_tx_rc_status(struct ath_softc *sc, struct ath_buf *bf,
drivers/net/wireless/ath/ath9k/xmit.c
680
ath_tx_queue_tid(sc, tid);
drivers/net/wireless/ath/ath9k/xmit.c
692
ath_txq_unlock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
694
ath_txq_lock(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
698
ath9k_queue_reset(sc, RESET_TYPE_TX_ERROR);
drivers/net/wireless/ath/ath9k/xmit.c
707
static void ath_tx_count_airtime(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/xmit.c
71
static struct ath_buf *ath_tx_setup_buffer(struct ath_softc *sc,
drivers/net/wireless/ath/ath9k/xmit.c
718
int rate_dur = ath9k_hw_get_duration(sc->sc_ah, bf->bf_desc, i);
drivers/net/wireless/ath/ath9k/xmit.c
725
static void ath_tx_process_buffer(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/xmit.c
729
struct ieee80211_hw *hw = sc->hw;
drivers/net/wireless/ath/ath9k/xmit.c
744
ts->duration = ath9k_hw_get_duration(sc->sc_ah, bf->bf_desc,
drivers/net/wireless/ath/ath9k/xmit.c
752
ath_tx_count_airtime(sc, sta, bf, ts, tid->tidno);
drivers/net/wireless/ath/ath9k/xmit.c
762
ath_tx_rc_status(sc, bf, ts, 1, txok ? 0 : 1, txok);
drivers/net/wireless/ath/ath9k/xmit.c
763
ath_dynack_sample_tx_ts(sc->sc_ah, bf->bf_mpdu, ts,
drivers/net/wireless/ath/ath9k/xmit.c
766
ath_tx_complete_buf(sc, bf, txq, bf_head, sta, ts, txok);
drivers/net/wireless/ath/ath9k/xmit.c
768
ath_tx_complete_aggr(sc, txq, bf, bf_head, sta, tid, ts, txok);
drivers/net/wireless/ath/ath9k/xmit.c
771
ath_txq_schedule(sc, txq);
drivers/net/wireless/ath/ath9k/xmit.c
796
static u32 ath_lookup_rate(struct ath_softc *sc, struct ath_buf *bf,
drivers/net/wireless/ath/ath9k/xmit.c
836
frmlen = sc->tx.max_aggr_framelen[q][modeidx][rates[i].idx];
drivers/net/wireless/ath/ath9k/xmit.c
853
bt_aggr_limit = ath9k_btcoex_aggr_limit(sc, max_4ms_framelen);
drivers/net/wireless/ath/ath9k/xmit.c
867
static int ath_compute_num_delims(struct ath_softc *sc, struct ath_atx_tid *tid,
drivers/net/wireless/ath/ath9k/xmit.c
888
!(sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA))
drivers/net/wireless/ath/ath9k/xmit.c
895
if (first_subfrm && !AR_SREV_9580_10_OR_LATER(sc->sc_ah) &&
drivers/net/wireless/ath/ath9k/xmit.c
896
(sc->sc_ah->ent_mode & AR_ENT_OTP_MIN_PKT_SIZE_DISABLE))
drivers/net/wireless/ath/ath9k/xmit.c
938
ath_tx_get_tid_subframe(struct ath_softc *sc, struct ath_txq *txq,
drivers/net/wireless/ath/ath9k/xmit.c
956
bf = ath_tx_setup_buffer(sc, txq, tid, skb);
drivers/net/wireless/ath/ath9k/xmit.c
961
ath_txq_skb_done(sc, skb);
drivers/net/wireless/ath/ath9k/xmit.c
962
ieee80211_free_txskb(sc->hw, skb);
drivers/net/wireless/intel/ipw2x00/ipw2200.c
8084
u16 sc = le16_to_cpu(header->seq_ctl);
drivers/net/wireless/intel/ipw2x00/ipw2200.c
8085
u16 seq = WLAN_GET_SEQ_SEQ(sc);
drivers/net/wireless/intel/ipw2x00/ipw2200.c
8086
u16 frag = WLAN_GET_SEQ_FRAG(sc);
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
136
u16 sc;
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
140
sc = le16_to_cpu(hdr->seq_ctl);
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
141
seq = WLAN_GET_SEQ_SEQ(sc);
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
331
u16 fc, type, stype, sc;
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
358
sc = le16_to_cpu(hdr->seq_ctl);
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
359
frag = WLAN_GET_SEQ_FRAG(sc);
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
479
if (sc == ieee->prev_seq_ctl)
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
482
ieee->prev_seq_ctl = sc;
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
585
WLAN_GET_SEQ_SEQ(sc), frag);
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
86
u16 sc;
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
90
sc = le16_to_cpu(hdr->seq_ctl);
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
91
frag = WLAN_GET_SEQ_FRAG(sc);
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
92
seq = WLAN_GET_SEQ_SEQ(sc);
drivers/net/wireless/intel/iwlegacy/4965-mac.c
2693
u16 sc;
drivers/net/wireless/intel/iwlegacy/4965-mac.c
2712
sc = le16_to_cpu(hdr->seq_ctrl);
drivers/net/wireless/intel/iwlegacy/4965-mac.c
2713
if (idx != (IEEE80211_SEQ_TO_SN(sc) & 0xff)) {
drivers/net/wireless/intel/iwlegacy/4965-mac.c
2716
IEEE80211_SEQ_TO_SN(sc), hdr->seq_ctrl);
drivers/net/wireless/intel/iwlegacy/4965-mac.c
2721
IEEE80211_SEQ_TO_SN(sc));
drivers/net/wireless/intel/iwlwifi/fw/api/d3.h
632
struct iwl_wowlan_all_rsc_tsc_v5 sc;
drivers/net/wireless/intel/iwlwifi/fw/api/d3.h
669
struct iwl_wowlan_all_rsc_tsc_v5 sc;
drivers/net/wireless/intel/iwlwifi/mld/d3.c
260
const struct iwl_wowlan_all_rsc_tsc_v5 *sc,
drivers/net/wireless/intel/iwlwifi/mld/d3.c
266
if (rsc_idx >= ARRAY_SIZE(sc->mcast_rsc))
drivers/net/wireless/intel/iwlwifi/mld/d3.c
274
iwl_mld_le64_to_tkip_seq(sc->mcast_rsc[rsc_idx][tid],
drivers/net/wireless/intel/iwlwifi/mld/d3.c
276
iwl_mld_le64_to_aes_seq(sc->mcast_rsc[rsc_idx][tid],
drivers/net/wireless/intel/iwlwifi/mld/d3.c
285
const struct iwl_wowlan_all_rsc_tsc_v5 *sc)
drivers/net/wireless/intel/iwlwifi/mld/d3.c
313
sc->mcast_key_id_map[wowlan_status->gtk[status_idx].id];
drivers/net/wireless/intel/iwlwifi/mld/d3.c
315
sc, rsc_idx);
drivers/net/wireless/intel/iwlwifi/mld/d3.c
345
const struct iwl_wowlan_all_rsc_tsc_v5 *sc)
drivers/net/wireless/intel/iwlwifi/mld/d3.c
350
BUILD_BUG_ON(ARRAY_SIZE(sc->ucast_rsc) != IWL_MAX_TID_COUNT);
drivers/net/wireless/intel/iwlwifi/mld/d3.c
353
iwl_mld_le64_to_aes_seq(sc->ucast_rsc[tid], &aes_seq[tid]);
drivers/net/wireless/intel/iwlwifi/mld/d3.c
354
iwl_mld_le64_to_tkip_seq(sc->ucast_rsc[tid], &tkip_seq[tid]);
drivers/net/wireless/intel/iwlwifi/mld/d3.c
506
gtk->sc = gtk_v3->sc;
drivers/net/wireless/intel/iwlwifi/mld/d3.c
645
&notif->gtk[0].sc);
drivers/net/wireless/intel/iwlwifi/mld/d3.c
646
iwl_mld_convert_ptk_resume_seq(mld, wowlan_status, &notif->gtk[0].sc);
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1595
static void iwl_mvm_aes_sc_to_seq(struct aes_sc *sc,
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1598
iwl_mvm_le64_to_aes_seq(sc->pn, seq);
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1609
static void iwl_mvm_tkip_sc_to_seq(struct tkip_sc *sc,
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1612
seq->tkip.iv32 = le32_to_cpu(sc->iv32);
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1613
seq->tkip.iv16 = le16_to_cpu(sc->iv16);
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1659
union iwl_all_tsc_rsc *sc, u8 key_idx)
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1668
iwl_mvm_tkip_sc_to_seq(&sc->tkip.multicast_rsc[i],
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1670
iwl_mvm_aes_sc_to_seq(&sc->aes.multicast_rsc[i],
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1677
status->ptk.tkip.tx_pn = (u64)le16_to_cpu(sc->tkip.tsc.iv16) |
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1678
((u64)le32_to_cpu(sc->tkip.tsc.iv32) << 16);
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1679
status->ptk.aes.tx_pn = le64_to_cpu(sc->aes.tsc.pn);
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1683
iwl_mvm_tkip_sc_to_seq(&sc->tkip.unicast_rsc[i],
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1685
iwl_mvm_aes_sc_to_seq(&sc->aes.unicast_rsc[i],
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1692
struct iwl_wowlan_all_rsc_tsc_v5 *sc,
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1698
iwl_mvm_le64_to_tkip_seq(sc->mcast_rsc[idx][tid],
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1700
iwl_mvm_le64_to_aes_seq(sc->mcast_rsc[idx][tid],
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1710
struct iwl_wowlan_all_rsc_tsc_v5 *sc)
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1716
BUILD_BUG_ON(ARRAY_SIZE(sc->mcast_rsc) != ARRAY_SIZE(status->gtk_seq));
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1719
for (i = 0; i < ARRAY_SIZE(sc->mcast_key_id_map); i++) {
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1720
u8 entry = sc->mcast_key_id_map[i];
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1722
if (entry < ARRAY_SIZE(sc->mcast_rsc))
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1723
iwl_mvm_convert_key_counters_v5_gtk_seq(status, sc,
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1731
iwl_mvm_le64_to_tkip_seq(sc->ucast_rsc[tid],
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
1733
iwl_mvm_le64_to_aes_seq(sc->ucast_rsc[tid],
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
2139
iwl_mvm_convert_key_counters_v5(status, &data->gtk[0].sc);
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
2178
iwl_mvm_convert_key_counters_v5(status, &data->gtk[0].sc);
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
2208
iwl_mvm_convert_key_counters_v5(status, &data->gtk[0].sc);
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
1209
u8 sc;
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
1215
sc = mwifiex_chan_type_to_sec_chan_offset(NL80211_CHAN_NO_HT);
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
1216
roc_cfg.band_cfg |= (sc << 2);
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
411
__le16 sc = hdr->seq_ctrl;
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
454
if (ieee80211_has_morefrags(fc) && ieee80211_is_first_frag(sc))
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
456
else if (ieee80211_has_morefrags(fc) && !ieee80211_is_first_frag(sc))
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
458
else if (!ieee80211_has_morefrags(fc) && !ieee80211_is_first_frag(sc))
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
469
u16 seqno = le16_to_cpu(sc);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
796
__le16 fc = hdr->frame_control, sc = hdr->seq_ctrl;
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
797
u16 seqno = le16_to_cpu(sc);
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
842
if (ieee80211_has_morefrags(fc) && ieee80211_is_first_frag(sc))
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
844
else if (ieee80211_has_morefrags(fc) && !ieee80211_is_first_frag(sc))
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
846
else if (!ieee80211_has_morefrags(fc) && !ieee80211_is_first_frag(sc))
drivers/net/wireless/quantenna/qtnfmac/commands.c
1944
const struct ieee80211_channel *sc)
drivers/net/wireless/quantenna/qtnfmac/commands.c
1954
qch->center_freq = cpu_to_le16(sc->center_freq);
drivers/net/wireless/quantenna/qtnfmac/commands.c
1955
qch->hw_value = cpu_to_le16(sc->hw_value);
drivers/net/wireless/quantenna/qtnfmac/commands.c
1956
qch->band = qlink_utils_band_cfg2q(sc->band);
drivers/net/wireless/quantenna/qtnfmac/commands.c
1957
qch->max_power = sc->max_power;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1958
qch->max_reg_power = sc->max_reg_power;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1959
qch->max_antenna_gain = sc->max_antenna_gain;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1960
qch->beacon_found = sc->beacon_found;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1961
qch->dfs_state = qlink_utils_dfs_state_cfg2q(sc->dfs_state);
drivers/net/wireless/quantenna/qtnfmac/commands.c
1962
qch->flags = cpu_to_le32(qlink_utils_chflags_cfg2q(sc->flags));
drivers/net/wireless/quantenna/qtnfmac/commands.c
1987
struct ieee80211_channel *sc;
drivers/net/wireless/quantenna/qtnfmac/commands.c
2025
sc = scan_req->channels[count];
drivers/net/wireless/quantenna/qtnfmac/commands.c
2026
if (sc->flags & IEEE80211_CHAN_DISABLED)
drivers/net/wireless/quantenna/qtnfmac/commands.c
2030
mac->macid, sc->hw_value, sc->center_freq,
drivers/net/wireless/quantenna/qtnfmac/commands.c
2031
sc->flags);
drivers/net/wireless/quantenna/qtnfmac/commands.c
2033
qtnf_cmd_channel_tlv_add(cmd_skb, sc);
drivers/nfc/pn533/pn533.c
117
.sc = PN533_FELICA_SENSF_SC_ALL,
drivers/nfc/pn533/pn533.c
130
.sc = PN533_FELICA_SENSF_SC_ALL,
drivers/nfc/pn533/pn533.c
88
__be16 sc;
drivers/nfc/port100.c
1448
hdr->nfcf_param[16] = (params->sc >> 8) & 0xFF;
drivers/nfc/port100.c
1449
hdr->nfcf_param[17] = params->sc & 0xFF;
drivers/nvme/target/configfs.c
481
u8 sc = nvmet_port_disc_addr_treq_secure_channel(port);
drivers/nvme/target/configfs.c
483
if (sc == NVMF_TREQ_NOT_SPECIFIED)
drivers/nvme/target/configfs.c
486
treq |= sc;
drivers/regulator/qcom-labibb-regulator.c
434
int i, sc, ret;
drivers/regulator/qcom-labibb-regulator.c
463
sc = qcom_labibb_check_sc_status(vreg);
drivers/regulator/qcom-labibb-regulator.c
464
if (sc)
drivers/s390/scsi/zfcp_dbf.c
671
struct scsi_cmnd *sc, struct zfcp_fsf_req *fsf)
drivers/s390/scsi/zfcp_dbf.c
686
if (sc) {
drivers/s390/scsi/zfcp_dbf.c
687
rec->scsi_result = sc->result;
drivers/s390/scsi/zfcp_dbf.c
688
rec->scsi_retries = sc->retries;
drivers/s390/scsi/zfcp_dbf.c
689
rec->scsi_allowed = sc->allowed;
drivers/s390/scsi/zfcp_dbf.c
690
rec->scsi_id = sc->device->id;
drivers/s390/scsi/zfcp_dbf.c
691
rec->scsi_lun = (u32)sc->device->lun;
drivers/s390/scsi/zfcp_dbf.c
692
rec->scsi_lun_64_hi = (u32)(sc->device->lun >> 32);
drivers/s390/scsi/zfcp_dbf.c
693
rec->host_scribble = (u64)sc->host_scribble;
drivers/s390/scsi/zfcp_dbf.c
695
memcpy(rec->scsi_opcode, sc->cmnd,
drivers/s390/scsi/zfcp_dbf.c
696
min_t(int, sc->cmd_len, ZFCP_DBF_SCSI_OPCODE));
drivers/s390/scsi/zfcp_ext.h
58
struct scsi_cmnd *sc,
drivers/scsi/advansys.c
8545
unsigned char sc;
drivers/scsi/advansys.c
8548
sc = inp(iop_base + IOP_REG_SC);
drivers/scsi/advansys.c
8550
return sc;
drivers/scsi/aha152x.c
1444
struct aha152x_scdata *sc = SCDATA(cmd);
drivers/scsi/aha152x.c
1446
scsi_eh_restore_cmnd(cmd, &sc->ses);
drivers/scsi/aha152x.c
1459
struct aha152x_scdata *sc;
drivers/scsi/aha152x.c
1463
sc = SCDATA(ptr);
drivers/scsi/aha152x.c
1465
BUG_ON(!sc);
drivers/scsi/aha152x.c
1466
scsi_eh_prep_cmnd(ptr, &sc->ses, NULL, 0, ~0);
drivers/scsi/aha1740.c
130
sc:1, /* Specification Check */
drivers/scsi/aha1740.c
150
if ( (status[1]&0x18) || status_word.sc ) {
drivers/scsi/aic7xxx/aic7770.c
257
struct seeprom_config *sc;
drivers/scsi/aic7xxx/aic7770.c
272
sc = ahc->seep_config;
drivers/scsi/aic7xxx/aic7770.c
276
have_seeprom = ahc_read_seeprom(&sd, (uint16_t *)sc,
drivers/scsi/aic7xxx/aic7770.c
277
/*start_addr*/0, sizeof(*sc)/2);
drivers/scsi/aic7xxx/aic7770.c
281
if (ahc_verify_cksum(sc) == 0) {
drivers/scsi/aic7xxx/aic7770.c
308
target_settings = (sc->device_flags[i] & CFXFER) << 4;
drivers/scsi/aic7xxx/aic7770.c
309
if (sc->device_flags[i] & CFSYNCH)
drivers/scsi/aic7xxx/aic7770.c
311
if (sc->device_flags[i] & CFWIDEB)
drivers/scsi/aic7xxx/aic7770.c
313
if (sc->device_flags[i] & CFDISC)
drivers/scsi/aic7xxx/aic7770.c
320
ahc->our_id = sc->brtime_id & CFSCSIID;
drivers/scsi/aic7xxx/aic7770.c
323
if (sc->adapter_control & CFSPARITY)
drivers/scsi/aic7xxx/aic7770.c
325
if (sc->adapter_control & CFRESETB)
drivers/scsi/aic7xxx/aic7770.c
328
if (sc->bios_control & CF284XEXTEND)
drivers/scsi/aic7xxx/aic7770.c
333
if (sc->adapter_control & CF284XSTERM)
drivers/scsi/aic7xxx/aic79xx.h
1351
struct seeprom_config *sc);
drivers/scsi/aic7xxx/aic79xx.h
964
int ahd_verify_cksum(struct seeprom_config *sc);
drivers/scsi/aic7xxx/aic79xx_core.c
10068
ahd_verify_cksum(struct seeprom_config *sc)
drivers/scsi/aic7xxx/aic79xx_core.c
10075
maxaddr = (sizeof(*sc)/2) - 1;
drivers/scsi/aic7xxx/aic79xx_core.c
10077
scarray = (uint16_t *)sc;
drivers/scsi/aic7xxx/aic79xx_core.c
10082
|| (checksum & 0xFFFF) != sc->checksum) {
drivers/scsi/aic7xxx/aic79xx_core.c
7617
ahd_parse_cfgdata(struct ahd_softc *ahd, struct seeprom_config *sc)
drivers/scsi/aic7xxx/aic79xx_core.c
7622
max_targ = sc->max_targets & CFMAXTARG;
drivers/scsi/aic7xxx/aic79xx_core.c
7623
ahd->our_id = sc->brtime_id & CFSCSIID;
drivers/scsi/aic7xxx/aic79xx_core.c
7657
if (sc->device_flags[targ] & CFDISC) {
drivers/scsi/aic7xxx/aic79xx_core.c
7665
sc->device_flags[targ] &= ~CFPACKETIZED;
drivers/scsi/aic7xxx/aic79xx_core.c
7669
user_tinfo->period = (sc->device_flags[targ] & CFXFER);
drivers/scsi/aic7xxx/aic79xx_core.c
7683
if ((sc->device_flags[targ] & CFPACKETIZED) != 0) {
drivers/scsi/aic7xxx/aic79xx_core.c
7692
if ((sc->device_flags[targ] & CFQAS) != 0)
drivers/scsi/aic7xxx/aic79xx_core.c
7695
if ((sc->device_flags[targ] & CFWIDEB) != 0)
drivers/scsi/aic7xxx/aic79xx_core.c
7725
if (sc->bios_control & CFSPARITY)
drivers/scsi/aic7xxx/aic79xx_core.c
7729
if (sc->bios_control & CFRESETB)
drivers/scsi/aic7xxx/aic79xx_core.c
7733
if (sc->bios_control & CFEXTEND)
drivers/scsi/aic7xxx/aic79xx_core.c
7737
if ((sc->bios_control & CFBIOSSTATE) == CFBS_ENABLED)
drivers/scsi/aic7xxx/aic79xx_core.c
7741
if ((sc->adapter_control & CFSTPWLEVEL) != 0)
drivers/scsi/aic7xxx/aic79xx_core.c
8933
struct scsi_sense *sc;
drivers/scsi/aic7xxx/aic79xx_core.c
8960
sc = (struct scsi_sense *)hscb->shared_data.idata.cdb;
drivers/scsi/aic7xxx/aic79xx_core.c
8975
sc->opcode = REQUEST_SENSE;
drivers/scsi/aic7xxx/aic79xx_core.c
8976
sc->byte2 = 0;
drivers/scsi/aic7xxx/aic79xx_core.c
8979
sc->byte2 = SCB_GET_LUN(scb) << 5;
drivers/scsi/aic7xxx/aic79xx_core.c
8980
sc->unused[0] = 0;
drivers/scsi/aic7xxx/aic79xx_core.c
8981
sc->unused[1] = 0;
drivers/scsi/aic7xxx/aic79xx_core.c
8982
sc->length = ahd_get_sense_bufsize(ahd, scb);
drivers/scsi/aic7xxx/aic79xx_core.c
8983
sc->control = 0;
drivers/scsi/aic7xxx/aic79xx_core.c
9013
hscb->cdb_len = sizeof(*sc);
drivers/scsi/aic7xxx/aic79xx_osm.c
615
struct seeprom_config *sc = ahd->seep_config;
drivers/scsi/aic7xxx/aic79xx_osm.c
629
if (sc) {
drivers/scsi/aic7xxx/aic79xx_osm.c
630
int flags = sc->device_flags[starget->id];
drivers/scsi/aic7xxx/aic79xx_pci.c
507
struct seeprom_config *sc;
drivers/scsi/aic7xxx/aic79xx_pci.c
512
sc = ahd->seep_config;
drivers/scsi/aic7xxx/aic79xx_pci.c
525
start_addr = ((2 * sizeof(*sc))
drivers/scsi/aic7xxx/aic79xx_pci.c
542
start_addr = (sizeof(*sc) / 2) * (ahd->channel - 'A');
drivers/scsi/aic7xxx/aic79xx_pci.c
544
error = ahd_read_seeprom(ahd, (uint16_t *)sc,
drivers/scsi/aic7xxx/aic79xx_pci.c
545
start_addr, sizeof(*sc)/2,
drivers/scsi/aic7xxx/aic79xx_pci.c
552
have_seeprom = ahd_verify_cksum(sc);
drivers/scsi/aic7xxx/aic79xx_pci.c
593
sc_data = (uint16_t *)sc;
drivers/scsi/aic7xxx/aic79xx_pci.c
596
have_seeprom = ahd_verify_cksum(sc);
drivers/scsi/aic7xxx/aic79xx_pci.c
609
sc_data = (uint16_t *)sc;
drivers/scsi/aic7xxx/aic79xx_pci.c
610
for (i = 0; i < (sizeof(*sc)); i += 2)
drivers/scsi/aic7xxx/aic79xx_pci.c
625
error = ahd_parse_cfgdata(ahd, sc);
drivers/scsi/aic7xxx/aic79xx_pci.c
626
adapter_control = sc->adapter_control;
drivers/scsi/aic7xxx/aic7xxx_93cx6.c
299
ahc_verify_cksum(struct seeprom_config *sc)
drivers/scsi/aic7xxx/aic7xxx_93cx6.c
306
maxaddr = (sizeof(*sc)/2) - 1;
drivers/scsi/aic7xxx/aic7xxx_93cx6.c
308
scarray = (uint16_t *)sc;
drivers/scsi/aic7xxx/aic7xxx_93cx6.c
313
|| (checksum & 0xFFFF) != sc->checksum) {
drivers/scsi/aic7xxx/aic7xxx_93cx6.h
100
int ahc_verify_cksum(struct seeprom_config *sc);
drivers/scsi/aic7xxx/aic7xxx_core.c
1052
struct scsi_sense *sc;
drivers/scsi/aic7xxx/aic7xxx_core.c
1074
sc = (struct scsi_sense *)(&hscb->shared_data.cdb);
drivers/scsi/aic7xxx/aic7xxx_core.c
1093
sc->opcode = REQUEST_SENSE;
drivers/scsi/aic7xxx/aic7xxx_core.c
1094
sc->byte2 = 0;
drivers/scsi/aic7xxx/aic7xxx_core.c
1097
sc->byte2 = SCB_GET_LUN(scb) << 5;
drivers/scsi/aic7xxx/aic7xxx_core.c
1098
sc->unused[0] = 0;
drivers/scsi/aic7xxx/aic7xxx_core.c
1099
sc->unused[1] = 0;
drivers/scsi/aic7xxx/aic7xxx_core.c
1100
sc->length = sg->len;
drivers/scsi/aic7xxx/aic7xxx_core.c
1101
sc->control = 0;
drivers/scsi/aic7xxx/aic7xxx_core.c
1131
hscb->cdb_len = sizeof(*sc);
drivers/scsi/aic7xxx/aic7xxx_osm.c
562
struct seeprom_config *sc = ahc->seep_config;
drivers/scsi/aic7xxx/aic7xxx_osm.c
584
if (sc) {
drivers/scsi/aic7xxx/aic7xxx_osm.c
587
int flags = sc->device_flags[target_offset];
drivers/scsi/aic7xxx/aic7xxx_pci.c
1256
struct seeprom_config *sc;
drivers/scsi/aic7xxx/aic7xxx_pci.c
1264
sc = ahc->seep_config;
drivers/scsi/aic7xxx/aic7xxx_pci.c
1295
have_seeprom = ahc_read_seeprom(&sd, (uint16_t *)sc,
drivers/scsi/aic7xxx/aic7xxx_pci.c
1297
sizeof(*sc)/2);
drivers/scsi/aic7xxx/aic7xxx_pci.c
1300
have_seeprom = ahc_verify_cksum(sc);
drivers/scsi/aic7xxx/aic7xxx_pci.c
1336
sc_data = (uint16_t *)sc;
drivers/scsi/aic7xxx/aic7xxx_pci.c
1344
have_seeprom = ahc_verify_cksum(sc);
drivers/scsi/aic7xxx/aic7xxx_pci.c
1362
sc = NULL;
drivers/scsi/aic7xxx/aic7xxx_pci.c
1364
ahc_parse_pci_eeprom(ahc, sc);
drivers/scsi/aic7xxx/aic7xxx_pci.c
1388
configure_termination(ahc, &sd, sc->adapter_control, sxfrctl1);
drivers/scsi/aic7xxx/aic7xxx_pci.c
1392
if ((sc->adapter_control & CFSTERM) != 0)
drivers/scsi/aic7xxx/aic7xxx_pci.c
1402
ahc_parse_pci_eeprom(struct ahc_softc *ahc, struct seeprom_config *sc)
drivers/scsi/aic7xxx/aic7xxx_pci.c
1409
int max_targ = sc->max_targets & CFMAXTARG;
drivers/scsi/aic7xxx/aic7xxx_pci.c
1416
if ((sc->adapter_control & CFULTRAEN) != 0) {
drivers/scsi/aic7xxx/aic7xxx_pci.c
1422
if ((sc->device_flags[i] & CFSYNCHISULTRA) != 0) {
drivers/scsi/aic7xxx/aic7xxx_pci.c
1434
if (sc->device_flags[i] & CFDISC)
drivers/scsi/aic7xxx/aic7xxx_pci.c
1437
if ((sc->device_flags[i] & CFSYNCHISULTRA) != 0)
drivers/scsi/aic7xxx/aic7xxx_pci.c
1439
} else if ((sc->adapter_control & CFULTRAEN) != 0) {
drivers/scsi/aic7xxx/aic7xxx_pci.c
1442
if ((sc->device_flags[i] & CFXFER) == 0x04
drivers/scsi/aic7xxx/aic7xxx_pci.c
1445
sc->device_flags[i] &= ~CFXFER;
drivers/scsi/aic7xxx/aic7xxx_pci.c
1451
if (sc->device_flags[i] & CFSYNCH)
drivers/scsi/aic7xxx/aic7xxx_pci.c
1462
scsirate = (sc->device_flags[i] & CFXFER)
drivers/scsi/aic7xxx/aic7xxx_pci.c
1464
if (sc->device_flags[i] & CFWIDEB)
drivers/scsi/aic7xxx/aic7xxx_pci.c
1467
scsirate = (sc->device_flags[i] & CFXFER) << 4;
drivers/scsi/aic7xxx/aic7xxx_pci.c
1468
if (sc->device_flags[i] & CFSYNCH)
drivers/scsi/aic7xxx/aic7xxx_pci.c
1470
if (sc->device_flags[i] & CFWIDEB)
drivers/scsi/aic7xxx/aic7xxx_pci.c
1475
ahc->our_id = sc->brtime_id & CFSCSIID;
drivers/scsi/aic7xxx/aic7xxx_pci.c
1478
if (sc->adapter_control & CFSPARITY)
drivers/scsi/aic7xxx/aic7xxx_pci.c
1480
if (sc->adapter_control & CFRESETB)
drivers/scsi/aic7xxx/aic7xxx_pci.c
1483
ahc->flags |= (sc->adapter_control & CFBOOTCHAN) >> CFBOOTCHANSHIFT;
drivers/scsi/aic7xxx/aic7xxx_pci.c
1485
if (sc->bios_control & CFEXTEND)
drivers/scsi/aic7xxx/aic7xxx_pci.c
1488
if (sc->bios_control & CFBIOSEN)
drivers/scsi/aic7xxx/aic7xxx_pci.c
1493
if (!(sc->adapter_control & CFULTRAEN))
drivers/scsi/aic7xxx/aic7xxx_pci.c
1498
if (sc->signature == CFSIGNATURE
drivers/scsi/aic7xxx/aic7xxx_pci.c
1499
|| sc->signature == CFSIGNATURE2) {
drivers/scsi/aic7xxx/aic7xxx_pci.c
1506
if ((sc->bios_control & CFSTPWLEVEL) != 0)
drivers/scsi/aic7xxx/aic7xxx_pci.c
605
struct seeprom_config *sc);
drivers/scsi/aic94xx/aic94xx_task.c
103
for_each_sg(task->scatter, sc, num_sg, i) {
drivers/scsi/aic94xx/aic94xx_task.c
105
cpu_to_le64((u64)sg_dma_address(sc));
drivers/scsi/aic94xx/aic94xx_task.c
106
sg_arr[i].size = cpu_to_le32((u32)sg_dma_len(sc));
drivers/scsi/aic94xx/aic94xx_task.c
42
struct scatterlist *sc;
drivers/scsi/aic94xx/aic94xx_task.c
82
for_each_sg(task->scatter, sc, num_sg, i) {
drivers/scsi/aic94xx/aic94xx_task.c
85
sg->bus_addr = cpu_to_le64((u64)sg_dma_address(sc));
drivers/scsi/aic94xx/aic94xx_task.c
86
sg->size = cpu_to_le32((u32)sg_dma_len(sc));
drivers/scsi/aic94xx/aic94xx_task.c
91
for_each_sg(task->scatter, sc, 2, i) {
drivers/scsi/aic94xx/aic94xx_task.c
93
cpu_to_le64((u64)sg_dma_address(sc));
drivers/scsi/aic94xx/aic94xx_task.c
94
sg_arr[i].size = cpu_to_le32((u32)sg_dma_len(sc));
drivers/scsi/be2iscsi/be_main.c
1137
if (!task->sc) {
drivers/scsi/be2iscsi/be_main.c
1145
task->sc->result = (DID_OK << 16) | status;
drivers/scsi/be2iscsi/be_main.c
1147
task->sc->result = DID_ERROR << 16;
drivers/scsi/be2iscsi/be_main.c
1154
task->sc->result = DID_ERROR << 16;
drivers/scsi/be2iscsi/be_main.c
1157
scsi_set_resid(task->sc, resid);
drivers/scsi/be2iscsi/be_main.c
1158
if (!status && (scsi_bufflen(task->sc) - resid <
drivers/scsi/be2iscsi/be_main.c
1159
task->sc->underflow))
drivers/scsi/be2iscsi/be_main.c
1160
task->sc->result = DID_ERROR << 16;
drivers/scsi/be2iscsi/be_main.c
1170
memcpy(task->sc->sense_buffer, sense,
drivers/scsi/be2iscsi/be_main.c
219
static int beiscsi_eh_abort(struct scsi_cmnd *sc)
drivers/scsi/be2iscsi/be_main.c
221
struct iscsi_task *abrt_task = iscsi_cmd(sc)->task;
drivers/scsi/be2iscsi/be_main.c
231
cls_session = starget_to_session(scsi_target(sc->device));
drivers/scsi/be2iscsi/be_main.c
237
if (!abrt_task || !abrt_task->sc) {
drivers/scsi/be2iscsi/be_main.c
270
sc, rc);
drivers/scsi/be2iscsi/be_main.c
274
return iscsi_eh_abort(sc);
drivers/scsi/be2iscsi/be_main.c
277
static int beiscsi_eh_device_reset(struct scsi_cmnd *sc)
drivers/scsi/be2iscsi/be_main.c
293
cls_session = starget_to_session(scsi_target(sc->device));
drivers/scsi/be2iscsi/be_main.c
318
if (!task->sc)
drivers/scsi/be2iscsi/be_main.c
321
if (sc->device->lun != task->sc->device->lun)
drivers/scsi/be2iscsi/be_main.c
384
rc = iscsi_eh_device_reset(sc);
drivers/scsi/be2iscsi/be_main.c
4255
if (task->sc) {
drivers/scsi/be2iscsi/be_main.c
4379
if (task->sc) {
drivers/scsi/be2iscsi/be_main.c
4738
struct scsi_cmnd *sc = task->sc;
drivers/scsi/be2iscsi/be_main.c
4756
if (!sc)
drivers/scsi/be2iscsi/be_main.c
4759
io_task->scsi_cmnd = sc;
drivers/scsi/be2iscsi/be_main.c
4761
num_sg = scsi_dma_map(sc);
drivers/scsi/be2iscsi/be_main.c
4768
io_task->libiscsi_itt, scsi_bufflen(sc));
drivers/scsi/be2iscsi/be_main.c
4777
xferlen = scsi_bufflen(sc);
drivers/scsi/be2iscsi/be_main.c
4778
sg = scsi_sglist(sc);
drivers/scsi/be2iscsi/be_main.c
4779
if (sc->sc_data_direction == DMA_TO_DEVICE)
drivers/scsi/bnx2fc/bnx2fc_io.c
1653
struct scsi_cmnd *sc = io_req->sc_cmd;
drivers/scsi/bnx2fc/bnx2fc_io.c
1664
WARN_ON(scsi_sg_count(sc) > BNX2FC_MAX_BDS_PER_CMD);
drivers/scsi/bnx2fc/bnx2fc_io.c
1669
sg_count = dma_map_sg(&hba->pcidev->dev, scsi_sglist(sc),
drivers/scsi/bnx2fc/bnx2fc_io.c
1670
scsi_sg_count(sc), sc->sc_data_direction);
drivers/scsi/bnx2fc/bnx2fc_io.c
1671
scsi_for_each_sg(sc, sg, sg_count, i) {
drivers/scsi/bnx2fc/bnx2fc_io.c
1688
if (byte_count != scsi_bufflen(sc))
drivers/scsi/bnx2fc/bnx2fc_io.c
1690
"task_id = 0x%x\n", byte_count, scsi_bufflen(sc),
drivers/scsi/bnx2fc/bnx2fc_io.c
1697
struct scsi_cmnd *sc = io_req->sc_cmd;
drivers/scsi/bnx2fc/bnx2fc_io.c
1701
if (scsi_sg_count(sc)) {
drivers/scsi/bnx2fc/bnx2fc_io.c
1727
struct scsi_cmnd *sc = io_req->sc_cmd;
drivers/scsi/bnx2fc/bnx2fc_io.c
1735
if (io_req->bd_tbl->bd_valid && sc && scsi_sg_count(sc)) {
drivers/scsi/bnx2fc/bnx2fc_io.c
1736
dma_unmap_sg(&hba->pcidev->dev, scsi_sglist(sc),
drivers/scsi/bnx2fc/bnx2fc_io.c
1737
scsi_sg_count(sc), sc->sc_data_direction);
drivers/scsi/bnx2i/bnx2i_hwi.c
1907
struct scsi_cmnd *sc;
drivers/scsi/bnx2i/bnx2i_hwi.c
1913
if (!task || !task->sc) {
drivers/scsi/bnx2i/bnx2i_hwi.c
1917
sc = task->sc;
drivers/scsi/bnx2i/bnx2i_hwi.c
1921
p = &per_cpu(bnx2i_percpu, blk_mq_rq_cpu(scsi_cmd_to_rq(sc)));
drivers/scsi/bnx2i/bnx2i_hwi.c
408
if (!ctask || !ctask->sc)
drivers/scsi/bnx2i/bnx2i_hwi.c
419
ref_sc = ctask->sc;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1129
static void bnx2i_cpy_scsi_cdb(struct scsi_cmnd *sc, struct bnx2i_cmd *cmd)
drivers/scsi/bnx2i/bnx2i_iscsi.c
1137
int_to_scsilun(sc->device->lun, (struct scsi_lun *) scsi_lun);
drivers/scsi/bnx2i/bnx2i_iscsi.c
1142
srcp = (u8 *) sc->cmnd;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1150
if (sc->cmd_len & 0x3) {
drivers/scsi/bnx2i/bnx2i_iscsi.c
1165
if (!task->sc || task->state == ISCSI_TASK_PENDING)
drivers/scsi/bnx2i/bnx2i_iscsi.c
1226
struct scsi_cmnd *sc = task->sc;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1237
if (!sc)
drivers/scsi/bnx2i/bnx2i_iscsi.c
1243
cmd->scsi_cmd = sc;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1244
cmd->req.total_data_transfer_length = scsi_bufflen(sc);
drivers/scsi/bnx2i/bnx2i_iscsi.c
1248
bnx2i_cpy_scsi_cdb(sc, cmd);
drivers/scsi/bnx2i/bnx2i_iscsi.c
1251
if (sc->sc_data_direction == DMA_TO_DEVICE) {
drivers/scsi/bnx2i/bnx2i_iscsi.c
1257
if (scsi_bufflen(sc))
drivers/scsi/bnx2i/bnx2i_iscsi.c
145
struct scsi_cmnd *sc = cmd->scsi_cmd;
drivers/scsi/bnx2i/bnx2i_iscsi.c
155
BUG_ON(scsi_sg_count(sc) > ISCSI_MAX_BDS_PER_CMD);
drivers/scsi/bnx2i/bnx2i_iscsi.c
157
sg_count = scsi_dma_map(sc);
drivers/scsi/bnx2i/bnx2i_iscsi.c
159
scsi_for_each_sg(sc, sg, sg_count, i) {
drivers/scsi/bnx2i/bnx2i_iscsi.c
176
BUG_ON(byte_count != scsi_bufflen(sc));
drivers/scsi/bnx2i/bnx2i_iscsi.c
209
struct scsi_cmnd *sc = cmd->scsi_cmd;
drivers/scsi/bnx2i/bnx2i_iscsi.c
211
if (cmd->io_tbl.bd_valid && sc) {
drivers/scsi/bnx2i/bnx2i_iscsi.c
212
scsi_dma_unmap(sc);
drivers/scsi/cxgbi/libcxgbi.c
1142
scmd_get_params(struct scsi_cmnd *sc, struct scatterlist **sgl,
drivers/scsi/cxgbi/libcxgbi.c
1146
struct scsi_data_buffer *sdb = prot ? scsi_prot(sc) : &sc->sdb;
drivers/scsi/cxgbi/libcxgbi.c
1353
struct scsi_cmnd *sc = task->sc;
drivers/scsi/cxgbi/libcxgbi.c
1363
if (sc && sc->sc_data_direction == DMA_FROM_DEVICE &&
drivers/scsi/cxgbi/libcxgbi.c
1384
struct scsi_cmnd *sc = task->sc;
drivers/scsi/cxgbi/libcxgbi.c
1395
if (sc && sc->sc_data_direction == DMA_FROM_DEVICE) {
drivers/scsi/cxgbi/libcxgbi.c
1399
scmd_get_params(sc, &ttinfo->sgl, &ttinfo->nents,
drivers/scsi/cxgbi/libcxgbi.c
1543
if (task && task->sc) {
drivers/scsi/cxgbi/libcxgbi.c
1814
struct scsi_cmnd *sc = task->sc;
drivers/scsi/cxgbi/libcxgbi.c
1821
if (!sc)
drivers/scsi/cxgbi/libcxgbi.c
1824
scmd_get_params(sc, &sgl, &sgcnt, &tdata->dlen, 0);
drivers/scsi/cxgbi/libcxgbi.c
1842
struct scsi_cmnd *sc = task->sc;
drivers/scsi/cxgbi/libcxgbi.c
1850
if (!sc)
drivers/scsi/cxgbi/libcxgbi.c
1853
scmd_get_params(sc, &sgl, &sgcnt, &dlen, 0);
drivers/scsi/cxgbi/libcxgbi.c
1895
struct scsi_cmnd *sc = task->sc;
drivers/scsi/cxgbi/libcxgbi.c
1922
(sc->sc_data_direction == DMA_TO_DEVICE))) {
drivers/scsi/cxgbi/libcxgbi.c
2027
if (task->sc) {
drivers/scsi/cxgbi/libcxgbi.c
2151
struct scsi_cmnd *sc = task->sc;
drivers/scsi/cxgbi/libcxgbi.c
2160
task, task->sc, tcp_task,
drivers/scsi/cxgbi/libcxgbi.c
2168
task, task->sc, skb, (*skb->data) & ISCSI_OPCODE_MASK,
drivers/scsi/cxgbi/libcxgbi.c
2197
"dlimit %u, sgl err %d.\n", task, task->sc,
drivers/scsi/cxgbi/libcxgbi.c
2209
if (sc) {
drivers/scsi/cxgbi/libcxgbi.c
2376
task, task->sc, tcp_task,
drivers/scsi/cxgbi/libcxgbi.c
2411
if (!task->sc)
drivers/scsi/cxgbi/libcxgbi.c
2419
task, task->sc, err);
drivers/scsi/cxgbi/libcxgbi.c
2477
task, task->sc, tcp_task,
drivers/scsi/cxgbi/libcxgbi.c
2488
if (!task->sc)
drivers/scsi/dc395x.c
1747
unsigned int sc, fc;
drivers/scsi/dc395x.c
1771
sc = DC395x_read32(acb, TRM_S1040_SCSI_COUNTER);
drivers/scsi/dc395x.c
1773
d_left_counter = sc + ((fc & 0x1f)
drivers/scsi/fnic/fnic.h
507
struct scsi_cmnd *sc);
drivers/scsi/fnic/fnic.h
510
int fnic_eh_host_reset_handler(struct scsi_cmnd *sc);
drivers/scsi/fnic/fnic.h
566
bool (*fn)(struct fnic *fnic, struct scsi_cmnd *sc,
drivers/scsi/fnic/fnic.h
571
fnic_io_iter_handler(struct scsi_cmnd *sc, void *iter_data)
drivers/scsi/fnic/fnic.h
575
return iter->fn(iter->fnic, sc, iter->data1, iter->data2);
drivers/scsi/fnic/fnic.h
580
bool (*fn)(struct fnic *fnic, struct scsi_cmnd *sc,
drivers/scsi/fnic/fnic_io.h
59
struct scsi_cmnd *sc; /* midlayer's cmd pointer */
drivers/scsi/fnic/fnic_scsi.c
1006
if (fnic_priv(sc)->state == FNIC_IOREQ_ABTS_PENDING) {
drivers/scsi/fnic/fnic_scsi.c
1012
fnic_priv(sc)->flags |= FNIC_IO_DONE;
drivers/scsi/fnic/fnic_scsi.c
1013
fnic_priv(sc)->flags |= FNIC_IO_ABTS_PENDING;
drivers/scsi/fnic/fnic_scsi.c
1016
fnic_priv(sc)->flags |= FNIC_IO_ABORTED;
drivers/scsi/fnic/fnic_scsi.c
1023
id, sc,
drivers/scsi/fnic/fnic_scsi.c
1030
fnic_priv(sc)->state = FNIC_IOREQ_CMD_COMPLETE;
drivers/scsi/fnic/fnic_scsi.c
1036
sc->result = (DID_OK << 16) | icmnd_cmpl->scsi_status;
drivers/scsi/fnic/fnic_scsi.c
1037
xfer_len = scsi_bufflen(sc);
drivers/scsi/fnic/fnic_scsi.c
1041
scsi_set_resid(sc, icmnd_cmpl->residual);
drivers/scsi/fnic/fnic_scsi.c
1056
sc->result = (DID_TIME_OUT << 16) | icmnd_cmpl->scsi_status;
drivers/scsi/fnic/fnic_scsi.c
1061
sc->result = (DID_ERROR << 16) | icmnd_cmpl->scsi_status;
drivers/scsi/fnic/fnic_scsi.c
1066
scsi_set_resid(sc, icmnd_cmpl->residual);
drivers/scsi/fnic/fnic_scsi.c
1067
sc->result = (DID_ERROR << 16) | icmnd_cmpl->scsi_status;
drivers/scsi/fnic/fnic_scsi.c
1072
sc->result = (DID_REQUEUE << 16) | icmnd_cmpl->scsi_status;
drivers/scsi/fnic/fnic_scsi.c
1077
sc->result = (DID_ERROR << 16) | icmnd_cmpl->scsi_status;
drivers/scsi/fnic/fnic_scsi.c
1082
sc->result = (DID_ERROR << 16) | icmnd_cmpl->scsi_status;
drivers/scsi/fnic/fnic_scsi.c
1087
sc->result = (DID_ERROR << 16) | icmnd_cmpl->scsi_status;
drivers/scsi/fnic/fnic_scsi.c
1092
sc->result = (DID_ERROR << 16) | icmnd_cmpl->scsi_status;
drivers/scsi/fnic/fnic_scsi.c
1099
sc->result = (DID_ERROR << 16) | icmnd_cmpl->scsi_status;
drivers/scsi/fnic/fnic_scsi.c
1104
fnic_priv(sc)->io_req = NULL;
drivers/scsi/fnic/fnic_scsi.c
1105
io_req->sc = NULL;
drivers/scsi/fnic/fnic_scsi.c
1106
fnic_priv(sc)->flags |= FNIC_IO_DONE;
drivers/scsi/fnic/fnic_scsi.c
1117
fnic_release_ioreq_buf(fnic, io_req, sc);
drivers/scsi/fnic/fnic_scsi.c
1121
(u64)icmnd_cmpl->flags << 40 | (u64)sc->cmnd[0] << 32 |
drivers/scsi/fnic/fnic_scsi.c
1122
(u64)sc->cmnd[2] << 24 | (u64)sc->cmnd[3] << 16 |
drivers/scsi/fnic/fnic_scsi.c
1123
(u64)sc->cmnd[4] << 8 | sc->cmnd[5];
drivers/scsi/fnic/fnic_scsi.c
1126
sc->device->host->host_no, id, sc,
drivers/scsi/fnic/fnic_scsi.c
113
struct scsi_cmnd *sc)
drivers/scsi/fnic/fnic_scsi.c
1130
desc, cmd_trace, fnic_flags_and_state(sc));
drivers/scsi/fnic/fnic_scsi.c
1132
if (sc->sc_data_direction == DMA_FROM_DEVICE) {
drivers/scsi/fnic/fnic_scsi.c
1135
} else if (sc->sc_data_direction == DMA_TO_DEVICE) {
drivers/scsi/fnic/fnic_scsi.c
1142
scsi_done(sc);
drivers/scsi/fnic/fnic_scsi.c
1186
struct scsi_cmnd *sc = NULL;
drivers/scsi/fnic/fnic_scsi.c
119
scsi_dma_unmap(sc);
drivers/scsi/fnic/fnic_scsi.c
1240
sc = io_req->sc;
drivers/scsi/fnic/fnic_scsi.c
1242
sc = scsi_host_find_tag(fnic->host, id & FNIC_TAG_MASK);
drivers/scsi/fnic/fnic_scsi.c
1245
WARN_ON_ONCE(!sc);
drivers/scsi/fnic/fnic_scsi.c
1246
if (!sc) {
drivers/scsi/fnic/fnic_scsi.c
1255
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
1260
fnic_priv(sc)->flags |= FNIC_IO_ABT_TERM_REQ_NULL;
drivers/scsi/fnic/fnic_scsi.c
1264
fnic_fcpio_status_to_str(hdr_status), tag, sc);
drivers/scsi/fnic/fnic_scsi.c
1276
fnic_priv(sc)->state = FNIC_IOREQ_ABTS_COMPLETE;
drivers/scsi/fnic/fnic_scsi.c
1277
fnic_priv(sc)->abts_status = hdr_status;
drivers/scsi/fnic/fnic_scsi.c
1278
fnic_priv(sc)->flags |= FNIC_DEV_RST_DONE;
drivers/scsi/fnic/fnic_scsi.c
1292
if (fnic_priv(sc)->flags & FNIC_IO_ABTS_ISSUED)
drivers/scsi/fnic/fnic_scsi.c
130
fnic_count_portid_ioreqs_iter(struct fnic *fnic, struct scsi_cmnd *sc,
drivers/scsi/fnic/fnic_scsi.c
1304
if (fnic_priv(sc)->flags & FNIC_IO_ABTS_ISSUED)
drivers/scsi/fnic/fnic_scsi.c
1311
if (fnic_priv(sc)->flags & FNIC_IO_ABTS_ISSUED)
drivers/scsi/fnic/fnic_scsi.c
1318
if (fnic_priv(sc)->state != FNIC_IOREQ_ABTS_PENDING) {
drivers/scsi/fnic/fnic_scsi.c
1324
fnic_priv(sc)->flags |= FNIC_IO_ABT_TERM_DONE;
drivers/scsi/fnic/fnic_scsi.c
1325
fnic_priv(sc)->abts_status = hdr_status;
drivers/scsi/fnic/fnic_scsi.c
1329
fnic_priv(sc)->abts_status = FCPIO_SUCCESS;
drivers/scsi/fnic/fnic_scsi.c
1331
if (!(fnic_priv(sc)->flags & (FNIC_IO_ABORTED | FNIC_IO_DONE)))
drivers/scsi/fnic/fnic_scsi.c
135
struct fnic_io_req *io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
1355
fnic_priv(sc)->io_req = NULL;
drivers/scsi/fnic/fnic_scsi.c
1356
sc->result = (DID_ERROR << 16);
drivers/scsi/fnic/fnic_scsi.c
1360
fnic_release_ioreq_buf(fnic, io_req, sc);
drivers/scsi/fnic/fnic_scsi.c
1363
sc->device->host->host_no, id,
drivers/scsi/fnic/fnic_scsi.c
1364
sc,
drivers/scsi/fnic/fnic_scsi.c
1368
(u64)sc->cmnd[0] << 32 |
drivers/scsi/fnic/fnic_scsi.c
1369
(u64)sc->cmnd[2] << 24 |
drivers/scsi/fnic/fnic_scsi.c
1370
(u64)sc->cmnd[3] << 16 |
drivers/scsi/fnic/fnic_scsi.c
1371
(u64)sc->cmnd[4] << 8 | sc->cmnd[5]),
drivers/scsi/fnic/fnic_scsi.c
1372
fnic_flags_and_state(sc));
drivers/scsi/fnic/fnic_scsi.c
1373
scsi_done(sc);
drivers/scsi/fnic/fnic_scsi.c
1386
fnic_priv(sc)->lr_status = hdr_status;
drivers/scsi/fnic/fnic_scsi.c
1387
if (fnic_priv(sc)->state == FNIC_IOREQ_ABTS_PENDING) {
drivers/scsi/fnic/fnic_scsi.c
1389
fnic_priv(sc)->flags |= FNIC_DEV_RST_ABTS_PENDING;
drivers/scsi/fnic/fnic_scsi.c
1391
sc->device->host->host_no, id, sc,
drivers/scsi/fnic/fnic_scsi.c
1393
desc, 0, fnic_flags_and_state(sc));
drivers/scsi/fnic/fnic_scsi.c
1400
if (fnic_priv(sc)->flags & FNIC_DEV_RST_TIMED_OUT) {
drivers/scsi/fnic/fnic_scsi.c
1404
sc->device->host->host_no, id, sc,
drivers/scsi/fnic/fnic_scsi.c
1406
desc, 0, fnic_flags_and_state(sc));
drivers/scsi/fnic/fnic_scsi.c
1414
fnic_priv(sc)->state = FNIC_IOREQ_CMD_COMPLETE;
drivers/scsi/fnic/fnic_scsi.c
1415
fnic_priv(sc)->flags |= FNIC_DEV_RST_DONE;
drivers/scsi/fnic/fnic_scsi.c
1427
__func__, hwq, id, fnic_ioreq_state_to_str(fnic_priv(sc)->state));
drivers/scsi/fnic/fnic_scsi.c
1518
static bool fnic_cleanup_io_iter(struct scsi_cmnd *sc, void *data)
drivers/scsi/fnic/fnic_scsi.c
1520
struct request *const rq = scsi_cmd_to_rq(sc);
drivers/scsi/fnic/fnic_scsi.c
1538
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
1543
hwq, mqtag, tag, fnic_priv(sc)->flags);
drivers/scsi/fnic/fnic_scsi.c
1547
if ((fnic_priv(sc)->flags & FNIC_DEVICE_RESET) &&
drivers/scsi/fnic/fnic_scsi.c
1548
!(fnic_priv(sc)->flags & FNIC_DEV_RST_DONE)) {
drivers/scsi/fnic/fnic_scsi.c
1553
fnic_priv(sc)->flags |= FNIC_DEV_RST_DONE;
drivers/scsi/fnic/fnic_scsi.c
1561
} else if (fnic_priv(sc)->flags & FNIC_DEVICE_RESET) {
drivers/scsi/fnic/fnic_scsi.c
1566
fnic_priv(sc)->io_req = NULL;
drivers/scsi/fnic/fnic_scsi.c
1567
io_req->sc = NULL;
drivers/scsi/fnic/fnic_scsi.c
1575
fnic_release_ioreq_buf(fnic, io_req, sc);
drivers/scsi/fnic/fnic_scsi.c
1578
sc->result = DID_TRANSPORT_DISRUPTED << 16;
drivers/scsi/fnic/fnic_scsi.c
1581
mqtag, tag, sc, (jiffies - start_time));
drivers/scsi/fnic/fnic_scsi.c
1589
sc->device->host->host_no, tag, sc,
drivers/scsi/fnic/fnic_scsi.c
1591
0, ((u64) sc->cmnd[0] << 32 |
drivers/scsi/fnic/fnic_scsi.c
1592
(u64) sc->cmnd[2] << 24 |
drivers/scsi/fnic/fnic_scsi.c
1593
(u64) sc->cmnd[3] << 16 |
drivers/scsi/fnic/fnic_scsi.c
1594
(u64) sc->cmnd[4] << 8 | sc->cmnd[5]),
drivers/scsi/fnic/fnic_scsi.c
1595
(((u64) fnic_priv(sc)->flags << 32) | fnic_priv(sc)->
drivers/scsi/fnic/fnic_scsi.c
1599
scsi_done(sc);
drivers/scsi/fnic/fnic_scsi.c
1608
struct scsi_cmnd *sc = NULL;
drivers/scsi/fnic/fnic_scsi.c
162
fnic_count_lun_ioreqs_iter(struct fnic *fnic, struct scsi_cmnd *sc,
drivers/scsi/fnic/fnic_scsi.c
1623
sc = io_req->sc;
drivers/scsi/fnic/fnic_scsi.c
1624
if (sc) {
drivers/scsi/fnic/fnic_scsi.c
1625
if ((fnic_priv(sc)->flags & FNIC_DEVICE_RESET)
drivers/scsi/fnic/fnic_scsi.c
1626
&& !(fnic_priv(sc)->flags & FNIC_DEV_RST_DONE)) {
drivers/scsi/fnic/fnic_scsi.c
1627
fnic_priv(sc)->flags |= FNIC_DEV_RST_DONE;
drivers/scsi/fnic/fnic_scsi.c
1651
struct scsi_cmnd *sc;
drivers/scsi/fnic/fnic_scsi.c
1663
sc = scsi_host_find_tag(fnic->host, id);
drivers/scsi/fnic/fnic_scsi.c
1664
if (!sc)
drivers/scsi/fnic/fnic_scsi.c
1671
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
168
if (sc->device != scsi_device || !fnic_priv(sc)->io_req)
drivers/scsi/fnic/fnic_scsi.c
1680
fnic_priv(sc)->io_req = NULL;
drivers/scsi/fnic/fnic_scsi.c
1681
io_req->sc = NULL;
drivers/scsi/fnic/fnic_scsi.c
1687
fnic_release_ioreq_buf(fnic, io_req, sc);
drivers/scsi/fnic/fnic_scsi.c
1691
sc->result = DID_NO_CONNECT << 16;
drivers/scsi/fnic/fnic_scsi.c
1696
sc->device->host->host_no, id, sc,
drivers/scsi/fnic/fnic_scsi.c
1698
0, ((u64)sc->cmnd[0] << 32 |
drivers/scsi/fnic/fnic_scsi.c
1699
(u64)sc->cmnd[2] << 24 | (u64)sc->cmnd[3] << 16 |
drivers/scsi/fnic/fnic_scsi.c
1700
(u64)sc->cmnd[4] << 8 | sc->cmnd[5]),
drivers/scsi/fnic/fnic_scsi.c
1701
fnic_flags_and_state(sc));
drivers/scsi/fnic/fnic_scsi.c
1703
scsi_done(sc);
drivers/scsi/fnic/fnic_scsi.c
1763
static bool fnic_rport_abort_io_iter(struct scsi_cmnd *sc, void *data)
drivers/scsi/fnic/fnic_scsi.c
1765
struct request *const rq = scsi_cmd_to_rq(sc);
drivers/scsi/fnic/fnic_scsi.c
1780
if (!sc) {
drivers/scsi/fnic/fnic_scsi.c
1787
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
1793
if ((fnic_priv(sc)->flags & FNIC_DEVICE_RESET) &&
drivers/scsi/fnic/fnic_scsi.c
1794
!(fnic_priv(sc)->flags & FNIC_DEV_RST_ISSUED)) {
drivers/scsi/fnic/fnic_scsi.c
1797
hwq, abt_tag, fnic_priv(sc)->flags);
drivers/scsi/fnic/fnic_scsi.c
1806
if (fnic_priv(sc)->state == FNIC_IOREQ_ABTS_PENDING) {
drivers/scsi/fnic/fnic_scsi.c
1814
fnic_ioreq_state_to_str(fnic_priv(sc)->state));
drivers/scsi/fnic/fnic_scsi.c
1817
if (!(fnic_priv(sc)->flags & FNIC_IO_ISSUED)) {
drivers/scsi/fnic/fnic_scsi.c
1820
sc, abt_tag);
drivers/scsi/fnic/fnic_scsi.c
1822
"flags %x state %d\n", fnic_priv(sc)->flags,
drivers/scsi/fnic/fnic_scsi.c
1823
fnic_priv(sc)->state);
drivers/scsi/fnic/fnic_scsi.c
1825
old_ioreq_state = fnic_priv(sc)->state;
drivers/scsi/fnic/fnic_scsi.c
1826
fnic_priv(sc)->state = FNIC_IOREQ_ABTS_PENDING;
drivers/scsi/fnic/fnic_scsi.c
1827
fnic_priv(sc)->abts_status = FCPIO_INVALID_CODE;
drivers/scsi/fnic/fnic_scsi.c
1829
if (fnic_priv(sc)->flags & FNIC_DEVICE_RESET) {
drivers/scsi/fnic/fnic_scsi.c
1833
"dev reset sc 0x%p\n", sc);
drivers/scsi/fnic/fnic_scsi.c
1836
"fnic_rport_exch_reset: dev rst sc 0x%p\n", sc);
drivers/scsi/fnic/fnic_scsi.c
1844
int_to_scsilun(sc->device->lun, &fc_lun);
drivers/scsi/fnic/fnic_scsi.c
1858
hwq, abt_tag, fnic_priv(sc)->flags);
drivers/scsi/fnic/fnic_scsi.c
1859
if (fnic_priv(sc)->state == FNIC_IOREQ_ABTS_PENDING)
drivers/scsi/fnic/fnic_scsi.c
1860
fnic_priv(sc)->state = old_ioreq_state;
drivers/scsi/fnic/fnic_scsi.c
1864
if (fnic_priv(sc)->flags & FNIC_DEVICE_RESET)
drivers/scsi/fnic/fnic_scsi.c
1865
fnic_priv(sc)->flags |= FNIC_DEV_RST_TERM_ISSUED;
drivers/scsi/fnic/fnic_scsi.c
1867
fnic_priv(sc)->flags |= FNIC_IO_INTERNAL_TERM_ISSUED;
drivers/scsi/fnic/fnic_scsi.c
2003
int fnic_abort_cmd(struct scsi_cmnd *sc)
drivers/scsi/fnic/fnic_scsi.c
2005
struct request *const rq = scsi_cmd_to_rq(sc);
drivers/scsi/fnic/fnic_scsi.c
2028
fc_block_scsi_eh(sc);
drivers/scsi/fnic/fnic_scsi.c
2031
fnic = *((struct fnic **) shost_priv(sc->device->host));
drivers/scsi/fnic/fnic_scsi.c
2040
rport = starget_to_rport(scsi_target(sc->device));
drivers/scsi/fnic/fnic_scsi.c
2044
fnic_priv(sc)->flags = FNIC_NO_FLAGS;
drivers/scsi/fnic/fnic_scsi.c
2055
sc->device->lun, hwq, mqtag,
drivers/scsi/fnic/fnic_scsi.c
2056
sc->cmnd[0], fnic_priv(sc)->flags);
drivers/scsi/fnic/fnic_scsi.c
2064
rport->port_id, sc->device->lun, hwq, mqtag);
drivers/scsi/fnic/fnic_scsi.c
2068
sc->cmnd[0],
drivers/scsi/fnic/fnic_scsi.c
2069
fnic_priv(sc)->flags);
drivers/scsi/fnic/fnic_scsi.c
2103
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
2112
if (fnic_priv(sc)->state == FNIC_IOREQ_ABTS_PENDING) {
drivers/scsi/fnic/fnic_scsi.c
2135
sc->cmnd[0], abt_issued_time);
drivers/scsi/fnic/fnic_scsi.c
2142
old_ioreq_state = fnic_priv(sc)->state;
drivers/scsi/fnic/fnic_scsi.c
2143
fnic_priv(sc)->state = FNIC_IOREQ_ABTS_PENDING;
drivers/scsi/fnic/fnic_scsi.c
2144
fnic_priv(sc)->abts_status = FCPIO_INVALID_CODE;
drivers/scsi/fnic/fnic_scsi.c
2161
int_to_scsilun(sc->device->lun, &fc_lun);
drivers/scsi/fnic/fnic_scsi.c
2166
if (fnic_priv(sc)->state == FNIC_IOREQ_ABTS_PENDING)
drivers/scsi/fnic/fnic_scsi.c
2167
fnic_priv(sc)->state = old_ioreq_state;
drivers/scsi/fnic/fnic_scsi.c
2168
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
2176
fnic_priv(sc)->flags |= FNIC_IO_ABTS_ISSUED;
drivers/scsi/fnic/fnic_scsi.c
2179
fnic_priv(sc)->flags |= FNIC_IO_TERM_ISSUED;
drivers/scsi/fnic/fnic_scsi.c
2197
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
2201
fnic_priv(sc)->flags |= FNIC_IO_ABT_TERM_REQ_NULL;
drivers/scsi/fnic/fnic_scsi.c
2208
if (fnic_priv(sc)->abts_status == FCPIO_INVALID_CODE) {
drivers/scsi/fnic/fnic_scsi.c
2215
fnic_priv(sc)->flags |= FNIC_IO_ABT_TERM_TIMED_OUT;
drivers/scsi/fnic/fnic_scsi.c
2222
if (!(fnic_priv(sc)->flags & (FNIC_IO_ABORTED | FNIC_IO_DONE))) {
drivers/scsi/fnic/fnic_scsi.c
2231
fnic_priv(sc)->state = FNIC_IOREQ_ABTS_COMPLETE;
drivers/scsi/fnic/fnic_scsi.c
2239
if (fnic_priv(sc)->abts_status == FCPIO_SUCCESS ||
drivers/scsi/fnic/fnic_scsi.c
2240
(fnic_priv(sc)->abts_status == FCPIO_ABORTED)) {
drivers/scsi/fnic/fnic_scsi.c
2241
fnic_priv(sc)->io_req = NULL;
drivers/scsi/fnic/fnic_scsi.c
2242
io_req->sc = NULL;
drivers/scsi/fnic/fnic_scsi.c
2252
fnic_release_ioreq_buf(fnic, io_req, sc);
drivers/scsi/fnic/fnic_scsi.c
2256
sc->result = DID_ABORT << 16;
drivers/scsi/fnic/fnic_scsi.c
2257
scsi_done(sc);
drivers/scsi/fnic/fnic_scsi.c
2265
FNIC_TRACE(fnic_abort_cmd, sc->device->host->host_no, mqtag, sc,
drivers/scsi/fnic/fnic_scsi.c
2267
0, ((u64)sc->cmnd[0] << 32 |
drivers/scsi/fnic/fnic_scsi.c
2268
(u64)sc->cmnd[2] << 24 | (u64)sc->cmnd[3] << 16 |
drivers/scsi/fnic/fnic_scsi.c
2269
(u64)sc->cmnd[4] << 8 | sc->cmnd[5]),
drivers/scsi/fnic/fnic_scsi.c
2270
fnic_flags_and_state(sc));
drivers/scsi/fnic/fnic_scsi.c
2280
struct scsi_cmnd *sc,
drivers/scsi/fnic/fnic_scsi.c
2321
int_to_scsilun(sc->device->lun, &fc_lun);
drivers/scsi/fnic/fnic_scsi.c
2350
static bool fnic_pending_aborts_iter(struct scsi_cmnd *sc, void *data)
drivers/scsi/fnic/fnic_scsi.c
2352
struct request *const rq = scsi_cmd_to_rq(sc);
drivers/scsi/fnic/fnic_scsi.c
2364
if (sc == iter_data->lr_sc || sc->device != lun_dev)
drivers/scsi/fnic/fnic_scsi.c
2371
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
2383
fnic_ioreq_state_to_str(fnic_priv(sc)->state));
drivers/scsi/fnic/fnic_scsi.c
2385
if (fnic_priv(sc)->state == FNIC_IOREQ_ABTS_PENDING) {
drivers/scsi/fnic/fnic_scsi.c
2389
if ((fnic_priv(sc)->flags & FNIC_DEVICE_RESET) &&
drivers/scsi/fnic/fnic_scsi.c
2390
(!(fnic_priv(sc)->flags & FNIC_DEV_RST_ISSUED))) {
drivers/scsi/fnic/fnic_scsi.c
2392
"dev rst not pending sc 0x%p\n", sc);
drivers/scsi/fnic/fnic_scsi.c
2400
__func__, fnic_ioreq_state_to_str(fnic_priv(sc)->state));
drivers/scsi/fnic/fnic_scsi.c
2401
old_ioreq_state = fnic_priv(sc)->state;
drivers/scsi/fnic/fnic_scsi.c
2409
fnic_priv(sc)->state = FNIC_IOREQ_ABTS_PENDING;
drivers/scsi/fnic/fnic_scsi.c
2413
if (fnic_priv(sc)->flags & FNIC_DEVICE_RESET) {
drivers/scsi/fnic/fnic_scsi.c
2415
"dev rst sc 0x%p\n", sc);
drivers/scsi/fnic/fnic_scsi.c
2418
fnic_priv(sc)->abts_status = FCPIO_INVALID_CODE;
drivers/scsi/fnic/fnic_scsi.c
2423
int_to_scsilun(sc->device->lun, &fc_lun);
drivers/scsi/fnic/fnic_scsi.c
2429
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
2432
if (fnic_priv(sc)->state == FNIC_IOREQ_ABTS_PENDING)
drivers/scsi/fnic/fnic_scsi.c
2433
fnic_priv(sc)->state = old_ioreq_state;
drivers/scsi/fnic/fnic_scsi.c
2442
if (fnic_priv(sc)->flags & FNIC_DEVICE_RESET)
drivers/scsi/fnic/fnic_scsi.c
2443
fnic_priv(sc)->flags |= FNIC_DEV_RST_TERM_ISSUED;
drivers/scsi/fnic/fnic_scsi.c
2446
fnic_priv(sc)->flags |= FNIC_IO_INTERNAL_TERM_ISSUED;
drivers/scsi/fnic/fnic_scsi.c
2453
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
2456
fnic_priv(sc)->flags |= FNIC_IO_ABT_TERM_REQ_NULL;
drivers/scsi/fnic/fnic_scsi.c
2463
if (fnic_priv(sc)->abts_status == FCPIO_INVALID_CODE) {
drivers/scsi/fnic/fnic_scsi.c
2465
fnic_priv(sc)->flags |= FNIC_IO_ABT_TERM_DONE;
drivers/scsi/fnic/fnic_scsi.c
2469
fnic_priv(sc)->state = FNIC_IOREQ_ABTS_COMPLETE;
drivers/scsi/fnic/fnic_scsi.c
2472
if (sc != iter_data->lr_sc) {
drivers/scsi/fnic/fnic_scsi.c
2473
fnic_priv(sc)->io_req = NULL;
drivers/scsi/fnic/fnic_scsi.c
2479
if (sc != iter_data->lr_sc) {
drivers/scsi/fnic/fnic_scsi.c
2480
fnic_release_ioreq_buf(fnic, io_req, sc);
drivers/scsi/fnic/fnic_scsi.c
2489
sc->result = DID_RESET << 16;
drivers/scsi/fnic/fnic_scsi.c
2490
scsi_done(sc);
drivers/scsi/fnic/fnic_scsi.c
2538
int fnic_device_reset(struct scsi_cmnd *sc)
drivers/scsi/fnic/fnic_scsi.c
2540
struct request *rq = scsi_cmd_to_rq(sc);
drivers/scsi/fnic/fnic_scsi.c
2564
fc_block_scsi_eh(sc);
drivers/scsi/fnic/fnic_scsi.c
2567
fnic = *((struct fnic **) shost_priv(sc->device->host));
drivers/scsi/fnic/fnic_scsi.c
2575
rport = starget_to_rport(scsi_target(sc->device));
drivers/scsi/fnic/fnic_scsi.c
2580
rport->port_id, sc->device->lun, hwq, mqtag,
drivers/scsi/fnic/fnic_scsi.c
2581
fnic_priv(sc)->flags);
drivers/scsi/fnic/fnic_scsi.c
2588
rport->port_id, sc->device->lun);
drivers/scsi/fnic/fnic_scsi.c
2616
fnic_priv(sc)->flags = FNIC_DEVICE_RESET;
drivers/scsi/fnic/fnic_scsi.c
2635
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
2650
fnic_priv(sc)->io_req = io_req;
drivers/scsi/fnic/fnic_scsi.c
2652
io_req->sc = sc;
drivers/scsi/fnic/fnic_scsi.c
2662
fnic_priv(sc)->state = FNIC_IOREQ_CMD_PENDING;
drivers/scsi/fnic/fnic_scsi.c
2663
fnic_priv(sc)->lr_status = FCPIO_INVALID_CODE;
drivers/scsi/fnic/fnic_scsi.c
2672
if (fnic_queue_dr_io_req(fnic, sc, io_req)) {
drivers/scsi/fnic/fnic_scsi.c
2674
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
2680
fnic_priv(sc)->flags |= FNIC_DEV_RST_ISSUED;
drivers/scsi/fnic/fnic_scsi.c
2714
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
2718
"io_req is null mqtag 0x%x sc 0x%p\n", mqtag, sc);
drivers/scsi/fnic/fnic_scsi.c
2730
status = fnic_priv(sc)->lr_status;
drivers/scsi/fnic/fnic_scsi.c
2740
fnic_priv(sc)->flags |= FNIC_DEV_RST_TIMED_OUT;
drivers/scsi/fnic/fnic_scsi.c
2741
int_to_scsilun(sc->device->lun, &fc_lun);
drivers/scsi/fnic/fnic_scsi.c
2753
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
2764
if (fnic_clean_pending_aborts(fnic, sc, new_sc)) {
drivers/scsi/fnic/fnic_scsi.c
2766
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
2774
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
2781
fnic_priv(sc)->io_req = NULL;
drivers/scsi/fnic/fnic_scsi.c
2782
io_req->sc = NULL;
drivers/scsi/fnic/fnic_scsi.c
2790
fnic_release_ioreq_buf(fnic, io_req, sc);
drivers/scsi/fnic/fnic_scsi.c
2799
sc->result = DID_RESET << 16;
drivers/scsi/fnic/fnic_scsi.c
2800
scsi_done(sc);
drivers/scsi/fnic/fnic_scsi.c
2804
FNIC_TRACE(fnic_device_reset, sc->device->host->host_no, rq->tag, sc,
drivers/scsi/fnic/fnic_scsi.c
2806
0, ((u64)sc->cmnd[0] << 32 |
drivers/scsi/fnic/fnic_scsi.c
2807
(u64)sc->cmnd[2] << 24 | (u64)sc->cmnd[3] << 16 |
drivers/scsi/fnic/fnic_scsi.c
2808
(u64)sc->cmnd[4] << 8 | sc->cmnd[5]),
drivers/scsi/fnic/fnic_scsi.c
2809
fnic_flags_and_state(sc));
drivers/scsi/fnic/fnic_scsi.c
2816
while ((ret == SUCCESS) && fnic_count_lun_ioreqs(fnic, sc->device)) {
drivers/scsi/fnic/fnic_scsi.c
2948
static bool fnic_abts_pending_iter(struct scsi_cmnd *sc, void *data)
drivers/scsi/fnic/fnic_scsi.c
2950
struct request *const rq = scsi_cmd_to_rq(sc);
drivers/scsi/fnic/fnic_scsi.c
2966
if (iter_data->lr_sc && sc == iter_data->lr_sc)
drivers/scsi/fnic/fnic_scsi.c
2968
if (iter_data->lun_dev && sc->device != iter_data->lun_dev)
drivers/scsi/fnic/fnic_scsi.c
2973
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
2986
fnic_ioreq_state_to_str(fnic_priv(sc)->state));
drivers/scsi/fnic/fnic_scsi.c
2987
cmd_state = fnic_priv(sc)->state;
drivers/scsi/fnic/fnic_scsi.c
3031
int fnic_eh_host_reset_handler(struct scsi_cmnd *sc)
drivers/scsi/fnic/fnic_scsi.c
3034
struct Scsi_Host *shost = sc->device->host;
drivers/scsi/fnic/fnic_scsi.c
358
struct scsi_cmnd *sc,
drivers/scsi/fnic/fnic_scsi.c
364
struct fc_rport *rport = starget_to_rport(scsi_target(sc->device));
drivers/scsi/fnic/fnic_scsi.c
380
for_each_sg(scsi_sglist(sc), sg, sg_count, i) {
drivers/scsi/fnic/fnic_scsi.c
398
sc->sense_buffer,
drivers/scsi/fnic/fnic_scsi.c
409
int_to_scsilun(sc->device->lun, &fc_lun);
drivers/scsi/fnic/fnic_scsi.c
423
if (sc->sc_data_direction == DMA_FROM_DEVICE)
drivers/scsi/fnic/fnic_scsi.c
425
else if (sc->sc_data_direction == DMA_TO_DEVICE)
drivers/scsi/fnic/fnic_scsi.c
442
sc->cmnd, sc->cmd_len,
drivers/scsi/fnic/fnic_scsi.c
443
scsi_bufflen(sc),
drivers/scsi/fnic/fnic_scsi.c
458
struct scsi_cmnd *sc)
drivers/scsi/fnic/fnic_scsi.c
460
struct request *const rq = scsi_cmd_to_rq(sc);
drivers/scsi/fnic/fnic_scsi.c
465
struct fnic *fnic = *((struct fnic **) shost_priv(sc->device->host));
drivers/scsi/fnic/fnic_scsi.c
480
rport = starget_to_rport(scsi_target(sc->device));
drivers/scsi/fnic/fnic_scsi.c
484
sc->result = DID_NO_CONNECT << 16;
drivers/scsi/fnic/fnic_scsi.c
485
done(sc);
drivers/scsi/fnic/fnic_scsi.c
494
sc->result = ret;
drivers/scsi/fnic/fnic_scsi.c
495
done(sc);
drivers/scsi/fnic/fnic_scsi.c
508
sc->result = DID_NO_CONNECT << 16;
drivers/scsi/fnic/fnic_scsi.c
509
done(sc);
drivers/scsi/fnic/fnic_scsi.c
528
sc->result = DID_BUS_BUSY << 16;
drivers/scsi/fnic/fnic_scsi.c
529
done(sc);
drivers/scsi/fnic/fnic_scsi.c
551
sc->result = DID_NO_CONNECT << 16;
drivers/scsi/fnic/fnic_scsi.c
552
done(sc);
drivers/scsi/fnic/fnic_scsi.c
581
fnic_priv(sc)->state = FNIC_IOREQ_NOT_INITED;
drivers/scsi/fnic/fnic_scsi.c
582
fnic_priv(sc)->flags = FNIC_NO_FLAGS;
drivers/scsi/fnic/fnic_scsi.c
594
sg_count = scsi_dma_map(sc);
drivers/scsi/fnic/fnic_scsi.c
596
FNIC_TRACE(fnic_queuecommand, sc->device->host->host_no,
drivers/scsi/fnic/fnic_scsi.c
597
mqtag, sc, 0, sc->cmnd[0], sg_count, fnic_priv(sc)->state);
drivers/scsi/fnic/fnic_scsi.c
616
scsi_dma_unmap(sc);
drivers/scsi/fnic/fnic_scsi.c
642
fnic_priv(sc)->state = FNIC_IOREQ_CMD_PENDING;
drivers/scsi/fnic/fnic_scsi.c
643
fnic_priv(sc)->io_req = io_req;
drivers/scsi/fnic/fnic_scsi.c
644
fnic_priv(sc)->flags |= FNIC_IO_INITIALIZED;
drivers/scsi/fnic/fnic_scsi.c
645
io_req->sc = sc;
drivers/scsi/fnic/fnic_scsi.c
660
ret = fnic_queue_wq_copy_desc(fnic, wq, io_req, sc, sg_count, mqtag, hwq);
drivers/scsi/fnic/fnic_scsi.c
666
FNIC_TRACE(fnic_queuecommand, sc->device->host->host_no,
drivers/scsi/fnic/fnic_scsi.c
667
mqtag, sc, 0, 0, 0, fnic_flags_and_state(sc));
drivers/scsi/fnic/fnic_scsi.c
668
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
669
fnic_priv(sc)->io_req = NULL;
drivers/scsi/fnic/fnic_scsi.c
672
fnic_priv(sc)->state = FNIC_IOREQ_CMD_COMPLETE;
drivers/scsi/fnic/fnic_scsi.c
675
fnic_release_ioreq_buf(fnic, io_req, sc);
drivers/scsi/fnic/fnic_scsi.c
690
fnic_priv(sc)->flags |= FNIC_IO_ISSUED;
drivers/scsi/fnic/fnic_scsi.c
693
cmd_trace = ((u64)sc->cmnd[0] << 56 | (u64)sc->cmnd[7] << 40 |
drivers/scsi/fnic/fnic_scsi.c
694
(u64)sc->cmnd[8] << 32 | (u64)sc->cmnd[2] << 24 |
drivers/scsi/fnic/fnic_scsi.c
695
(u64)sc->cmnd[3] << 16 | (u64)sc->cmnd[4] << 8 |
drivers/scsi/fnic/fnic_scsi.c
696
sc->cmnd[5]);
drivers/scsi/fnic/fnic_scsi.c
698
FNIC_TRACE(fnic_queuecommand, sc->device->host->host_no,
drivers/scsi/fnic/fnic_scsi.c
699
mqtag, sc, io_req, sg_count, cmd_trace,
drivers/scsi/fnic/fnic_scsi.c
700
fnic_flags_and_state(sc));
drivers/scsi/fnic/fnic_scsi.c
919
struct scsi_cmnd *sc;
drivers/scsi/fnic/fnic_scsi.c
958
sc = scsi_host_find_tag(fnic->host, id);
drivers/scsi/fnic/fnic_scsi.c
959
WARN_ON_ONCE(!sc);
drivers/scsi/fnic/fnic_scsi.c
960
if (!sc) {
drivers/scsi/fnic/fnic_scsi.c
978
io_req = fnic_priv(sc)->io_req;
drivers/scsi/fnic/fnic_scsi.c
989
fnic_priv(sc)->flags |= FNIC_IO_REQ_NULL;
drivers/scsi/fnic/fnic_scsi.c
994
fnic_fcpio_status_to_str(hdr_status), id, sc);
drivers/scsi/hosts.c
743
struct scsi_cmnd *sc = blk_mq_rq_to_pdu(req);
drivers/scsi/hosts.c
745
return iter_data->fn(sc, iter_data->priv);
drivers/scsi/iscsi_tcp.c
549
if (!task->sc)
drivers/scsi/iscsi_tcp.c
552
struct scsi_data_buffer *sdb = &task->sc->sdb;
drivers/scsi/libfc/fc_fcp.c
474
struct scsi_cmnd *sc = fsp->cmd;
drivers/scsi/libfc/fc_fcp.c
521
sg = scsi_sglist(sc);
drivers/scsi/libfc/fc_fcp.c
522
nents = scsi_sg_count(sc);
drivers/scsi/libfc/fc_fcp.c
593
struct scsi_cmnd *sc;
drivers/scsi/libfc/fc_fcp.c
637
sc = fsp->cmd;
drivers/scsi/libfc/fc_fcp.c
646
sg = scsi_sglist(sc);
drivers/scsi/libiscsi.c
1414
if (!task || !task->sc)
drivers/scsi/libiscsi.c
1417
if (iscsi_cmd(task->sc)->age != conn->session->age) {
drivers/scsi/libiscsi.c
1420
iscsi_cmd(task->sc)->age, conn->session->age);
drivers/scsi/libiscsi.c
1714
struct scsi_cmnd *sc)
drivers/scsi/libiscsi.c
1722
iscsi_cmd(sc)->age = conn->session->age;
drivers/scsi/libiscsi.c
1723
iscsi_cmd(sc)->task = task;
drivers/scsi/libiscsi.c
1728
task->sc = sc;
drivers/scsi/libiscsi.c
1751
struct scsi_cmnd *sc)
drivers/scsi/libiscsi.c
1760
sc->result = 0;
drivers/scsi/libiscsi.c
1761
iscsi_cmd(sc)->task = NULL;
drivers/scsi/libiscsi.c
1765
cls_session = starget_to_session(scsi_target(sc->device));
drivers/scsi/libiscsi.c
1771
sc->result = reason;
drivers/scsi/libiscsi.c
1790
sc->result = DID_NO_CONNECT << 16;
drivers/scsi/libiscsi.c
1796
sc->result = DID_IMM_RETRY << 16;
drivers/scsi/libiscsi.c
1800
sc->result = DID_IMM_RETRY << 16;
drivers/scsi/libiscsi.c
1804
sc->result = DID_TRANSPORT_FAILFAST << 16;
drivers/scsi/libiscsi.c
1808
sc->result = DID_NO_CONNECT << 16;
drivers/scsi/libiscsi.c
1812
sc->result = DID_NO_CONNECT << 16;
drivers/scsi/libiscsi.c
1820
sc->result = DID_NO_CONNECT << 16;
drivers/scsi/libiscsi.c
1826
sc->result = DID_REQUEUE << 16;
drivers/scsi/libiscsi.c
1835
task = iscsi_alloc_task(conn, sc);
drivers/scsi/libiscsi.c
1848
sc->result = DID_ABORT << 16;
drivers/scsi/libiscsi.c
1873
sc->cmnd[0], reason);
drivers/scsi/libiscsi.c
1883
sc->cmnd[0], reason);
drivers/scsi/libiscsi.c
1884
scsi_set_resid(sc, scsi_bufflen(sc));
drivers/scsi/libiscsi.c
1885
scsi_done(sc);
drivers/scsi/libiscsi.c
195
struct scsi_cmnd *cmd = task->sc;
drivers/scsi/libiscsi.c
1974
if (!task->sc || task->state == ISCSI_TASK_FREE)
drivers/scsi/libiscsi.c
1977
if (lun != -1 && lun != task->sc->device->lun)
drivers/scsi/libiscsi.c
1994
task->sc, task->itt, task->state);
drivers/scsi/libiscsi.c
2076
enum scsi_timeout_action iscsi_eh_cmd_timed_out(struct scsi_cmnd *sc)
drivers/scsi/libiscsi.c
2085
cls_session = starget_to_session(scsi_target(sc->device));
drivers/scsi/libiscsi.c
2088
ISCSI_DBG_EH(session, "scsi cmd %p timedout\n", sc);
drivers/scsi/libiscsi.c
2092
task = iscsi_cmd(sc)->task;
drivers/scsi/libiscsi.c
2123
sc->result = DID_NO_CONNECT << 16;
drivers/scsi/libiscsi.c
2174
if (!running_task->sc || running_task == task ||
drivers/scsi/libiscsi.c
2182
if (time_after(running_task->sc->jiffies_at_alloc,
drivers/scsi/libiscsi.c
2183
task->sc->jiffies_at_alloc))
drivers/scsi/libiscsi.c
2346
int iscsi_eh_abort(struct scsi_cmnd *sc)
drivers/scsi/libiscsi.c
2355
cls_session = starget_to_session(scsi_target(sc->device));
drivers/scsi/libiscsi.c
2358
ISCSI_DBG_EH(session, "aborting sc %p\n", sc);
drivers/scsi/libiscsi.c
2367
if (!iscsi_cmd(sc)->task) {
drivers/scsi/libiscsi.c
2380
iscsi_cmd(sc)->age != session->age) {
drivers/scsi/libiscsi.c
2389
task = iscsi_cmd(sc)->task;
drivers/scsi/libiscsi.c
2390
if (!task || !task->sc) {
drivers/scsi/libiscsi.c
2409
ISCSI_DBG_EH(session, "aborting [sc %p itt 0x%x]\n", sc, task->itt);
drivers/scsi/libiscsi.c
2476
sc, task->itt);
drivers/scsi/libiscsi.c
2485
ISCSI_DBG_EH(session, "abort failed [sc %p itt 0x%x]\n", sc,
drivers/scsi/libiscsi.c
2501
static void iscsi_prep_lun_reset_pdu(struct scsi_cmnd *sc, struct iscsi_tm *hdr)
drivers/scsi/libiscsi.c
2507
int_to_scsilun(sc->device->lun, &hdr->lun);
drivers/scsi/libiscsi.c
2511
int iscsi_eh_device_reset(struct scsi_cmnd *sc)
drivers/scsi/libiscsi.c
2519
cls_session = starget_to_session(scsi_target(sc->device));
drivers/scsi/libiscsi.c
2522
ISCSI_DBG_EH(session, "LU Reset [sc %p lun %llu]\n", sc,
drivers/scsi/libiscsi.c
2523
sc->device->lun);
drivers/scsi/libiscsi.c
2541
iscsi_prep_lun_reset_pdu(sc, hdr);
drivers/scsi/libiscsi.c
2568
fail_scsi_tasks(conn, sc->device->lun, DID_ERROR);
drivers/scsi/libiscsi.c
2605
int iscsi_eh_session_reset(struct scsi_cmnd *sc)
drivers/scsi/libiscsi.c
261
if (hdr_lun != task->sc->device->lun)
drivers/scsi/libiscsi.c
2611
cls_session = starget_to_session(scsi_target(sc->device));
drivers/scsi/libiscsi.c
2658
static void iscsi_prep_tgt_reset_pdu(struct scsi_cmnd *sc, struct iscsi_tm *hdr)
drivers/scsi/libiscsi.c
2673
static int iscsi_eh_target_reset(struct scsi_cmnd *sc)
drivers/scsi/libiscsi.c
2681
cls_session = starget_to_session(scsi_target(sc->device));
drivers/scsi/libiscsi.c
2684
ISCSI_DBG_EH(session, "tgt Reset [sc %p tgt %s]\n", sc,
drivers/scsi/libiscsi.c
2703
iscsi_prep_tgt_reset_pdu(sc, hdr);
drivers/scsi/libiscsi.c
2753
int iscsi_eh_recover_target(struct scsi_cmnd *sc)
drivers/scsi/libiscsi.c
2757
rc = iscsi_eh_target_reset(sc);
drivers/scsi/libiscsi.c
2759
rc = iscsi_eh_session_reset(sc);
drivers/scsi/libiscsi.c
318
struct scsi_cmnd *sc = task->sc;
drivers/scsi/libiscsi.c
3365
if (task->sc)
drivers/scsi/libiscsi.c
348
int_to_scsilun(sc->device->lun, &hdr->lun);
drivers/scsi/libiscsi.c
351
cmd_len = sc->cmd_len;
drivers/scsi/libiscsi.c
360
memcpy(hdr->cdb, sc->cmnd, cmd_len);
drivers/scsi/libiscsi.c
363
if (scsi_get_prot_op(sc) != SCSI_PROT_NORMAL)
drivers/scsi/libiscsi.c
366
transfer_length = scsi_transfer_length(sc);
drivers/scsi/libiscsi.c
368
if (sc->sc_data_direction == DMA_TO_DEVICE) {
drivers/scsi/libiscsi.c
415
if (sc->sc_data_direction == DMA_FROM_DEVICE)
drivers/scsi/libiscsi.c
438
sc->sc_data_direction == DMA_TO_DEVICE ?
drivers/scsi/libiscsi.c
439
"write" : "read", conn->id, sc, sc->cmnd[0],
drivers/scsi/libiscsi.c
458
struct scsi_cmnd *sc = task->sc;
drivers/scsi/libiscsi.c
462
task->itt, task->state, task->sc);
drivers/scsi/libiscsi.c
466
task->sc = NULL;
drivers/scsi/libiscsi.c
475
if (sc) {
drivers/scsi/libiscsi.c
477
iscsi_cmd(sc)->task = NULL;
drivers/scsi/libiscsi.c
483
scsi_done(sc);
drivers/scsi/libiscsi.c
531
task->itt, task->state, task->sc);
drivers/scsi/libiscsi.c
618
struct scsi_cmnd *sc;
drivers/scsi/libiscsi.c
637
sc = task->sc;
drivers/scsi/libiscsi.c
638
sc->result = err << 16;
drivers/scsi/libiscsi.c
639
scsi_set_resid(sc, scsi_bufflen(sc));
drivers/scsi/libiscsi.c
760
task->sc = NULL;
drivers/scsi/libiscsi.c
875
struct scsi_cmnd *sc = task->sc;
drivers/scsi/libiscsi.c
880
sc->result = (DID_OK << 16) | rhdr->cmd_status;
drivers/scsi/libiscsi.c
895
scsi_build_sense(sc, 1, ILLEGAL_REQUEST, 0x10, ascq);
drivers/scsi/libiscsi.c
896
scsi_set_sense_information(sc->sense_buffer,
drivers/scsi/libiscsi.c
904
sc->result = DID_ERROR << 16;
drivers/scsi/libiscsi.c
916
sc->result = DID_BAD_TARGET << 16;
drivers/scsi/libiscsi.c
924
memcpy(sc->sense_buffer, data + 2,
drivers/scsi/libiscsi.c
933
sc->result = (DID_BAD_TARGET << 16) | rhdr->cmd_status;
drivers/scsi/libiscsi.c
942
res_count <= scsi_bufflen(sc)))
drivers/scsi/libiscsi.c
944
scsi_set_resid(sc, res_count);
drivers/scsi/libiscsi.c
946
sc->result = (DID_BAD_TARGET << 16) | rhdr->cmd_status;
drivers/scsi/libiscsi.c
950
sc, sc->result, task->itt);
drivers/scsi/libiscsi.c
969
struct scsi_cmnd *sc = task->sc;
drivers/scsi/libiscsi.c
975
sc->result = (DID_OK << 16) | rhdr->cmd_status;
drivers/scsi/libiscsi.c
983
res_count <= sc->sdb.length))
drivers/scsi/libiscsi.c
984
scsi_set_resid(sc, res_count);
drivers/scsi/libiscsi.c
986
sc->result = (DID_BAD_TARGET << 16) | rhdr->cmd_status;
drivers/scsi/libiscsi.c
991
sc, sc->result, task->itt);
drivers/scsi/libiscsi_tcp.c
1072
if (!task->sc) {
drivers/scsi/libiscsi_tcp.c
1079
if (task->sc->sc_data_direction != DMA_TO_DEVICE)
drivers/scsi/libiscsi_tcp.c
449
if (!task->sc)
drivers/scsi/libiscsi_tcp.c
481
unsigned total_in_length = task->sc->sdb.length;
drivers/scsi/libiscsi_tcp.c
536
} else if (task->sc->sc_data_direction != DMA_TO_DEVICE) {
drivers/scsi/libiscsi_tcp.c
601
if (data_offset + data_length > task->sc->sdb.length) {
drivers/scsi/libiscsi_tcp.c
605
data_offset, task->sc->sdb.length);
drivers/scsi/libiscsi_tcp.c
723
struct scsi_data_buffer *sdb = &task->sc->sdb;
drivers/scsi/libiscsi_tcp.c
986
struct scsi_cmnd *sc = task->sc;
drivers/scsi/libiscsi_tcp.c
989
if (!sc) {
drivers/scsi/libsas/sas_scsi_host.c
102
struct scsi_cmnd *sc = task->uldd_task;
drivers/scsi/libsas/sas_scsi_host.c
111
ASSIGN_SAS_TASK(sc, NULL);
drivers/scsi/libsas/sas_scsi_host.c
1177
struct scsi_cmnd *sc = task->uldd_task;
drivers/scsi/libsas/sas_scsi_host.c
1180
if (!sc) {
drivers/scsi/libsas/sas_scsi_host.c
1194
blk_abort_request(scsi_cmd_to_rq(sc));
drivers/scsi/libsas/sas_scsi_host.c
120
if (unlikely(!sc)) {
drivers/scsi/libsas/sas_scsi_host.c
126
sas_end_task(sc, task);
drivers/scsi/libsas/sas_scsi_host.c
127
scsi_done(sc);
drivers/scsi/libsas/sas_scsi_host.c
38
static void sas_end_task(struct scsi_cmnd *sc, struct sas_task *task)
drivers/scsi/libsas/sas_scsi_host.c
58
scsi_set_resid(sc, ts->residual);
drivers/scsi/libsas/sas_scsi_host.c
59
if (scsi_bufflen(sc) - scsi_get_resid(sc) < sc->underflow)
drivers/scsi/libsas/sas_scsi_host.c
85
memcpy(sc->sense_buffer, ts->buf,
drivers/scsi/libsas/sas_scsi_host.c
95
sc->result = (hs << 16) | stat;
drivers/scsi/libsas/sas_scsi_host.c
96
ASSIGN_SAS_TASK(sc, NULL);
drivers/scsi/lpfc/lpfc_scsi.c
1001
rdata = lpfc_rport_data_from_scsi_device(sc->device);
drivers/scsi/lpfc/lpfc_scsi.c
1024
lpfc_cmd = (struct lpfc_io_buf *)sc->host_scribble;
drivers/scsi/lpfc/lpfc_scsi.c
1368
lpfc_sc_to_bg_opcodes(struct lpfc_hba *phba, struct scsi_cmnd *sc,
drivers/scsi/lpfc/lpfc_scsi.c
1373
if (sc->prot_flags & SCSI_PROT_IP_CHECKSUM) {
drivers/scsi/lpfc/lpfc_scsi.c
1374
switch (scsi_get_prot_op(sc)) {
drivers/scsi/lpfc/lpfc_scsi.c
1397
scsi_get_prot_op(sc));
drivers/scsi/lpfc/lpfc_scsi.c
1403
switch (scsi_get_prot_op(sc)) {
drivers/scsi/lpfc/lpfc_scsi.c
1426
scsi_get_prot_op(sc));
drivers/scsi/lpfc/lpfc_scsi.c
1448
lpfc_bg_err_opcodes(struct lpfc_hba *phba, struct scsi_cmnd *sc,
drivers/scsi/lpfc/lpfc_scsi.c
1452
if (sc->prot_flags & SCSI_PROT_IP_CHECKSUM) {
drivers/scsi/lpfc/lpfc_scsi.c
1453
switch (scsi_get_prot_op(sc)) {
drivers/scsi/lpfc/lpfc_scsi.c
1478
switch (scsi_get_prot_op(sc)) {
drivers/scsi/lpfc/lpfc_scsi.c
1539
lpfc_bg_setup_bpl(struct lpfc_hba *phba, struct scsi_cmnd *sc,
drivers/scsi/lpfc/lpfc_scsi.c
1547
int datadir = sc->sc_data_direction;
drivers/scsi/lpfc/lpfc_scsi.c
1555
status = lpfc_sc_to_bg_opcodes(phba, sc, &txop, &rxop);
drivers/scsi/lpfc/lpfc_scsi.c
1560
reftag = scsi_prot_ref_tag(sc);
drivers/scsi/lpfc/lpfc_scsi.c
1563
rc = lpfc_bg_err_inject(phba, sc, &reftag, NULL, 1);
drivers/scsi/lpfc/lpfc_scsi.c
1566
lpfc_bg_err_opcodes(phba, sc, &txop, &rxop);
drivers/scsi/lpfc/lpfc_scsi.c
1597
if (sc->prot_flags & SCSI_PROT_GUARD_CHECK)
drivers/scsi/lpfc/lpfc_scsi.c
1602
if (sc->prot_flags & SCSI_PROT_REF_CHECK)
drivers/scsi/lpfc/lpfc_scsi.c
1621
scsi_for_each_sg(sc, sgde, datasegcnt, i) {
drivers/scsi/lpfc/lpfc_scsi.c
1679
lpfc_bg_setup_bpl_prot(struct lpfc_hba *phba, struct scsi_cmnd *sc,
drivers/scsi/lpfc/lpfc_scsi.c
1694
int datadir = sc->sc_data_direction;
drivers/scsi/lpfc/lpfc_scsi.c
1705
sgpe = scsi_prot_sglist(sc);
drivers/scsi/lpfc/lpfc_scsi.c
1706
sgde = scsi_sglist(sc);
drivers/scsi/lpfc/lpfc_scsi.c
1715
status = lpfc_sc_to_bg_opcodes(phba, sc, &txop, &rxop);
drivers/scsi/lpfc/lpfc_scsi.c
1720
blksize = scsi_prot_interval(sc);
drivers/scsi/lpfc/lpfc_scsi.c
1721
reftag = scsi_prot_ref_tag(sc);
drivers/scsi/lpfc/lpfc_scsi.c
1724
rc = lpfc_bg_err_inject(phba, sc, &reftag, NULL, 1);
drivers/scsi/lpfc/lpfc_scsi.c
1727
lpfc_bg_err_opcodes(phba, sc, &txop, &rxop);
drivers/scsi/lpfc/lpfc_scsi.c
1759
if (sc->prot_flags & SCSI_PROT_GUARD_CHECK)
drivers/scsi/lpfc/lpfc_scsi.c
1764
if (sc->prot_flags & SCSI_PROT_REF_CHECK)
drivers/scsi/lpfc/lpfc_scsi.c
1924
lpfc_bg_setup_sgl(struct lpfc_hba *phba, struct scsi_cmnd *sc,
drivers/scsi/lpfc/lpfc_scsi.c
1944
status = lpfc_sc_to_bg_opcodes(phba, sc, &txop, &rxop);
drivers/scsi/lpfc/lpfc_scsi.c
1949
reftag = scsi_prot_ref_tag(sc);
drivers/scsi/lpfc/lpfc_scsi.c
1952
rc = lpfc_bg_err_inject(phba, sc, &reftag, NULL, 1);
drivers/scsi/lpfc/lpfc_scsi.c
1955
lpfc_bg_err_opcodes(phba, sc, &txop, &rxop);
drivers/scsi/lpfc/lpfc_scsi.c
1974
if (sc->sc_data_direction == DMA_FROM_DEVICE) {
drivers/scsi/lpfc/lpfc_scsi.c
1975
if (sc->prot_flags & SCSI_PROT_GUARD_CHECK)
drivers/scsi/lpfc/lpfc_scsi.c
1980
if (sc->prot_flags & SCSI_PROT_REF_CHECK)
drivers/scsi/lpfc/lpfc_scsi.c
2002
sgde = scsi_sglist(sc);
drivers/scsi/lpfc/lpfc_scsi.c
2105
lpfc_bg_setup_sgl_prot(struct lpfc_hba *phba, struct scsi_cmnd *sc,
drivers/scsi/lpfc/lpfc_scsi.c
2132
sgpe = scsi_prot_sglist(sc);
drivers/scsi/lpfc/lpfc_scsi.c
2133
sgde = scsi_sglist(sc);
drivers/scsi/lpfc/lpfc_scsi.c
2142
status = lpfc_sc_to_bg_opcodes(phba, sc, &txop, &rxop);
drivers/scsi/lpfc/lpfc_scsi.c
2147
blksize = scsi_prot_interval(sc);
drivers/scsi/lpfc/lpfc_scsi.c
2148
reftag = scsi_prot_ref_tag(sc);
drivers/scsi/lpfc/lpfc_scsi.c
2151
rc = lpfc_bg_err_inject(phba, sc, &reftag, NULL, 1);
drivers/scsi/lpfc/lpfc_scsi.c
2154
lpfc_bg_err_opcodes(phba, sc, &txop, &rxop);
drivers/scsi/lpfc/lpfc_scsi.c
2203
if (sc->prot_flags & SCSI_PROT_GUARD_CHECK) {
drivers/scsi/lpfc/lpfc_scsi.c
2221
if (sc->prot_flags & SCSI_PROT_REF_CHECK)
drivers/scsi/lpfc/lpfc_scsi.c
2415
lpfc_prot_group_type(struct lpfc_hba *phba, struct scsi_cmnd *sc)
drivers/scsi/lpfc/lpfc_scsi.c
2418
unsigned char op = scsi_get_prot_op(sc);
drivers/scsi/lpfc/lpfc_scsi.c
2455
struct scsi_cmnd *sc = lpfc_cmd->pCmd;
drivers/scsi/lpfc/lpfc_scsi.c
2458
fcpdl = scsi_bufflen(sc);
drivers/scsi/lpfc/lpfc_scsi.c
2461
if (sc->sc_data_direction == DMA_FROM_DEVICE) {
drivers/scsi/lpfc/lpfc_scsi.c
2463
if (scsi_get_prot_op(sc) == SCSI_PROT_READ_INSERT)
drivers/scsi/lpfc/lpfc_scsi.c
2468
if (scsi_get_prot_op(sc) == SCSI_PROT_WRITE_STRIP)
drivers/scsi/lpfc/lpfc_scsi.c
2477
fcpdl += (fcpdl / scsi_prot_interval(sc)) * 8;
drivers/scsi/lpfc/lpfc_scsi.c
89
lpfc_prot_group_type(struct lpfc_hba *phba, struct scsi_cmnd *sc);
drivers/scsi/lpfc/lpfc_scsi.c
961
lpfc_bg_err_inject(struct lpfc_hba *phba, struct scsi_cmnd *sc,
drivers/scsi/lpfc/lpfc_scsi.c
969
uint32_t op = scsi_get_prot_op(sc);
drivers/scsi/lpfc/lpfc_scsi.c
979
sgpe = scsi_prot_sglist(sc);
drivers/scsi/lpfc/lpfc_scsi.c
980
lba = scsi_prot_ref_tag(sc);
drivers/scsi/lpfc/lpfc_scsi.c
984
blksize = scsi_prot_interval(sc);
drivers/scsi/lpfc/lpfc_scsi.c
985
numblks = (scsi_bufflen(sc) + blksize - 1) / blksize;
drivers/scsi/megaraid/megaraid_sas_base.c
1512
u8 sc = scp->cmnd[0];
drivers/scsi/megaraid/megaraid_sas_base.c
1531
ldio->cmd = (sc & 0x02) ? MFI_CMD_LD_WRITE : MFI_CMD_LD_READ;
drivers/scsi/mpt3sas/mpt3sas_base.c
6725
u32 s, sc;
drivers/scsi/mpt3sas/mpt3sas_base.c
6728
sc = s & MPI2_IOC_STATE_MASK;
drivers/scsi/mpt3sas/mpt3sas_base.c
6729
return cooked ? sc : s;
drivers/scsi/qedf/qedf_io.c
1108
struct scsi_cmnd *sc = io_req->sc_cmd;
drivers/scsi/qedf/qedf_io.c
1110
if (io_req->bd_tbl->bd_valid && sc && scsi_sg_count(sc)) {
drivers/scsi/qedf/qedf_io.c
1111
dma_unmap_sg(&qedf->pdev->dev, scsi_sglist(sc),
drivers/scsi/qedf/qedf_io.c
1112
scsi_sg_count(sc), sc->sc_data_direction);
drivers/scsi/qedf/qedf_io.c
469
struct scsi_cmnd *sc = io_req->sc_cmd;
drivers/scsi/qedf/qedf_io.c
470
struct Scsi_Host *host = sc->device->host;
drivers/scsi/qedf/qedf_io.c
482
sg_count = dma_map_sg(&qedf->pdev->dev, scsi_sglist(sc),
drivers/scsi/qedf/qedf_io.c
483
scsi_sg_count(sc), sc->sc_data_direction);
drivers/scsi/qedf/qedf_io.c
484
sg = scsi_sglist(sc);
drivers/scsi/qedf/qedf_io.c
491
scsi_for_each_sg(sc, sg, sg_count, i) {
drivers/scsi/qedf/qedf_io.c
516
if (byte_count != scsi_bufflen(sc))
drivers/scsi/qedf/qedf_io.c
519
scsi_bufflen(sc), io_req->xid);
drivers/scsi/qedf/qedf_io.c
526
struct scsi_cmnd *sc = io_req->sc_cmd;
drivers/scsi/qedf/qedf_io.c
530
if (scsi_sg_count(sc)) {
drivers/scsi/qedi/qedi_fw.c
1780
struct scsi_cmnd *sc = cmd->scsi_cmd;
drivers/scsi/qedi/qedi_fw.c
1791
WARN_ON(scsi_sg_count(sc) > QEDI_ISCSI_MAX_BDS_PER_CMD);
drivers/scsi/qedi/qedi_fw.c
1793
sg_count = dma_map_sg(&qedi->pdev->dev, scsi_sglist(sc),
drivers/scsi/qedi/qedi_fw.c
1794
scsi_sg_count(sc), sc->sc_data_direction);
drivers/scsi/qedi/qedi_fw.c
1800
sg = scsi_sglist(sc);
drivers/scsi/qedi/qedi_fw.c
1816
scsi_for_each_sg(sc, sg, sg_count, i) {
drivers/scsi/qedi/qedi_fw.c
1860
if (byte_count != scsi_bufflen(sc))
drivers/scsi/qedi/qedi_fw.c
1863
scsi_bufflen(sc));
drivers/scsi/qedi/qedi_fw.c
1868
WARN_ON(byte_count != scsi_bufflen(sc));
drivers/scsi/qedi/qedi_fw.c
1876
struct scsi_cmnd *sc = cmd->scsi_cmd;
drivers/scsi/qedi/qedi_fw.c
1878
if (scsi_sg_count(sc)) {
drivers/scsi/qedi/qedi_fw.c
1893
static void qedi_cpy_scsi_cdb(struct scsi_cmnd *sc, u32 *dstp)
drivers/scsi/qedi/qedi_fw.c
1899
lpcnt = sc->cmd_len / sizeof(dword);
drivers/scsi/qedi/qedi_fw.c
1900
srcp = (u8 *)sc->cmnd;
drivers/scsi/qedi/qedi_fw.c
1907
if (sc->cmd_len & 0x3) {
drivers/scsi/qedi/qedi_fw.c
1919
struct scsi_cmnd *sc_cmd = task->sc;
drivers/scsi/qedi/qedi_fw.c
1976
struct scsi_cmnd *sc = task->sc;
drivers/scsi/qedi/qedi_fw.c
2001
int_to_scsilun(sc->device->lun, (struct scsi_lun *)scsi_lun);
drivers/scsi/qedi/qedi_fw.c
2026
if (sc->sc_data_direction == DMA_TO_DEVICE) {
drivers/scsi/qedi/qedi_fw.c
2046
qedi_cpy_scsi_cdb(sc, (u32 *)cmd_pdu_header.cdb);
drivers/scsi/qedi/qedi_fw.c
2055
tx_sgl_task_params.total_buffer_size = scsi_bufflen(sc);
drivers/scsi/qedi/qedi_fw.c
2065
rx_sgl_task_params.total_buffer_size = scsi_bufflen(sc);
drivers/scsi/qedi/qedi_fw.c
2088
task_params.tx_io_size = scsi_bufflen(sc);
drivers/scsi/qedi/qedi_fw.c
2090
task_params.rx_io_size = scsi_bufflen(sc);
drivers/scsi/qedi/qedi_fw.c
2100
(u16)cmd->io_tbl.sge_valid, scsi_bufflen(sc),
drivers/scsi/qedi/qedi_fw.c
22
struct scsi_cmnd *sc = cmd->scsi_cmd;
drivers/scsi/qedi/qedi_fw.c
24
if (cmd->io_tbl.sge_valid && sc) {
drivers/scsi/qedi/qedi_fw.c
26
scsi_dma_unmap(sc);
drivers/scsi/qedi/qedi_iscsi.c
1459
if (task->sc)
drivers/scsi/qedi/qedi_iscsi.c
836
struct scsi_cmnd *sc = task->sc;
drivers/scsi/qedi/qedi_iscsi.c
856
if (!sc)
drivers/scsi/qedi/qedi_iscsi.c
859
cmd->scsi_cmd = sc;
drivers/scsi/qla4xxx/ql4_os.c
119
static enum scsi_timeout_action qla4xxx_eh_cmd_timed_out(struct scsi_cmnd *sc);
drivers/scsi/qla4xxx/ql4_os.c
1880
static enum scsi_timeout_action qla4xxx_eh_cmd_timed_out(struct scsi_cmnd *sc)
drivers/scsi/qla4xxx/ql4_os.c
1886
session = starget_to_session(scsi_target(sc->device));
drivers/scsi/qla4xxx/ql4_os.c
3410
if (task->sc) {
drivers/scsi/qla4xxx/ql4_os.c
3495
struct scsi_cmnd *sc = task->sc;
drivers/scsi/qla4xxx/ql4_os.c
3500
if (!sc)
drivers/scsi/scsi_lib_test.c
100
scsi_build_sense(&sc, 0, NOT_READY, 0x11, 0x22);
drivers/scsi/scsi_lib_test.c
102
KUNIT_EXPECT_EQ(test, -EAGAIN, scsi_check_passthrough(&sc,
drivers/scsi/scsi_lib_test.c
104
KUNIT_EXPECT_EQ(test, 0, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
111
scsi_build_sense(&sc, 0, DATA_PROTECT, 0x1, 0x1);
drivers/scsi/scsi_lib_test.c
112
KUNIT_EXPECT_EQ(test, 0, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
128
struct scsi_cmnd sc = {
drivers/scsi/scsi_lib_test.c
134
scsi_build_sense(&sc, 0, MEDIUM_ERROR, 0x11, 0x22);
drivers/scsi/scsi_lib_test.c
135
KUNIT_EXPECT_EQ(test, -EAGAIN, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
155
struct scsi_cmnd sc = {
drivers/scsi/scsi_lib_test.c
161
sc.result = DID_NO_CONNECT << 16;
drivers/scsi/scsi_lib_test.c
162
KUNIT_EXPECT_EQ(test, 0, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
164
sc.result = DID_TIME_OUT << 16;
drivers/scsi/scsi_lib_test.c
165
KUNIT_EXPECT_EQ(test, -EAGAIN, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
181
struct scsi_cmnd sc = {
drivers/scsi/scsi_lib_test.c
187
sc.result = DID_TRANSPORT_FAILFAST << 16;
drivers/scsi/scsi_lib_test.c
188
KUNIT_EXPECT_EQ(test, -EAGAIN, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
204
struct scsi_cmnd sc = {
drivers/scsi/scsi_lib_test.c
210
sc.result = SAM_STAT_RESERVATION_CONFLICT;
drivers/scsi/scsi_lib_test.c
211
KUNIT_EXPECT_EQ(test, -EAGAIN, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
238
struct scsi_cmnd sc = {
drivers/scsi/scsi_lib_test.c
248
scsi_build_sense(&sc, 0, UNIT_ATTENTION, 0x28, 0x0);
drivers/scsi/scsi_lib_test.c
251
KUNIT_EXPECT_EQ(test, -EAGAIN, scsi_check_passthrough(&sc,
drivers/scsi/scsi_lib_test.c
253
sc.result = DID_TIME_OUT << 16;
drivers/scsi/scsi_lib_test.c
255
KUNIT_EXPECT_EQ(test, 0, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
281
struct scsi_cmnd sc = {
drivers/scsi/scsi_lib_test.c
294
scsi_build_sense(&sc, 0, UNIT_ATTENTION, 0x28, 0x0);
drivers/scsi/scsi_lib_test.c
297
KUNIT_EXPECT_EQ(test, -EAGAIN, scsi_check_passthrough(&sc,
drivers/scsi/scsi_lib_test.c
300
KUNIT_EXPECT_EQ(test, 0, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
303
scsi_build_sense(&sc, 0, UNIT_ATTENTION, 0x28, 0x0);
drivers/scsi/scsi_lib_test.c
306
KUNIT_EXPECT_EQ(test, -EAGAIN, scsi_check_passthrough(&sc,
drivers/scsi/scsi_lib_test.c
308
sc.result = DID_TIME_OUT << 16;
drivers/scsi/scsi_lib_test.c
310
KUNIT_EXPECT_EQ(test, -EAGAIN, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
311
scsi_build_sense(&sc, 0, UNIT_ATTENTION, 0x29, 0x0);
drivers/scsi/scsi_lib_test.c
313
KUNIT_EXPECT_EQ(test, 0, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
65
struct scsi_cmnd sc = {
drivers/scsi/scsi_lib_test.c
71
sc.result = 0;
drivers/scsi/scsi_lib_test.c
72
KUNIT_EXPECT_EQ(test, 0, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
73
KUNIT_EXPECT_EQ(test, 0, scsi_check_passthrough(&sc, NULL));
drivers/scsi/scsi_lib_test.c
75
scsi_build_sense(&sc, 0, ILLEGAL_REQUEST, 0x91, 0x36);
drivers/scsi/scsi_lib_test.c
76
KUNIT_EXPECT_EQ(test, 0, scsi_check_passthrough(&sc, NULL));
drivers/scsi/scsi_lib_test.c
78
scsi_build_sense(&sc, 0, ILLEGAL_REQUEST, 0x91, 0x36);
drivers/scsi/scsi_lib_test.c
79
KUNIT_EXPECT_EQ(test, -EAGAIN, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
81
scsi_build_sense(&sc, 0, UNIT_ATTENTION, 0x11, 0x0);
drivers/scsi/scsi_lib_test.c
82
KUNIT_EXPECT_EQ(test, -EAGAIN, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
84
scsi_build_sense(&sc, 0, MISCOMPARE, 0x11, 0x11);
drivers/scsi/scsi_lib_test.c
85
KUNIT_EXPECT_EQ(test, 0, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
87
scsi_build_sense(&sc, 0, ABORTED_COMMAND, 0x11, 0x22);
drivers/scsi/scsi_lib_test.c
88
KUNIT_EXPECT_EQ(test, -EAGAIN, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
90
scsi_build_sense(&sc, 0, ABORTED_COMMAND, 0x22, 0x22);
drivers/scsi/scsi_lib_test.c
91
KUNIT_EXPECT_EQ(test, 0, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
93
scsi_build_sense(&sc, 0, HARDWARE_ERROR, 0x11, 0x22);
drivers/scsi/scsi_lib_test.c
94
KUNIT_EXPECT_EQ(test, -EAGAIN, scsi_check_passthrough(&sc, &failures));
drivers/scsi/scsi_lib_test.c
96
sc.result = SAM_STAT_RESERVATION_CONFLICT;
drivers/scsi/scsi_lib_test.c
97
KUNIT_EXPECT_EQ(test, 0, scsi_check_passthrough(&sc, &failures));
drivers/scsi/snic/snic.h
366
struct scsi_cmnd *sc);
drivers/scsi/snic/snic_io.h
73
struct scsi_cmnd *sc; /* Associated scsi cmd */
drivers/scsi/snic/snic_scsi.c
100
u32 hash = snic_cmd_tag(sc) & (SNIC_IO_LOCKS - 1);
drivers/scsi/snic/snic_scsi.c
1008
sc = rqi->sc;
drivers/scsi/snic/snic_scsi.c
1022
sc = scsi_host_find_tag(snic->shost, cmnd_id);
drivers/scsi/snic/snic_scsi.c
1024
if (!sc) {
drivers/scsi/snic/snic_scsi.c
1036
sc, rqi, cmnd_id, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1038
io_lock = snic_io_lock_hash(snic, sc);
drivers/scsi/snic/snic_scsi.c
1050
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
1056
CMD_FLAGS(sc) |= SNIC_IO_ABTS_TERM_REQ_NULL;
drivers/scsi/snic/snic_scsi.c
1059
snic_io_status_to_str(hdr_stat), cmnd_id, sc,
drivers/scsi/snic/snic_scsi.c
1060
CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1070
snic_hba_reset_scsi_cleanup(snic, sc);
drivers/scsi/snic/snic_scsi.c
115
struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
120
SNIC_BUG_ON(!((CMD_STATE(sc) == SNIC_IOREQ_COMPLETE) ||
drivers/scsi/snic/snic_scsi.c
121
(CMD_STATE(sc) == SNIC_IOREQ_ABTS_COMPLETE) ||
drivers/scsi/snic/snic_scsi.c
122
(CMD_FLAGS(sc) & SNIC_DEV_RST_NOTSUP) ||
drivers/scsi/snic/snic_scsi.c
123
(CMD_FLAGS(sc) & SNIC_IO_INTERNAL_TERM_ISSUED) ||
drivers/scsi/snic/snic_scsi.c
124
(CMD_FLAGS(sc) & SNIC_DEV_RST_TERM_ISSUED) ||
drivers/scsi/snic/snic_scsi.c
125
(CMD_FLAGS(sc) & SNIC_SCSI_CLEANUP) ||
drivers/scsi/snic/snic_scsi.c
126
(CMD_STATE(sc) == SNIC_IOREQ_LR_COMPLETE)));
drivers/scsi/snic/snic_scsi.c
1287
struct scsi_cmnd *sc,
drivers/scsi/snic/snic_scsi.c
1293
int tm_tag = snic_cmd_tag(sc) | rqi->tm_tag;
drivers/scsi/snic/snic_scsi.c
130
sc, snic_cmd_tag(sc), rqi, rqi->req, rqi->abort_req,
drivers/scsi/snic/snic_scsi.c
1300
int_to_scsilun(sc->device->lun, &lun);
drivers/scsi/snic/snic_scsi.c
131
rqi->dr_req, snic_ioreq_state_to_str(CMD_STATE(sc)),
drivers/scsi/snic/snic_scsi.c
132
CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1324
tmf, sc, rqi, req_id, snic_cmd_tag(sc), ret);
drivers/scsi/snic/snic_scsi.c
1328
tmf, sc, rqi, req_id, snic_cmd_tag(sc));
drivers/scsi/snic/snic_scsi.c
1336
struct scsi_cmnd *sc,
drivers/scsi/snic/snic_scsi.c
1340
int req_id = 0, tag = snic_cmd_tag(sc);
drivers/scsi/snic/snic_scsi.c
1367
ret = snic_queue_itmf_req(snic, tmreq, sc, tmf, req_id);
drivers/scsi/snic/snic_scsi.c
1373
tmf, sc, rqi, req_id, tag, ret);
drivers/scsi/snic/snic_scsi.c
1377
tmf, sc, rqi, req_id, tag);
drivers/scsi/snic/snic_scsi.c
1391
struct scsi_cmnd *sc,
drivers/scsi/snic/snic_scsi.c
1395
sc, rqi, snic_cmd_tag(sc), tmf);
drivers/scsi/snic/snic_scsi.c
140
scsi_dma_unmap(sc);
drivers/scsi/snic/snic_scsi.c
1400
return snic_issue_tm_req(snic, rqi, sc, tmf);
drivers/scsi/snic/snic_scsi.c
1407
snic_abort_finish(struct snic *snic, struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
1412
int ret = 0, tag = snic_cmd_tag(sc);
drivers/scsi/snic/snic_scsi.c
1414
io_lock = snic_io_lock_hash(snic, sc);
drivers/scsi/snic/snic_scsi.c
1416
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
1419
CMD_FLAGS(sc) |= SNIC_IO_ABTS_TERM_REQ_NULL;
drivers/scsi/snic/snic_scsi.c
1423
tag, sc, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1434
switch (CMD_ABTS_STATUS(sc)) {
drivers/scsi/snic/snic_scsi.c
1437
CMD_FLAGS(sc) |= SNIC_IO_ABTS_TIMEDOUT;
drivers/scsi/snic/snic_scsi.c
1441
sc, snic_cmd_tag(sc), CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1455
sc->result = (DID_ERROR << 16);
drivers/scsi/snic/snic_scsi.c
1456
scsi_done(sc);
drivers/scsi/snic/snic_scsi.c
1466
CMD_SP(sc) = NULL;
drivers/scsi/snic/snic_scsi.c
1469
tag, snic_io_status_to_str(CMD_ABTS_STATUS(sc)),
drivers/scsi/snic/snic_scsi.c
1470
CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1475
snic_release_req_buf(snic, rqi, sc);
drivers/scsi/snic/snic_scsi.c
1484
snic_send_abort_and_wait(struct snic *snic, struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
1492
int ret = 0, tmf = 0, tag = snic_cmd_tag(sc);
drivers/scsi/snic/snic_scsi.c
1494
tgt = starget_to_tgt(scsi_target(sc->device));
drivers/scsi/snic/snic_scsi.c
1502
io_lock = snic_io_lock_hash(snic, sc);
drivers/scsi/snic/snic_scsi.c
151
struct scsi_cmnd *sc,
drivers/scsi/snic/snic_scsi.c
1517
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
1523
tag, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1531
if (CMD_STATE(sc) == SNIC_IOREQ_ABTS_PENDING) {
drivers/scsi/snic/snic_scsi.c
1540
sv_state = CMD_STATE(sc);
drivers/scsi/snic/snic_scsi.c
1548
CMD_STATE(sc) = SNIC_IOREQ_ABTS_PENDING;
drivers/scsi/snic/snic_scsi.c
1549
CMD_ABTS_STATUS(sc) = SNIC_INVALID_CODE;
drivers/scsi/snic/snic_scsi.c
1556
ret = snic_queue_abort_req(snic, rqi, sc, tmf);
drivers/scsi/snic/snic_scsi.c
1561
tag, ret, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1565
CMD_STATE(sc) = sv_state;
drivers/scsi/snic/snic_scsi.c
1566
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
1577
CMD_FLAGS(sc) |= SNIC_IO_ABTS_ISSUED;
drivers/scsi/snic/snic_scsi.c
1581
CMD_FLAGS(sc) |= SNIC_IO_TERM_ISSUED;
drivers/scsi/snic/snic_scsi.c
1587
sc, tag, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1610
snic_abort_cmd(struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
1612
struct snic *snic = shost_priv(sc->device->host);
drivers/scsi/snic/snic_scsi.c
1613
int ret = SUCCESS, tag = snic_cmd_tag(sc);
drivers/scsi/snic/snic_scsi.c
1617
sc, sc->cmnd[0], scsi_cmd_to_rq(sc), tag);
drivers/scsi/snic/snic_scsi.c
1629
ret = snic_send_abort_and_wait(snic, sc);
drivers/scsi/snic/snic_scsi.c
1633
ret = snic_abort_finish(snic, sc);
drivers/scsi/snic/snic_scsi.c
1636
SNIC_TRC(snic->shost->host_no, tag, (ulong) sc,
drivers/scsi/snic/snic_scsi.c
1638
SNIC_TRC_CMD(sc), SNIC_TRC_CMD_STATE_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1654
struct scsi_cmnd *sc = NULL;
drivers/scsi/snic/snic_scsi.c
166
for_each_sg(scsi_sglist(sc), sg, sg_cnt, i) {
drivers/scsi/snic/snic_scsi.c
1668
sc = scsi_host_find_tag(snic->shost, tag);
drivers/scsi/snic/snic_scsi.c
1670
if (!sc || (lr_sc && (sc->device != lr_sdev || sc == lr_sc))) {
drivers/scsi/snic/snic_scsi.c
1676
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
1688
snic_ioreq_state_to_str(CMD_STATE(sc)));
drivers/scsi/snic/snic_scsi.c
1690
if (CMD_STATE(sc) == SNIC_IOREQ_ABTS_PENDING) {
drivers/scsi/snic/snic_scsi.c
1709
struct scsi_cmnd *sc = NULL;
drivers/scsi/snic/snic_scsi.c
1718
sc = scsi_host_find_tag(snic->shost, tag);
drivers/scsi/snic/snic_scsi.c
1721
if (!sc || sc->device != lr_sdev)
drivers/scsi/snic/snic_scsi.c
1724
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
1730
if (CMD_STATE(sc) == SNIC_IOREQ_ABTS_PENDING)
drivers/scsi/snic/snic_scsi.c
1734
if ((CMD_FLAGS(sc) & SNIC_DEVICE_RESET) &&
drivers/scsi/snic/snic_scsi.c
1735
(!(CMD_FLAGS(sc) & SNIC_DEV_RST_ISSUED))) {
drivers/scsi/snic/snic_scsi.c
1739
sc);
drivers/scsi/snic/snic_scsi.c
1746
snic_ioreq_state_to_str(CMD_STATE(sc)));
drivers/scsi/snic/snic_scsi.c
1749
sv_state = CMD_STATE(sc);
drivers/scsi/snic/snic_scsi.c
175
sc->sense_buffer,
drivers/scsi/snic/snic_scsi.c
1759
CMD_STATE(sc) = SNIC_IOREQ_ABTS_PENDING;
drivers/scsi/snic/snic_scsi.c
1762
if (CMD_FLAGS(sc) & SNIC_DEVICE_RESET) {
drivers/scsi/snic/snic_scsi.c
1766
"clean_single_req:devrst sc 0x%p\n", sc);
drivers/scsi/snic/snic_scsi.c
1769
CMD_ABTS_STATUS(sc) = SNIC_INVALID_CODE;
drivers/scsi/snic/snic_scsi.c
1773
tgt = starget_to_tgt(scsi_target(sc->device));
drivers/scsi/snic/snic_scsi.c
1780
ret = snic_queue_abort_req(snic, rqi, sc, tmf);
drivers/scsi/snic/snic_scsi.c
1784
sc, tag, rqi->tm_tag, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1787
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
1792
if (CMD_STATE(sc) == SNIC_IOREQ_ABTS_PENDING)
drivers/scsi/snic/snic_scsi.c
1793
CMD_STATE(sc) = sv_state;
drivers/scsi/snic/snic_scsi.c
1800
if (CMD_FLAGS(sc) & SNIC_DEVICE_RESET)
drivers/scsi/snic/snic_scsi.c
1801
CMD_FLAGS(sc) |= SNIC_DEV_RST_TERM_ISSUED;
drivers/scsi/snic/snic_scsi.c
1803
CMD_FLAGS(sc) |= SNIC_IO_INTERNAL_TERM_ISSUED;
drivers/scsi/snic/snic_scsi.c
181
sc->sense_buffer, snic_cmd_tag(sc));
drivers/scsi/snic/snic_scsi.c
1810
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
1812
CMD_FLAGS(sc) |= SNIC_IO_ABTS_TERM_REQ_NULL;
drivers/scsi/snic/snic_scsi.c
1818
if (CMD_ABTS_STATUS(sc) == SNIC_INVALID_CODE) {
drivers/scsi/snic/snic_scsi.c
1821
sc, tag, rqi->tm_tag, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1823
CMD_FLAGS(sc) |= SNIC_IO_ABTS_TERM_DONE;
drivers/scsi/snic/snic_scsi.c
1829
CMD_STATE(sc) = SNIC_IOREQ_ABTS_COMPLETE;
drivers/scsi/snic/snic_scsi.c
1830
CMD_SP(sc) = NULL;
drivers/scsi/snic/snic_scsi.c
1833
snic_release_req_buf(snic, rqi, sc);
drivers/scsi/snic/snic_scsi.c
1835
sc->result = (DID_ERROR << 16);
drivers/scsi/snic/snic_scsi.c
1836
scsi_done(sc);
drivers/scsi/snic/snic_scsi.c
187
int_to_scsilun(sc->device->lun, &lun);
drivers/scsi/snic/snic_scsi.c
188
if (sc->sc_data_direction == DMA_FROM_DEVICE)
drivers/scsi/snic/snic_scsi.c
1889
snic_dr_finish(struct snic *snic, struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
1897
io_lock = snic_io_lock_hash(snic, sc);
drivers/scsi/snic/snic_scsi.c
1899
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
190
if (sc->sc_data_direction == DMA_TO_DEVICE)
drivers/scsi/snic/snic_scsi.c
1904
snic_cmd_tag(sc), sc, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1912
lr_res = CMD_LR_STATUS(sc);
drivers/scsi/snic/snic_scsi.c
1919
snic_cmd_tag(sc), CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
1921
CMD_FLAGS(sc) |= SNIC_DEV_RST_TIMEDOUT;
drivers/scsi/snic/snic_scsi.c
1929
snic_cmd_tag(sc));
drivers/scsi/snic/snic_scsi.c
1936
snic_cmd_tag(sc),
drivers/scsi/snic/snic_scsi.c
1937
snic_io_status_to_str(lr_res), CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
195
snic_cmd_tag(sc),
drivers/scsi/snic/snic_scsi.c
1951
ret = snic_dr_clean_pending_req(snic, sc);
drivers/scsi/snic/snic_scsi.c
1956
snic_cmd_tag(sc));
drivers/scsi/snic/snic_scsi.c
1957
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
1963
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
1973
CMD_SP(sc) = NULL;
drivers/scsi/snic/snic_scsi.c
1977
snic_release_req_buf(snic, rqi, sc);
drivers/scsi/snic/snic_scsi.c
1986
struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
1991
return snic_issue_tm_req(snic, rqi, sc, SNIC_ITMF_LUN_RESET);
drivers/scsi/snic/snic_scsi.c
1995
snic_send_dr_and_wait(struct snic *snic, struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
2002
int ret = FAILED, tag = snic_cmd_tag(sc);
drivers/scsi/snic/snic_scsi.c
2004
io_lock = snic_io_lock_hash(snic, sc);
drivers/scsi/snic/snic_scsi.c
2006
CMD_FLAGS(sc) |= SNIC_DEVICE_RESET;
drivers/scsi/snic/snic_scsi.c
2007
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
201
sc->cmnd,
drivers/scsi/snic/snic_scsi.c
2011
tag, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
2019
sv_state = CMD_STATE(sc);
drivers/scsi/snic/snic_scsi.c
202
sc->cmd_len,
drivers/scsi/snic/snic_scsi.c
2021
CMD_STATE(sc) = SNIC_IOREQ_LR_PENDING;
drivers/scsi/snic/snic_scsi.c
2022
CMD_LR_STATUS(sc) = SNIC_INVALID_CODE;
drivers/scsi/snic/snic_scsi.c
203
scsi_bufflen(sc),
drivers/scsi/snic/snic_scsi.c
2037
ret = snic_queue_dr_req(snic, rqi, sc);
drivers/scsi/snic/snic_scsi.c
2041
tag, ret, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
2045
CMD_STATE(sc) = sv_state;
drivers/scsi/snic/snic_scsi.c
2046
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
2057
CMD_FLAGS(sc) |= SNIC_DEV_RST_ISSUED;
drivers/scsi/snic/snic_scsi.c
2084
snic_unlink_and_release_req(struct snic *snic, struct scsi_cmnd *sc, int flag)
drivers/scsi/snic/snic_scsi.c
2091
io_lock = snic_io_lock_hash(snic, sc);
drivers/scsi/snic/snic_scsi.c
2093
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
2096
CMD_SP(sc) = NULL;
drivers/scsi/snic/snic_scsi.c
2099
CMD_FLAGS(sc) |= flag;
drivers/scsi/snic/snic_scsi.c
2103
snic_release_req_buf(snic, rqi, sc);
drivers/scsi/snic/snic_scsi.c
2105
SNIC_TRC(snic->shost->host_no, snic_cmd_tag(sc), (ulong) sc,
drivers/scsi/snic/snic_scsi.c
2107
SNIC_TRC_CMD(sc), SNIC_TRC_CMD_STATE_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
2116
snic_device_reset(struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
2118
struct Scsi_Host *shost = sc->device->host;
drivers/scsi/snic/snic_scsi.c
2121
int tag = snic_cmd_tag(sc);
drivers/scsi/snic/snic_scsi.c
2127
sc, sc->cmnd[0], scsi_cmd_to_rq(sc),
drivers/scsi/snic/snic_scsi.c
2128
snic_cmd_tag(sc));
drivers/scsi/snic/snic_scsi.c
2129
dr_supp = snic_dev_reset_supported(sc->device);
drivers/scsi/snic/snic_scsi.c
2133
snic_unlink_and_release_req(snic, sc, SNIC_DEV_RST_NOTSUP);
drivers/scsi/snic/snic_scsi.c
2139
snic_unlink_and_release_req(snic, sc, 0);
drivers/scsi/snic/snic_scsi.c
2154
memset(scsi_cmd_priv(sc), 0,
drivers/scsi/snic/snic_scsi.c
2156
CMD_SP(sc) = (char *)rqi;
drivers/scsi/snic/snic_scsi.c
2157
CMD_FLAGS(sc) = SNIC_NO_FLAGS;
drivers/scsi/snic/snic_scsi.c
2161
rqi->sc = sc;
drivers/scsi/snic/snic_scsi.c
2164
ret = snic_send_dr_and_wait(snic, sc);
drivers/scsi/snic/snic_scsi.c
2170
snic_unlink_and_release_req(snic, sc, 0);
drivers/scsi/snic/snic_scsi.c
2175
ret = snic_dr_finish(snic, sc);
drivers/scsi/snic/snic_scsi.c
2178
SNIC_TRC(snic->shost->host_no, tag, (ulong) sc,
drivers/scsi/snic/snic_scsi.c
2180
0, SNIC_TRC_CMD(sc), SNIC_TRC_CMD_STATE_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
22
#define snic_cmd_tag(sc) (scsi_cmd_to_rq(sc)->tag)
drivers/scsi/snic/snic_scsi.c
2200
snic_issue_hba_reset(struct snic *snic, struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
2216
if (snic_cmd_tag(sc) == SCSI_NO_TAG) {
drivers/scsi/snic/snic_scsi.c
2217
memset(scsi_cmd_priv(sc), 0,
drivers/scsi/snic/snic_scsi.c
2220
rqi->sc = sc;
drivers/scsi/snic/snic_scsi.c
2225
io_lock = snic_io_lock_hash(snic, sc);
drivers/scsi/snic/snic_scsi.c
2227
SNIC_BUG_ON(CMD_SP(sc) != NULL);
drivers/scsi/snic/snic_scsi.c
2228
CMD_STATE(sc) = SNIC_IOREQ_PENDING;
drivers/scsi/snic/snic_scsi.c
2229
CMD_SP(sc) = (char *) rqi;
drivers/scsi/snic/snic_scsi.c
2230
CMD_FLAGS(sc) |= SNIC_IO_INITIALIZED;
drivers/scsi/snic/snic_scsi.c
2235
snic_io_hdr_enc(&req->hdr, SNIC_REQ_HBA_RESET, 0, snic_cmd_tag(sc),
drivers/scsi/snic/snic_scsi.c
2250
CMD_FLAGS(sc) |= SNIC_HOST_RESET_ISSUED;
drivers/scsi/snic/snic_scsi.c
2267
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
2268
CMD_SP(sc) = NULL;
drivers/scsi/snic/snic_scsi.c
228
struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
2281
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
2282
CMD_SP(sc) = NULL;
drivers/scsi/snic/snic_scsi.c
2297
snic_reset(struct Scsi_Host *shost, struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
2326
ret = snic_issue_hba_reset(snic, sc);
drivers/scsi/snic/snic_scsi.c
233
u32 tag = snic_cmd_tag(sc);
drivers/scsi/snic/snic_scsi.c
2354
snic_host_reset(struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
2356
struct Scsi_Host *shost = sc->device->host;
drivers/scsi/snic/snic_scsi.c
2362
sc, sc->cmnd[0], scsi_cmd_to_rq(sc),
drivers/scsi/snic/snic_scsi.c
2363
snic_cmd_tag(sc), CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
2365
ret = snic_reset(shost, sc);
drivers/scsi/snic/snic_scsi.c
2367
SNIC_TRC(shost->host_no, snic_cmd_tag(sc), (ulong) sc,
drivers/scsi/snic/snic_scsi.c
2369
0, SNIC_TRC_CMD(sc), SNIC_TRC_CMD_STATE_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
2378
snic_cmpl_pending_tmreq(struct snic *snic, struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
238
CMD_STATE(sc) = SNIC_IOREQ_NOT_INITED;
drivers/scsi/snic/snic_scsi.c
2384
sc, snic_io_status_to_str(CMD_STATE(sc)), CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
239
CMD_FLAGS(sc) = SNIC_NO_FLAGS;
drivers/scsi/snic/snic_scsi.c
2391
CMD_ABTS_STATUS(sc) = SNIC_STAT_IO_SUCCESS;
drivers/scsi/snic/snic_scsi.c
2393
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
240
sg_cnt = scsi_dma_map(sc);
drivers/scsi/snic/snic_scsi.c
2410
struct scsi_cmnd *sc = NULL;
drivers/scsi/snic/snic_scsi.c
242
SNIC_TRC((u16)snic->shost->host_no, tag, (ulong) sc, 0,
drivers/scsi/snic/snic_scsi.c
2425
sc = scsi_host_find_tag(snic->shost, tag);
drivers/scsi/snic/snic_scsi.c
2426
if (!sc) {
drivers/scsi/snic/snic_scsi.c
243
sc->cmnd[0], sg_cnt, CMD_STATE(sc));
drivers/scsi/snic/snic_scsi.c
2432
if (unlikely(snic_tmreq_pending(sc))) {
drivers/scsi/snic/snic_scsi.c
2437
snic_cmpl_pending_tmreq(snic, sc);
drivers/scsi/snic/snic_scsi.c
2443
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
2452
sc, rqi, tag, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
2454
CMD_SP(sc) = NULL;
drivers/scsi/snic/snic_scsi.c
2455
CMD_FLAGS(sc) |= SNIC_SCSI_CLEANUP;
drivers/scsi/snic/snic_scsi.c
2461
rqi, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
2463
snic_release_req_buf(snic, rqi, sc);
drivers/scsi/snic/snic_scsi.c
2466
sc->result = DID_TRANSPORT_DISRUPTED << 16;
drivers/scsi/snic/snic_scsi.c
2469
sc, scsi_cmd_to_rq(sc)->tag, CMD_FLAGS(sc), rqi,
drivers/scsi/snic/snic_scsi.c
2475
SNIC_TRC(snic->shost->host_no, tag, (ulong) sc,
drivers/scsi/snic/snic_scsi.c
2477
SNIC_TRC_CMD(sc),
drivers/scsi/snic/snic_scsi.c
2478
SNIC_TRC_CMD_STATE_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
2480
scsi_done(sc);
drivers/scsi/snic/snic_scsi.c
2497
snic_internal_abort_io(struct snic *snic, struct scsi_cmnd *sc, int tmf)
drivers/scsi/snic/snic_scsi.c
2505
io_lock = snic_io_lock_hash(snic, sc);
drivers/scsi/snic/snic_scsi.c
2507
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
2511
if (CMD_STATE(sc) == SNIC_IOREQ_ABTS_PENDING)
drivers/scsi/snic/snic_scsi.c
2514
if ((CMD_FLAGS(sc) & SNIC_DEVICE_RESET) &&
drivers/scsi/snic/snic_scsi.c
2515
(!(CMD_FLAGS(sc) & SNIC_DEV_RST_ISSUED))) {
drivers/scsi/snic/snic_scsi.c
2519
sc);
drivers/scsi/snic/snic_scsi.c
2525
if (!(CMD_FLAGS(sc) & SNIC_IO_ISSUED)) {
drivers/scsi/snic/snic_scsi.c
2528
sc, snic_cmd_tag(sc), CMD_FLAGS(sc), CMD_STATE(sc));
drivers/scsi/snic/snic_scsi.c
253
scsi_dma_unmap(sc);
drivers/scsi/snic/snic_scsi.c
2533
sv_state = CMD_STATE(sc);
drivers/scsi/snic/snic_scsi.c
2534
CMD_STATE(sc) = SNIC_IOREQ_ABTS_PENDING;
drivers/scsi/snic/snic_scsi.c
2535
CMD_ABTS_STATUS(sc) = SNIC_INVALID_CODE;
drivers/scsi/snic/snic_scsi.c
2536
CMD_FLAGS(sc) |= SNIC_IO_INTERNAL_TERM_PENDING;
drivers/scsi/snic/snic_scsi.c
2538
if (CMD_FLAGS(sc) & SNIC_DEVICE_RESET) {
drivers/scsi/snic/snic_scsi.c
2541
SNIC_SCSI_DBG(snic->shost, "internal_abts:dev rst sc %p\n", sc);
drivers/scsi/snic/snic_scsi.c
2545
snic_cmd_tag(sc));
drivers/scsi/snic/snic_scsi.c
2549
ret = snic_queue_abort_req(snic, rqi, sc, tmf);
drivers/scsi/snic/snic_scsi.c
2553
snic_cmd_tag(sc), ret);
drivers/scsi/snic/snic_scsi.c
2557
if (CMD_STATE(sc) == SNIC_IOREQ_ABTS_PENDING)
drivers/scsi/snic/snic_scsi.c
2558
CMD_STATE(sc) = sv_state;
drivers/scsi/snic/snic_scsi.c
2564
if (CMD_FLAGS(sc) & SNIC_DEVICE_RESET)
drivers/scsi/snic/snic_scsi.c
2565
CMD_FLAGS(sc) |= SNIC_DEV_RST_TERM_ISSUED;
drivers/scsi/snic/snic_scsi.c
2567
CMD_FLAGS(sc) |= SNIC_IO_INTERNAL_TERM_ISSUED;
drivers/scsi/snic/snic_scsi.c
2585
struct scsi_cmnd *sc = NULL;
drivers/scsi/snic/snic_scsi.c
260
rqi->sc = sc;
drivers/scsi/snic/snic_scsi.c
2606
sc = scsi_host_find_tag(snic->shost, tag);
drivers/scsi/snic/snic_scsi.c
2607
if (!sc) {
drivers/scsi/snic/snic_scsi.c
2613
sc_tgt = starget_to_tgt(scsi_target(sc->device));
drivers/scsi/snic/snic_scsi.c
262
CMD_STATE(sc) = SNIC_IOREQ_PENDING;
drivers/scsi/snic/snic_scsi.c
2621
ret = snic_internal_abort_io(snic, sc, tmf);
drivers/scsi/snic/snic_scsi.c
263
CMD_SP(sc) = (char *) rqi;
drivers/scsi/snic/snic_scsi.c
264
cmd_trc = SNIC_TRC_CMD(sc);
drivers/scsi/snic/snic_scsi.c
265
CMD_FLAGS(sc) |= (SNIC_IO_INITIALIZED | SNIC_IO_ISSUED);
drivers/scsi/snic/snic_scsi.c
266
cmd_st_flags = SNIC_TRC_CMD_STATE_FLAGS(sc);
drivers/scsi/snic/snic_scsi.c
267
io_lock = snic_io_lock_hash(snic, sc);
drivers/scsi/snic/snic_scsi.c
270
ret = snic_queue_icmnd_req(snic, rqi, sc, sg_cnt);
drivers/scsi/snic/snic_scsi.c
274
sc, ret);
drivers/scsi/snic/snic_scsi.c
277
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
278
CMD_SP(sc) = NULL;
drivers/scsi/snic/snic_scsi.c
279
CMD_STATE(sc) = SNIC_IOREQ_COMPLETE;
drivers/scsi/snic/snic_scsi.c
280
CMD_FLAGS(sc) &= ~SNIC_IO_ISSUED; /* turn off the flag */
drivers/scsi/snic/snic_scsi.c
284
snic_release_req_buf(snic, rqi, sc);
drivers/scsi/snic/snic_scsi.c
286
SNIC_TRC(snic->shost->host_no, tag, (ulong) sc, 0, 0, 0,
drivers/scsi/snic/snic_scsi.c
287
SNIC_TRC_CMD_STATE_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
289
u32 io_sz = scsi_bufflen(sc) >> 9;
drivers/scsi/snic/snic_scsi.c
301
sc, tag);
drivers/scsi/snic/snic_scsi.c
303
SNIC_TRC(snic->shost->host_no, tag, (ulong) sc, (ulong) rqi,
drivers/scsi/snic/snic_scsi.c
319
struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
325
tgt = starget_to_tgt(scsi_target(sc->device));
drivers/scsi/snic/snic_scsi.c
330
sc->result = ret;
drivers/scsi/snic/snic_scsi.c
331
scsi_done(sc);
drivers/scsi/snic/snic_scsi.c
345
sc, snic_cmd_tag(sc), sc->cmnd[0], sc->device->lun);
drivers/scsi/snic/snic_scsi.c
347
ret = snic_issue_scsi_req(snic, tgt, sc);
drivers/scsi/snic/snic_scsi.c
364
struct scsi_cmnd *sc,
drivers/scsi/snic/snic_scsi.c
367
int state = CMD_STATE(sc);
drivers/scsi/snic/snic_scsi.c
370
CMD_FLAGS(sc) |= SNIC_IO_ABTS_PENDING;
drivers/scsi/snic/snic_scsi.c
372
CMD_FLAGS(sc) |= SNIC_DEV_RST_PENDING;
drivers/scsi/snic/snic_scsi.c
378
CMD_FLAGS(sc) |= SNIC_IO_DONE;
drivers/scsi/snic/snic_scsi.c
382
CMD_FLAGS(sc) |= SNIC_IO_ABORTED;
drivers/scsi/snic/snic_scsi.c
397
struct scsi_cmnd *sc,
drivers/scsi/snic/snic_scsi.c
415
scsi_set_resid(sc, le32_to_cpu(icmnd_cmpl->resid));
drivers/scsi/snic/snic_scsi.c
461
snic_io_status_to_str(cmpl_stat), CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
464
sc->result = (res << 16) | icmnd_cmpl->scsi_status;
drivers/scsi/snic/snic_scsi.c
471
snic_tmreq_pending(struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
473
int state = CMD_STATE(sc);
drivers/scsi/snic/snic_scsi.c
487
struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
493
CMD_STATE(sc) = SNIC_IOREQ_COMPLETE;
drivers/scsi/snic/snic_scsi.c
496
sc->result = (DID_OK << 16) | scsi_stat;
drivers/scsi/snic/snic_scsi.c
499
scsi_set_resid(sc, le32_to_cpu(icmnd_cmpl->resid));
drivers/scsi/snic/snic_scsi.c
509
snic_process_io_failed_state(snic, icmnd_cmpl, sc, cmpl_stat);
drivers/scsi/snic/snic_scsi.c
513
snic_io_status_to_str(cmpl_stat), CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
531
struct scsi_cmnd *sc = NULL;
drivers/scsi/snic/snic_scsi.c
554
sc = scsi_host_find_tag(snic->shost, cmnd_id);
drivers/scsi/snic/snic_scsi.c
555
WARN_ON_ONCE(!sc);
drivers/scsi/snic/snic_scsi.c
557
if (!sc) {
drivers/scsi/snic/snic_scsi.c
573
io_lock = snic_io_lock_hash(snic, sc);
drivers/scsi/snic/snic_scsi.c
576
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
579
sc->device->lun, sc, sc->cmnd[0], snic_cmd_tag(sc),
drivers/scsi/snic/snic_scsi.c
580
CMD_FLAGS(sc), rqi);
drivers/scsi/snic/snic_scsi.c
582
if (CMD_FLAGS(sc) & SNIC_HOST_RESET_CMD_TERM) {
drivers/scsi/snic/snic_scsi.c
592
CMD_FLAGS(sc) |= SNIC_IO_REQ_NULL;
drivers/scsi/snic/snic_scsi.c
598
cmnd_id, sc, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
612
if (unlikely(snic_tmreq_pending(sc))) {
drivers/scsi/snic/snic_scsi.c
613
snic_proc_tmreq_pending_state(snic, sc, hdr_stat);
drivers/scsi/snic/snic_scsi.c
624
snic_ioreq_state_to_str(CMD_STATE(sc)),
drivers/scsi/snic/snic_scsi.c
626
sc, sc_stat, le32_to_cpu(icmnd_cmpl->resid),
drivers/scsi/snic/snic_scsi.c
627
CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
629
SNIC_TRC(snic->shost->host_no, cmnd_id, (ulong) sc,
drivers/scsi/snic/snic_scsi.c
631
SNIC_TRC_CMD(sc), SNIC_TRC_CMD_STATE_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
636
if (snic_process_icmnd_cmpl_status(snic, icmnd_cmpl, hdr_stat, sc)) {
drivers/scsi/snic/snic_scsi.c
637
scsi_print_command(sc);
drivers/scsi/snic/snic_scsi.c
640
sc, sc->cmnd[0], cmnd_id,
drivers/scsi/snic/snic_scsi.c
641
snic_io_status_to_str(hdr_stat), CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
645
CMD_SP(sc) = NULL;
drivers/scsi/snic/snic_scsi.c
646
CMD_FLAGS(sc) |= SNIC_IO_DONE;
drivers/scsi/snic/snic_scsi.c
653
snic_release_req_buf(snic, rqi, sc);
drivers/scsi/snic/snic_scsi.c
655
SNIC_TRC(snic->shost->host_no, cmnd_id, (ulong) sc,
drivers/scsi/snic/snic_scsi.c
657
SNIC_TRC_CMD(sc), SNIC_TRC_CMD_STATE_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
660
scsi_done(sc);
drivers/scsi/snic/snic_scsi.c
670
struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
672
struct snic_req_info *rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
675
CMD_LR_STATUS(sc) = cmpl_stat;
drivers/scsi/snic/snic_scsi.c
678
snic_ioreq_state_to_str(CMD_STATE(sc)));
drivers/scsi/snic/snic_scsi.c
680
if (CMD_STATE(sc) == SNIC_IOREQ_ABTS_PENDING) {
drivers/scsi/snic/snic_scsi.c
681
CMD_FLAGS(sc) |= SNIC_DEV_RST_ABTS_PENDING;
drivers/scsi/snic/snic_scsi.c
683
SNIC_TRC(snic->shost->host_no, cmnd_id, (ulong) sc,
drivers/scsi/snic/snic_scsi.c
685
(ulong) fwreq, 0, SNIC_TRC_CMD_STATE_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
691
CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
697
if (CMD_FLAGS(sc) & SNIC_DEV_RST_TIMEDOUT) {
drivers/scsi/snic/snic_scsi.c
698
SNIC_TRC(snic->shost->host_no, cmnd_id, (ulong) sc,
drivers/scsi/snic/snic_scsi.c
700
(ulong) fwreq, 0, SNIC_TRC_CMD_STATE_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
706
CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
711
CMD_STATE(sc) = SNIC_IOREQ_LR_COMPLETE;
drivers/scsi/snic/snic_scsi.c
712
CMD_FLAGS(sc) |= SNIC_DEV_RST_DONE;
drivers/scsi/snic/snic_scsi.c
718
CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
757
struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
766
io_lock = snic_io_lock_hash(snic, sc);
drivers/scsi/snic/snic_scsi.c
768
if (CMD_FLAGS(sc) & SNIC_HOST_RESET_CMD_TERM) {
drivers/scsi/snic/snic_scsi.c
773
rqi = (struct snic_req_info *) CMD_SP(sc);
drivers/scsi/snic/snic_scsi.c
779
CMD_FLAGS(sc) |= SNIC_IO_ABTS_TERM_REQ_NULL;
drivers/scsi/snic/snic_scsi.c
782
snic_io_status_to_str(cmpl_stat), cmnd_id, sc,
drivers/scsi/snic/snic_scsi.c
783
CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
799
if (CMD_STATE(sc) != SNIC_IOREQ_ABTS_PENDING) {
drivers/scsi/snic/snic_scsi.c
806
CMD_STATE(sc) = SNIC_IOREQ_ABTS_COMPLETE;
drivers/scsi/snic/snic_scsi.c
807
CMD_ABTS_STATUS(sc) = cmpl_stat;
drivers/scsi/snic/snic_scsi.c
808
CMD_FLAGS(sc) |= SNIC_IO_ABTS_TERM_DONE;
drivers/scsi/snic/snic_scsi.c
814
CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
828
CMD_SP(sc) = NULL;
drivers/scsi/snic/snic_scsi.c
829
sc->result = (DID_ERROR << 16);
drivers/scsi/snic/snic_scsi.c
832
sc, CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
836
snic_release_req_buf(snic, rqi, sc);
drivers/scsi/snic/snic_scsi.c
838
SNIC_TRC(snic->shost->host_no, cmnd_id, (ulong) sc,
drivers/scsi/snic/snic_scsi.c
840
(ulong) fwreq, SNIC_TRC_CMD(sc),
drivers/scsi/snic/snic_scsi.c
841
SNIC_TRC_CMD_STATE_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
843
scsi_done(sc);
drivers/scsi/snic/snic_scsi.c
849
snic_proc_dr_cmpl_locked(snic, fwreq, cmpl_stat, cmnd_id, sc);
drivers/scsi/snic/snic_scsi.c
858
CMD_STATE(sc) = SNIC_IOREQ_ABTS_COMPLETE;
drivers/scsi/snic/snic_scsi.c
859
CMD_ABTS_STATUS(sc) = cmpl_stat;
drivers/scsi/snic/snic_scsi.c
860
CMD_FLAGS(sc) |= SNIC_DEV_RST_DONE;
drivers/scsi/snic/snic_scsi.c
865
CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
881
snic_ioreq_state_to_str(CMD_STATE(sc)),
drivers/scsi/snic/snic_scsi.c
883
CMD_FLAGS(sc));
drivers/scsi/snic/snic_scsi.c
900
struct scsi_cmnd *sc = NULL;
drivers/scsi/snic/snic_scsi.c
922
sc = rqi->sc;
drivers/scsi/snic/snic_scsi.c
936
sc = scsi_host_find_tag(snic->shost, cmnd_id & SNIC_TAG_MASK);
drivers/scsi/snic/snic_scsi.c
937
WARN_ON_ONCE(!sc);
drivers/scsi/snic/snic_scsi.c
940
if (!sc) {
drivers/scsi/snic/snic_scsi.c
949
snic_process_itmf_cmpl(snic, fwreq, cmnd_id, hdr_stat, sc);
drivers/scsi/snic/snic_scsi.c
955
snic_hba_reset_scsi_cleanup(struct snic *snic, struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
961
snic_scsi_cleanup(snic, snic_cmd_tag(sc));
drivers/scsi/snic/snic_scsi.c
98
snic_io_lock_hash(struct snic *snic, struct scsi_cmnd *sc)
drivers/scsi/snic/snic_scsi.c
987
struct scsi_cmnd *sc = NULL;
drivers/scsi/snic/snic_trc.h
101
#define SNIC_TRC_CMD_STATE_FLAGS(sc) \
drivers/scsi/snic/snic_trc.h
102
((u64) CMD_FLAGS(sc) << 32 | CMD_STATE(sc))
drivers/scsi/snic/snic_trc.h
95
#define SNIC_TRC_CMD(sc) \
drivers/scsi/snic/snic_trc.h
96
((u64)sc->cmnd[0] << 56 | (u64)sc->cmnd[7] << 40 | \
drivers/scsi/snic/snic_trc.h
97
(u64)sc->cmnd[8] << 32 | (u64)sc->cmnd[2] << 24 | \
drivers/scsi/snic/snic_trc.h
98
(u64)sc->cmnd[3] << 16 | (u64)sc->cmnd[4] << 8 | \
drivers/scsi/snic/snic_trc.h
99
(u64)sc->cmnd[5])
drivers/scsi/st.c
2706
s32 sc;
drivers/scsi/st.c
2711
sc = sign_extend32(get_unaligned_be24(&cmd[2]), 23);
drivers/scsi/st.c
2713
sc = -sc;
drivers/scsi/st.c
2715
direction ? "backward" : "forward", sc, units);
drivers/scsi/virtio_scsi.c
109
static void virtscsi_compute_resid(struct scsi_cmnd *sc, u32 resid)
drivers/scsi/virtio_scsi.c
112
scsi_set_resid(sc, min(resid, scsi_bufflen(sc)));
drivers/scsi/virtio_scsi.c
123
struct scsi_cmnd *sc = cmd->sc;
drivers/scsi/virtio_scsi.c
126
dev_dbg(&sc->device->sdev_gendev,
drivers/scsi/virtio_scsi.c
128
sc, resp->response, resp->status, resp->sense_len);
drivers/scsi/virtio_scsi.c
130
sc->result = resp->status;
drivers/scsi/virtio_scsi.c
131
virtscsi_compute_resid(sc, virtio32_to_cpu(vscsi->vdev, resp->resid));
drivers/scsi/virtio_scsi.c
134
set_host_byte(sc, DID_OK);
drivers/scsi/virtio_scsi.c
137
set_host_byte(sc, DID_ERROR);
drivers/scsi/virtio_scsi.c
140
set_host_byte(sc, DID_ABORT);
drivers/scsi/virtio_scsi.c
143
set_host_byte(sc, DID_BAD_TARGET);
drivers/scsi/virtio_scsi.c
146
set_host_byte(sc, DID_RESET);
drivers/scsi/virtio_scsi.c
149
set_host_byte(sc, DID_BUS_BUSY);
drivers/scsi/virtio_scsi.c
152
set_host_byte(sc, DID_TRANSPORT_DISRUPTED);
drivers/scsi/virtio_scsi.c
155
set_host_byte(sc, DID_BAD_TARGET);
drivers/scsi/virtio_scsi.c
158
set_status_byte(sc, SAM_STAT_RESERVATION_CONFLICT);
drivers/scsi/virtio_scsi.c
161
scmd_printk(KERN_WARNING, sc, "Unknown response %d",
drivers/scsi/virtio_scsi.c
165
set_host_byte(sc, DID_ERROR);
drivers/scsi/virtio_scsi.c
172
memcpy(sc->sense_buffer, resp->sense,
drivers/scsi/virtio_scsi.c
178
scsi_done(sc);
drivers/scsi/virtio_scsi.c
439
struct scsi_cmnd *sc = cmd->sc;
drivers/scsi/virtio_scsi.c
446
if (sc && sc->sc_data_direction != DMA_NONE) {
drivers/scsi/virtio_scsi.c
447
if (sc->sc_data_direction != DMA_FROM_DEVICE)
drivers/scsi/virtio_scsi.c
448
out = &sc->sdb.table;
drivers/scsi/virtio_scsi.c
449
if (sc->sc_data_direction != DMA_TO_DEVICE)
drivers/scsi/virtio_scsi.c
450
in = &sc->sdb.table;
drivers/scsi/virtio_scsi.c
460
if (scsi_prot_sg_count(sc))
drivers/scsi/virtio_scsi.c
461
sgs[out_num++] = scsi_prot_sglist(sc);
drivers/scsi/virtio_scsi.c
47
struct scsi_cmnd *sc;
drivers/scsi/virtio_scsi.c
472
if (scsi_prot_sg_count(sc))
drivers/scsi/virtio_scsi.c
473
sgs[out_num + in_num++] = scsi_prot_sglist(sc);
drivers/scsi/virtio_scsi.c
524
struct scsi_cmnd *sc)
drivers/scsi/virtio_scsi.c
527
cmd->lun[1] = sc->device->id;
drivers/scsi/virtio_scsi.c
528
cmd->lun[2] = (sc->device->lun >> 8) | 0x40;
drivers/scsi/virtio_scsi.c
529
cmd->lun[3] = sc->device->lun & 0xff;
drivers/scsi/virtio_scsi.c
530
cmd->tag = cpu_to_virtio64(vdev, (unsigned long)sc);
drivers/scsi/virtio_scsi.c
539
struct scsi_cmnd *sc)
drivers/scsi/virtio_scsi.c
541
struct request *rq = scsi_cmd_to_rq(sc);
drivers/scsi/virtio_scsi.c
544
virtio_scsi_init_hdr(vdev, (struct virtio_scsi_cmd_req *)cmd_pi, sc);
drivers/scsi/virtio_scsi.c
546
if (!rq || !scsi_prot_sg_count(sc))
drivers/scsi/virtio_scsi.c
551
if (sc->sc_data_direction == DMA_TO_DEVICE)
drivers/scsi/virtio_scsi.c
555
else if (sc->sc_data_direction == DMA_FROM_DEVICE)
drivers/scsi/virtio_scsi.c
563
struct scsi_cmnd *sc)
drivers/scsi/virtio_scsi.c
565
u32 tag = blk_mq_unique_tag(scsi_cmd_to_rq(sc));
drivers/scsi/virtio_scsi.c
572
struct scsi_cmnd *sc)
drivers/scsi/virtio_scsi.c
575
struct virtio_scsi_vq *req_vq = virtscsi_pick_vq_mq(vscsi, sc);
drivers/scsi/virtio_scsi.c
576
struct virtio_scsi_cmd *cmd = scsi_cmd_priv(sc);
drivers/scsi/virtio_scsi.c
582
BUG_ON(scsi_sg_count(sc) > shost->sg_tablesize);
drivers/scsi/virtio_scsi.c
585
BUG_ON(sc->sc_data_direction == DMA_BIDIRECTIONAL);
drivers/scsi/virtio_scsi.c
587
dev_dbg(&sc->device->sdev_gendev,
drivers/scsi/virtio_scsi.c
588
"cmd %p CDB: %#02x\n", sc, sc->cmnd[0]);
drivers/scsi/virtio_scsi.c
590
cmd->sc = sc;
drivers/scsi/virtio_scsi.c
592
BUG_ON(sc->cmd_len > VIRTIO_SCSI_CDB_SIZE);
drivers/scsi/virtio_scsi.c
596
virtio_scsi_init_hdr_pi(vscsi->vdev, &cmd->req.cmd_pi, sc);
drivers/scsi/virtio_scsi.c
597
memcpy(cmd->req.cmd_pi.cdb, sc->cmnd, sc->cmd_len);
drivers/scsi/virtio_scsi.c
602
virtio_scsi_init_hdr(vscsi->vdev, &cmd->req.cmd, sc);
drivers/scsi/virtio_scsi.c
603
memcpy(cmd->req.cmd.cdb, sc->cmnd, sc->cmd_len);
drivers/scsi/virtio_scsi.c
607
kick = (sc->flags & SCMD_LAST) != 0;
drivers/scsi/virtio_scsi.c
651
static int virtscsi_device_reset(struct scsi_cmnd *sc)
drivers/scsi/virtio_scsi.c
653
struct virtio_scsi *vscsi = shost_priv(sc->device->host);
drivers/scsi/virtio_scsi.c
656
sdev_printk(KERN_INFO, sc->device, "device reset\n");
drivers/scsi/virtio_scsi.c
667
.lun[1] = sc->device->id,
drivers/scsi/virtio_scsi.c
668
.lun[2] = (sc->device->lun >> 8) | 0x40,
drivers/scsi/virtio_scsi.c
669
.lun[3] = sc->device->lun & 0xff,
drivers/scsi/virtio_scsi.c
709
static int virtscsi_abort(struct scsi_cmnd *sc)
drivers/scsi/virtio_scsi.c
711
struct virtio_scsi *vscsi = shost_priv(sc->device->host);
drivers/scsi/virtio_scsi.c
714
scmd_printk(KERN_INFO, sc, "abort\n");
drivers/scsi/virtio_scsi.c
724
.lun[1] = sc->device->id,
drivers/scsi/virtio_scsi.c
725
.lun[2] = (sc->device->lun >> 8) | 0x40,
drivers/scsi/virtio_scsi.c
726
.lun[3] = sc->device->lun & 0xff,
drivers/scsi/virtio_scsi.c
727
.tag = cpu_to_virtio64(vscsi->vdev, (unsigned long)sc),
drivers/scsi/xen-scsifront.c
186
struct scsi_cmnd *sc = shadow->sc;
drivers/scsi/xen-scsifront.c
208
ring_req->id = sc->device->id;
drivers/scsi/xen-scsifront.c
209
ring_req->lun = sc->device->lun;
drivers/scsi/xen-scsifront.c
210
ring_req->channel = sc->device->channel;
drivers/scsi/xen-scsifront.c
211
ring_req->cmd_len = sc->cmd_len;
drivers/scsi/xen-scsifront.c
213
BUG_ON(sc->cmd_len > VSCSIIF_MAX_COMMAND_SIZE);
drivers/scsi/xen-scsifront.c
215
memcpy(ring_req->cmnd, sc->cmnd, sc->cmd_len);
drivers/scsi/xen-scsifront.c
217
ring_req->sc_data_direction = (uint8_t)sc->sc_data_direction;
drivers/scsi/xen-scsifront.c
218
ring_req->timeout_per_command = scsi_cmd_to_rq(sc)->timeout / HZ;
drivers/scsi/xen-scsifront.c
244
if (shadow->sc->sc_data_direction == DMA_NONE)
drivers/scsi/xen-scsifront.c
303
struct scsi_cmnd *sc;
drivers/scsi/xen-scsifront.c
309
sc = shadow->sc;
drivers/scsi/xen-scsifront.c
311
BUG_ON(sc == NULL);
drivers/scsi/xen-scsifront.c
318
set_host_byte(sc, scsifront_host_byte(ring_rsp->rslt));
drivers/scsi/xen-scsifront.c
319
set_status_byte(sc, XEN_VSCSIIF_RSLT_STATUS(ring_rsp->rslt));
drivers/scsi/xen-scsifront.c
320
scsi_set_resid(sc, ring_rsp->residual_len);
drivers/scsi/xen-scsifront.c
326
memcpy(sc->sense_buffer, ring_rsp->sense_buffer, sense_len);
drivers/scsi/xen-scsifront.c
328
scsi_done(sc);
drivers/scsi/xen-scsifront.c
471
struct scsi_cmnd *sc,
drivers/scsi/xen-scsifront.c
477
int grant_ro = (sc->sc_data_direction == DMA_TO_DEVICE);
drivers/scsi/xen-scsifront.c
479
unsigned int data_len = scsi_bufflen(sc);
drivers/scsi/xen-scsifront.c
484
if (sc->sc_data_direction == DMA_NONE || !data_len)
drivers/scsi/xen-scsifront.c
487
scsi_for_each_sg(sc, sg, scsi_sg_count(sc), i)
drivers/scsi/xen-scsifront.c
540
scsi_for_each_sg(sc, sg, scsi_sg_count(sc), i) {
drivers/scsi/xen-scsifront.c
607
struct scsi_cmnd *sc)
drivers/scsi/xen-scsifront.c
610
struct vscsifrnt_shadow *shadow = scsi_cmd_priv(sc);
drivers/scsi/xen-scsifront.c
617
sc->result = 0;
drivers/scsi/xen-scsifront.c
619
shadow->sc = sc;
drivers/scsi/xen-scsifront.c
628
err = map_data_for_request(info, sc, shadow);
drivers/scsi/xen-scsifront.c
635
sc->result = DID_ERROR << 16;
drivers/scsi/xen-scsifront.c
636
scsi_done(sc);
drivers/scsi/xen-scsifront.c
662
static int scsifront_action_handler(struct scsi_cmnd *sc, uint8_t act)
drivers/scsi/xen-scsifront.c
664
struct Scsi_Host *host = sc->device->host;
drivers/scsi/xen-scsifront.c
666
struct vscsifrnt_shadow *shadow, *s = scsi_cmd_priv(sc);
drivers/scsi/xen-scsifront.c
678
shadow->sc = sc;
drivers/scsi/xen-scsifront.c
726
static int scsifront_eh_abort_handler(struct scsi_cmnd *sc)
drivers/scsi/xen-scsifront.c
729
return scsifront_action_handler(sc, VSCSIIF_ACT_SCSI_ABORT);
drivers/scsi/xen-scsifront.c
732
static int scsifront_dev_reset_handler(struct scsi_cmnd *sc)
drivers/scsi/xen-scsifront.c
735
return scsifront_action_handler(sc, VSCSIIF_ACT_SCSI_RESET);
drivers/scsi/xen-scsifront.c
98
struct scsi_cmnd *sc;
drivers/spi/spi-fsl-dspi.c
843
static void ns_delay_scale(char *psc, char *sc, int delay_ns,
drivers/spi/spi-fsl-dspi.c
863
*sc = j;
drivers/spi/spi-fsl-dspi.c
873
*sc = SPI_CTAR_SCALE_BITS;
drivers/staging/media/atomisp/pci/ia_css_acc_types.h
231
u8 sc;
drivers/staging/media/atomisp/pci/ia_css_isp_params.c
977
stage->binary->info->mem_offsets.offsets.param->dmem.sc.size;
drivers/staging/media/atomisp/pci/ia_css_isp_params.c
980
stage->binary->info->mem_offsets.offsets.param->dmem.sc.offset;
drivers/staging/media/atomisp/pci/ia_css_isp_params.h
89
struct ia_css_isp_parameter sc;
drivers/staging/media/atomisp/pci/isp/kernels/sc/sc_1.0/ia_css_sc.host.c
29
const struct sh_css_isp_sc_params *sc,
drivers/staging/media/atomisp/pci/isp/kernels/sc/sc_1.0/ia_css_sc.host.c
32
if (!sc) return;
drivers/staging/media/atomisp/pci/isp/kernels/sc/sc_1.0/ia_css_sc.host.c
35
"sc_gain_shift", sc->gain_shift);
drivers/staging/media/atomisp/pci/isp/kernels/sc/sc_1.0/ia_css_sc.host.h
23
const struct sh_css_isp_sc_params *sc,
drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c
237
info->info.type_1.enable = binary->info->sp.enable.sc;
drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c
893
if (info->enable.sc)
drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
1222
bi->enable.sc ? "sc," : ""
drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
1876
hrt_data sc = sp_ctrl_load(id, SP_SC_REG);
drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
1878
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "SP%-1d Status reg: 0x%X\n", id, sc);
drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
1879
sc = sp_ctrl_load(id, SP_CTRL_SINK_REG);
drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
1880
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "SP%-1d Stall reg: 0x%X\n", id, sc);
drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
903
ia_css_sc_dump(FIND_DMEM_PARAMS(stream, sc), IA_CSS_DEBUG_VERBOSE);
drivers/staging/media/atomisp/pci/sh_css.c
8576
if (pipe->pipe_settings.capture.primary_binary[i].info->sp.enable.sc) {
drivers/staging/media/atomisp/pci/sh_css.c
8597
if (binary && binary->info->sp.enable.sc)
drivers/staging/media/atomisp/pci/sh_css_params.c
3301
if (binary->info->sp.enable.sc) {
drivers/staging/media/ipu3/ipu3-abi.h
1706
u8 sc;
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
234
static void stf_isp_config_sharpen(struct stfcamss *sc)
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
238
stf_isp_reg_write(sc, ISP_REG_SHARPEN0, S_DELTA(0x7) | S_WEIGHT(0xf));
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
239
stf_isp_reg_write(sc, ISP_REG_SHARPEN1, S_DELTA(0x18) | S_WEIGHT(0xf));
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
240
stf_isp_reg_write(sc, ISP_REG_SHARPEN2, S_DELTA(0x80) | S_WEIGHT(0xf));
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
241
stf_isp_reg_write(sc, ISP_REG_SHARPEN3, S_DELTA(0x100) | S_WEIGHT(0xf));
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
242
stf_isp_reg_write(sc, ISP_REG_SHARPEN4, S_DELTA(0x10) | S_WEIGHT(0xf));
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
243
stf_isp_reg_write(sc, ISP_REG_SHARPEN5, S_DELTA(0x60) | S_WEIGHT(0xf));
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
244
stf_isp_reg_write(sc, ISP_REG_SHARPEN6, S_DELTA(0x100) | S_WEIGHT(0xf));
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
245
stf_isp_reg_write(sc, ISP_REG_SHARPEN7, S_DELTA(0x190) | S_WEIGHT(0xf));
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
246
stf_isp_reg_write(sc, ISP_REG_SHARPEN8, S_DELTA(0x0) | S_WEIGHT(0xf));
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
249
stf_isp_reg_write(sc, reg_add, S_WEIGHT(0xf));
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
254
stf_isp_reg_write(sc, reg_add, S_FACTOR(0x10) | S_SLOPE(0x0));
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
258
stf_isp_reg_write(sc, ISP_REG_SHARPEN_WN,
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
260
stf_isp_reg_write(sc, ISP_REG_IUVS1, UVDIFF2(0xC0) | UVDIFF1(0x40));
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
261
stf_isp_reg_write(sc, ISP_REG_IUVS2, UVF(0xff) | UVSLOPE(0x0));
drivers/staging/media/starfive/camss/stf-isp-hw-ops.c
262
stf_isp_reg_write(sc, ISP_REG_IUVCKS1,
drivers/target/loopback/tcm_loop.c
105
struct scsi_cmnd *sc = tl_cmd->sc;
drivers/target/loopback/tcm_loop.c
112
tl_hba = *(struct tcm_loop_hba **)shost_priv(sc->device->host);
drivers/target/loopback/tcm_loop.c
113
tl_tpg = &tl_hba->tl_hba_tpgs[sc->device->id];
drivers/target/loopback/tcm_loop.c
120
set_host_byte(sc, DID_NO_CONNECT);
drivers/target/loopback/tcm_loop.c
124
set_host_byte(sc, DID_TRANSPORT_DISRUPTED);
drivers/target/loopback/tcm_loop.c
129
scmd_printk(KERN_ERR, sc,
drivers/target/loopback/tcm_loop.c
131
set_host_byte(sc, DID_ERROR);
drivers/target/loopback/tcm_loop.c
135
transfer_length = scsi_transfer_length(sc);
drivers/target/loopback/tcm_loop.c
136
if (!scsi_prot_sg_count(sc) &&
drivers/target/loopback/tcm_loop.c
137
scsi_get_prot_op(sc) != SCSI_PROT_NORMAL) {
drivers/target/loopback/tcm_loop.c
144
transfer_length = scsi_bufflen(sc);
drivers/target/loopback/tcm_loop.c
149
tl_cmd->sc->device->lun, transfer_length,
drivers/target/loopback/tcm_loop.c
150
TCM_SIMPLE_TAG, sc->sc_data_direction, 0);
drivers/target/loopback/tcm_loop.c
152
if (target_submit_prep(se_cmd, sc->cmnd, scsi_sglist(sc),
drivers/target/loopback/tcm_loop.c
153
scsi_sg_count(sc), sgl_bidi, sgl_bidi_count,
drivers/target/loopback/tcm_loop.c
154
scsi_prot_sglist(sc), scsi_prot_sg_count(sc),
drivers/target/loopback/tcm_loop.c
162
scsi_done(sc);
drivers/target/loopback/tcm_loop.c
170
struct scsi_cmnd *sc)
drivers/target/loopback/tcm_loop.c
172
struct tcm_loop_cmd *tl_cmd = scsi_cmd_priv(sc);
drivers/target/loopback/tcm_loop.c
175
__func__, sc->device->host->host_no, sc->device->id,
drivers/target/loopback/tcm_loop.c
176
sc->device->channel, sc->device->lun, sc->cmnd[0],
drivers/target/loopback/tcm_loop.c
177
scsi_bufflen(sc));
drivers/target/loopback/tcm_loop.c
180
tl_cmd->sc = sc;
drivers/target/loopback/tcm_loop.c
181
tl_cmd->sc_cmd_tag = blk_mq_unique_tag(scsi_cmd_to_rq(sc));
drivers/target/loopback/tcm_loop.c
235
static int tcm_loop_abort_task(struct scsi_cmnd *sc)
drivers/target/loopback/tcm_loop.c
244
tl_hba = *(struct tcm_loop_hba **)shost_priv(sc->device->host);
drivers/target/loopback/tcm_loop.c
245
tl_tpg = &tl_hba->tl_hba_tpgs[sc->device->id];
drivers/target/loopback/tcm_loop.c
246
ret = tcm_loop_issue_tmr(tl_tpg, sc->device->lun,
drivers/target/loopback/tcm_loop.c
247
blk_mq_unique_tag(scsi_cmd_to_rq(sc)),
drivers/target/loopback/tcm_loop.c
256
static int tcm_loop_device_reset(struct scsi_cmnd *sc)
drivers/target/loopback/tcm_loop.c
265
tl_hba = *(struct tcm_loop_hba **)shost_priv(sc->device->host);
drivers/target/loopback/tcm_loop.c
266
tl_tpg = &tl_hba->tl_hba_tpgs[sc->device->id];
drivers/target/loopback/tcm_loop.c
268
ret = tcm_loop_issue_tmr(tl_tpg, sc->device->lun,
drivers/target/loopback/tcm_loop.c
275
struct scsi_cmnd *sc = blk_mq_rq_to_pdu(rq);
drivers/target/loopback/tcm_loop.c
276
struct tcm_loop_cmd *tl_cmd = scsi_cmd_priv(sc);
drivers/target/loopback/tcm_loop.c
283
static int tcm_loop_target_reset(struct scsi_cmnd *sc)
drivers/target/loopback/tcm_loop.c
287
struct Scsi_Host *sh = sc->device->host;
drivers/target/loopback/tcm_loop.c
301
tl_tpg = &tl_hba->tl_hba_tpgs[sc->device->id];
drivers/target/loopback/tcm_loop.c
309
ret = tcm_loop_issue_tmr(tl_tpg, sc->device->lun, 0, TMR_LUN_RESET);
drivers/target/loopback/tcm_loop.c
558
struct scsi_cmnd *sc = tl_cmd->sc;
drivers/target/loopback/tcm_loop.c
561
func, sc, sc->cmnd[0]);
drivers/target/loopback/tcm_loop.c
567
memcpy(sc->sense_buffer, se_cmd->sense_buffer,
drivers/target/loopback/tcm_loop.c
569
sc->result = SAM_STAT_CHECK_CONDITION;
drivers/target/loopback/tcm_loop.c
571
sc->result = scsi_status;
drivers/target/loopback/tcm_loop.c
573
set_host_byte(sc, DID_OK);
drivers/target/loopback/tcm_loop.c
576
scsi_set_resid(sc, se_cmd->residual_count);
drivers/target/loopback/tcm_loop.c
70
struct scsi_cmnd *sc = tl_cmd->sc;
drivers/target/loopback/tcm_loop.c
75
scsi_done(sc);
drivers/target/loopback/tcm_loop.h
16
struct scsi_cmnd *sc;
drivers/ufs/core/ufshcd.c
2815
ucd_req_ptr->sc.exp_data_transfer_len = cpu_to_be32(cmd->sdb.length);
drivers/ufs/core/ufshcd.c
2818
memcpy(ucd_req_ptr->sc.cdb, cmd->cmnd, cdb_len);
drivers/ufs/core/ufshcd.c
425
trace_ufshcd_upiu(hba, str_t, header, &rq->sc.cdb,
drivers/ufs/core/ufshcd.c
505
be32_to_cpu(lrbp->ucd_req_ptr->sc.exp_data_transfer_len);
drivers/uio/uio_hv_generic.c
92
struct vmbus_channel *primary, *sc;
drivers/uio/uio_hv_generic.c
98
list_for_each_entry(sc, &primary->sc_list, sc_list)
drivers/uio/uio_hv_generic.c
99
set_event(sc, irq_state);
drivers/usb/atm/ueagle-atm.c
1000
uea_dbg(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
1007
if (uea_idma_write(sc, &bi, E4_BLOCK_INFO_SIZE))
drivers/usb/atm/ueagle-atm.c
1011
if (uea_idma_write(sc, blockoffset, blocksize))
drivers/usb/atm/ueagle-atm.c
1020
uea_err(INS_TO_USBDEV(sc), "sending DSP block %u failed\n", blockno);
drivers/usb/atm/ueagle-atm.c
1026
struct uea_softc *sc = container_of(work, struct uea_softc, task);
drivers/usb/atm/ueagle-atm.c
1027
u8 pageno = sc->pageno;
drivers/usb/atm/ueagle-atm.c
1032
uea_dbg(INS_TO_USBDEV(sc), "sending DSP page %u\n", pageno);
drivers/usb/atm/ueagle-atm.c
1036
release_firmware(sc->dsp_firm);
drivers/usb/atm/ueagle-atm.c
1037
sc->dsp_firm = NULL;
drivers/usb/atm/ueagle-atm.c
1040
if (sc->dsp_firm == NULL && request_dsp(sc) < 0)
drivers/usb/atm/ueagle-atm.c
1043
p = (struct l1_code *) sc->dsp_firm->data;
drivers/usb/atm/ueagle-atm.c
1045
uea_err(INS_TO_USBDEV(sc), "invalid DSP "
drivers/usb/atm/ueagle-atm.c
1051
__uea_load_page_e4(sc, pageno, 0);
drivers/usb/atm/ueagle-atm.c
1055
uea_dbg(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
1060
__uea_load_page_e4(sc, i, 1);
drivers/usb/atm/ueagle-atm.c
1063
uea_dbg(INS_TO_USBDEV(sc) , "sending start bi\n");
drivers/usb/atm/ueagle-atm.c
1073
if (uea_idma_write(sc, &bi, E4_BLOCK_INFO_SIZE))
drivers/usb/atm/ueagle-atm.c
1074
uea_err(INS_TO_USBDEV(sc), "sending DSP start bi failed\n");
drivers/usb/atm/ueagle-atm.c
1077
static inline void wake_up_cmv_ack(struct uea_softc *sc)
drivers/usb/atm/ueagle-atm.c
1079
BUG_ON(sc->cmv_ack);
drivers/usb/atm/ueagle-atm.c
1080
sc->cmv_ack = 1;
drivers/usb/atm/ueagle-atm.c
1081
wake_up(&sc->sync_q);
drivers/usb/atm/ueagle-atm.c
1084
static inline int wait_cmv_ack(struct uea_softc *sc)
drivers/usb/atm/ueagle-atm.c
1086
int ret = uea_wait(sc, sc->cmv_ack , ACK_TIMEOUT);
drivers/usb/atm/ueagle-atm.c
1088
sc->cmv_ack = 0;
drivers/usb/atm/ueagle-atm.c
1090
uea_dbg(INS_TO_USBDEV(sc), "wait_event_timeout : %d ms\n",
drivers/usb/atm/ueagle-atm.c
1101
static int uea_request(struct uea_softc *sc,
drivers/usb/atm/ueagle-atm.c
1109
uea_err(INS_TO_USBDEV(sc), "can't allocate xfer_buff\n");
drivers/usb/atm/ueagle-atm.c
1113
ret = usb_control_msg(sc->usb_dev, usb_sndctrlpipe(sc->usb_dev, 0),
drivers/usb/atm/ueagle-atm.c
1120
uea_err(INS_TO_USBDEV(sc), "usb_control_msg error %d\n", ret);
drivers/usb/atm/ueagle-atm.c
1125
uea_err(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
1134
static int uea_cmv_e1(struct uea_softc *sc,
drivers/usb/atm/ueagle-atm.c
1140
uea_enters(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
1141
uea_vdbg(INS_TO_USBDEV(sc), "Function : %d-%d, Address : %c%c%c%c, "
drivers/usb/atm/ueagle-atm.c
1150
sc->cmv_dsc.e1.function = function | 0x2;
drivers/usb/atm/ueagle-atm.c
1151
sc->cmv_dsc.e1.idx++;
drivers/usb/atm/ueagle-atm.c
1152
sc->cmv_dsc.e1.address = address;
drivers/usb/atm/ueagle-atm.c
1153
sc->cmv_dsc.e1.offset = offset;
drivers/usb/atm/ueagle-atm.c
1158
cmv.wIndex = cpu_to_le16(sc->cmv_dsc.e1.idx);
drivers/usb/atm/ueagle-atm.c
1163
ret = uea_request(sc, UEA_E1_SET_BLOCK, UEA_MPTX_START,
drivers/usb/atm/ueagle-atm.c
1167
ret = wait_cmv_ack(sc);
drivers/usb/atm/ueagle-atm.c
1168
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
1172
static int uea_cmv_e4(struct uea_softc *sc,
drivers/usb/atm/ueagle-atm.c
1178
uea_enters(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
1181
uea_vdbg(INS_TO_USBDEV(sc), "Function : %d-%d, Group : 0x%04x, "
drivers/usb/atm/ueagle-atm.c
1187
sc->cmv_dsc.e4.function = function | (0x1 << 4);
drivers/usb/atm/ueagle-atm.c
1188
sc->cmv_dsc.e4.offset = offset;
drivers/usb/atm/ueagle-atm.c
1189
sc->cmv_dsc.e4.address = address;
drivers/usb/atm/ueagle-atm.c
1190
sc->cmv_dsc.e4.group = group;
drivers/usb/atm/ueagle-atm.c
1198
ret = uea_request(sc, UEA_E4_SET_BLOCK, UEA_MPTX_START,
drivers/usb/atm/ueagle-atm.c
1202
ret = wait_cmv_ack(sc);
drivers/usb/atm/ueagle-atm.c
1203
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
1207
static inline int uea_read_cmv_e1(struct uea_softc *sc,
drivers/usb/atm/ueagle-atm.c
1210
int ret = uea_cmv_e1(sc, E1_MAKEFUNCTION(E1_MEMACCESS, E1_REQUESTREAD),
drivers/usb/atm/ueagle-atm.c
1213
uea_err(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
1216
*data = sc->data;
drivers/usb/atm/ueagle-atm.c
1221
static inline int uea_read_cmv_e4(struct uea_softc *sc,
drivers/usb/atm/ueagle-atm.c
1224
int ret = uea_cmv_e4(sc, E4_MAKEFUNCTION(E4_MEMACCESS,
drivers/usb/atm/ueagle-atm.c
1228
uea_err(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
1231
*data = sc->data;
drivers/usb/atm/ueagle-atm.c
1234
*(data + 1) = sc->data1;
drivers/usb/atm/ueagle-atm.c
1239
static inline int uea_write_cmv_e1(struct uea_softc *sc,
drivers/usb/atm/ueagle-atm.c
1242
int ret = uea_cmv_e1(sc, E1_MAKEFUNCTION(E1_MEMACCESS, E1_REQUESTWRITE),
drivers/usb/atm/ueagle-atm.c
1245
uea_err(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
1251
static inline int uea_write_cmv_e4(struct uea_softc *sc,
drivers/usb/atm/ueagle-atm.c
1254
int ret = uea_cmv_e4(sc, E4_MAKEFUNCTION(E4_MEMACCESS,
drivers/usb/atm/ueagle-atm.c
1258
uea_err(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
1264
static void uea_set_bulk_timeout(struct uea_softc *sc, u32 dsrate)
drivers/usb/atm/ueagle-atm.c
1275
if (UEA_CHIP_VERSION(sc) == ADI930 ||
drivers/usb/atm/ueagle-atm.c
1276
altsetting[sc->modem_index] > 0 ||
drivers/usb/atm/ueagle-atm.c
1277
sc->stats.phy.dsrate == dsrate)
drivers/usb/atm/ueagle-atm.c
1282
ret = uea_request(sc, UEA_SET_TIMEOUT, timeout, 0, NULL);
drivers/usb/atm/ueagle-atm.c
1283
uea_info(INS_TO_USBDEV(sc), "setting new timeout %d%s\n",
drivers/usb/atm/ueagle-atm.c
1293
static int uea_stat_e1(struct uea_softc *sc)
drivers/usb/atm/ueagle-atm.c
1298
uea_enters(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
1299
data = sc->stats.phy.state;
drivers/usb/atm/ueagle-atm.c
1301
ret = uea_read_cmv_e1(sc, E1_SA_STAT, 0, &sc->stats.phy.state);
drivers/usb/atm/ueagle-atm.c
1305
switch (GET_STATUS(sc->stats.phy.state)) {
drivers/usb/atm/ueagle-atm.c
1307
uea_dbg(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
1312
uea_dbg(INS_TO_USBDEV(sc), "modem initializing\n");
drivers/usb/atm/ueagle-atm.c
1316
uea_vdbg(INS_TO_USBDEV(sc), "modem operational\n");
drivers/usb/atm/ueagle-atm.c
1320
uea_info(INS_TO_USBDEV(sc), "modem synchronization failed"
drivers/usb/atm/ueagle-atm.c
1325
uea_warn(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
1330
uea_info(INS_TO_USBDEV(sc), "modem in fast-retain mode\n");
drivers/usb/atm/ueagle-atm.c
1333
uea_err(INS_TO_USBDEV(sc), "modem invalid SW mode %d\n",
drivers/usb/atm/ueagle-atm.c
1334
GET_STATUS(sc->stats.phy.state));
drivers/usb/atm/ueagle-atm.c
1339
uea_request(sc, UEA_SET_MODE, UEA_LOOPBACK_OFF, 0, NULL);
drivers/usb/atm/ueagle-atm.c
1340
uea_info(INS_TO_USBDEV(sc), "modem operational\n");
drivers/usb/atm/ueagle-atm.c
1345
release_firmware(sc->dsp_firm);
drivers/usb/atm/ueagle-atm.c
1346
sc->dsp_firm = NULL;
drivers/usb/atm/ueagle-atm.c
1355
wake_up(&sc->sync_q);
drivers/usb/atm/ueagle-atm.c
1357
ret = uea_read_cmv_e1(sc, E1_SA_DIAG, 2, &sc->stats.phy.flags);
drivers/usb/atm/ueagle-atm.c
1360
sc->stats.phy.mflags |= sc->stats.phy.flags;
drivers/usb/atm/ueagle-atm.c
1365
if (sc->stats.phy.flags) {
drivers/usb/atm/ueagle-atm.c
1366
uea_dbg(INS_TO_USBDEV(sc), "Stat flag = 0x%x\n",
drivers/usb/atm/ueagle-atm.c
1367
sc->stats.phy.flags);
drivers/usb/atm/ueagle-atm.c
1371
ret = uea_read_cmv_e1(sc, E1_SA_RATE, 0, &data);
drivers/usb/atm/ueagle-atm.c
1375
uea_set_bulk_timeout(sc, (data >> 16) * 32);
drivers/usb/atm/ueagle-atm.c
1376
sc->stats.phy.dsrate = (data >> 16) * 32;
drivers/usb/atm/ueagle-atm.c
1377
sc->stats.phy.usrate = (data & 0xffff) * 32;
drivers/usb/atm/ueagle-atm.c
1378
UPDATE_ATM_STAT(link_rate, sc->stats.phy.dsrate * 1000 / 424);
drivers/usb/atm/ueagle-atm.c
1380
ret = uea_read_cmv_e1(sc, E1_SA_DIAG, 23, &data);
drivers/usb/atm/ueagle-atm.c
1383
sc->stats.phy.dsattenuation = (data & 0xff) / 2;
drivers/usb/atm/ueagle-atm.c
1385
ret = uea_read_cmv_e1(sc, E1_SA_DIAG, 47, &data);
drivers/usb/atm/ueagle-atm.c
1388
sc->stats.phy.usattenuation = (data & 0xff) / 2;
drivers/usb/atm/ueagle-atm.c
1390
ret = uea_read_cmv_e1(sc, E1_SA_DIAG, 25, &sc->stats.phy.dsmargin);
drivers/usb/atm/ueagle-atm.c
1394
ret = uea_read_cmv_e1(sc, E1_SA_DIAG, 49, &sc->stats.phy.usmargin);
drivers/usb/atm/ueagle-atm.c
1398
ret = uea_read_cmv_e1(sc, E1_SA_DIAG, 51, &sc->stats.phy.rxflow);
drivers/usb/atm/ueagle-atm.c
1402
ret = uea_read_cmv_e1(sc, E1_SA_DIAG, 52, &sc->stats.phy.txflow);
drivers/usb/atm/ueagle-atm.c
1406
ret = uea_read_cmv_e1(sc, E1_SA_DIAG, 54, &sc->stats.phy.dsunc);
drivers/usb/atm/ueagle-atm.c
1411
ret = uea_read_cmv_e1(sc, E1_SA_DIAG, 58, &sc->stats.phy.usunc);
drivers/usb/atm/ueagle-atm.c
1415
ret = uea_read_cmv_e1(sc, E1_SA_DIAG, 53, &sc->stats.phy.dscorr);
drivers/usb/atm/ueagle-atm.c
1420
ret = uea_read_cmv_e1(sc, E1_SA_DIAG, 57, &sc->stats.phy.uscorr);
drivers/usb/atm/ueagle-atm.c
1424
ret = uea_read_cmv_e1(sc, E1_SA_INFO, 8, &sc->stats.phy.vidco);
drivers/usb/atm/ueagle-atm.c
1428
ret = uea_read_cmv_e1(sc, E1_SA_INFO, 13, &sc->stats.phy.vidcpe);
drivers/usb/atm/ueagle-atm.c
1435
static int uea_stat_e4(struct uea_softc *sc)
drivers/usb/atm/ueagle-atm.c
1441
uea_enters(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
1442
data = sc->stats.phy.state;
drivers/usb/atm/ueagle-atm.c
1445
ret = uea_read_cmv_e4(sc, 1, E4_SA_STAT, 0, 0, &sc->stats.phy.state);
drivers/usb/atm/ueagle-atm.c
1449
switch (sc->stats.phy.state) {
drivers/usb/atm/ueagle-atm.c
1454
uea_dbg(INS_TO_USBDEV(sc), "modem not yet "
drivers/usb/atm/ueagle-atm.c
1461
uea_dbg(INS_TO_USBDEV(sc), "modem initializing\n");
drivers/usb/atm/ueagle-atm.c
1464
uea_info(INS_TO_USBDEV(sc), "modem synchronization "
drivers/usb/atm/ueagle-atm.c
1470
uea_warn(INS_TO_USBDEV(sc), "unknown state: %x\n",
drivers/usb/atm/ueagle-atm.c
1471
sc->stats.phy.state);
drivers/usb/atm/ueagle-atm.c
1476
uea_request(sc, UEA_SET_MODE, UEA_LOOPBACK_OFF, 0, NULL);
drivers/usb/atm/ueagle-atm.c
1477
uea_info(INS_TO_USBDEV(sc), "modem operational\n");
drivers/usb/atm/ueagle-atm.c
1482
release_firmware(sc->dsp_firm);
drivers/usb/atm/ueagle-atm.c
1483
sc->dsp_firm = NULL;
drivers/usb/atm/ueagle-atm.c
1492
wake_up(&sc->sync_q);
drivers/usb/atm/ueagle-atm.c
1499
ret = uea_read_cmv_e4(sc, 1, E4_SA_DIAG, 0, 0, &sc->stats.phy.flags);
drivers/usb/atm/ueagle-atm.c
1502
sc->stats.phy.mflags |= sc->stats.phy.flags;
drivers/usb/atm/ueagle-atm.c
1507
if (sc->stats.phy.flags) {
drivers/usb/atm/ueagle-atm.c
1508
uea_dbg(INS_TO_USBDEV(sc), "Stat flag = 0x%x\n",
drivers/usb/atm/ueagle-atm.c
1509
sc->stats.phy.flags);
drivers/usb/atm/ueagle-atm.c
1510
if (sc->stats.phy.flags & 1) /* delineation LOSS */
drivers/usb/atm/ueagle-atm.c
1512
if (sc->stats.phy.flags & 0x4000) /* Reset Flag */
drivers/usb/atm/ueagle-atm.c
1518
ret = uea_read_cmv_e4(sc, 4, E4_SA_RATE, 0, 0, tmp_arr);
drivers/usb/atm/ueagle-atm.c
1522
sc->stats.phy.usrate = data / 1000;
drivers/usb/atm/ueagle-atm.c
1524
ret = uea_read_cmv_e4(sc, 4, E4_SA_RATE, 1, 0, tmp_arr);
drivers/usb/atm/ueagle-atm.c
1528
uea_set_bulk_timeout(sc, data / 1000);
drivers/usb/atm/ueagle-atm.c
1529
sc->stats.phy.dsrate = data / 1000;
drivers/usb/atm/ueagle-atm.c
1530
UPDATE_ATM_STAT(link_rate, sc->stats.phy.dsrate * 1000 / 424);
drivers/usb/atm/ueagle-atm.c
1532
ret = uea_read_cmv_e4(sc, 1, E4_SA_INFO, 68, 1, &data);
drivers/usb/atm/ueagle-atm.c
1535
sc->stats.phy.dsattenuation = data / 10;
drivers/usb/atm/ueagle-atm.c
1537
ret = uea_read_cmv_e4(sc, 1, E4_SA_INFO, 69, 1, &data);
drivers/usb/atm/ueagle-atm.c
1540
sc->stats.phy.usattenuation = data / 10;
drivers/usb/atm/ueagle-atm.c
1542
ret = uea_read_cmv_e4(sc, 1, E4_SA_INFO, 68, 3, &data);
drivers/usb/atm/ueagle-atm.c
1545
sc->stats.phy.dsmargin = data / 2;
drivers/usb/atm/ueagle-atm.c
1547
ret = uea_read_cmv_e4(sc, 1, E4_SA_INFO, 69, 3, &data);
drivers/usb/atm/ueagle-atm.c
1550
sc->stats.phy.usmargin = data / 10;
drivers/usb/atm/ueagle-atm.c
1555
static void cmvs_file_name(struct uea_softc *sc, char *const cmv_name, int ver)
drivers/usb/atm/ueagle-atm.c
1562
if (cmv_file[sc->modem_index] == NULL) {
drivers/usb/atm/ueagle-atm.c
1563
if (UEA_CHIP_VERSION(sc) == ADI930)
drivers/usb/atm/ueagle-atm.c
1565
else if (UEA_CHIP_VERSION(sc) == EAGLE_IV)
drivers/usb/atm/ueagle-atm.c
1570
file_arr[4] = IS_ISDN(sc) ? 'i' : 'p';
drivers/usb/atm/ueagle-atm.c
1573
file = cmv_file[sc->modem_index];
drivers/usb/atm/ueagle-atm.c
1582
static int request_cmvs_old(struct uea_softc *sc,
drivers/usb/atm/ueagle-atm.c
1589
cmvs_file_name(sc, cmv_name, 1);
drivers/usb/atm/ueagle-atm.c
1590
ret = request_firmware(fw, cmv_name, &sc->usb_dev->dev);
drivers/usb/atm/ueagle-atm.c
1592
uea_err(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
1610
uea_err(INS_TO_USBDEV(sc), "firmware %s is corrupted\n", cmv_name);
drivers/usb/atm/ueagle-atm.c
1615
static int request_cmvs(struct uea_softc *sc,
drivers/usb/atm/ueagle-atm.c
1623
cmvs_file_name(sc, cmv_name, 2);
drivers/usb/atm/ueagle-atm.c
1624
ret = request_firmware(fw, cmv_name, &sc->usb_dev->dev);
drivers/usb/atm/ueagle-atm.c
1628
uea_warn(INS_TO_USBDEV(sc), "requesting "
drivers/usb/atm/ueagle-atm.c
1631
return request_cmvs_old(sc, cmvs, fw);
drivers/usb/atm/ueagle-atm.c
1633
uea_err(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
1643
uea_warn(INS_TO_USBDEV(sc), "firmware %s is corrupted,"
drivers/usb/atm/ueagle-atm.c
1646
return request_cmvs_old(sc, cmvs, fw);
drivers/usb/atm/ueagle-atm.c
1671
uea_err(INS_TO_USBDEV(sc), "firmware %s is corrupted\n", cmv_name);
drivers/usb/atm/ueagle-atm.c
1676
static int uea_send_cmvs_e1(struct uea_softc *sc)
drivers/usb/atm/ueagle-atm.c
1684
ret = uea_write_cmv_e1(sc, E1_SA_CNTL, 0, 1);
drivers/usb/atm/ueagle-atm.c
1689
ret = uea_read_cmv_e1(sc, E1_SA_INFO, 10, &sc->stats.phy.firmid);
drivers/usb/atm/ueagle-atm.c
1692
uea_info(INS_TO_USBDEV(sc), "ATU-R firmware version : %x\n",
drivers/usb/atm/ueagle-atm.c
1693
sc->stats.phy.firmid);
drivers/usb/atm/ueagle-atm.c
1696
ret = len = request_cmvs(sc, &cmvs_ptr, &cmvs_fw, &ver);
drivers/usb/atm/ueagle-atm.c
1704
uea_warn(INS_TO_USBDEV(sc), "use deprecated cmvs version, "
drivers/usb/atm/ueagle-atm.c
1708
ret = uea_write_cmv_e1(sc,
drivers/usb/atm/ueagle-atm.c
1719
ret = uea_write_cmv_e1(sc,
drivers/usb/atm/ueagle-atm.c
1728
uea_err(INS_TO_USBDEV(sc), "bad cmvs version %d\n", ver);
drivers/usb/atm/ueagle-atm.c
1733
ret = uea_write_cmv_e1(sc, E1_SA_CNTL, 0, 2);
drivers/usb/atm/ueagle-atm.c
1734
uea_vdbg(INS_TO_USBDEV(sc), "Entering in R-ACT-REQ state\n");
drivers/usb/atm/ueagle-atm.c
1735
uea_info(INS_TO_USBDEV(sc), "modem started, waiting "
drivers/usb/atm/ueagle-atm.c
1742
static int uea_send_cmvs_e4(struct uea_softc *sc)
drivers/usb/atm/ueagle-atm.c
1750
ret = uea_write_cmv_e4(sc, 1, E4_SA_CNTL, 0, 0, 1);
drivers/usb/atm/ueagle-atm.c
1756
ret = uea_read_cmv_e4(sc, 2, E4_SA_INFO, 55, 0, &sc->stats.phy.firmid);
drivers/usb/atm/ueagle-atm.c
1759
uea_info(INS_TO_USBDEV(sc), "ATU-R firmware version : %x\n",
drivers/usb/atm/ueagle-atm.c
1760
sc->stats.phy.firmid);
drivers/usb/atm/ueagle-atm.c
1764
ret = len = request_cmvs(sc, &cmvs_ptr, &cmvs_fw, &ver);
drivers/usb/atm/ueagle-atm.c
1773
ret = uea_write_cmv_e4(sc, 1,
drivers/usb/atm/ueagle-atm.c
1783
uea_err(INS_TO_USBDEV(sc), "bad cmvs version %d\n", ver);
drivers/usb/atm/ueagle-atm.c
1788
ret = uea_write_cmv_e4(sc, 1, E4_SA_CNTL, 0, 0, 2);
drivers/usb/atm/ueagle-atm.c
1789
uea_vdbg(INS_TO_USBDEV(sc), "Entering in R-ACT-REQ state\n");
drivers/usb/atm/ueagle-atm.c
1790
uea_info(INS_TO_USBDEV(sc), "modem started, waiting "
drivers/usb/atm/ueagle-atm.c
1803
static int uea_start_reset(struct uea_softc *sc)
drivers/usb/atm/ueagle-atm.c
1808
uea_enters(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
1809
uea_info(INS_TO_USBDEV(sc), "(re)booting started\n");
drivers/usb/atm/ueagle-atm.c
1812
sc->booting = 1;
drivers/usb/atm/ueagle-atm.c
1817
sc->cmv_ack = 0;
drivers/usb/atm/ueagle-atm.c
1821
memset(&sc->stats, 0, sizeof(struct uea_stats));
drivers/usb/atm/ueagle-atm.c
1824
uea_request(sc, UEA_SET_MODE, UEA_LOOPBACK_ON, 0, NULL);
drivers/usb/atm/ueagle-atm.c
1825
uea_request(sc, UEA_SET_MODE, UEA_BOOT_IDMA, 0, NULL);
drivers/usb/atm/ueagle-atm.c
1828
uea_request(sc, UEA_SET_MODE, UEA_START_RESET, 0, NULL);
drivers/usb/atm/ueagle-atm.c
1831
ret = uea_wait(sc, 0, msecs_to_jiffies(100));
drivers/usb/atm/ueagle-atm.c
1836
uea_request(sc, UEA_SET_MODE, UEA_END_RESET, 0, NULL);
drivers/usb/atm/ueagle-atm.c
1838
if (UEA_CHIP_VERSION(sc) != EAGLE_IV) {
drivers/usb/atm/ueagle-atm.c
1840
uea_request(sc, UEA_SET_2183_DATA, UEA_MPTX_MAILBOX, 2, &zero);
drivers/usb/atm/ueagle-atm.c
1841
uea_request(sc, UEA_SET_2183_DATA, UEA_MPRX_MAILBOX, 2, &zero);
drivers/usb/atm/ueagle-atm.c
1842
uea_request(sc, UEA_SET_2183_DATA, UEA_SWAP_MAILBOX, 2, &zero);
drivers/usb/atm/ueagle-atm.c
1845
ret = uea_wait(sc, 0, msecs_to_jiffies(1000));
drivers/usb/atm/ueagle-atm.c
1849
if (UEA_CHIP_VERSION(sc) == EAGLE_IV)
drivers/usb/atm/ueagle-atm.c
1850
sc->cmv_dsc.e4.function = E4_MAKEFUNCTION(E4_ADSLDIRECTIVE,
drivers/usb/atm/ueagle-atm.c
1853
sc->cmv_dsc.e1.function = E1_MAKEFUNCTION(E1_ADSLDIRECTIVE,
drivers/usb/atm/ueagle-atm.c
1857
sc->booting = 0;
drivers/usb/atm/ueagle-atm.c
1860
sc->pageno = 0;
drivers/usb/atm/ueagle-atm.c
1861
sc->ovl = 0;
drivers/usb/atm/ueagle-atm.c
1862
schedule_work(&sc->task);
drivers/usb/atm/ueagle-atm.c
1865
ret = wait_cmv_ack(sc);
drivers/usb/atm/ueagle-atm.c
1869
uea_vdbg(INS_TO_USBDEV(sc), "Ready CMV received\n");
drivers/usb/atm/ueagle-atm.c
1871
ret = sc->send_cmvs(sc);
drivers/usb/atm/ueagle-atm.c
1875
sc->reset = 0;
drivers/usb/atm/ueagle-atm.c
1876
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
1888
struct uea_softc *sc = data;
drivers/usb/atm/ueagle-atm.c
1892
uea_enters(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
1894
if (ret < 0 || sc->reset)
drivers/usb/atm/ueagle-atm.c
1895
ret = uea_start_reset(sc);
drivers/usb/atm/ueagle-atm.c
1897
ret = sc->stat(sc);
drivers/usb/atm/ueagle-atm.c
1899
uea_wait(sc, 0, msecs_to_jiffies(1000));
drivers/usb/atm/ueagle-atm.c
1901
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
1906
static int load_XILINX_firmware(struct uea_softc *sc)
drivers/usb/atm/ueagle-atm.c
1914
uea_enters(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
1916
ret = request_firmware(&fw_entry, fw_name, &sc->usb_dev->dev);
drivers/usb/atm/ueagle-atm.c
1918
uea_err(INS_TO_USBDEV(sc), "firmware %s is not available\n",
drivers/usb/atm/ueagle-atm.c
1926
uea_err(INS_TO_USBDEV(sc), "firmware %s is corrupted\n",
drivers/usb/atm/ueagle-atm.c
1933
ret = uea_request(sc, 0xe, 0, ln, pfw + u);
drivers/usb/atm/ueagle-atm.c
1935
uea_err(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
1942
ret = uea_request(sc, 0xe, 1, 0, NULL);
drivers/usb/atm/ueagle-atm.c
1944
uea_err(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
1951
ret = uea_send_modem_cmd(sc->usb_dev, 0xe, 1, &value);
drivers/usb/atm/ueagle-atm.c
1953
uea_err(sc->usb_dev, "elsa de-assert failed with error"
drivers/usb/atm/ueagle-atm.c
1959
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
1964
static void uea_dispatch_cmv_e1(struct uea_softc *sc, struct intr_pkt *intr)
drivers/usb/atm/ueagle-atm.c
1966
struct cmv_dsc_e1 *dsc = &sc->cmv_dsc.e1;
drivers/usb/atm/ueagle-atm.c
1969
uea_enters(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
1980
if (UEA_CHIP_VERSION(sc) == ADI930
drivers/usb/atm/ueagle-atm.c
1992
wake_up_cmv_ack(sc);
drivers/usb/atm/ueagle-atm.c
1993
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2003
sc->data = get_unaligned_le32(&cmv->dwData);
drivers/usb/atm/ueagle-atm.c
2004
sc->data = sc->data << 16 | sc->data >> 16;
drivers/usb/atm/ueagle-atm.c
2006
wake_up_cmv_ack(sc);
drivers/usb/atm/ueagle-atm.c
2007
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2011
uea_err(INS_TO_USBDEV(sc), "unexpected cmv received, "
drivers/usb/atm/ueagle-atm.c
2015
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2019
uea_err(INS_TO_USBDEV(sc), "invalid cmv received, "
drivers/usb/atm/ueagle-atm.c
2022
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2026
static void uea_dispatch_cmv_e4(struct uea_softc *sc, struct intr_pkt *intr)
drivers/usb/atm/ueagle-atm.c
2028
struct cmv_dsc_e4 *dsc = &sc->cmv_dsc.e4;
drivers/usb/atm/ueagle-atm.c
2031
uea_enters(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2032
uea_dbg(INS_TO_USBDEV(sc), "cmv %x %x %x %x %x %x\n",
drivers/usb/atm/ueagle-atm.c
2042
wake_up_cmv_ack(sc);
drivers/usb/atm/ueagle-atm.c
2043
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2053
sc->data = be32_to_cpu(cmv->dwData[0]);
drivers/usb/atm/ueagle-atm.c
2054
sc->data1 = be32_to_cpu(cmv->dwData[1]);
drivers/usb/atm/ueagle-atm.c
2055
wake_up_cmv_ack(sc);
drivers/usb/atm/ueagle-atm.c
2056
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2060
uea_err(INS_TO_USBDEV(sc), "unexpected cmv received, "
drivers/usb/atm/ueagle-atm.c
2064
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2068
static void uea_schedule_load_page_e1(struct uea_softc *sc,
drivers/usb/atm/ueagle-atm.c
2071
sc->pageno = intr->e1_bSwapPageNo;
drivers/usb/atm/ueagle-atm.c
2072
sc->ovl = intr->e1_bOvl >> 4 | intr->e1_bOvl << 4;
drivers/usb/atm/ueagle-atm.c
2073
schedule_work(&sc->task);
drivers/usb/atm/ueagle-atm.c
2076
static void uea_schedule_load_page_e4(struct uea_softc *sc,
drivers/usb/atm/ueagle-atm.c
2079
sc->pageno = intr->e4_bSwapPageNo;
drivers/usb/atm/ueagle-atm.c
2080
schedule_work(&sc->task);
drivers/usb/atm/ueagle-atm.c
2088
struct uea_softc *sc = urb->context;
drivers/usb/atm/ueagle-atm.c
2092
uea_enters(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2095
uea_err(INS_TO_USBDEV(sc), "uea_intr() failed with %d\n",
drivers/usb/atm/ueagle-atm.c
2101
if (intr->bType != 0x08 || sc->booting) {
drivers/usb/atm/ueagle-atm.c
2102
uea_err(INS_TO_USBDEV(sc), "wrong interrupt\n");
drivers/usb/atm/ueagle-atm.c
2108
sc->schedule_load_page(sc, intr);
drivers/usb/atm/ueagle-atm.c
2112
sc->dispatch_cmv(sc, intr);
drivers/usb/atm/ueagle-atm.c
2116
uea_err(INS_TO_USBDEV(sc), "unknown interrupt %u\n",
drivers/usb/atm/ueagle-atm.c
2121
usb_submit_urb(sc->urb_int, GFP_ATOMIC);
drivers/usb/atm/ueagle-atm.c
2127
static int uea_boot(struct uea_softc *sc, struct usb_interface *intf)
drivers/usb/atm/ueagle-atm.c
2133
uea_enters(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2135
if (UEA_CHIP_VERSION(sc) == EAGLE_IV) {
drivers/usb/atm/ueagle-atm.c
2137
sc->dispatch_cmv = uea_dispatch_cmv_e4;
drivers/usb/atm/ueagle-atm.c
2138
sc->schedule_load_page = uea_schedule_load_page_e4;
drivers/usb/atm/ueagle-atm.c
2139
sc->stat = uea_stat_e4;
drivers/usb/atm/ueagle-atm.c
2140
sc->send_cmvs = uea_send_cmvs_e4;
drivers/usb/atm/ueagle-atm.c
2141
INIT_WORK(&sc->task, uea_load_page_e4);
drivers/usb/atm/ueagle-atm.c
2144
sc->dispatch_cmv = uea_dispatch_cmv_e1;
drivers/usb/atm/ueagle-atm.c
2145
sc->schedule_load_page = uea_schedule_load_page_e1;
drivers/usb/atm/ueagle-atm.c
2146
sc->stat = uea_stat_e1;
drivers/usb/atm/ueagle-atm.c
2147
sc->send_cmvs = uea_send_cmvs_e1;
drivers/usb/atm/ueagle-atm.c
2148
INIT_WORK(&sc->task, uea_load_page_e1);
drivers/usb/atm/ueagle-atm.c
2151
init_waitqueue_head(&sc->sync_q);
drivers/usb/atm/ueagle-atm.c
2153
if (UEA_CHIP_VERSION(sc) == ADI930)
drivers/usb/atm/ueagle-atm.c
2154
load_XILINX_firmware(sc);
drivers/usb/atm/ueagle-atm.c
2165
sc->urb_int = usb_alloc_urb(0, GFP_KERNEL);
drivers/usb/atm/ueagle-atm.c
2166
if (!sc->urb_int)
drivers/usb/atm/ueagle-atm.c
2169
usb_fill_int_urb(sc->urb_int, sc->usb_dev,
drivers/usb/atm/ueagle-atm.c
2170
usb_rcvintpipe(sc->usb_dev, UEA_INTR_PIPE),
drivers/usb/atm/ueagle-atm.c
2171
intr, size, uea_intr, sc,
drivers/usb/atm/ueagle-atm.c
2174
ret = usb_submit_urb(sc->urb_int, GFP_KERNEL);
drivers/usb/atm/ueagle-atm.c
2176
uea_err(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
2184
sc->kthread = kthread_create(uea_kthread, sc, "ueagle-atm");
drivers/usb/atm/ueagle-atm.c
2185
if (IS_ERR(sc->kthread)) {
drivers/usb/atm/ueagle-atm.c
2186
uea_err(INS_TO_USBDEV(sc), "failed to create thread\n");
drivers/usb/atm/ueagle-atm.c
2187
ret = PTR_ERR(sc->kthread);
drivers/usb/atm/ueagle-atm.c
2191
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2195
usb_kill_urb(sc->urb_int);
drivers/usb/atm/ueagle-atm.c
2197
usb_free_urb(sc->urb_int);
drivers/usb/atm/ueagle-atm.c
2198
sc->urb_int = NULL;
drivers/usb/atm/ueagle-atm.c
2201
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2208
static void uea_stop(struct uea_softc *sc)
drivers/usb/atm/ueagle-atm.c
2211
uea_enters(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2212
ret = kthread_stop(sc->kthread);
drivers/usb/atm/ueagle-atm.c
2213
uea_dbg(INS_TO_USBDEV(sc), "kthread finish with status %d\n", ret);
drivers/usb/atm/ueagle-atm.c
2215
uea_request(sc, UEA_SET_MODE, UEA_LOOPBACK_ON, 0, NULL);
drivers/usb/atm/ueagle-atm.c
2217
usb_kill_urb(sc->urb_int);
drivers/usb/atm/ueagle-atm.c
2218
kfree(sc->urb_int->transfer_buffer);
drivers/usb/atm/ueagle-atm.c
2219
usb_free_urb(sc->urb_int);
drivers/usb/atm/ueagle-atm.c
2222
flush_work(&sc->task);
drivers/usb/atm/ueagle-atm.c
2224
release_firmware(sc->dsp_firm);
drivers/usb/atm/ueagle-atm.c
2225
uea_leaves(INS_TO_USBDEV(sc));
drivers/usb/atm/ueagle-atm.c
2249
struct uea_softc *sc;
drivers/usb/atm/ueagle-atm.c
2252
sc = dev_to_uea(dev);
drivers/usb/atm/ueagle-atm.c
2253
if (!sc)
drivers/usb/atm/ueagle-atm.c
2255
ret = sysfs_emit(buf, "%08x\n", sc->stats.phy.state);
drivers/usb/atm/ueagle-atm.c
2265
struct uea_softc *sc;
drivers/usb/atm/ueagle-atm.c
2268
sc = dev_to_uea(dev);
drivers/usb/atm/ueagle-atm.c
2269
if (!sc)
drivers/usb/atm/ueagle-atm.c
2271
sc->reset = 1;
drivers/usb/atm/ueagle-atm.c
2285
struct uea_softc *sc;
drivers/usb/atm/ueagle-atm.c
2288
sc = dev_to_uea(dev);
drivers/usb/atm/ueagle-atm.c
2289
if (!sc)
drivers/usb/atm/ueagle-atm.c
2292
if (UEA_CHIP_VERSION(sc) == EAGLE_IV) {
drivers/usb/atm/ueagle-atm.c
2293
switch (sc->stats.phy.state) {
drivers/usb/atm/ueagle-atm.c
2317
modem_state = GET_STATUS(sc->stats.phy.state);
drivers/usb/atm/ueagle-atm.c
2347
struct uea_softc *sc;
drivers/usb/atm/ueagle-atm.c
2351
sc = dev_to_uea(dev);
drivers/usb/atm/ueagle-atm.c
2352
if (!sc)
drivers/usb/atm/ueagle-atm.c
2355
if (UEA_CHIP_VERSION(sc) == EAGLE_IV) {
drivers/usb/atm/ueagle-atm.c
2356
if (sc->stats.phy.flags & 0x4000)
drivers/usb/atm/ueagle-atm.c
2358
else if (sc->stats.phy.flags & 0x0001)
drivers/usb/atm/ueagle-atm.c
2361
if (sc->stats.phy.flags & 0x0C00)
drivers/usb/atm/ueagle-atm.c
2363
else if (sc->stats.phy.flags & 0x0030)
drivers/usb/atm/ueagle-atm.c
2381
struct uea_softc *sc; \
drivers/usb/atm/ueagle-atm.c
2384
sc = dev_to_uea(dev); \
drivers/usb/atm/ueagle-atm.c
2385
if (!sc) \
drivers/usb/atm/ueagle-atm.c
2387
ret = sysfs_emit(buf, "%08x\n", sc->stats.phy.name); \
drivers/usb/atm/ueagle-atm.c
2389
sc->stats.phy.name = 0; \
drivers/usb/atm/ueagle-atm.c
2415
static int uea_getesi(struct uea_softc *sc, u_char *esi)
drivers/usb/atm/ueagle-atm.c
2420
(sc->usb_dev, sc->usb_dev->descriptor.iSerialNumber, mac_str,
drivers/usb/atm/ueagle-atm.c
2434
struct uea_softc *sc = usbatm->driver_data;
drivers/usb/atm/ueagle-atm.c
2436
return uea_getesi(sc, atm_dev->esi);
drivers/usb/atm/ueagle-atm.c
2441
struct uea_softc *sc = usbatm->driver_data;
drivers/usb/atm/ueagle-atm.c
2443
wait_event_interruptible(sc->sync_q, IS_OPERATIONAL(sc));
drivers/usb/atm/ueagle-atm.c
2494
struct uea_softc *sc;
drivers/usb/atm/ueagle-atm.c
2519
sc = kzalloc_obj(struct uea_softc);
drivers/usb/atm/ueagle-atm.c
2520
if (!sc)
drivers/usb/atm/ueagle-atm.c
2523
sc->usb_dev = usb;
drivers/usb/atm/ueagle-atm.c
2524
usbatm->driver_data = sc;
drivers/usb/atm/ueagle-atm.c
2525
sc->usbatm = usbatm;
drivers/usb/atm/ueagle-atm.c
2526
sc->modem_index = (modem_index < NB_MODEM) ? modem_index++ : 0;
drivers/usb/atm/ueagle-atm.c
2527
sc->driver_info = id->driver_info;
drivers/usb/atm/ueagle-atm.c
2530
if (annex[sc->modem_index] == 1)
drivers/usb/atm/ueagle-atm.c
2531
sc->annex = ANNEXA;
drivers/usb/atm/ueagle-atm.c
2532
else if (annex[sc->modem_index] == 2)
drivers/usb/atm/ueagle-atm.c
2533
sc->annex = ANNEXB;
drivers/usb/atm/ueagle-atm.c
2535
else if (sc->driver_info & AUTO_ANNEX_A)
drivers/usb/atm/ueagle-atm.c
2536
sc->annex = ANNEXA;
drivers/usb/atm/ueagle-atm.c
2537
else if (sc->driver_info & AUTO_ANNEX_B)
drivers/usb/atm/ueagle-atm.c
2538
sc->annex = ANNEXB;
drivers/usb/atm/ueagle-atm.c
254
#define IS_OPERATIONAL(sc) \
drivers/usb/atm/ueagle-atm.c
2540
sc->annex = (le16_to_cpu
drivers/usb/atm/ueagle-atm.c
2541
(sc->usb_dev->descriptor.bcdDevice) & 0x80) ? ANNEXB : ANNEXA;
drivers/usb/atm/ueagle-atm.c
2543
alt = altsetting[sc->modem_index];
drivers/usb/atm/ueagle-atm.c
255
((UEA_CHIP_VERSION(sc) != EAGLE_IV) ? \
drivers/usb/atm/ueagle-atm.c
2557
ret = uea_boot(sc, intf);
drivers/usb/atm/ueagle-atm.c
256
(GET_STATUS(sc->stats.phy.state) == 2) : \
drivers/usb/atm/ueagle-atm.c
2564
kfree(sc);
drivers/usb/atm/ueagle-atm.c
257
(sc->stats.phy.state == 7))
drivers/usb/atm/ueagle-atm.c
2570
struct uea_softc *sc = usbatm->driver_data;
drivers/usb/atm/ueagle-atm.c
2572
uea_stop(sc);
drivers/usb/atm/ueagle-atm.c
2573
kfree(sc);
drivers/usb/atm/ueagle-atm.c
2607
struct uea_softc *sc = usbatm->driver_data;
drivers/usb/atm/ueagle-atm.c
2613
wake_up_process(sc->kthread);
drivers/usb/atm/ueagle-atm.c
548
#define uea_wait(sc, cond, timeo) \
drivers/usb/atm/ueagle-atm.c
550
int _r = wait_event_freezable_timeout(sc->sync_q, \
drivers/usb/atm/ueagle-atm.c
559
if (sc->usbatm->atm_dev) \
drivers/usb/atm/ueagle-atm.c
560
sc->usbatm->atm_dev->type = val; \
drivers/usb/atm/ueagle-atm.c
565
if (sc->usbatm->atm_dev) \
drivers/usb/atm/ueagle-atm.c
566
atm_dev_signal_change(sc->usbatm->atm_dev, val); \
drivers/usb/atm/ueagle-atm.c
822
static int uea_idma_write(struct uea_softc *sc, const void *data, u32 size)
drivers/usb/atm/ueagle-atm.c
830
uea_err(INS_TO_USBDEV(sc), "can't allocate xfer_buff\n");
drivers/usb/atm/ueagle-atm.c
834
ret = usb_bulk_msg(sc->usb_dev,
drivers/usb/atm/ueagle-atm.c
835
usb_sndbulkpipe(sc->usb_dev, UEA_IDMA_PIPE),
drivers/usb/atm/ueagle-atm.c
842
uea_err(INS_TO_USBDEV(sc), "size != bytes_read %d %d\n", size,
drivers/usb/atm/ueagle-atm.c
850
static int request_dsp(struct uea_softc *sc)
drivers/usb/atm/ueagle-atm.c
855
if (UEA_CHIP_VERSION(sc) == EAGLE_IV) {
drivers/usb/atm/ueagle-atm.c
856
if (IS_ISDN(sc))
drivers/usb/atm/ueagle-atm.c
860
} else if (UEA_CHIP_VERSION(sc) == ADI930) {
drivers/usb/atm/ueagle-atm.c
861
if (IS_ISDN(sc))
drivers/usb/atm/ueagle-atm.c
866
if (IS_ISDN(sc))
drivers/usb/atm/ueagle-atm.c
872
ret = request_firmware(&sc->dsp_firm, dsp_name, &sc->usb_dev->dev);
drivers/usb/atm/ueagle-atm.c
874
uea_err(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
880
if (UEA_CHIP_VERSION(sc) == EAGLE_IV)
drivers/usb/atm/ueagle-atm.c
881
ret = check_dsp_e4(sc->dsp_firm->data, sc->dsp_firm->size);
drivers/usb/atm/ueagle-atm.c
883
ret = check_dsp_e1(sc->dsp_firm->data, sc->dsp_firm->size);
drivers/usb/atm/ueagle-atm.c
886
uea_err(INS_TO_USBDEV(sc), "firmware %s is corrupted\n",
drivers/usb/atm/ueagle-atm.c
888
release_firmware(sc->dsp_firm);
drivers/usb/atm/ueagle-atm.c
889
sc->dsp_firm = NULL;
drivers/usb/atm/ueagle-atm.c
901
struct uea_softc *sc = container_of(work, struct uea_softc, task);
drivers/usb/atm/ueagle-atm.c
902
u16 pageno = sc->pageno;
drivers/usb/atm/ueagle-atm.c
903
u16 ovl = sc->ovl;
drivers/usb/atm/ueagle-atm.c
914
release_firmware(sc->dsp_firm);
drivers/usb/atm/ueagle-atm.c
915
sc->dsp_firm = NULL;
drivers/usb/atm/ueagle-atm.c
918
if (sc->dsp_firm == NULL && request_dsp(sc) < 0)
drivers/usb/atm/ueagle-atm.c
921
p = sc->dsp_firm->data;
drivers/usb/atm/ueagle-atm.c
934
p = sc->dsp_firm->data + pageoffset;
drivers/usb/atm/ueagle-atm.c
938
uea_dbg(INS_TO_USBDEV(sc),
drivers/usb/atm/ueagle-atm.c
957
if (uea_idma_write(sc, &bi, E1_BLOCK_INFO_SIZE))
drivers/usb/atm/ueagle-atm.c
961
if (uea_idma_write(sc, p, blocksize))
drivers/usb/atm/ueagle-atm.c
970
uea_err(INS_TO_USBDEV(sc), "sending DSP block %u failed\n", i);
drivers/usb/atm/ueagle-atm.c
973
uea_err(INS_TO_USBDEV(sc), "invalid DSP page %u requested\n", pageno);
drivers/usb/atm/ueagle-atm.c
976
static void __uea_load_page_e4(struct uea_softc *sc, u8 pageno, int boot)
drivers/usb/atm/ueagle-atm.c
980
struct l1_code *p = (struct l1_code *) sc->dsp_firm->data;
drivers/usb/atm/ueagle-atm.c
994
blockoffset = sc->dsp_firm->data + le32_to_cpu(
drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
198
unsigned long reg, sc;
drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
213
sc = par->refclk / (1000000 / fbi->var.pixclock) - 1;
drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
216
reg |= sc << 8;
drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
218
dev_dbg(par->dev, "SC 0x%lx\n", sc);
drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
437
unsigned long sc = ((reg & GC_DCM01_SC) >> 8) + 1;
drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
441
fbi->var.pixclock = (sc * 1000000) / par->refclk;
drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.c
414
unsigned itc, ec, q, sc;
drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.c
437
sc = (ptr[2] >> 0) & 0x3;
drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.c
452
(itc << 7) | (ec << 4) | (q << 2) | (sc << 0));
drivers/virtio/virtio_balloon.c
870
struct shrink_control *sc)
drivers/virtio/virtio_balloon.c
874
return shrink_free_pages(vb, sc->nr_to_scan);
drivers/virtio/virtio_balloon.c
878
struct shrink_control *sc)
drivers/xen/xenbus/xenbus_probe_backend.c
280
struct shrink_control *sc)
fs/btrfs/backref.c
1008
struct share_check *sc)
fs/btrfs/backref.c
1083
ctx->bytenr, count, sc, GFP_NOFS);
fs/btrfs/backref.c
1103
if (sc && key.objectid != sc->inum &&
fs/btrfs/backref.c
1104
!sc->have_delayed_delete_refs) {
fs/btrfs/backref.c
1116
count, sc, GFP_NOFS);
fs/btrfs/backref.c
1142
struct share_check *sc)
fs/btrfs/backref.c
1187
sc, GFP_NOFS);
fs/btrfs/backref.c
1210
if (sc && key.objectid != sc->inum &&
fs/btrfs/backref.c
1211
!sc->have_delayed_delete_refs) {
fs/btrfs/backref.c
1223
count, sc, GFP_NOFS);
fs/btrfs/backref.c
1378
struct share_check *sc)
fs/btrfs/backref.c
1404
if (sc)
fs/btrfs/backref.c
1470
&preftrees, sc);
fs/btrfs/backref.c
1491
&preftrees, sc);
fs/btrfs/backref.c
1495
&preftrees, sc);
fs/btrfs/backref.c
1513
ASSERT(extent_is_shared(sc) == 0);
fs/btrfs/backref.c
1523
if (sc && ctx->bytenr == sc->data_bytenr) {
fs/btrfs/backref.c
1533
if (sc->data_extent_gen >
fs/btrfs/backref.c
1534
btrfs_root_last_snapshot(&sc->root->root_item)) {
fs/btrfs/backref.c
1550
if (sc->ctx->curr_leaf_bytenr == sc->ctx->prev_leaf_bytenr &&
fs/btrfs/backref.c
1551
sc->self_ref_count == 1) {
fs/btrfs/backref.c
1555
cached = lookup_backref_shared_cache(sc->ctx, sc->root,
fs/btrfs/backref.c
1556
sc->ctx->curr_leaf_bytenr,
fs/btrfs/backref.c
1576
ret = resolve_indirect_refs(ctx, path, &preftrees, sc);
fs/btrfs/backref.c
191
static inline int extent_is_shared(struct share_check *sc)
fs/btrfs/backref.c
193
return (sc && sc->share_count > 1) ? BACKREF_FOUND_SHARED : 0;
fs/btrfs/backref.c
268
static void update_share_count(struct share_check *sc, int oldcount,
fs/btrfs/backref.c
271
if ((!sc) || (oldcount == 0 && newcount < 1))
fs/btrfs/backref.c
275
sc->share_count--;
fs/btrfs/backref.c
277
sc->share_count++;
fs/btrfs/backref.c
279
if (newref->root_id == btrfs_root_id(sc->root) &&
fs/btrfs/backref.c
280
newref->wanted_disk_byte == sc->data_bytenr &&
fs/btrfs/backref.c
281
newref->key_for_search.objectid == sc->inum)
fs/btrfs/backref.c
282
sc->self_ref_count += newref->count;
fs/btrfs/backref.c
293
struct share_check *sc)
fs/btrfs/backref.c
319
update_share_count(sc, ref->count,
fs/btrfs/backref.c
326
update_share_count(sc, 0, newref->count, newref);
fs/btrfs/backref.c
391
struct share_check *sc, gfp_t gfp_mask)
fs/btrfs/backref.c
413
prelim_ref_insert(fs_info, preftree, ref, sc);
fs/btrfs/backref.c
414
return extent_is_shared(sc);
fs/btrfs/backref.c
421
struct share_check *sc, gfp_t gfp_mask)
fs/btrfs/backref.c
424
parent, wanted_disk_byte, count, sc, gfp_mask);
fs/btrfs/backref.c
432
struct share_check *sc, gfp_t gfp_mask)
fs/btrfs/backref.c
439
wanted_disk_byte, count, sc, gfp_mask);
fs/btrfs/backref.c
733
struct share_check *sc)
fs/btrfs/backref.c
770
if (sc && ref->root_id != btrfs_root_id(sc->root)) {
fs/btrfs/backref.c
888
struct preftrees *preftrees, struct share_check *sc)
fs/btrfs/backref.c
931
count, sc, GFP_ATOMIC);
fs/btrfs/backref.c
944
sc, GFP_ATOMIC);
fs/btrfs/backref.c
968
if (sc && count < 0)
fs/btrfs/backref.c
969
sc->have_delayed_delete_refs = true;
fs/btrfs/backref.c
972
&key, 0, node->bytenr, count, sc,
fs/btrfs/backref.c
979
node->bytenr, count, sc,
fs/btrfs/backref.c
994
ret = extent_is_shared(sc);
fs/btrfs/compression.c
140
static unsigned long btrfs_compr_pool_count(struct shrinker *sh, struct shrink_control *sc)
fs/btrfs/compression.c
154
static unsigned long btrfs_compr_pool_scan(struct shrinker *sh, struct shrink_control *sc)
fs/btrfs/super.c
2405
static long btrfs_nr_cached_objects(struct super_block *sb, struct shrink_control *sc)
fs/btrfs/super.c
2415
static long btrfs_free_cached_objects(struct super_block *sb, struct shrink_control *sc)
fs/btrfs/super.c
2417
const long nr_to_scan = min_t(unsigned long, LONG_MAX, sc->nr_to_scan);
fs/ceph/util.c
14
__u32 sc = layout->stripe_count;
fs/ceph/util.c
26
if (!sc)
fs/dcache.c
1249
long prune_dcache_sb(struct super_block *sb, struct shrink_control *sc)
fs/dcache.c
1254
freed = list_lru_shrink_walk(&sb->s_dentry_lru, sc,
fs/erofs/zutil.c
243
struct shrink_control *sc)
fs/erofs/zutil.c
249
struct shrink_control *sc)
fs/erofs/zutil.c
254
unsigned long nr = sc->nr_to_scan;
fs/ext4/extents_status.c
1761
struct shrink_control *sc)
fs/ext4/extents_status.c
1768
trace_ext4_es_shrink_count(sbi->s_sb, sc->nr_to_scan, nr);
fs/ext4/extents_status.c
1773
struct shrink_control *sc)
fs/ext4/extents_status.c
1776
int nr_to_scan = sc->nr_to_scan;
fs/f2fs/f2fs.h
4521
struct shrink_control *sc);
fs/f2fs/f2fs.h
4523
struct shrink_control *sc);
fs/f2fs/shrinker.c
41
struct shrink_control *sc)
fs/f2fs/shrinker.c
80
struct shrink_control *sc)
fs/f2fs/shrinker.c
82
unsigned long nr = sc->nr_to_scan;
fs/gfs2/glock.c
1981
struct shrink_control *sc)
fs/gfs2/glock.c
1983
if (!(sc->gfp_mask & __GFP_FS))
fs/gfs2/glock.c
1985
return gfs2_scan_glock_lru(sc->nr_to_scan);
fs/gfs2/glock.c
1989
struct shrink_control *sc)
fs/gfs2/quota.c
174
struct shrink_control *sc)
fs/gfs2/quota.c
179
if (!(sc->gfp_mask & __GFP_FS))
fs/gfs2/quota.c
182
freed = list_lru_shrink_walk(&gfs2_qd_lru, sc,
fs/gfs2/quota.c
191
struct shrink_control *sc)
fs/gfs2/quota.c
193
return vfs_pressure_ratio(list_lru_shrink_count(&gfs2_qd_lru, sc));
fs/gfs2/recovery.c
311
struct gfs2_statfs_change_host sc;
fs/gfs2/recovery.c
324
gfs2_statfs_change_in(&sc, bh->b_data + sizeof(struct gfs2_dinode));
fs/gfs2/recovery.c
325
sc.sc_total += head->lh_local_total;
fs/gfs2/recovery.c
326
sc.sc_free += head->lh_local_free;
fs/gfs2/recovery.c
327
sc.sc_dinodes += head->lh_local_dinodes;
fs/gfs2/recovery.c
328
gfs2_statfs_change_out(&sc, bh->b_data + sizeof(struct gfs2_dinode));
fs/gfs2/recovery.c
332
"[%+lld,%+lld,%+lld]\n", jd->jd_jid, sc.sc_total,
fs/gfs2/recovery.c
333
sc.sc_free, sc.sc_dinodes, head->lh_local_total,
fs/gfs2/super.c
159
void gfs2_statfs_change_in(struct gfs2_statfs_change_host *sc, const void *buf)
fs/gfs2/super.c
163
sc->sc_total = be64_to_cpu(str->sc_total);
fs/gfs2/super.c
164
sc->sc_free = be64_to_cpu(str->sc_free);
fs/gfs2/super.c
165
sc->sc_dinodes = be64_to_cpu(str->sc_dinodes);
fs/gfs2/super.c
168
void gfs2_statfs_change_out(const struct gfs2_statfs_change_host *sc, void *buf)
fs/gfs2/super.c
172
str->sc_total = cpu_to_be64(sc->sc_total);
fs/gfs2/super.c
173
str->sc_free = cpu_to_be64(sc->sc_free);
fs/gfs2/super.c
174
str->sc_dinodes = cpu_to_be64(sc->sc_dinodes);
fs/gfs2/super.c
831
struct gfs2_statfs_change_host *sc)
fs/gfs2/super.c
834
sc->sc_total += rgd->rd_data;
fs/gfs2/super.c
835
sc->sc_free += rgd->rd_free;
fs/gfs2/super.c
836
sc->sc_dinodes += rgd->rd_dinodes;
fs/gfs2/super.c
853
static int gfs2_statfs_slow(struct gfs2_sbd *sdp, struct gfs2_statfs_change_host *sc)
fs/gfs2/super.c
862
memset(sc, 0, sizeof(struct gfs2_statfs_change_host));
fs/gfs2/super.c
887
error = statfs_slow_fill(rgd, sc);
fs/gfs2/super.c
926
static int gfs2_statfs_i(struct gfs2_sbd *sdp, struct gfs2_statfs_change_host *sc)
fs/gfs2/super.c
933
*sc = *m_sc;
fs/gfs2/super.c
934
sc->sc_total += l_sc->sc_total;
fs/gfs2/super.c
935
sc->sc_free += l_sc->sc_free;
fs/gfs2/super.c
936
sc->sc_dinodes += l_sc->sc_dinodes;
fs/gfs2/super.c
940
if (sc->sc_free < 0)
fs/gfs2/super.c
941
sc->sc_free = 0;
fs/gfs2/super.c
942
if (sc->sc_free > sc->sc_total)
fs/gfs2/super.c
943
sc->sc_free = sc->sc_total;
fs/gfs2/super.c
944
if (sc->sc_dinodes < 0)
fs/gfs2/super.c
945
sc->sc_dinodes = 0;
fs/gfs2/super.c
962
struct gfs2_statfs_change_host sc;
fs/gfs2/super.c
970
error = gfs2_statfs_slow(sdp, &sc);
fs/gfs2/super.c
972
error = gfs2_statfs_i(sdp, &sc);
fs/gfs2/super.c
979
buf->f_blocks = sc.sc_total;
fs/gfs2/super.c
980
buf->f_bfree = sc.sc_free;
fs/gfs2/super.c
981
buf->f_bavail = sc.sc_free;
fs/gfs2/super.c
982
buf->f_files = sc.sc_dinodes + sc.sc_free;
fs/gfs2/super.c
983
buf->f_ffree = sc.sc_free;
fs/gfs2/super.h
43
void gfs2_statfs_change_in(struct gfs2_statfs_change_host *sc,
fs/gfs2/super.h
45
void gfs2_statfs_change_out(const struct gfs2_statfs_change_host *sc,
fs/inode.c
1029
long prune_icache_sb(struct super_block *sb, struct shrink_control *sc)
fs/inode.c
1034
freed = list_lru_shrink_walk(&sb->s_inode_lru, sc,
fs/internal.h
212
extern long prune_icache_sb(struct super_block *sb, struct shrink_control *sc);
fs/internal.h
227
extern long prune_dcache_sb(struct super_block *sb, struct shrink_control *sc);
fs/jbd2/journal.c
1256
struct shrink_control *sc)
fs/jbd2/journal.c
1259
unsigned long nr_to_scan = sc->nr_to_scan;
fs/jbd2/journal.c
1264
trace_jbd2_shrink_scan_enter(journal, sc->nr_to_scan, count);
fs/jbd2/journal.c
1282
struct shrink_control *sc)
fs/jbd2/journal.c
1288
trace_jbd2_shrink_count(journal, sc->nr_to_scan, count);
fs/mbcache.c
294
struct shrink_control *sc)
fs/mbcache.c
333
struct shrink_control *sc)
fs/mbcache.c
336
return mb_cache_shrink(cache, sc->nr_to_scan);
fs/nfs/dir.c
2944
nfs_access_cache_scan(struct shrinker *shrink, struct shrink_control *sc)
fs/nfs/dir.c
2946
int nr_to_scan = sc->nr_to_scan;
fs/nfs/dir.c
2947
gfp_t gfp_mask = sc->gfp_mask;
fs/nfs/dir.c
2956
nfs_access_cache_count(struct shrinker *shrink, struct shrink_control *sc)
fs/nfs/internal.h
390
struct shrink_control *sc);
fs/nfs/internal.h
392
struct shrink_control *sc);
fs/nfs/nfs42xattr.c
791
struct shrink_control *sc);
fs/nfs/nfs42xattr.c
793
struct shrink_control *sc);
fs/nfs/nfs42xattr.c
795
struct shrink_control *sc);
fs/nfs/nfs42xattr.c
797
struct shrink_control *sc);
fs/nfs/nfs42xattr.c
839
nfs4_xattr_cache_scan(struct shrinker *shrink, struct shrink_control *sc)
fs/nfs/nfs42xattr.c
845
freed = list_lru_shrink_walk(&nfs4_xattr_cache_lru, sc,
fs/nfs/nfs42xattr.c
860
nfs4_xattr_cache_count(struct shrinker *shrink, struct shrink_control *sc)
fs/nfs/nfs42xattr.c
864
count = list_lru_shrink_count(&nfs4_xattr_cache_lru, sc);
fs/nfs/nfs42xattr.c
920
nfs4_xattr_entry_scan(struct shrinker *shrink, struct shrink_control *sc)
fs/nfs/nfs42xattr.c
930
freed = list_lru_shrink_walk(lru, sc, entry_lru_isolate, &dispose);
fs/nfs/nfs42xattr.c
950
nfs4_xattr_entry_count(struct shrinker *shrink, struct shrink_control *sc)
fs/nfs/nfs42xattr.c
958
count = list_lru_shrink_count(lru, sc);
fs/nfs/nfs42xattr.c
976
struct shrink_control *sc);
fs/nfs/nfs42xattr.c
978
struct shrink_control *sc);
fs/nfs/nfs4proc.c
6530
struct nfs4_setclientid *sc = calldata;
fs/nfs/nfs4proc.c
6533
sc->sc_cred = get_rpccred(task->tk_rqstp->rq_cred);
fs/nfs/nfs4state.c
421
nfs4_init_seqid_counter(struct nfs_seqid_counter *sc)
fs/nfs/nfs4state.c
423
sc->create_time = ktime_get();
fs/nfs/nfs4state.c
424
sc->flags = 0;
fs/nfs/nfs4state.c
425
sc->counter = 0;
fs/nfs/nfs4state.c
426
spin_lock_init(&sc->lock);
fs/nfs/nfs4state.c
427
INIT_LIST_HEAD(&sc->list);
fs/nfs/nfs4state.c
428
rpc_init_wait_queue(&sc->wait, "Seqid_waitqueue");
fs/nfs/nfs4state.c
432
nfs4_destroy_seqid_counter(struct nfs_seqid_counter *sc)
fs/nfs/nfs4state.c
434
rpc_destroy_wait_queue(&sc->wait);
fs/nfs/nfs4xdr.c
2813
const struct nfs4_setclientid *sc = data;
fs/nfs/nfs4xdr.c
2819
encode_setclientid(xdr, sc, &hdr);
fs/nfsd/filecache.c
598
nfsd_file_lru_count(struct shrinker *s, struct shrink_control *sc)
fs/nfsd/filecache.c
604
nfsd_file_lru_scan(struct shrinker *s, struct shrink_control *sc)
fs/nfsd/filecache.c
612
ret = list_lru_shrink_walk(&nfsd_file_lru, sc,
fs/nfsd/nfs4state.c
2198
nfsd_slot_count(struct shrinker *s, struct shrink_control *sc)
fs/nfsd/nfs4state.c
2206
nfsd_slot_scan(struct shrinker *s, struct shrink_control *sc)
fs/nfsd/nfs4state.c
2216
if (scanned >= sc->nr_to_scan) {
fs/nfsd/nfs4state.c
2223
sc->nr_scanned = scanned;
fs/nfsd/nfs4state.c
4877
nfsd4_state_shrinker_count(struct shrinker *shrink, struct shrink_control *sc)
fs/nfsd/nfs4state.c
4891
nfsd4_state_shrinker_scan(struct shrinker *shrink, struct shrink_control *sc)
fs/nfsd/nfscache.c
294
nfsd_reply_cache_count(struct shrinker *shrink, struct shrink_control *sc)
fs/nfsd/nfscache.c
313
nfsd_reply_cache_scan(struct shrinker *shrink, struct shrink_control *sc)
fs/nfsd/nfscache.c
331
if (freed > sc->nr_to_scan)
fs/nfsd/nfscache.c
42
struct shrink_control *sc);
fs/nfsd/nfscache.c
44
struct shrink_control *sc);
fs/ocfs2/cluster/netdebug.c
192
void o2net_debug_add_sc(struct o2net_sock_container *sc)
fs/ocfs2/cluster/netdebug.c
195
list_add(&sc->sc_net_debug_item, &sock_containers);
fs/ocfs2/cluster/netdebug.c
199
void o2net_debug_del_sc(struct o2net_sock_container *sc)
fs/ocfs2/cluster/netdebug.c
202
list_del_init(&sc->sc_net_debug_item);
fs/ocfs2/cluster/netdebug.c
214
struct o2net_sock_container *sc, *ret = NULL;
fs/ocfs2/cluster/netdebug.c
218
list_for_each_entry(sc, &sc_start->sc_net_debug_item,
fs/ocfs2/cluster/netdebug.c
221
if (&sc->sc_net_debug_item == &sock_containers)
fs/ocfs2/cluster/netdebug.c
225
if (sc->sc_page != NULL) {
fs/ocfs2/cluster/netdebug.c
226
ret = sc;
fs/ocfs2/cluster/netdebug.c
237
struct o2net_sock_container *sc, *dummy_sc = sd->dbg_sock;
fs/ocfs2/cluster/netdebug.c
240
sc = next_sc(dummy_sc);
fs/ocfs2/cluster/netdebug.c
243
return sc;
fs/ocfs2/cluster/netdebug.c
249
struct o2net_sock_container *sc, *dummy_sc = sd->dbg_sock;
fs/ocfs2/cluster/netdebug.c
252
sc = next_sc(dummy_sc);
fs/ocfs2/cluster/netdebug.c
254
if (sc)
fs/ocfs2/cluster/netdebug.c
255
list_add(&dummy_sc->sc_net_debug_item, &sc->sc_net_debug_item);
fs/ocfs2/cluster/netdebug.c
258
return sc; /* unused, just needs to be null when done */
fs/ocfs2/cluster/netdebug.c
280
struct o2net_sock_container *sc)
fs/ocfs2/cluster/netdebug.c
282
if (!sc)
fs/ocfs2/cluster/netdebug.c
286
sc->sc_node->nd_num, (unsigned long)sc_send_count(sc),
fs/ocfs2/cluster/netdebug.c
287
(long long)sc_tv_acquiry_total_ns(sc),
fs/ocfs2/cluster/netdebug.c
288
(long long)sc_tv_send_total_ns(sc),
fs/ocfs2/cluster/netdebug.c
289
(long long)sc_tv_status_total_ns(sc),
fs/ocfs2/cluster/netdebug.c
290
(unsigned long)sc_recv_count(sc),
fs/ocfs2/cluster/netdebug.c
291
(long long)sc_tv_process_total_ns(sc));
fs/ocfs2/cluster/netdebug.c
295
struct o2net_sock_container *sc)
fs/ocfs2/cluster/netdebug.c
301
if (!sc)
fs/ocfs2/cluster/netdebug.c
304
if (sc->sc_sock) {
fs/ocfs2/cluster/netdebug.c
305
inet = inet_sk(sc->sc_sock->sk);
fs/ocfs2/cluster/netdebug.c
330
sc,
fs/ocfs2/cluster/netdebug.c
331
kref_read(&sc->sc_kref),
fs/ocfs2/cluster/netdebug.c
334
sc->sc_node->nd_name,
fs/ocfs2/cluster/netdebug.c
335
sc->sc_page_off,
fs/ocfs2/cluster/netdebug.c
336
sc->sc_handshake_ok,
fs/ocfs2/cluster/netdebug.c
337
(long long)ktime_to_us(sc->sc_tv_timer),
fs/ocfs2/cluster/netdebug.c
338
(long long)ktime_to_us(sc->sc_tv_data_ready),
fs/ocfs2/cluster/netdebug.c
339
(long long)ktime_to_us(sc->sc_tv_advance_start),
fs/ocfs2/cluster/netdebug.c
340
(long long)ktime_to_us(sc->sc_tv_advance_stop),
fs/ocfs2/cluster/netdebug.c
341
(long long)ktime_to_us(sc->sc_tv_func_start),
fs/ocfs2/cluster/netdebug.c
342
(long long)ktime_to_us(sc->sc_tv_func_stop),
fs/ocfs2/cluster/netdebug.c
343
sc->sc_msg_key,
fs/ocfs2/cluster/netdebug.c
344
sc->sc_msg_type);
fs/ocfs2/cluster/netdebug.c
350
struct o2net_sock_container *sc, *dummy_sc = sd->dbg_sock;
fs/ocfs2/cluster/netdebug.c
353
sc = next_sc(dummy_sc);
fs/ocfs2/cluster/netdebug.c
355
if (sc) {
fs/ocfs2/cluster/netdebug.c
357
sc_show_sock_container(seq, sc);
fs/ocfs2/cluster/netdebug.c
359
sc_show_sock_stats(seq, sc);
fs/ocfs2/cluster/tcp.c
1001
struct o2net_sock_container *sc;
fs/ocfs2/cluster/tcp.c
1006
if (!o2net_tx_can_proceed(o2net_nn_from_num(node), &sc, &ret))
fs/ocfs2/cluster/tcp.c
1010
sc_put(sc);
fs/ocfs2/cluster/tcp.c
1023
struct o2net_sock_container *sc = NULL;
fs/ocfs2/cluster/tcp.c
1060
wait_event(nn->nn_sc_wq, o2net_tx_can_proceed(nn, &sc, &ret));
fs/ocfs2/cluster/tcp.c
1064
o2net_set_nst_sock_container(&nst, sc);
fs/ocfs2/cluster/tcp.c
1098
mutex_lock(&sc->sc_send_lock);
fs/ocfs2/cluster/tcp.c
1099
ret = o2net_send_tcp_msg(sc->sc_sock, vec, veclen,
fs/ocfs2/cluster/tcp.c
1101
mutex_unlock(&sc->sc_send_lock);
fs/ocfs2/cluster/tcp.c
1112
o2net_update_send_stats(&nst, sc);
fs/ocfs2/cluster/tcp.c
1125
if (sc)
fs/ocfs2/cluster/tcp.c
1126
sc_put(sc);
fs/ocfs2/cluster/tcp.c
1170
static int o2net_process_message(struct o2net_sock_container *sc,
fs/ocfs2/cluster/tcp.c
1173
struct o2net_node *nn = o2net_nn_from_num(sc->sc_node->nd_num);
fs/ocfs2/cluster/tcp.c
1181
o2net_sc_postpone_idle(sc);
fs/ocfs2/cluster/tcp.c
1192
o2net_sendpage(sc, o2net_keep_resp,
fs/ocfs2/cluster/tcp.c
1224
o2net_set_func_start_time(sc);
fs/ocfs2/cluster/tcp.c
1225
sc->sc_msg_key = be32_to_cpu(hdr->key);
fs/ocfs2/cluster/tcp.c
1226
sc->sc_msg_type = be16_to_cpu(hdr->msg_type);
fs/ocfs2/cluster/tcp.c
1230
o2net_set_func_stop_time(sc);
fs/ocfs2/cluster/tcp.c
1232
o2net_update_recv_stats(sc);
fs/ocfs2/cluster/tcp.c
1236
mutex_lock(&sc->sc_send_lock);
fs/ocfs2/cluster/tcp.c
1237
ret = o2net_send_status_magic(sc->sc_sock, hdr, syserr,
fs/ocfs2/cluster/tcp.c
1239
mutex_unlock(&sc->sc_send_lock);
fs/ocfs2/cluster/tcp.c
1257
static int o2net_check_handshake(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
1259
struct o2net_handshake *hand = page_address(sc->sc_page);
fs/ocfs2/cluster/tcp.c
1260
struct o2net_node *nn = o2net_nn_from_num(sc->sc_node->nd_num);
fs/ocfs2/cluster/tcp.c
1265
"Disconnecting.\n", SC_NODEF_ARGS(sc),
fs/ocfs2/cluster/tcp.c
1270
o2net_ensure_shutdown(nn, sc, -ENOTCONN);
fs/ocfs2/cluster/tcp.c
1283
"Disconnecting.\n", SC_NODEF_ARGS(sc),
fs/ocfs2/cluster/tcp.c
1286
o2net_ensure_shutdown(nn, sc, -ENOTCONN);
fs/ocfs2/cluster/tcp.c
129
static void o2net_sc_postpone_idle(struct o2net_sock_container *sc);
fs/ocfs2/cluster/tcp.c
1294
"Disconnecting.\n", SC_NODEF_ARGS(sc),
fs/ocfs2/cluster/tcp.c
1297
o2net_ensure_shutdown(nn, sc, -ENOTCONN);
fs/ocfs2/cluster/tcp.c
130
static void o2net_sc_reset_idle_timer(struct o2net_sock_container *sc);
fs/ocfs2/cluster/tcp.c
1305
"Disconnecting.\n", SC_NODEF_ARGS(sc),
fs/ocfs2/cluster/tcp.c
1308
o2net_ensure_shutdown(nn, sc, -ENOTCONN);
fs/ocfs2/cluster/tcp.c
1312
sc->sc_handshake_ok = 1;
fs/ocfs2/cluster/tcp.c
1317
if (nn->nn_sc == sc) {
fs/ocfs2/cluster/tcp.c
1318
o2net_sc_reset_idle_timer(sc);
fs/ocfs2/cluster/tcp.c
1320
o2net_set_nn_state(nn, sc, 1, 0);
fs/ocfs2/cluster/tcp.c
1325
sc->sc_page_off -= sizeof(struct o2net_handshake);
fs/ocfs2/cluster/tcp.c
1326
if (sc->sc_page_off)
fs/ocfs2/cluster/tcp.c
1327
memmove(hand, hand + 1, sc->sc_page_off);
fs/ocfs2/cluster/tcp.c
1335
static int o2net_advance_rx(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
1342
sclog(sc, "receiving\n");
fs/ocfs2/cluster/tcp.c
1343
o2net_set_advance_start_time(sc);
fs/ocfs2/cluster/tcp.c
1345
if (unlikely(sc->sc_handshake_ok == 0)) {
fs/ocfs2/cluster/tcp.c
1346
if(sc->sc_page_off < sizeof(struct o2net_handshake)) {
fs/ocfs2/cluster/tcp.c
1347
data = page_address(sc->sc_page) + sc->sc_page_off;
fs/ocfs2/cluster/tcp.c
1348
datalen = sizeof(struct o2net_handshake) - sc->sc_page_off;
fs/ocfs2/cluster/tcp.c
1349
ret = o2net_recv_tcp_msg(sc->sc_sock, data, datalen);
fs/ocfs2/cluster/tcp.c
1351
sc->sc_page_off += ret;
fs/ocfs2/cluster/tcp.c
1354
if (sc->sc_page_off == sizeof(struct o2net_handshake)) {
fs/ocfs2/cluster/tcp.c
1355
o2net_check_handshake(sc);
fs/ocfs2/cluster/tcp.c
1356
if (unlikely(sc->sc_handshake_ok == 0))
fs/ocfs2/cluster/tcp.c
1363
if (sc->sc_page_off < sizeof(struct o2net_msg)) {
fs/ocfs2/cluster/tcp.c
1364
data = page_address(sc->sc_page) + sc->sc_page_off;
fs/ocfs2/cluster/tcp.c
1365
datalen = sizeof(struct o2net_msg) - sc->sc_page_off;
fs/ocfs2/cluster/tcp.c
1366
ret = o2net_recv_tcp_msg(sc->sc_sock, data, datalen);
fs/ocfs2/cluster/tcp.c
1368
sc->sc_page_off += ret;
fs/ocfs2/cluster/tcp.c
1372
if (sc->sc_page_off == sizeof(struct o2net_msg)) {
fs/ocfs2/cluster/tcp.c
1373
hdr = page_address(sc->sc_page);
fs/ocfs2/cluster/tcp.c
1383
if (sc->sc_page_off < sizeof(struct o2net_msg)) {
fs/ocfs2/cluster/tcp.c
1389
hdr = page_address(sc->sc_page);
fs/ocfs2/cluster/tcp.c
1391
msglog(hdr, "at page_off %zu\n", sc->sc_page_off);
fs/ocfs2/cluster/tcp.c
1394
if (sc->sc_page_off - sizeof(struct o2net_msg) < be16_to_cpu(hdr->data_len)) {
fs/ocfs2/cluster/tcp.c
1396
data = page_address(sc->sc_page) + sc->sc_page_off;
fs/ocfs2/cluster/tcp.c
1398
sc->sc_page_off;
fs/ocfs2/cluster/tcp.c
1399
ret = o2net_recv_tcp_msg(sc->sc_sock, data, datalen);
fs/ocfs2/cluster/tcp.c
1401
sc->sc_page_off += ret;
fs/ocfs2/cluster/tcp.c
1406
if (sc->sc_page_off - sizeof(struct o2net_msg) == be16_to_cpu(hdr->data_len)) {
fs/ocfs2/cluster/tcp.c
1410
ret = o2net_process_message(sc, hdr);
fs/ocfs2/cluster/tcp.c
1413
sc->sc_page_off = 0;
fs/ocfs2/cluster/tcp.c
1417
sclog(sc, "ret = %d\n", ret);
fs/ocfs2/cluster/tcp.c
1418
o2net_set_advance_stop_time(sc);
fs/ocfs2/cluster/tcp.c
1427
struct o2net_sock_container *sc =
fs/ocfs2/cluster/tcp.c
1432
ret = o2net_advance_rx(sc);
fs/ocfs2/cluster/tcp.c
1436
struct o2net_node *nn = o2net_nn_from_num(sc->sc_node->nd_num);
fs/ocfs2/cluster/tcp.c
1437
sclog(sc, "saw error %d, closing\n", ret);
fs/ocfs2/cluster/tcp.c
1439
o2net_ensure_shutdown(nn, sc, 0);
fs/ocfs2/cluster/tcp.c
1442
sc_put(sc);
fs/ocfs2/cluster/tcp.c
1462
struct o2net_sock_container *sc =
fs/ocfs2/cluster/tcp.c
1471
o2net_sendpage(sc, o2net_hand, sizeof(*o2net_hand));
fs/ocfs2/cluster/tcp.c
1472
sc_put(sc);
fs/ocfs2/cluster/tcp.c
1478
struct o2net_sock_container *sc =
fs/ocfs2/cluster/tcp.c
1482
o2net_sendpage(sc, o2net_keep_req, sizeof(*o2net_keep_req));
fs/ocfs2/cluster/tcp.c
1483
sc_put(sc);
fs/ocfs2/cluster/tcp.c
1491
struct o2net_sock_container *sc = timer_container_of(sc, t,
fs/ocfs2/cluster/tcp.c
1493
struct o2net_node *nn = o2net_nn_from_num(sc->sc_node->nd_num);
fs/ocfs2/cluster/tcp.c
1496
ktime_to_ms(sc->sc_tv_timer);
fs/ocfs2/cluster/tcp.c
1503
SC_NODEF_ARGS(sc), msecs / 1000, msecs % 1000);
fs/ocfs2/cluster/tcp.c
1514
o2net_sc_reset_idle_timer(sc);
fs/ocfs2/cluster/tcp.c
1518
static void o2net_sc_reset_idle_timer(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
1520
o2net_sc_cancel_delayed_work(sc, &sc->sc_keepalive_work);
fs/ocfs2/cluster/tcp.c
1521
o2net_sc_queue_delayed_work(sc, &sc->sc_keepalive_work,
fs/ocfs2/cluster/tcp.c
1523
o2net_set_sock_timer(sc);
fs/ocfs2/cluster/tcp.c
1524
mod_timer(&sc->sc_idle_timeout,
fs/ocfs2/cluster/tcp.c
1528
static void o2net_sc_postpone_idle(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
1530
struct o2net_node *nn = o2net_nn_from_num(sc->sc_node->nd_num);
fs/ocfs2/cluster/tcp.c
1540
if (timer_pending(&sc->sc_idle_timeout))
fs/ocfs2/cluster/tcp.c
1541
o2net_sc_reset_idle_timer(sc);
fs/ocfs2/cluster/tcp.c
1553
struct o2net_sock_container *sc = NULL;
fs/ocfs2/cluster/tcp.c
159
struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
1597
sc = sc_alloc(node);
fs/ocfs2/cluster/tcp.c
1598
if (sc == NULL) {
fs/ocfs2/cluster/tcp.c
1609
sc->sc_sock = sock; /* freed by sc_kref_release */
fs/ocfs2/cluster/tcp.c
161
nst->st_sc = sc;
fs/ocfs2/cluster/tcp.c
1626
tcp_sock_set_nodelay(sc->sc_sock->sk);
fs/ocfs2/cluster/tcp.c
1629
o2net_register_callbacks(sc->sc_sock->sk, sc);
fs/ocfs2/cluster/tcp.c
1633
o2net_set_nn_state(nn, sc, 0, 0);
fs/ocfs2/cluster/tcp.c
1640
ret = sc->sc_sock->ops->connect(sc->sc_sock,
fs/ocfs2/cluster/tcp.c
1648
if (ret && sc) {
fs/ocfs2/cluster/tcp.c
1650
" failed with errno %d\n", SC_NODEF_ARGS(sc), ret);
fs/ocfs2/cluster/tcp.c
1653
o2net_ensure_shutdown(nn, sc, 0);
fs/ocfs2/cluster/tcp.c
1655
if (sc)
fs/ocfs2/cluster/tcp.c
1656
sc_put(sc);
fs/ocfs2/cluster/tcp.c
170
static inline void o2net_set_sock_timer(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
172
sc->sc_tv_timer = ktime_get();
fs/ocfs2/cluster/tcp.c
175
static inline void o2net_set_data_ready_time(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
177
sc->sc_tv_data_ready = ktime_get();
fs/ocfs2/cluster/tcp.c
1787
struct o2net_sock_container *sc = NULL;
fs/ocfs2/cluster/tcp.c
180
static inline void o2net_set_advance_start_time(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
182
sc->sc_tv_advance_start = ktime_get();
fs/ocfs2/cluster/tcp.c
185
static inline void o2net_set_advance_stop_time(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
187
sc->sc_tv_advance_stop = ktime_get();
fs/ocfs2/cluster/tcp.c
1875
sc = sc_alloc(node);
fs/ocfs2/cluster/tcp.c
1876
if (sc == NULL) {
fs/ocfs2/cluster/tcp.c
1881
sc->sc_sock = new_sock;
fs/ocfs2/cluster/tcp.c
1886
o2net_set_nn_state(nn, sc, 0, 0);
fs/ocfs2/cluster/tcp.c
1889
o2net_register_callbacks(sc->sc_sock->sk, sc);
fs/ocfs2/cluster/tcp.c
1890
o2net_sc_queue_work(sc, &sc->sc_rx_work);
fs/ocfs2/cluster/tcp.c
1893
o2net_sendpage(sc, o2net_hand, sizeof(*o2net_hand));
fs/ocfs2/cluster/tcp.c
190
static inline void o2net_set_func_start_time(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
1902
if (sc)
fs/ocfs2/cluster/tcp.c
1903
sc_put(sc);
fs/ocfs2/cluster/tcp.c
192
sc->sc_tv_func_start = ktime_get();
fs/ocfs2/cluster/tcp.c
195
static inline void o2net_set_func_stop_time(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
197
sc->sc_tv_func_stop = ktime_get();
fs/ocfs2/cluster/tcp.c
216
static ktime_t o2net_get_func_run_time(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
218
return ktime_sub(sc->sc_tv_func_stop, sc->sc_tv_func_start);
fs/ocfs2/cluster/tcp.c
222
struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
224
sc->sc_tv_status_total = ktime_add(sc->sc_tv_status_total,
fs/ocfs2/cluster/tcp.c
227
sc->sc_tv_send_total = ktime_add(sc->sc_tv_send_total,
fs/ocfs2/cluster/tcp.c
230
sc->sc_tv_acquiry_total = ktime_add(sc->sc_tv_acquiry_total,
fs/ocfs2/cluster/tcp.c
233
sc->sc_send_count++;
fs/ocfs2/cluster/tcp.c
236
static void o2net_update_recv_stats(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
238
sc->sc_tv_process_total = ktime_add(sc->sc_tv_process_total,
fs/ocfs2/cluster/tcp.c
239
o2net_get_func_run_time(sc));
fs/ocfs2/cluster/tcp.c
240
sc->sc_recv_count++;
fs/ocfs2/cluster/tcp.c
247
# define o2net_update_recv_stats(sc)
fs/ocfs2/cluster/tcp.c
379
struct o2net_sock_container *sc = container_of(kref,
fs/ocfs2/cluster/tcp.c
381
BUG_ON(timer_pending(&sc->sc_idle_timeout));
fs/ocfs2/cluster/tcp.c
383
sclog(sc, "releasing\n");
fs/ocfs2/cluster/tcp.c
385
if (sc->sc_sock) {
fs/ocfs2/cluster/tcp.c
386
sock_release(sc->sc_sock);
fs/ocfs2/cluster/tcp.c
387
sc->sc_sock = NULL;
fs/ocfs2/cluster/tcp.c
390
o2nm_undepend_item(&sc->sc_node->nd_item);
fs/ocfs2/cluster/tcp.c
391
o2nm_node_put(sc->sc_node);
fs/ocfs2/cluster/tcp.c
392
sc->sc_node = NULL;
fs/ocfs2/cluster/tcp.c
394
o2net_debug_del_sc(sc);
fs/ocfs2/cluster/tcp.c
396
if (sc->sc_page)
fs/ocfs2/cluster/tcp.c
397
__free_page(sc->sc_page);
fs/ocfs2/cluster/tcp.c
398
kfree(sc);
fs/ocfs2/cluster/tcp.c
401
static void sc_put(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
403
sclog(sc, "put\n");
fs/ocfs2/cluster/tcp.c
404
kref_put(&sc->sc_kref, sc_kref_release);
fs/ocfs2/cluster/tcp.c
406
static void sc_get(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
408
sclog(sc, "get\n");
fs/ocfs2/cluster/tcp.c
409
kref_get(&sc->sc_kref);
fs/ocfs2/cluster/tcp.c
413
struct o2net_sock_container *sc, *ret = NULL;
fs/ocfs2/cluster/tcp.c
418
sc = kzalloc_obj(*sc, GFP_NOFS);
fs/ocfs2/cluster/tcp.c
419
if (sc == NULL || page == NULL)
fs/ocfs2/cluster/tcp.c
422
kref_init(&sc->sc_kref);
fs/ocfs2/cluster/tcp.c
424
sc->sc_node = node;
fs/ocfs2/cluster/tcp.c
433
INIT_WORK(&sc->sc_connect_work, o2net_sc_connect_completed);
fs/ocfs2/cluster/tcp.c
434
INIT_WORK(&sc->sc_rx_work, o2net_rx_until_empty);
fs/ocfs2/cluster/tcp.c
435
INIT_WORK(&sc->sc_shutdown_work, o2net_shutdown_sc);
fs/ocfs2/cluster/tcp.c
436
INIT_DELAYED_WORK(&sc->sc_keepalive_work, o2net_sc_send_keep_req);
fs/ocfs2/cluster/tcp.c
438
timer_setup(&sc->sc_idle_timeout, o2net_idle_timer, 0);
fs/ocfs2/cluster/tcp.c
440
sclog(sc, "alloced\n");
fs/ocfs2/cluster/tcp.c
442
ret = sc;
fs/ocfs2/cluster/tcp.c
443
sc->sc_page = page;
fs/ocfs2/cluster/tcp.c
444
o2net_debug_add_sc(sc);
fs/ocfs2/cluster/tcp.c
445
sc = NULL;
fs/ocfs2/cluster/tcp.c
451
kfree(sc);
fs/ocfs2/cluster/tcp.c
458
static void o2net_sc_queue_work(struct o2net_sock_container *sc,
fs/ocfs2/cluster/tcp.c
461
sc_get(sc);
fs/ocfs2/cluster/tcp.c
463
sc_put(sc);
fs/ocfs2/cluster/tcp.c
465
static void o2net_sc_queue_delayed_work(struct o2net_sock_container *sc,
fs/ocfs2/cluster/tcp.c
469
sc_get(sc);
fs/ocfs2/cluster/tcp.c
471
sc_put(sc);
fs/ocfs2/cluster/tcp.c
473
static void o2net_sc_cancel_delayed_work(struct o2net_sock_container *sc,
fs/ocfs2/cluster/tcp.c
477
sc_put(sc);
fs/ocfs2/cluster/tcp.c
488
struct o2net_sock_container *sc,
fs/ocfs2/cluster/tcp.c
497
if (old_sc && !sc)
fs/ocfs2/cluster/tcp.c
499
else if (!old_sc && sc)
fs/ocfs2/cluster/tcp.c
504
BUG_ON(sc && nn->nn_sc && nn->nn_sc != sc);
fs/ocfs2/cluster/tcp.c
506
mlog_bug_on_msg(valid && !sc, "valid %u sc %p\n", valid, sc);
fs/ocfs2/cluster/tcp.c
512
o2net_num_from_nn(nn), nn->nn_sc, sc, nn->nn_sc_valid, valid,
fs/ocfs2/cluster/tcp.c
515
nn->nn_sc = sc;
fs/ocfs2/cluster/tcp.c
540
o2nm_this_node() > sc->sc_node->nd_num ?
fs/ocfs2/cluster/tcp.c
542
SC_NODEF_ARGS(sc));
fs/ocfs2/cluster/tcp.c
575
if ((old_sc == NULL) && sc)
fs/ocfs2/cluster/tcp.c
576
sc_get(sc);
fs/ocfs2/cluster/tcp.c
577
if (old_sc && (old_sc != sc)) {
fs/ocfs2/cluster/tcp.c
587
struct o2net_sock_container *sc;
fs/ocfs2/cluster/tcp.c
592
sc = sk->sk_user_data;
fs/ocfs2/cluster/tcp.c
593
if (sc) {
fs/ocfs2/cluster/tcp.c
594
sclog(sc, "data_ready hit\n");
fs/ocfs2/cluster/tcp.c
595
o2net_set_data_ready_time(sc);
fs/ocfs2/cluster/tcp.c
596
o2net_sc_queue_work(sc, &sc->sc_rx_work);
fs/ocfs2/cluster/tcp.c
597
ready = sc->sc_data_ready;
fs/ocfs2/cluster/tcp.c
610
struct o2net_sock_container *sc;
fs/ocfs2/cluster/tcp.c
613
sc = sk->sk_user_data;
fs/ocfs2/cluster/tcp.c
614
if (sc == NULL) {
fs/ocfs2/cluster/tcp.c
619
sclog(sc, "state_change to %d\n", sk->sk_state);
fs/ocfs2/cluster/tcp.c
621
state_change = sc->sc_state_change;
fs/ocfs2/cluster/tcp.c
629
o2net_sc_queue_work(sc, &sc->sc_connect_work);
fs/ocfs2/cluster/tcp.c
63
#define SC_NODEF_ARGS(sc) sc->sc_node->nd_name, sc->sc_node->nd_num, \
fs/ocfs2/cluster/tcp.c
634
SC_NODEF_ARGS(sc), sk->sk_state);
fs/ocfs2/cluster/tcp.c
635
o2net_sc_queue_work(sc, &sc->sc_shutdown_work);
fs/ocfs2/cluster/tcp.c
64
&sc->sc_node->nd_ipv4_address, \
fs/ocfs2/cluster/tcp.c
649
struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
65
ntohs(sc->sc_node->nd_ipv4_port)
fs/ocfs2/cluster/tcp.c
660
sk->sk_user_data = sc;
fs/ocfs2/cluster/tcp.c
661
sc_get(sc);
fs/ocfs2/cluster/tcp.c
663
sc->sc_data_ready = sk->sk_data_ready;
fs/ocfs2/cluster/tcp.c
664
sc->sc_state_change = sk->sk_state_change;
fs/ocfs2/cluster/tcp.c
668
mutex_init(&sc->sc_send_lock);
fs/ocfs2/cluster/tcp.c
674
struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.c
679
if (sk->sk_user_data == sc) {
fs/ocfs2/cluster/tcp.c
682
sk->sk_data_ready = sc->sc_data_ready;
fs/ocfs2/cluster/tcp.c
683
sk->sk_state_change = sc->sc_state_change;
fs/ocfs2/cluster/tcp.c
697
struct o2net_sock_container *sc,
fs/ocfs2/cluster/tcp.c
701
if (nn->nn_sc == sc)
fs/ocfs2/cluster/tcp.c
716
struct o2net_sock_container *sc =
fs/ocfs2/cluster/tcp.c
719
struct o2net_node *nn = o2net_nn_from_num(sc->sc_node->nd_num);
fs/ocfs2/cluster/tcp.c
721
sclog(sc, "shutting down\n");
fs/ocfs2/cluster/tcp.c
724
if (o2net_unregister_callbacks(sc->sc_sock->sk, sc)) {
fs/ocfs2/cluster/tcp.c
727
timer_delete_sync(&sc->sc_idle_timeout);
fs/ocfs2/cluster/tcp.c
728
o2net_sc_cancel_delayed_work(sc, &sc->sc_keepalive_work);
fs/ocfs2/cluster/tcp.c
729
sc_put(sc);
fs/ocfs2/cluster/tcp.c
730
kernel_sock_shutdown(sc->sc_sock, SHUT_RDWR);
fs/ocfs2/cluster/tcp.c
735
o2net_ensure_shutdown(nn, sc, 0);
fs/ocfs2/cluster/tcp.c
736
sc_put(sc);
fs/ocfs2/cluster/tcp.c
82
#define sclog(sc, fmt, args...) do { \
fs/ocfs2/cluster/tcp.c
83
typeof(sc) __sc = (sc); \
fs/ocfs2/cluster/tcp.c
932
static void o2net_sendpage(struct o2net_sock_container *sc,
fs/ocfs2/cluster/tcp.c
935
struct o2net_node *nn = o2net_nn_from_num(sc->sc_node->nd_num);
fs/ocfs2/cluster/tcp.c
945
mutex_lock(&sc->sc_send_lock);
fs/ocfs2/cluster/tcp.c
946
ret = sock_sendmsg(sc->sc_sock, &msg);
fs/ocfs2/cluster/tcp.c
947
mutex_unlock(&sc->sc_send_lock);
fs/ocfs2/cluster/tcp.c
953
" returned EAGAIN\n", size, SC_NODEF_ARGS(sc));
fs/ocfs2/cluster/tcp.c
958
" failed with %zd\n", size, SC_NODEF_ARGS(sc), ret);
fs/ocfs2/cluster/tcp.c
959
o2net_ensure_shutdown(nn, sc, 0);
fs/ocfs2/cluster/tcp.h
114
void o2net_debug_add_sc(struct o2net_sock_container *sc);
fs/ocfs2/cluster/tcp.h
115
void o2net_debug_del_sc(struct o2net_sock_container *sc);
fs/ocfs2/cluster/tcp.h
129
static inline void o2net_debug_add_sc(struct o2net_sock_container *sc)
fs/ocfs2/cluster/tcp.h
132
static inline void o2net_debug_del_sc(struct o2net_sock_container *sc)
fs/ocfs2/dlm/dlmmaster.c
1212
enum dlm_node_state_change sc;
fs/ocfs2/dlm/dlmmaster.c
1222
node = dlm_bitmap_diff_iter_next(&bdi, &sc);
fs/ocfs2/dlm/dlmmaster.c
1224
if (sc == NODE_UP) {
fs/ocfs2/dlm/dlmmaster.c
1290
node = dlm_bitmap_diff_iter_next(&bdi, &sc);
fs/quota/dquot.c
785
dqcache_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
fs/quota/dquot.c
791
while (!list_empty(&free_dquots) && sc->nr_to_scan) {
fs/quota/dquot.c
797
sc->nr_to_scan--;
fs/quota/dquot.c
805
dqcache_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
fs/smb/client/cifs_debug.c
456
struct smbdirect_socket *sc;
fs/smb/client/cifs_debug.c
481
sc = &server->smbd_conn->socket;
fs/smb/client/cifs_debug.c
482
sp = &sc->parameters;
fs/smb/client/cifs_debug.c
487
smbdirect_socket_status_string(sc->status),
fs/smb/client/cifs_debug.c
488
sc->status);
fs/smb/client/cifs_debug.c
506
sc->statistics.get_receive_buffer,
fs/smb/client/cifs_debug.c
507
sc->statistics.put_receive_buffer,
fs/smb/client/cifs_debug.c
508
sc->statistics.send_empty);
fs/smb/client/cifs_debug.c
514
sc->statistics.enqueue_reassembly_queue,
fs/smb/client/cifs_debug.c
515
sc->statistics.dequeue_reassembly_queue,
fs/smb/client/cifs_debug.c
516
sc->recv_io.reassembly.data_length,
fs/smb/client/cifs_debug.c
517
sc->recv_io.reassembly.queue_length);
fs/smb/client/cifs_debug.c
520
atomic_read(&sc->send_io.credits.count),
fs/smb/client/cifs_debug.c
521
atomic_read(&sc->recv_io.credits.count),
fs/smb/client/cifs_debug.c
522
sc->recv_io.credits.target);
fs/smb/client/cifs_debug.c
524
atomic_read(&sc->send_io.pending.count));
fs/smb/client/cifs_debug.c
529
sc->mr_io.type);
fs/smb/client/cifs_debug.c
531
atomic_read(&sc->mr_io.ready.count),
fs/smb/client/cifs_debug.c
532
atomic_read(&sc->mr_io.used.count));
fs/smb/client/smbdirect.c
1005
sc->status_wait,
fs/smb/client/smbdirect.c
1006
sc->status != SMBDIRECT_SOCKET_RESOLVE_ROUTE_RUNNING,
fs/smb/client/smbdirect.c
1013
if (sc->status == SMBDIRECT_SOCKET_RESOLVE_ROUTE_RUNNING) {
fs/smb/client/smbdirect.c
1018
if (sc->status != SMBDIRECT_SOCKET_RDMA_CONNECT_NEEDED) {
fs/smb/client/smbdirect.c
1046
struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
1049
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
1052
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_CREATED);
fs/smb/client/smbdirect.c
1053
sc->status = SMBDIRECT_SOCKET_RESOLVE_ADDR_NEEDED;
fs/smb/client/smbdirect.c
1055
sc->rdma.cm_id = smbd_create_id(sc, dstaddr, port);
fs/smb/client/smbdirect.c
1056
if (IS_ERR(sc->rdma.cm_id)) {
fs/smb/client/smbdirect.c
1057
rc = PTR_ERR(sc->rdma.cm_id);
fs/smb/client/smbdirect.c
1060
sc->ib.dev = sc->rdma.cm_id->device;
fs/smb/client/smbdirect.c
1062
if (!frwr_is_supported(&sc->ib.dev->attrs)) {
fs/smb/client/smbdirect.c
1065
sc->ib.dev->attrs.device_cap_flags,
fs/smb/client/smbdirect.c
1066
sc->ib.dev->attrs.max_fast_reg_page_list_len);
fs/smb/client/smbdirect.c
1072
sc->ib.dev->attrs.max_fast_reg_page_list_len);
fs/smb/client/smbdirect.c
1073
sc->mr_io.type = IB_MR_TYPE_MEM_REG;
fs/smb/client/smbdirect.c
1074
if (sc->ib.dev->attrs.kernel_cap_flags & IBK_SG_GAPS_REG)
fs/smb/client/smbdirect.c
1075
sc->mr_io.type = IB_MR_TYPE_SG_GAPS;
fs/smb/client/smbdirect.c
1080
rdma_destroy_id(sc->rdma.cm_id);
fs/smb/client/smbdirect.c
1081
sc->rdma.cm_id = NULL;
fs/smb/client/smbdirect.c
1093
static int smbd_post_send_negotiate_req(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
1095
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
1100
request = smbd_alloc_send_io(sc);
fs/smb/client/smbdirect.c
1115
sc->ib.dev, (void *)packet,
fs/smb/client/smbdirect.c
1117
if (ib_dma_mapping_error(sc->ib.dev, request->sge[0].addr)) {
fs/smb/client/smbdirect.c
1124
request->sge[0].lkey = sc->ib.pd->local_dma_lkey;
fs/smb/client/smbdirect.c
1126
rc = smbd_post_send(sc, NULL, request);
fs/smb/client/smbdirect.c
1146
static int manage_credits_prior_sending(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
1152
if (atomic_read(&sc->recv_io.credits.count) >= sc->recv_io.credits.target)
fs/smb/client/smbdirect.c
1155
missing = (int)sc->recv_io.credits.target - atomic_read(&sc->recv_io.credits.count);
fs/smb/client/smbdirect.c
1156
available = atomic_xchg(&sc->recv_io.credits.available, 0);
fs/smb/client/smbdirect.c
1164
atomic_add(available, &sc->recv_io.credits.available);
fs/smb/client/smbdirect.c
1173
atomic_add(available, &sc->recv_io.credits.available);
fs/smb/client/smbdirect.c
1179
atomic_add(new_credits, &sc->recv_io.credits.count);
fs/smb/client/smbdirect.c
1192
static int manage_keep_alive_before_sending(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
1194
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
1196
if (sc->idle.keepalive == SMBDIRECT_KEEPALIVE_PENDING) {
fs/smb/client/smbdirect.c
1197
sc->idle.keepalive = SMBDIRECT_KEEPALIVE_SENT;
fs/smb/client/smbdirect.c
1202
mod_delayed_work(sc->workqueue, &sc->idle.timer_work,
fs/smb/client/smbdirect.c
1209
static int smbd_ib_post_send(struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
1214
atomic_inc(&sc->send_io.pending.count);
fs/smb/client/smbdirect.c
1215
ret = ib_post_send(sc->ib.qp, wr, NULL);
fs/smb/client/smbdirect.c
1218
smbd_disconnect_rdma_connection(sc);
fs/smb/client/smbdirect.c
1225
static int smbd_post_send(struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
1236
sc->ib.dev,
fs/smb/client/smbdirect.c
1266
return smbd_ib_post_send(sc, &request->wr);
fs/smb/client/smbdirect.c
1280
static int smbd_send_batch_flush(struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
1319
ret = smbd_ib_post_send(sc, &first->wr);
fs/smb/client/smbdirect.c
1332
atomic_add(batch->credit, &sc->send_io.bcredits.count);
fs/smb/client/smbdirect.c
1334
wake_up(&sc->send_io.bcredits.wait_queue);
fs/smb/client/smbdirect.c
1340
static int wait_for_credits(struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
1353
sc->status != SMBDIRECT_SOCKET_CONNECTED);
fs/smb/client/smbdirect.c
1355
if (sc->status != SMBDIRECT_SOCKET_CONNECTED)
fs/smb/client/smbdirect.c
1362
static int wait_for_send_bcredit(struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
1370
ret = wait_for_credits(sc,
fs/smb/client/smbdirect.c
1371
&sc->send_io.bcredits.wait_queue,
fs/smb/client/smbdirect.c
1372
&sc->send_io.bcredits.count,
fs/smb/client/smbdirect.c
1381
static int wait_for_send_lcredit(struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
1384
if (batch && (atomic_read(&sc->send_io.lcredits.count) <= 1)) {
fs/smb/client/smbdirect.c
1387
ret = smbd_send_batch_flush(sc, batch, false);
fs/smb/client/smbdirect.c
1392
return wait_for_credits(sc,
fs/smb/client/smbdirect.c
1393
&sc->send_io.lcredits.wait_queue,
fs/smb/client/smbdirect.c
1394
&sc->send_io.lcredits.count,
fs/smb/client/smbdirect.c
1398
static int wait_for_send_credits(struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
1402
(batch->wr_cnt >= 16 || atomic_read(&sc->send_io.credits.count) <= 1)) {
fs/smb/client/smbdirect.c
1405
ret = smbd_send_batch_flush(sc, batch, false);
fs/smb/client/smbdirect.c
1410
return wait_for_credits(sc,
fs/smb/client/smbdirect.c
1411
&sc->send_io.credits.wait_queue,
fs/smb/client/smbdirect.c
1412
&sc->send_io.credits.count,
fs/smb/client/smbdirect.c
1416
static int smbd_post_send_iter(struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
1421
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
1435
rc = wait_for_send_bcredit(sc, batch);
fs/smb/client/smbdirect.c
1442
rc = wait_for_send_lcredit(sc, batch);
fs/smb/client/smbdirect.c
1449
rc = wait_for_send_credits(sc, batch);
fs/smb/client/smbdirect.c
1456
new_credits = manage_credits_prior_sending(sc);
fs/smb/client/smbdirect.c
1458
atomic_read(&sc->send_io.credits.count) == 0 &&
fs/smb/client/smbdirect.c
1459
atomic_read(&sc->recv_io.credits.count) == 0) {
fs/smb/client/smbdirect.c
1460
queue_work(sc->workqueue, &sc->recv_io.posted.refill_work);
fs/smb/client/smbdirect.c
1461
rc = wait_event_interruptible(sc->send_io.credits.wait_queue,
fs/smb/client/smbdirect.c
1462
atomic_read(&sc->send_io.credits.count) >= 1 ||
fs/smb/client/smbdirect.c
1463
atomic_read(&sc->recv_io.credits.available) >= 1 ||
fs/smb/client/smbdirect.c
1464
sc->status != SMBDIRECT_SOCKET_CONNECTED);
fs/smb/client/smbdirect.c
1465
if (sc->status != SMBDIRECT_SOCKET_CONNECTED)
fs/smb/client/smbdirect.c
1473
new_credits = manage_credits_prior_sending(sc);
fs/smb/client/smbdirect.c
1476
request = smbd_alloc_send_io(sc);
fs/smb/client/smbdirect.c
1491
request->sge[0].addr = ib_dma_map_single(sc->ib.dev,
fs/smb/client/smbdirect.c
1495
if (ib_dma_mapping_error(sc->ib.dev, request->sge[0].addr)) {
fs/smb/client/smbdirect.c
1501
request->sge[0].lkey = sc->ib.pd->local_dma_lkey;
fs/smb/client/smbdirect.c
1510
.device = sc->ib.dev,
fs/smb/client/smbdirect.c
1511
.local_dma_lkey = sc->ib.pd->local_dma_lkey,
fs/smb/client/smbdirect.c
1533
if (manage_keep_alive_before_sending(sc))
fs/smb/client/smbdirect.c
1552
rc = smbd_post_send(sc, batch, request);
fs/smb/client/smbdirect.c
1557
rc = smbd_send_batch_flush(sc, batch, true);
fs/smb/client/smbdirect.c
1566
atomic_inc(&sc->send_io.credits.count);
fs/smb/client/smbdirect.c
1567
wake_up(&sc->send_io.credits.wait_queue);
fs/smb/client/smbdirect.c
1570
atomic_inc(&sc->send_io.lcredits.count);
fs/smb/client/smbdirect.c
1571
wake_up(&sc->send_io.lcredits.wait_queue);
fs/smb/client/smbdirect.c
1574
atomic_add(batch->credit, &sc->send_io.bcredits.count);
fs/smb/client/smbdirect.c
1576
wake_up(&sc->send_io.bcredits.wait_queue);
fs/smb/client/smbdirect.c
1587
static int smbd_post_send_empty(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
1591
sc->statistics.send_empty++;
fs/smb/client/smbdirect.c
1592
return smbd_post_send_iter(sc, NULL, NULL, &remaining_data_length);
fs/smb/client/smbdirect.c
1595
static int smbd_post_send_full_iter(struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
1609
rc = smbd_post_send_iter(sc, batch, iter, _remaining_data_length);
fs/smb/client/smbdirect.c
1623
struct smbdirect_socket *sc, struct smbdirect_recv_io *response)
fs/smb/client/smbdirect.c
1625
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
1630
sc->ib.dev, response->packet,
fs/smb/client/smbdirect.c
1632
if (ib_dma_mapping_error(sc->ib.dev, response->sge.addr))
fs/smb/client/smbdirect.c
1636
response->sge.lkey = sc->ib.pd->local_dma_lkey;
fs/smb/client/smbdirect.c
1645
rc = ib_post_recv(sc->ib.qp, &recv_wr, NULL);
fs/smb/client/smbdirect.c
1647
ib_dma_unmap_single(sc->ib.dev, response->sge.addr,
fs/smb/client/smbdirect.c
1650
smbd_disconnect_rdma_connection(sc);
fs/smb/client/smbdirect.c
1658
static int smbd_negotiate(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
1660
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
1662
struct smbdirect_recv_io *response = get_receive_buffer(sc);
fs/smb/client/smbdirect.c
1664
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_NEGOTIATE_NEEDED);
fs/smb/client/smbdirect.c
1665
sc->status = SMBDIRECT_SOCKET_NEGOTIATE_RUNNING;
fs/smb/client/smbdirect.c
1667
sc->recv_io.expected = SMBDIRECT_EXPECT_NEGOTIATE_REP;
fs/smb/client/smbdirect.c
1668
rc = smbd_post_recv(sc, response);
fs/smb/client/smbdirect.c
1673
put_receive_buffer(sc, response);
fs/smb/client/smbdirect.c
1677
rc = smbd_post_send_negotiate_req(sc);
fs/smb/client/smbdirect.c
1682
sc->status_wait,
fs/smb/client/smbdirect.c
1683
sc->status != SMBDIRECT_SOCKET_NEGOTIATE_RUNNING,
fs/smb/client/smbdirect.c
1687
if (sc->status == SMBDIRECT_SOCKET_CONNECTED)
fs/smb/client/smbdirect.c
1711
struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
1717
spin_lock_irqsave(&sc->recv_io.reassembly.lock, flags);
fs/smb/client/smbdirect.c
1718
list_add_tail(&response->list, &sc->recv_io.reassembly.list);
fs/smb/client/smbdirect.c
1719
sc->recv_io.reassembly.queue_length++;
fs/smb/client/smbdirect.c
1727
sc->recv_io.reassembly.data_length += data_length;
fs/smb/client/smbdirect.c
1728
spin_unlock_irqrestore(&sc->recv_io.reassembly.lock, flags);
fs/smb/client/smbdirect.c
1729
sc->statistics.enqueue_reassembly_queue++;
fs/smb/client/smbdirect.c
1737
static struct smbdirect_recv_io *_get_first_reassembly(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
1741
if (!list_empty(&sc->recv_io.reassembly.list)) {
fs/smb/client/smbdirect.c
1743
&sc->recv_io.reassembly.list,
fs/smb/client/smbdirect.c
1755
static struct smbdirect_recv_io *get_receive_buffer(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
1760
spin_lock_irqsave(&sc->recv_io.free.lock, flags);
fs/smb/client/smbdirect.c
1761
if (!list_empty(&sc->recv_io.free.list)) {
fs/smb/client/smbdirect.c
1763
&sc->recv_io.free.list,
fs/smb/client/smbdirect.c
1766
sc->statistics.get_receive_buffer++;
fs/smb/client/smbdirect.c
1768
spin_unlock_irqrestore(&sc->recv_io.free.lock, flags);
fs/smb/client/smbdirect.c
1780
struct smbdirect_socket *sc, struct smbdirect_recv_io *response)
fs/smb/client/smbdirect.c
1785
ib_dma_unmap_single(sc->ib.dev,
fs/smb/client/smbdirect.c
1792
spin_lock_irqsave(&sc->recv_io.free.lock, flags);
fs/smb/client/smbdirect.c
1793
list_add_tail(&response->list, &sc->recv_io.free.list);
fs/smb/client/smbdirect.c
1794
sc->statistics.put_receive_buffer++;
fs/smb/client/smbdirect.c
1795
spin_unlock_irqrestore(&sc->recv_io.free.lock, flags);
fs/smb/client/smbdirect.c
1797
queue_work(sc->workqueue, &sc->recv_io.posted.refill_work);
fs/smb/client/smbdirect.c
1801
static int allocate_receive_buffers(struct smbdirect_socket *sc, int num_buf)
fs/smb/client/smbdirect.c
1807
response = mempool_alloc(sc->recv_io.mem.pool, GFP_KERNEL);
fs/smb/client/smbdirect.c
1811
response->socket = sc;
fs/smb/client/smbdirect.c
1813
list_add_tail(&response->list, &sc->recv_io.free.list);
fs/smb/client/smbdirect.c
1819
while (!list_empty(&sc->recv_io.free.list)) {
fs/smb/client/smbdirect.c
1821
&sc->recv_io.free.list,
fs/smb/client/smbdirect.c
1825
mempool_free(response, sc->recv_io.mem.pool);
fs/smb/client/smbdirect.c
1830
static void destroy_receive_buffers(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
1834
while ((response = get_receive_buffer(sc)))
fs/smb/client/smbdirect.c
1835
mempool_free(response, sc->recv_io.mem.pool);
fs/smb/client/smbdirect.c
1840
struct smbdirect_socket *sc =
fs/smb/client/smbdirect.c
1843
if (sc->status != SMBDIRECT_SOCKET_CONNECTED)
fs/smb/client/smbdirect.c
1847
smbd_post_send_empty(sc);
fs/smb/client/smbdirect.c
1853
struct smbdirect_socket *sc =
fs/smb/client/smbdirect.c
1855
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
1857
if (sc->idle.keepalive != SMBDIRECT_KEEPALIVE_NONE) {
fs/smb/client/smbdirect.c
1860
sc->idle.keepalive);
fs/smb/client/smbdirect.c
1861
smbd_disconnect_rdma_connection(sc);
fs/smb/client/smbdirect.c
1865
if (sc->status != SMBDIRECT_SOCKET_CONNECTED)
fs/smb/client/smbdirect.c
1872
sc->idle.keepalive = SMBDIRECT_KEEPALIVE_PENDING;
fs/smb/client/smbdirect.c
1873
mod_delayed_work(sc->workqueue, &sc->idle.timer_work,
fs/smb/client/smbdirect.c
1876
queue_work(sc->workqueue, &sc->idle.immediate_work);
fs/smb/client/smbdirect.c
188
static void smbd_disconnect_wake_up_all(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
1887
struct smbdirect_socket *sc;
fs/smb/client/smbdirect.c
1895
sc = &info->socket;
fs/smb/client/smbdirect.c
1898
disable_work_sync(&sc->disconnect_work);
fs/smb/client/smbdirect.c
19
struct smbdirect_socket *sc = &conn->socket;
fs/smb/client/smbdirect.c
1901
if (sc->status < SMBDIRECT_SOCKET_DISCONNECTING)
fs/smb/client/smbdirect.c
1902
smbd_disconnect_rdma_work(&sc->disconnect_work);
fs/smb/client/smbdirect.c
1903
if (sc->status < SMBDIRECT_SOCKET_DISCONNECTED) {
fs/smb/client/smbdirect.c
1905
wait_event(sc->status_wait, sc->status == SMBDIRECT_SOCKET_DISCONNECTED);
fs/smb/client/smbdirect.c
1916
smbd_disconnect_wake_up_all(sc);
fs/smb/client/smbdirect.c
1919
disable_work_sync(&sc->recv_io.posted.refill_work);
fs/smb/client/smbdirect.c
1922
ib_drain_qp(sc->ib.qp);
fs/smb/client/smbdirect.c
1923
rdma_destroy_qp(sc->rdma.cm_id);
fs/smb/client/smbdirect.c
1924
sc->ib.qp = NULL;
fs/smb/client/smbdirect.c
1927
disable_delayed_work_sync(&sc->idle.timer_work);
fs/smb/client/smbdirect.c
1929
disable_work_sync(&sc->idle.immediate_work);
fs/smb/client/smbdirect.c
1934
spin_lock_irqsave(&sc->recv_io.reassembly.lock, flags);
fs/smb/client/smbdirect.c
1935
response = _get_first_reassembly(sc);
fs/smb/client/smbdirect.c
1939
&sc->recv_io.reassembly.lock, flags);
fs/smb/client/smbdirect.c
194
wake_up_all(&sc->status_wait);
fs/smb/client/smbdirect.c
1940
put_receive_buffer(sc, response);
fs/smb/client/smbdirect.c
1943
&sc->recv_io.reassembly.lock, flags);
fs/smb/client/smbdirect.c
1945
sc->recv_io.reassembly.data_length = 0;
fs/smb/client/smbdirect.c
1948
destroy_receive_buffers(sc);
fs/smb/client/smbdirect.c
195
wake_up_all(&sc->send_io.lcredits.wait_queue);
fs/smb/client/smbdirect.c
1951
destroy_mr_list(sc);
fs/smb/client/smbdirect.c
1953
ib_free_cq(sc->ib.send_cq);
fs/smb/client/smbdirect.c
1954
ib_free_cq(sc->ib.recv_cq);
fs/smb/client/smbdirect.c
1955
ib_dealloc_pd(sc->ib.pd);
fs/smb/client/smbdirect.c
1956
rdma_destroy_id(sc->rdma.cm_id);
fs/smb/client/smbdirect.c
1959
mempool_destroy(sc->send_io.mem.pool);
fs/smb/client/smbdirect.c
196
wake_up_all(&sc->send_io.credits.wait_queue);
fs/smb/client/smbdirect.c
1960
kmem_cache_destroy(sc->send_io.mem.cache);
fs/smb/client/smbdirect.c
1962
mempool_destroy(sc->recv_io.mem.pool);
fs/smb/client/smbdirect.c
1963
kmem_cache_destroy(sc->recv_io.mem.cache);
fs/smb/client/smbdirect.c
1965
sc->status = SMBDIRECT_SOCKET_DESTROYED;
fs/smb/client/smbdirect.c
1967
destroy_workqueue(sc->workqueue);
fs/smb/client/smbdirect.c
197
wake_up_all(&sc->send_io.pending.dec_wait_queue);
fs/smb/client/smbdirect.c
198
wake_up_all(&sc->send_io.pending.zero_wait_queue);
fs/smb/client/smbdirect.c
199
wake_up_all(&sc->recv_io.reassembly.wait_queue);
fs/smb/client/smbdirect.c
200
wake_up_all(&sc->mr_io.ready.wait_queue);
fs/smb/client/smbdirect.c
2009
static void destroy_caches(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
201
wake_up_all(&sc->mr_io.cleanup.wait_queue);
fs/smb/client/smbdirect.c
2011
destroy_receive_buffers(sc);
fs/smb/client/smbdirect.c
2012
mempool_destroy(sc->recv_io.mem.pool);
fs/smb/client/smbdirect.c
2013
kmem_cache_destroy(sc->recv_io.mem.cache);
fs/smb/client/smbdirect.c
2014
mempool_destroy(sc->send_io.mem.pool);
fs/smb/client/smbdirect.c
2015
kmem_cache_destroy(sc->send_io.mem.cache);
fs/smb/client/smbdirect.c
2019
static int allocate_caches(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
2021
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
2028
scnprintf(name, MAX_NAME_LEN, "smbdirect_send_io_%p", sc);
fs/smb/client/smbdirect.c
2029
sc->send_io.mem.cache =
fs/smb/client/smbdirect.c
2035
if (!sc->send_io.mem.cache)
fs/smb/client/smbdirect.c
2038
sc->send_io.mem.pool =
fs/smb/client/smbdirect.c
2040
mempool_free_slab, sc->send_io.mem.cache);
fs/smb/client/smbdirect.c
2041
if (!sc->send_io.mem.pool)
fs/smb/client/smbdirect.c
2044
scnprintf(name, MAX_NAME_LEN, "smbdirect_recv_io_%p", sc);
fs/smb/client/smbdirect.c
2052
sc->recv_io.mem.cache =
fs/smb/client/smbdirect.c
2056
if (!sc->recv_io.mem.cache)
fs/smb/client/smbdirect.c
2059
sc->recv_io.mem.pool =
fs/smb/client/smbdirect.c
206
struct smbdirect_socket *sc =
fs/smb/client/smbdirect.c
2061
mempool_free_slab, sc->recv_io.mem.cache);
fs/smb/client/smbdirect.c
2062
if (!sc->recv_io.mem.pool)
fs/smb/client/smbdirect.c
2065
rc = allocate_receive_buffers(sc, sp->recv_credit_max);
fs/smb/client/smbdirect.c
2074
mempool_destroy(sc->recv_io.mem.pool);
fs/smb/client/smbdirect.c
2076
kmem_cache_destroy(sc->recv_io.mem.cache);
fs/smb/client/smbdirect.c
2078
mempool_destroy(sc->send_io.mem.pool);
fs/smb/client/smbdirect.c
2080
kmem_cache_destroy(sc->send_io.mem.cache);
fs/smb/client/smbdirect.c
209
if (sc->first_error == 0)
fs/smb/client/smbdirect.c
2090
struct smbdirect_socket *sc;
fs/smb/client/smbdirect.c
21
return &sc->parameters;
fs/smb/client/smbdirect.c
210
sc->first_error = -ECONNABORTED;
fs/smb/client/smbdirect.c
2104
sc = &info->socket;
fs/smb/client/smbdirect.c
2105
scnprintf(wq_name, ARRAY_SIZE(wq_name), "smbd_%p", sc);
fs/smb/client/smbdirect.c
2109
smbdirect_socket_init(sc);
fs/smb/client/smbdirect.c
2110
sc->workqueue = workqueue;
fs/smb/client/smbdirect.c
2111
sp = &sc->parameters;
fs/smb/client/smbdirect.c
2113
INIT_WORK(&sc->disconnect_work, smbd_disconnect_rdma_work);
fs/smb/client/smbdirect.c
2130
rc = smbd_ia_open(sc, dstaddr, port);
fs/smb/client/smbdirect.c
2136
if (sp->send_credit_target > sc->ib.dev->attrs.max_cqe ||
fs/smb/client/smbdirect.c
2137
sp->send_credit_target > sc->ib.dev->attrs.max_qp_wr) {
fs/smb/client/smbdirect.c
2140
sc->ib.dev->attrs.max_cqe,
fs/smb/client/smbdirect.c
2141
sc->ib.dev->attrs.max_qp_wr);
fs/smb/client/smbdirect.c
2145
if (sp->recv_credit_max > sc->ib.dev->attrs.max_cqe ||
fs/smb/client/smbdirect.c
2146
sp->recv_credit_max > sc->ib.dev->attrs.max_qp_wr) {
fs/smb/client/smbdirect.c
2149
sc->ib.dev->attrs.max_cqe,
fs/smb/client/smbdirect.c
2150
sc->ib.dev->attrs.max_qp_wr);
fs/smb/client/smbdirect.c
2154
if (sc->ib.dev->attrs.max_send_sge < SMBDIRECT_SEND_IO_MAX_SGE ||
fs/smb/client/smbdirect.c
2155
sc->ib.dev->attrs.max_recv_sge < SMBDIRECT_RECV_IO_MAX_SGE) {
fs/smb/client/smbdirect.c
2159
sc->ib.dev->name,
fs/smb/client/smbdirect.c
2160
sc->ib.dev->attrs.max_send_sge,
fs/smb/client/smbdirect.c
2161
sc->ib.dev->attrs.max_recv_sge);
fs/smb/client/smbdirect.c
2167
sc->ib.dev->attrs.max_qp_rd_atom);
fs/smb/client/smbdirect.c
217
disable_work(&sc->disconnect_work);
fs/smb/client/smbdirect.c
218
disable_work(&sc->recv_io.posted.refill_work);
fs/smb/client/smbdirect.c
2184
sc->ib.pd = ib_alloc_pd(sc->ib.dev, 0);
fs/smb/client/smbdirect.c
2185
if (IS_ERR(sc->ib.pd)) {
fs/smb/client/smbdirect.c
2186
rc = PTR_ERR(sc->ib.pd);
fs/smb/client/smbdirect.c
2187
sc->ib.pd = NULL;
fs/smb/client/smbdirect.c
219
disable_work(&sc->mr_io.recovery_work);
fs/smb/client/smbdirect.c
2192
sc->ib.send_cq =
fs/smb/client/smbdirect.c
2193
ib_alloc_cq_any(sc->ib.dev, sc,
fs/smb/client/smbdirect.c
2195
if (IS_ERR(sc->ib.send_cq)) {
fs/smb/client/smbdirect.c
2196
sc->ib.send_cq = NULL;
fs/smb/client/smbdirect.c
220
disable_work(&sc->idle.immediate_work);
fs/smb/client/smbdirect.c
2200
sc->ib.recv_cq =
fs/smb/client/smbdirect.c
2201
ib_alloc_cq_any(sc->ib.dev, sc,
fs/smb/client/smbdirect.c
2203
if (IS_ERR(sc->ib.recv_cq)) {
fs/smb/client/smbdirect.c
2204
sc->ib.recv_cq = NULL;
fs/smb/client/smbdirect.c
221
disable_delayed_work(&sc->idle.timer_work);
fs/smb/client/smbdirect.c
2210
qp_attr.qp_context = sc;
fs/smb/client/smbdirect.c
2214
qp_attr.send_cq = sc->ib.send_cq;
fs/smb/client/smbdirect.c
2215
qp_attr.recv_cq = sc->ib.recv_cq;
fs/smb/client/smbdirect.c
2218
rc = rdma_create_qp(sc->rdma.cm_id, sc->ib.pd, &qp_attr);
fs/smb/client/smbdirect.c
2223
sc->ib.qp = sc->rdma.cm_id->qp;
fs/smb/client/smbdirect.c
223
switch (sc->status) {
fs/smb/client/smbdirect.c
2230
sc->ib.dev->ops.get_port_immutable(
fs/smb/client/smbdirect.c
2231
sc->ib.dev, sc->rdma.cm_id->port_num, &port_immutable);
fs/smb/client/smbdirect.c
2249
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_RDMA_CONNECT_NEEDED);
fs/smb/client/smbdirect.c
2250
sc->status = SMBDIRECT_SOCKET_RDMA_CONNECT_RUNNING;
fs/smb/client/smbdirect.c
2251
rc = rdma_connect(sc->rdma.cm_id, &conn_param);
fs/smb/client/smbdirect.c
2258
sc->status_wait,
fs/smb/client/smbdirect.c
2259
sc->status != SMBDIRECT_SOCKET_RDMA_CONNECT_RUNNING,
fs/smb/client/smbdirect.c
2262
if (sc->status != SMBDIRECT_SOCKET_NEGOTIATE_NEEDED) {
fs/smb/client/smbdirect.c
2269
rc = allocate_caches(sc);
fs/smb/client/smbdirect.c
2275
INIT_WORK(&sc->idle.immediate_work, send_immediate_empty_message);
fs/smb/client/smbdirect.c
2276
INIT_DELAYED_WORK(&sc->idle.timer_work, idle_connection_timer);
fs/smb/client/smbdirect.c
2281
sc->idle.keepalive = SMBDIRECT_KEEPALIVE_PENDING;
fs/smb/client/smbdirect.c
2282
mod_delayed_work(sc->workqueue, &sc->idle.timer_work,
fs/smb/client/smbdirect.c
2285
INIT_WORK(&sc->recv_io.posted.refill_work, smbd_post_send_credits);
fs/smb/client/smbdirect.c
2287
rc = smbd_negotiate(sc);
fs/smb/client/smbdirect.c
229
sc->status = SMBDIRECT_SOCKET_DISCONNECTING;
fs/smb/client/smbdirect.c
2293
rc = allocate_mr_list(sc);
fs/smb/client/smbdirect.c
230
rdma_disconnect(sc->rdma.cm_id);
fs/smb/client/smbdirect.c
2308
disable_delayed_work_sync(&sc->idle.timer_work);
fs/smb/client/smbdirect.c
2309
destroy_caches(sc);
fs/smb/client/smbdirect.c
2310
sc->status = SMBDIRECT_SOCKET_NEGOTIATE_FAILED;
fs/smb/client/smbdirect.c
2311
rdma_disconnect(sc->rdma.cm_id);
fs/smb/client/smbdirect.c
2312
wait_event(sc->status_wait,
fs/smb/client/smbdirect.c
2313
sc->status == SMBDIRECT_SOCKET_DISCONNECTED);
fs/smb/client/smbdirect.c
2317
rdma_destroy_qp(sc->rdma.cm_id);
fs/smb/client/smbdirect.c
2321
if (sc->ib.send_cq)
fs/smb/client/smbdirect.c
2322
ib_free_cq(sc->ib.send_cq);
fs/smb/client/smbdirect.c
2323
if (sc->ib.recv_cq)
fs/smb/client/smbdirect.c
2324
ib_free_cq(sc->ib.recv_cq);
fs/smb/client/smbdirect.c
2326
ib_dealloc_pd(sc->ib.pd);
fs/smb/client/smbdirect.c
2330
rdma_destroy_id(sc->rdma.cm_id);
fs/smb/client/smbdirect.c
2333
destroy_workqueue(sc->workqueue);
fs/smb/client/smbdirect.c
2383
struct smbdirect_socket *sc = &info->socket;
fs/smb/client/smbdirect.c
2401
sc->recv_io.reassembly.data_length);
fs/smb/client/smbdirect.c
2402
if (sc->recv_io.reassembly.data_length >= size) {
fs/smb/client/smbdirect.c
2415
queue_length = sc->recv_io.reassembly.queue_length;
fs/smb/client/smbdirect.c
2418
offset = sc->recv_io.reassembly.first_entry_offset;
fs/smb/client/smbdirect.c
2420
response = _get_first_reassembly(sc);
fs/smb/client/smbdirect.c
2466
&sc->recv_io.reassembly.lock, flags);
fs/smb/client/smbdirect.c
2469
&sc->recv_io.reassembly.lock, flags);
fs/smb/client/smbdirect.c
247
sc->status = SMBDIRECT_SOCKET_DISCONNECTED;
fs/smb/client/smbdirect.c
2472
sc->statistics.dequeue_reassembly_queue++;
fs/smb/client/smbdirect.c
2473
put_receive_buffer(sc, response);
fs/smb/client/smbdirect.c
2487
spin_lock_irqsave(&sc->recv_io.reassembly.lock, flags);
fs/smb/client/smbdirect.c
2488
sc->recv_io.reassembly.data_length -= data_read;
fs/smb/client/smbdirect.c
2489
sc->recv_io.reassembly.queue_length -= queue_removed;
fs/smb/client/smbdirect.c
2490
spin_unlock_irqrestore(&sc->recv_io.reassembly.lock, flags);
fs/smb/client/smbdirect.c
2492
sc->recv_io.reassembly.first_entry_offset = offset;
fs/smb/client/smbdirect.c
2494
data_read, sc->recv_io.reassembly.data_length,
fs/smb/client/smbdirect.c
2495
sc->recv_io.reassembly.first_entry_offset);
fs/smb/client/smbdirect.c
25
struct smbdirect_socket *sc);
fs/smb/client/smbdirect.c
2502
sc->recv_io.reassembly.wait_queue,
fs/smb/client/smbdirect.c
2503
sc->recv_io.reassembly.data_length >= size ||
fs/smb/client/smbdirect.c
2504
sc->status != SMBDIRECT_SOCKET_CONNECTED);
fs/smb/client/smbdirect.c
2509
if (sc->status != SMBDIRECT_SOCKET_CONNECTED) {
fs/smb/client/smbdirect.c
2527
struct smbdirect_socket *sc = &info->socket;
fs/smb/client/smbdirect.c
2528
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
2536
if (sc->status != SMBDIRECT_SOCKET_CONNECTED)
fs/smb/client/smbdirect.c
2578
rc = smbd_post_send_full_iter(sc, &batch, &iter, &remaining_data_length);
fs/smb/client/smbdirect.c
2586
rc = smbd_post_send_full_iter(sc, &batch, &rqst->rq_iter,
fs/smb/client/smbdirect.c
2596
rc = smbd_send_batch_flush(sc, &batch, true);
fs/smb/client/smbdirect.c
260
smbd_disconnect_wake_up_all(sc);
fs/smb/client/smbdirect.c
2607
wait_event(sc->send_io.pending.zero_wait_queue,
fs/smb/client/smbdirect.c
2608
atomic_read(&sc->send_io.pending.count) == 0 ||
fs/smb/client/smbdirect.c
2609
sc->status != SMBDIRECT_SOCKET_CONNECTED);
fs/smb/client/smbdirect.c
2611
if (sc->status != SMBDIRECT_SOCKET_CONNECTED && rc == 0)
fs/smb/client/smbdirect.c
2621
struct smbdirect_socket *sc = mr->socket;
fs/smb/client/smbdirect.c
2625
smbd_disconnect_rdma_connection(sc);
fs/smb/client/smbdirect.c
263
static void smbd_disconnect_rdma_connection(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
2640
struct smbdirect_socket *sc =
fs/smb/client/smbdirect.c
2642
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
2646
list_for_each_entry(smbdirect_mr, &sc->mr_io.all.list, list) {
fs/smb/client/smbdirect.c
265
if (sc->first_error == 0)
fs/smb/client/smbdirect.c
2655
smbd_disconnect_rdma_connection(sc);
fs/smb/client/smbdirect.c
266
sc->first_error = -ECONNABORTED;
fs/smb/client/smbdirect.c
2660
sc->ib.pd, sc->mr_io.type,
fs/smb/client/smbdirect.c
2664
sc->mr_io.type,
fs/smb/client/smbdirect.c
2666
smbd_disconnect_rdma_connection(sc);
fs/smb/client/smbdirect.c
2682
if (atomic_inc_return(&sc->mr_io.ready.count) == 1)
fs/smb/client/smbdirect.c
2683
wake_up(&sc->mr_io.ready.wait_queue);
fs/smb/client/smbdirect.c
2689
struct smbdirect_socket *sc = mr->socket;
fs/smb/client/smbdirect.c
2699
ib_dma_unmap_sg(sc->ib.dev, mr->sgt.sgl, mr->sgt.nents, mr->dir);
fs/smb/client/smbdirect.c
27
struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
2727
static void destroy_mr_list(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
273
disable_work(&sc->recv_io.posted.refill_work);
fs/smb/client/smbdirect.c
2733
disable_work_sync(&sc->mr_io.recovery_work);
fs/smb/client/smbdirect.c
2735
spin_lock_irqsave(&sc->mr_io.all.lock, flags);
fs/smb/client/smbdirect.c
2736
list_splice_tail_init(&sc->mr_io.all.list, &all_list);
fs/smb/client/smbdirect.c
2737
spin_unlock_irqrestore(&sc->mr_io.all.lock, flags);
fs/smb/client/smbdirect.c
274
disable_work(&sc->mr_io.recovery_work);
fs/smb/client/smbdirect.c
275
disable_work(&sc->idle.immediate_work);
fs/smb/client/smbdirect.c
276
disable_delayed_work(&sc->idle.timer_work);
fs/smb/client/smbdirect.c
2775
static int allocate_mr_list(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
2777
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
278
switch (sc->status) {
fs/smb/client/smbdirect.c
2798
mr->mr = ib_alloc_mr(sc->ib.pd,
fs/smb/client/smbdirect.c
2799
sc->mr_io.type,
fs/smb/client/smbdirect.c
2804
sc->mr_io.type, sp->max_frmr_depth);
fs/smb/client/smbdirect.c
2816
mr->socket = sc;
fs/smb/client/smbdirect.c
2818
list_add_tail(&mr->list, &sc->mr_io.all.list);
fs/smb/client/smbdirect.c
2819
atomic_inc(&sc->mr_io.ready.count);
fs/smb/client/smbdirect.c
2822
INIT_WORK(&sc->mr_io.recovery_work, smbd_mr_recovery_work);
fs/smb/client/smbdirect.c
2832
destroy_mr_list(sc);
fs/smb/client/smbdirect.c
2844
static struct smbdirect_mr_io *get_mr(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
2850
rc = wait_event_interruptible(sc->mr_io.ready.wait_queue,
fs/smb/client/smbdirect.c
2851
atomic_read(&sc->mr_io.ready.count) ||
fs/smb/client/smbdirect.c
2852
sc->status != SMBDIRECT_SOCKET_CONNECTED);
fs/smb/client/smbdirect.c
2858
if (sc->status != SMBDIRECT_SOCKET_CONNECTED) {
fs/smb/client/smbdirect.c
2859
log_rdma_mr(ERR, "sc->status=%x\n", sc->status);
fs/smb/client/smbdirect.c
2863
spin_lock_irqsave(&sc->mr_io.all.lock, flags);
fs/smb/client/smbdirect.c
2864
list_for_each_entry(ret, &sc->mr_io.all.list, list) {
fs/smb/client/smbdirect.c
2868
spin_unlock_irqrestore(&sc->mr_io.all.lock, flags);
fs/smb/client/smbdirect.c
2869
atomic_dec(&sc->mr_io.ready.count);
fs/smb/client/smbdirect.c
2870
atomic_inc(&sc->mr_io.used.count);
fs/smb/client/smbdirect.c
2875
spin_unlock_irqrestore(&sc->mr_io.all.lock, flags);
fs/smb/client/smbdirect.c
29
static int allocate_receive_buffers(struct smbdirect_socket *sc, int num_buf);
fs/smb/client/smbdirect.c
2912
struct smbdirect_socket *sc = &info->socket;
fs/smb/client/smbdirect.c
2913
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
2926
mr = get_mr(sc);
fs/smb/client/smbdirect.c
294
sc->status = SMBDIRECT_SOCKET_RESOLVE_ADDR_FAILED;
fs/smb/client/smbdirect.c
2943
rc = ib_dma_map_sg(sc->ib.dev, mr->sgt.sgl, mr->sgt.nents, mr->dir);
fs/smb/client/smbdirect.c
2976
rc = ib_post_send(sc->ib.qp, &reg_wr->wr, NULL);
fs/smb/client/smbdirect.c
299
sc->status = SMBDIRECT_SOCKET_RESOLVE_ROUTE_FAILED;
fs/smb/client/smbdirect.c
2993
ib_dma_unmap_sg(sc->ib.dev, mr->sgt.sgl, mr->sgt.nents, mr->dir);
fs/smb/client/smbdirect.c
2998
if (atomic_dec_and_test(&sc->mr_io.used.count))
fs/smb/client/smbdirect.c
2999
wake_up(&sc->mr_io.cleanup.wait_queue);
fs/smb/client/smbdirect.c
30
static void destroy_receive_buffers(struct smbdirect_socket *sc);
fs/smb/client/smbdirect.c
3001
smbd_disconnect_rdma_connection(sc);
fs/smb/client/smbdirect.c
304
sc->status = SMBDIRECT_SOCKET_RDMA_CONNECT_FAILED;
fs/smb/client/smbdirect.c
3048
struct smbdirect_socket *sc = mr->socket;
fs/smb/client/smbdirect.c
3054
if (sc->status != SMBDIRECT_SOCKET_CONNECTED) {
fs/smb/client/smbdirect.c
3072
rc = ib_post_send(sc->ib.qp, wr, NULL);
fs/smb/client/smbdirect.c
3076
smbd_disconnect_rdma_connection(sc);
fs/smb/client/smbdirect.c
3089
ib_dma_unmap_sg(sc->ib.dev, mr->sgt.sgl, mr->sgt.nents, mr->dir);
fs/smb/client/smbdirect.c
309
sc->status = SMBDIRECT_SOCKET_NEGOTIATE_FAILED;
fs/smb/client/smbdirect.c
3095
if (atomic_inc_return(&sc->mr_io.ready.count) == 1)
fs/smb/client/smbdirect.c
3096
wake_up(&sc->mr_io.ready.wait_queue);
fs/smb/client/smbdirect.c
3102
queue_work(sc->workqueue, &sc->mr_io.recovery_work);
fs/smb/client/smbdirect.c
3105
if (atomic_dec_and_test(&sc->mr_io.used.count))
fs/smb/client/smbdirect.c
3106
wake_up(&sc->mr_io.cleanup.wait_queue);
fs/smb/client/smbdirect.c
313
sc->status = SMBDIRECT_SOCKET_DISCONNECTED;
fs/smb/client/smbdirect.c
317
sc->status = SMBDIRECT_SOCKET_ERROR;
fs/smb/client/smbdirect.c
325
smbd_disconnect_wake_up_all(sc);
fs/smb/client/smbdirect.c
327
queue_work(sc->workqueue, &sc->disconnect_work);
fs/smb/client/smbdirect.c
33
struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
334
struct smbdirect_socket *sc = id->context;
fs/smb/client/smbdirect.c
335
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
345
if (SMBDIRECT_CHECK_STATUS_DISCONNECT(sc, SMBDIRECT_SOCKET_RESOLVE_ADDR_RUNNING))
fs/smb/client/smbdirect.c
347
sc->status = SMBDIRECT_SOCKET_RESOLVE_ROUTE_NEEDED;
fs/smb/client/smbdirect.c
348
wake_up(&sc->status_wait);
fs/smb/client/smbdirect.c
352
if (SMBDIRECT_CHECK_STATUS_DISCONNECT(sc, SMBDIRECT_SOCKET_RESOLVE_ROUTE_RUNNING))
fs/smb/client/smbdirect.c
354
sc->status = SMBDIRECT_SOCKET_RDMA_CONNECT_NEEDED;
fs/smb/client/smbdirect.c
355
wake_up(&sc->status_wait);
fs/smb/client/smbdirect.c
36
struct smbdirect_socket *sc);
fs/smb/client/smbdirect.c
360
sc->status = SMBDIRECT_SOCKET_RESOLVE_ADDR_FAILED;
fs/smb/client/smbdirect.c
361
smbd_disconnect_rdma_work(&sc->disconnect_work);
fs/smb/client/smbdirect.c
366
sc->status = SMBDIRECT_SOCKET_RESOLVE_ROUTE_FAILED;
fs/smb/client/smbdirect.c
367
smbd_disconnect_rdma_work(&sc->disconnect_work);
fs/smb/client/smbdirect.c
38
static int smbd_post_send(struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
43
struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
431
sc->rdma.legacy_iwarp = true;
fs/smb/client/smbdirect.c
451
if (SMBDIRECT_CHECK_STATUS_DISCONNECT(sc, SMBDIRECT_SOCKET_RDMA_CONNECT_RUNNING))
fs/smb/client/smbdirect.c
453
sc->status = SMBDIRECT_SOCKET_NEGOTIATE_NEEDED;
fs/smb/client/smbdirect.c
454
wake_up(&sc->status_wait);
fs/smb/client/smbdirect.c
46
static int smbd_post_send_empty(struct smbdirect_socket *sc);
fs/smb/client/smbdirect.c
461
sc->status = SMBDIRECT_SOCKET_RDMA_CONNECT_FAILED;
fs/smb/client/smbdirect.c
462
smbd_disconnect_rdma_work(&sc->disconnect_work);
fs/smb/client/smbdirect.c
468
if (sc->status == SMBDIRECT_SOCKET_NEGOTIATE_FAILED) {
fs/smb/client/smbdirect.c
472
sc->status = SMBDIRECT_SOCKET_DISCONNECTED;
fs/smb/client/smbdirect.c
473
smbd_disconnect_rdma_work(&sc->disconnect_work);
fs/smb/client/smbdirect.c
48
static void destroy_mr_list(struct smbdirect_socket *sc);
fs/smb/client/smbdirect.c
489
struct smbdirect_socket *sc = context;
fs/smb/client/smbdirect.c
49
static int allocate_mr_list(struct smbdirect_socket *sc);
fs/smb/client/smbdirect.c
492
ib_event_msg(event->event), event->device->name, sc);
fs/smb/client/smbdirect.c
497
smbd_disconnect_rdma_connection(sc);
fs/smb/client/smbdirect.c
515
static struct smbdirect_send_io *smbd_alloc_send_io(struct smbdirect_socket *sc)
fs/smb/client/smbdirect.c
519
msg = mempool_alloc(sc->send_io.mem.pool, GFP_KERNEL);
fs/smb/client/smbdirect.c
522
msg->socket = sc;
fs/smb/client/smbdirect.c
531
struct smbdirect_socket *sc = msg->socket;
fs/smb/client/smbdirect.c
552
ib_dma_unmap_page(sc->ib.dev,
fs/smb/client/smbdirect.c
557
mempool_free(msg, sc->send_io.mem.pool);
fs/smb/client/smbdirect.c
565
struct smbdirect_socket *sc = request->socket;
fs/smb/client/smbdirect.c
594
smbd_disconnect_rdma_connection(sc);
fs/smb/client/smbdirect.c
615
smbd_disconnect_rdma_connection(sc);
fs/smb/client/smbdirect.c
619
atomic_add(lcredits, &sc->send_io.lcredits.count);
fs/smb/client/smbdirect.c
620
wake_up(&sc->send_io.lcredits.wait_queue);
fs/smb/client/smbdirect.c
622
if (atomic_dec_and_test(&sc->send_io.pending.count))
fs/smb/client/smbdirect.c
623
wake_up(&sc->send_io.pending.zero_wait_queue);
fs/smb/client/smbdirect.c
625
wake_up(&sc->send_io.pending.dec_wait_queue);
fs/smb/client/smbdirect.c
646
struct smbdirect_socket *sc = response->socket;
fs/smb/client/smbdirect.c
647
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
666
sc->recv_io.credits.target = le16_to_cpu(packet->credits_requested);
fs/smb/client/smbdirect.c
667
sc->recv_io.credits.target = min_t(u16, sc->recv_io.credits.target, sp->recv_credit_max);
fs/smb/client/smbdirect.c
673
atomic_set(&sc->send_io.lcredits.count, sp->send_credit_target);
fs/smb/client/smbdirect.c
674
atomic_set(&sc->send_io.credits.count, le16_to_cpu(packet->credits_granted));
fs/smb/client/smbdirect.c
706
atomic_set(&sc->send_io.bcredits.count, 1);
fs/smb/client/smbdirect.c
707
sc->recv_io.expected = SMBDIRECT_EXPECT_DATA_TRANSFER;
fs/smb/client/smbdirect.c
715
struct smbdirect_socket *sc =
fs/smb/client/smbdirect.c
719
if (sc->status != SMBDIRECT_SOCKET_CONNECTED) {
fs/smb/client/smbdirect.c
723
if (sc->recv_io.credits.target >
fs/smb/client/smbdirect.c
724
atomic_read(&sc->recv_io.credits.count)) {
fs/smb/client/smbdirect.c
726
response = get_receive_buffer(sc);
fs/smb/client/smbdirect.c
731
rc = smbd_post_recv(sc, response);
fs/smb/client/smbdirect.c
735
put_receive_buffer(sc, response);
fs/smb/client/smbdirect.c
739
atomic_inc(&sc->recv_io.posted.count);
fs/smb/client/smbdirect.c
744
atomic_add(posted, &sc->recv_io.credits.available);
fs/smb/client/smbdirect.c
751
atomic_read(&sc->send_io.bcredits.count) == 0 &&
fs/smb/client/smbdirect.c
752
atomic_read(&sc->send_io.credits.count) == 0)
fs/smb/client/smbdirect.c
753
wake_up(&sc->send_io.credits.wait_queue);
fs/smb/client/smbdirect.c
756
if (atomic_read(&sc->recv_io.credits.count) <
fs/smb/client/smbdirect.c
757
sc->recv_io.credits.target - 1) {
fs/smb/client/smbdirect.c
759
queue_work(sc->workqueue, &sc->idle.immediate_work);
fs/smb/client/smbdirect.c
769
struct smbdirect_socket *sc = response->socket;
fs/smb/client/smbdirect.c
770
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
780
response, sc->recv_io.expected,
fs/smb/client/smbdirect.c
801
sc->idle.keepalive = SMBDIRECT_KEEPALIVE_NONE;
fs/smb/client/smbdirect.c
802
mod_delayed_work(sc->workqueue, &sc->idle.timer_work,
fs/smb/client/smbdirect.c
805
switch (sc->recv_io.expected) {
fs/smb/client/smbdirect.c
809
sc->recv_io.reassembly.full_packet_received = true;
fs/smb/client/smbdirect.c
812
put_receive_buffer(sc, response);
fs/smb/client/smbdirect.c
813
if (SMBDIRECT_CHECK_STATUS_WARN(sc, SMBDIRECT_SOCKET_NEGOTIATE_RUNNING))
fs/smb/client/smbdirect.c
816
sc->status = SMBDIRECT_SOCKET_NEGOTIATE_FAILED;
fs/smb/client/smbdirect.c
817
smbd_disconnect_rdma_connection(sc);
fs/smb/client/smbdirect.c
819
sc->status = SMBDIRECT_SOCKET_CONNECTED;
fs/smb/client/smbdirect.c
820
wake_up(&sc->status_wait);
fs/smb/client/smbdirect.c
846
if (sc->recv_io.reassembly.full_packet_received)
fs/smb/client/smbdirect.c
850
sc->recv_io.reassembly.full_packet_received = false;
fs/smb/client/smbdirect.c
852
sc->recv_io.reassembly.full_packet_received = true;
fs/smb/client/smbdirect.c
855
atomic_dec(&sc->recv_io.posted.count);
fs/smb/client/smbdirect.c
856
current_recv_credits = atomic_dec_return(&sc->recv_io.credits.count);
fs/smb/client/smbdirect.c
858
old_recv_credit_target = sc->recv_io.credits.target;
fs/smb/client/smbdirect.c
859
sc->recv_io.credits.target =
fs/smb/client/smbdirect.c
861
sc->recv_io.credits.target =
fs/smb/client/smbdirect.c
862
min_t(u16, sc->recv_io.credits.target, sp->recv_credit_max);
fs/smb/client/smbdirect.c
863
sc->recv_io.credits.target =
fs/smb/client/smbdirect.c
864
max_t(u16, sc->recv_io.credits.target, 1);
fs/smb/client/smbdirect.c
867
&sc->send_io.credits.count);
fs/smb/client/smbdirect.c
872
wake_up(&sc->send_io.credits.wait_queue);
fs/smb/client/smbdirect.c
885
queue_work(sc->workqueue, &sc->idle.immediate_work);
fs/smb/client/smbdirect.c
893
if (current_recv_credits <= (sc->recv_io.credits.target / 4) ||
fs/smb/client/smbdirect.c
894
sc->recv_io.credits.target > old_recv_credit_target)
fs/smb/client/smbdirect.c
895
queue_work(sc->workqueue, &sc->recv_io.posted.refill_work);
fs/smb/client/smbdirect.c
897
enqueue_reassembly(sc, response, data_length);
fs/smb/client/smbdirect.c
898
wake_up(&sc->recv_io.reassembly.wait_queue);
fs/smb/client/smbdirect.c
900
put_receive_buffer(sc, response);
fs/smb/client/smbdirect.c
912
log_rdma_recv(ERR, "unexpected response type=%d\n", sc->recv_io.expected);
fs/smb/client/smbdirect.c
913
WARN_ON_ONCE(sc->recv_io.expected != SMBDIRECT_EXPECT_DATA_TRANSFER);
fs/smb/client/smbdirect.c
915
put_receive_buffer(sc, response);
fs/smb/client/smbdirect.c
916
smbd_disconnect_rdma_connection(sc);
fs/smb/client/smbdirect.c
920
struct smbdirect_socket *sc,
fs/smb/client/smbdirect.c
923
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/client/smbdirect.c
929
id = rdma_create_id(&init_net, smbd_conn_upcall, sc,
fs/smb/client/smbdirect.c
969
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_RESOLVE_ADDR_NEEDED);
fs/smb/client/smbdirect.c
970
sc->status = SMBDIRECT_SOCKET_RESOLVE_ADDR_RUNNING;
fs/smb/client/smbdirect.c
978
sc->status_wait,
fs/smb/client/smbdirect.c
979
sc->status != SMBDIRECT_SOCKET_RESOLVE_ADDR_RUNNING,
fs/smb/client/smbdirect.c
986
if (sc->status == SMBDIRECT_SOCKET_RESOLVE_ADDR_RUNNING) {
fs/smb/client/smbdirect.c
991
if (sc->status != SMBDIRECT_SOCKET_RESOLVE_ROUTE_NEEDED) {
fs/smb/client/smbdirect.c
997
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_RESOLVE_ROUTE_NEEDED);
fs/smb/client/smbdirect.c
998
sc->status = SMBDIRECT_SOCKET_RESOLVE_ROUTE_RUNNING;
fs/smb/common/smbdirect/smbdirect_socket.h
363
static __always_inline void smbdirect_socket_init(struct smbdirect_socket *sc)
fs/smb/common/smbdirect/smbdirect_socket.h
369
memset(sc, 0, sizeof(*sc));
fs/smb/common/smbdirect/smbdirect_socket.h
371
init_waitqueue_head(&sc->status_wait);
fs/smb/common/smbdirect/smbdirect_socket.h
373
INIT_WORK(&sc->disconnect_work, __smbdirect_socket_disabled_work);
fs/smb/common/smbdirect/smbdirect_socket.h
374
disable_work_sync(&sc->disconnect_work);
fs/smb/common/smbdirect/smbdirect_socket.h
376
spin_lock_init(&sc->connect.lock);
fs/smb/common/smbdirect/smbdirect_socket.h
377
INIT_WORK(&sc->connect.work, __smbdirect_socket_disabled_work);
fs/smb/common/smbdirect/smbdirect_socket.h
378
disable_work_sync(&sc->connect.work);
fs/smb/common/smbdirect/smbdirect_socket.h
380
INIT_WORK(&sc->idle.immediate_work, __smbdirect_socket_disabled_work);
fs/smb/common/smbdirect/smbdirect_socket.h
381
disable_work_sync(&sc->idle.immediate_work);
fs/smb/common/smbdirect/smbdirect_socket.h
382
INIT_DELAYED_WORK(&sc->idle.timer_work, __smbdirect_socket_disabled_work);
fs/smb/common/smbdirect/smbdirect_socket.h
383
disable_delayed_work_sync(&sc->idle.timer_work);
fs/smb/common/smbdirect/smbdirect_socket.h
385
atomic_set(&sc->send_io.bcredits.count, 0);
fs/smb/common/smbdirect/smbdirect_socket.h
386
init_waitqueue_head(&sc->send_io.bcredits.wait_queue);
fs/smb/common/smbdirect/smbdirect_socket.h
388
atomic_set(&sc->send_io.lcredits.count, 0);
fs/smb/common/smbdirect/smbdirect_socket.h
389
init_waitqueue_head(&sc->send_io.lcredits.wait_queue);
fs/smb/common/smbdirect/smbdirect_socket.h
391
atomic_set(&sc->send_io.credits.count, 0);
fs/smb/common/smbdirect/smbdirect_socket.h
392
init_waitqueue_head(&sc->send_io.credits.wait_queue);
fs/smb/common/smbdirect/smbdirect_socket.h
394
atomic_set(&sc->send_io.pending.count, 0);
fs/smb/common/smbdirect/smbdirect_socket.h
395
init_waitqueue_head(&sc->send_io.pending.dec_wait_queue);
fs/smb/common/smbdirect/smbdirect_socket.h
396
init_waitqueue_head(&sc->send_io.pending.zero_wait_queue);
fs/smb/common/smbdirect/smbdirect_socket.h
398
INIT_LIST_HEAD(&sc->recv_io.free.list);
fs/smb/common/smbdirect/smbdirect_socket.h
399
spin_lock_init(&sc->recv_io.free.lock);
fs/smb/common/smbdirect/smbdirect_socket.h
401
atomic_set(&sc->recv_io.posted.count, 0);
fs/smb/common/smbdirect/smbdirect_socket.h
402
INIT_WORK(&sc->recv_io.posted.refill_work, __smbdirect_socket_disabled_work);
fs/smb/common/smbdirect/smbdirect_socket.h
403
disable_work_sync(&sc->recv_io.posted.refill_work);
fs/smb/common/smbdirect/smbdirect_socket.h
405
atomic_set(&sc->recv_io.credits.available, 0);
fs/smb/common/smbdirect/smbdirect_socket.h
406
atomic_set(&sc->recv_io.credits.count, 0);
fs/smb/common/smbdirect/smbdirect_socket.h
408
INIT_LIST_HEAD(&sc->recv_io.reassembly.list);
fs/smb/common/smbdirect/smbdirect_socket.h
409
spin_lock_init(&sc->recv_io.reassembly.lock);
fs/smb/common/smbdirect/smbdirect_socket.h
410
init_waitqueue_head(&sc->recv_io.reassembly.wait_queue);
fs/smb/common/smbdirect/smbdirect_socket.h
412
atomic_set(&sc->rw_io.credits.count, 0);
fs/smb/common/smbdirect/smbdirect_socket.h
413
init_waitqueue_head(&sc->rw_io.credits.wait_queue);
fs/smb/common/smbdirect/smbdirect_socket.h
415
spin_lock_init(&sc->mr_io.all.lock);
fs/smb/common/smbdirect/smbdirect_socket.h
416
INIT_LIST_HEAD(&sc->mr_io.all.list);
fs/smb/common/smbdirect/smbdirect_socket.h
417
atomic_set(&sc->mr_io.ready.count, 0);
fs/smb/common/smbdirect/smbdirect_socket.h
418
init_waitqueue_head(&sc->mr_io.ready.wait_queue);
fs/smb/common/smbdirect/smbdirect_socket.h
419
atomic_set(&sc->mr_io.used.count, 0);
fs/smb/common/smbdirect/smbdirect_socket.h
420
INIT_WORK(&sc->mr_io.recovery_work, __smbdirect_socket_disabled_work);
fs/smb/common/smbdirect/smbdirect_socket.h
421
disable_work_sync(&sc->mr_io.recovery_work);
fs/smb/common/smbdirect/smbdirect_socket.h
422
init_waitqueue_head(&sc->mr_io.cleanup.wait_queue);
fs/smb/server/ksmbd_netlink.h
194
ksmbd_share_config_path(struct ksmbd_share_config_response *sc)
fs/smb/server/ksmbd_netlink.h
196
char *p = sc->____payload;
fs/smb/server/ksmbd_netlink.h
198
if (sc->veto_list_sz)
fs/smb/server/ksmbd_netlink.h
199
p += sc->veto_list_sz + 1;
fs/smb/server/mgmt/tree_connect.c
24
struct ksmbd_share_config *sc;
fs/smb/server/mgmt/tree_connect.c
31
sc = ksmbd_share_config_get(work, share_name);
fs/smb/server/mgmt/tree_connect.c
32
if (!sc)
fs/smb/server/mgmt/tree_connect.c
49
sc,
fs/smb/server/mgmt/tree_connect.c
65
ksmbd_share_config_del(sc);
fs/smb/server/mgmt/tree_connect.c
72
ksmbd_share_config_put(sc);
fs/smb/server/mgmt/tree_connect.c
73
sc = new_sc;
fs/smb/server/mgmt/tree_connect.c
77
tree_conn->share_conf = sc;
fs/smb/server/mgmt/tree_connect.c
97
ksmbd_share_config_put(sc);
fs/smb/server/transport_rdma.c
1000
sc->recv_io.reassembly.first_entry_offset = offset;
fs/smb/server/transport_rdma.c
1003
data_read, sc->recv_io.reassembly.data_length,
fs/smb/server/transport_rdma.c
1004
sc->recv_io.reassembly.first_entry_offset);
fs/smb/server/transport_rdma.c
1010
rc = wait_event_interruptible(sc->recv_io.reassembly.wait_queue,
fs/smb/server/transport_rdma.c
1011
sc->recv_io.reassembly.data_length >= size ||
fs/smb/server/transport_rdma.c
1012
sc->status != SMBDIRECT_SOCKET_CONNECTED);
fs/smb/server/transport_rdma.c
1021
struct smbdirect_socket *sc =
fs/smb/server/transport_rdma.c
1027
if (atomic_read(&sc->recv_io.credits.count) < sc->recv_io.credits.target) {
fs/smb/server/transport_rdma.c
1029
recvmsg = get_free_recvmsg(sc);
fs/smb/server/transport_rdma.c
1035
ret = smb_direct_post_recv(sc, recvmsg);
fs/smb/server/transport_rdma.c
1038
put_recvmsg(sc, recvmsg);
fs/smb/server/transport_rdma.c
1043
atomic_inc(&sc->recv_io.posted.count);
fs/smb/server/transport_rdma.c
1047
atomic_add(credits, &sc->recv_io.credits.available);
fs/smb/server/transport_rdma.c
1054
atomic_read(&sc->send_io.bcredits.count) == 0 &&
fs/smb/server/transport_rdma.c
1055
atomic_read(&sc->send_io.credits.count) == 0)
fs/smb/server/transport_rdma.c
1056
wake_up(&sc->send_io.credits.wait_queue);
fs/smb/server/transport_rdma.c
1059
queue_work(sc->workqueue, &sc->idle.immediate_work);
fs/smb/server/transport_rdma.c
1065
struct smbdirect_socket *sc;
fs/smb/server/transport_rdma.c
1069
sc = sendmsg->socket;
fs/smb/server/transport_rdma.c
1096
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
1105
smb_direct_free_sendmsg(sc, sibling);
fs/smb/server/transport_rdma.c
1109
smb_direct_free_sendmsg(sc, sendmsg);
fs/smb/server/transport_rdma.c
1117
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
1121
atomic_add(lcredits, &sc->send_io.lcredits.count);
fs/smb/server/transport_rdma.c
1122
wake_up(&sc->send_io.lcredits.wait_queue);
fs/smb/server/transport_rdma.c
1124
if (atomic_dec_and_test(&sc->send_io.pending.count))
fs/smb/server/transport_rdma.c
1125
wake_up(&sc->send_io.pending.zero_wait_queue);
fs/smb/server/transport_rdma.c
1128
static int manage_credits_prior_sending(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
1134
if (atomic_read(&sc->recv_io.credits.count) >= sc->recv_io.credits.target)
fs/smb/server/transport_rdma.c
1137
missing = (int)sc->recv_io.credits.target - atomic_read(&sc->recv_io.credits.count);
fs/smb/server/transport_rdma.c
1138
available = atomic_xchg(&sc->recv_io.credits.available, 0);
fs/smb/server/transport_rdma.c
1146
atomic_add(available, &sc->recv_io.credits.available);
fs/smb/server/transport_rdma.c
1155
atomic_add(available, &sc->recv_io.credits.available);
fs/smb/server/transport_rdma.c
1161
atomic_add(new_credits, &sc->recv_io.credits.count);
fs/smb/server/transport_rdma.c
1165
static int manage_keep_alive_before_sending(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
1167
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/server/transport_rdma.c
1169
if (sc->idle.keepalive == SMBDIRECT_KEEPALIVE_PENDING) {
fs/smb/server/transport_rdma.c
1170
sc->idle.keepalive = SMBDIRECT_KEEPALIVE_SENT;
fs/smb/server/transport_rdma.c
1175
mod_delayed_work(sc->workqueue, &sc->idle.timer_work,
fs/smb/server/transport_rdma.c
1182
static int smb_direct_post_send(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
1187
atomic_inc(&sc->send_io.pending.count);
fs/smb/server/transport_rdma.c
1188
ret = ib_post_send(sc->ib.qp, wr, NULL);
fs/smb/server/transport_rdma.c
1191
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
1207
static int smb_direct_flush_send_list(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
1246
ret = smb_direct_post_send(sc, &first->wr);
fs/smb/server/transport_rdma.c
1252
smb_direct_free_sendmsg(sc, sibling);
fs/smb/server/transport_rdma.c
1254
smb_direct_free_sendmsg(sc, last);
fs/smb/server/transport_rdma.c
1259
atomic_add(send_ctx->credit, &sc->send_io.bcredits.count);
fs/smb/server/transport_rdma.c
1261
wake_up(&sc->send_io.bcredits.wait_queue);
fs/smb/server/transport_rdma.c
1267
static int wait_for_credits(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
1280
sc->status != SMBDIRECT_SOCKET_CONNECTED);
fs/smb/server/transport_rdma.c
1282
if (sc->status != SMBDIRECT_SOCKET_CONNECTED)
fs/smb/server/transport_rdma.c
1289
static int wait_for_send_bcredit(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
1297
ret = wait_for_credits(sc,
fs/smb/server/transport_rdma.c
1298
&sc->send_io.bcredits.wait_queue,
fs/smb/server/transport_rdma.c
1299
&sc->send_io.bcredits.count,
fs/smb/server/transport_rdma.c
1308
static int wait_for_send_lcredit(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
1311
if (send_ctx && (atomic_read(&sc->send_io.lcredits.count) <= 1)) {
fs/smb/server/transport_rdma.c
1314
ret = smb_direct_flush_send_list(sc, send_ctx, false);
fs/smb/server/transport_rdma.c
1319
return wait_for_credits(sc,
fs/smb/server/transport_rdma.c
132
struct smbdirect_socket *sc;
fs/smb/server/transport_rdma.c
1320
&sc->send_io.lcredits.wait_queue,
fs/smb/server/transport_rdma.c
1321
&sc->send_io.lcredits.count,
fs/smb/server/transport_rdma.c
1325
static int wait_for_send_credits(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
1331
(send_ctx->wr_cnt >= 16 || atomic_read(&sc->send_io.credits.count) <= 1)) {
fs/smb/server/transport_rdma.c
1332
ret = smb_direct_flush_send_list(sc, send_ctx, false);
fs/smb/server/transport_rdma.c
1337
return wait_for_credits(sc, &sc->send_io.credits.wait_queue, &sc->send_io.credits.count, 1);
fs/smb/server/transport_rdma.c
1340
static int wait_for_rw_credits(struct smbdirect_socket *sc, int credits)
fs/smb/server/transport_rdma.c
1342
return wait_for_credits(sc,
fs/smb/server/transport_rdma.c
1343
&sc->rw_io.credits.wait_queue,
fs/smb/server/transport_rdma.c
1344
&sc->rw_io.credits.count,
fs/smb/server/transport_rdma.c
1348
static int calc_rw_credits(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
1352
sc->rw_io.credits.num_pages);
fs/smb/server/transport_rdma.c
1355
static int smb_direct_create_header(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
1360
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/server/transport_rdma.c
1366
sendmsg = smb_direct_alloc_sendmsg(sc);
fs/smb/server/transport_rdma.c
1376
if (manage_keep_alive_before_sending(sc))
fs/smb/server/transport_rdma.c
139
sc = &t->socket;
fs/smb/server/transport_rdma.c
140
sp = &sc->parameters;
fs/smb/server/transport_rdma.c
1403
sendmsg->sge[0].addr = ib_dma_map_single(sc->ib.dev,
fs/smb/server/transport_rdma.c
1407
ret = ib_dma_mapping_error(sc->ib.dev, sendmsg->sge[0].addr);
fs/smb/server/transport_rdma.c
1409
smb_direct_free_sendmsg(sc, sendmsg);
fs/smb/server/transport_rdma.c
1415
sendmsg->sge[0].lkey = sc->ib.pd->local_dma_lkey;
fs/smb/server/transport_rdma.c
1463
static int post_sendmsg(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
1470
ib_dma_sync_single_for_device(sc->ib.dev,
fs/smb/server/transport_rdma.c
1498
return smb_direct_post_send(sc, &msg->wr);
fs/smb/server/transport_rdma.c
1501
static int smb_direct_post_send_data(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
151
static void smb_direct_destroy_pools(struct smbdirect_socket *sc);
fs/smb/server/transport_rdma.c
1518
ret = wait_for_send_bcredit(sc, send_ctx);
fs/smb/server/transport_rdma.c
1522
ret = wait_for_send_lcredit(sc, send_ctx);
fs/smb/server/transport_rdma.c
1526
ret = wait_for_send_credits(sc, send_ctx);
fs/smb/server/transport_rdma.c
153
static int smb_direct_post_send_data(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
1530
new_credits = manage_credits_prior_sending(sc);
fs/smb/server/transport_rdma.c
1532
atomic_read(&sc->send_io.credits.count) == 0 &&
fs/smb/server/transport_rdma.c
1533
atomic_read(&sc->recv_io.credits.count) == 0) {
fs/smb/server/transport_rdma.c
1534
queue_work(sc->workqueue, &sc->recv_io.posted.refill_work);
fs/smb/server/transport_rdma.c
1535
ret = wait_event_interruptible(sc->send_io.credits.wait_queue,
fs/smb/server/transport_rdma.c
1536
atomic_read(&sc->send_io.credits.count) >= 1 ||
fs/smb/server/transport_rdma.c
1537
atomic_read(&sc->recv_io.credits.available) >= 1 ||
fs/smb/server/transport_rdma.c
1538
sc->status != SMBDIRECT_SOCKET_CONNECTED);
fs/smb/server/transport_rdma.c
1539
if (sc->status != SMBDIRECT_SOCKET_CONNECTED)
fs/smb/server/transport_rdma.c
1544
new_credits = manage_credits_prior_sending(sc);
fs/smb/server/transport_rdma.c
1551
ret = smb_direct_create_header(sc, data_length, remaining_data_length,
fs/smb/server/transport_rdma.c
1562
sg_cnt = get_mapped_sg_list(sc->ib.dev,
fs/smb/server/transport_rdma.c
1573
ib_dma_unmap_sg(sc->ib.dev, sg, npages,
fs/smb/server/transport_rdma.c
1582
sge->lkey = sc->ib.pd->local_dma_lkey;
fs/smb/server/transport_rdma.c
1587
ret = post_sendmsg(sc, send_ctx, msg);
fs/smb/server/transport_rdma.c
1592
ret = smb_direct_flush_send_list(sc, send_ctx, true);
fs/smb/server/transport_rdma.c
1599
smb_direct_free_sendmsg(sc, msg);
fs/smb/server/transport_rdma.c
1601
atomic_inc(&sc->send_io.credits.count);
fs/smb/server/transport_rdma.c
1603
atomic_inc(&sc->send_io.lcredits.count);
fs/smb/server/transport_rdma.c
1605
atomic_add(send_ctx->credit, &sc->send_io.bcredits.count);
fs/smb/server/transport_rdma.c
1616
struct smbdirect_socket *sc = &st->socket;
fs/smb/server/transport_rdma.c
1617
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/server/transport_rdma.c
1627
if (sc->status != SMBDIRECT_SOCKET_CONNECTED)
fs/smb/server/transport_rdma.c
165
smbdirect_recv_io *get_free_recvmsg(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
170
spin_lock_irqsave(&sc->recv_io.free.lock, flags);
fs/smb/server/transport_rdma.c
171
if (!list_empty(&sc->recv_io.free.list)) {
fs/smb/server/transport_rdma.c
172
recvmsg = list_first_entry(&sc->recv_io.free.list,
fs/smb/server/transport_rdma.c
1729
ret = smb_direct_post_send_data(sc, &send_ctx,
fs/smb/server/transport_rdma.c
1739
ret = smb_direct_flush_send_list(sc, &send_ctx, true);
fs/smb/server/transport_rdma.c
1750
wait_event(sc->send_io.pending.zero_wait_queue,
fs/smb/server/transport_rdma.c
1751
atomic_read(&sc->send_io.pending.count) == 0 ||
fs/smb/server/transport_rdma.c
1752
sc->status != SMBDIRECT_SOCKET_CONNECTED);
fs/smb/server/transport_rdma.c
1753
if (sc->status != SMBDIRECT_SOCKET_CONNECTED && ret == 0)
fs/smb/server/transport_rdma.c
1763
struct smbdirect_socket *sc = &t->socket;
fs/smb/server/transport_rdma.c
1765
rdma_rw_ctx_destroy(&msg->rdma_ctx, sc->ib.qp, sc->ib.qp->port,
fs/smb/server/transport_rdma.c
177
spin_unlock_irqrestore(&sc->recv_io.free.lock, flags);
fs/smb/server/transport_rdma.c
1776
struct smbdirect_socket *sc = msg->socket;
fs/smb/server/transport_rdma.c
1783
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
1805
struct smbdirect_socket *sc = &t->socket;
fs/smb/server/transport_rdma.c
1806
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/server/transport_rdma.c
181
static void put_recvmsg(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
1816
if (sc->status != SMBDIRECT_SOCKET_CONNECTED)
fs/smb/server/transport_rdma.c
1839
credits_needed += calc_rw_credits(sc, desc_buf, desc_buf_len);
fs/smb/server/transport_rdma.c
1848
ret = wait_for_rw_credits(sc, credits_needed);
fs/smb/server/transport_rdma.c
1864
msg->socket = sc;
fs/smb/server/transport_rdma.c
187
ib_dma_unmap_single(sc->ib.dev,
fs/smb/server/transport_rdma.c
1882
ret = rdma_rw_ctx_init(&msg->rdma_ctx, sc->ib.qp, sc->ib.qp->port,
fs/smb/server/transport_rdma.c
1901
first_wr = rdma_rw_ctx_wrs(&msg->rdma_ctx, sc->ib.qp, sc->ib.qp->port,
fs/smb/server/transport_rdma.c
1905
ret = ib_post_send(sc->ib.qp, first_wr, NULL);
fs/smb/server/transport_rdma.c
1920
atomic_add(credits_needed, &sc->rw_io.credits.count);
fs/smb/server/transport_rdma.c
1921
wake_up(&sc->rw_io.credits.wait_queue);
fs/smb/server/transport_rdma.c
194
spin_lock_irqsave(&sc->recv_io.free.lock, flags);
fs/smb/server/transport_rdma.c
195
list_add(&recvmsg->list, &sc->recv_io.free.list);
fs/smb/server/transport_rdma.c
1952
struct smbdirect_socket *sc = &st->socket;
fs/smb/server/transport_rdma.c
1954
ksmbd_debug(RDMA, "Disconnecting cm_id=%p\n", sc->rdma.cm_id);
fs/smb/server/transport_rdma.c
196
spin_unlock_irqrestore(&sc->recv_io.free.lock, flags);
fs/smb/server/transport_rdma.c
1962
struct smbdirect_socket *sc = &st->socket;
fs/smb/server/transport_rdma.c
1964
ksmbd_debug(RDMA, "smb-direct shutdown cm_id=%p\n", sc->rdma.cm_id);
fs/smb/server/transport_rdma.c
1966
smb_direct_disconnect_rdma_work(&sc->disconnect_work);
fs/smb/server/transport_rdma.c
1972
struct smbdirect_socket *sc = cm_id->context;
fs/smb/server/transport_rdma.c
198
queue_work(sc->workqueue, &sc->recv_io.posted.refill_work);
fs/smb/server/transport_rdma.c
1995
if (SMBDIRECT_CHECK_STATUS_DISCONNECT(sc, SMBDIRECT_SOCKET_RDMA_CONNECT_RUNNING))
fs/smb/server/transport_rdma.c
1997
sc->status = SMBDIRECT_SOCKET_NEGOTIATE_NEEDED;
fs/smb/server/transport_rdma.c
1998
spin_lock_irqsave(&sc->connect.lock, flags);
fs/smb/server/transport_rdma.c
1999
if (!sc->first_error)
fs/smb/server/transport_rdma.c
2000
queue_work(sc->workqueue, &sc->connect.work);
fs/smb/server/transport_rdma.c
2001
spin_unlock_irqrestore(&sc->connect.lock, flags);
fs/smb/server/transport_rdma.c
2002
wake_up(&sc->status_wait);
fs/smb/server/transport_rdma.c
2007
sc->status = SMBDIRECT_SOCKET_DISCONNECTED;
fs/smb/server/transport_rdma.c
2008
smb_direct_disconnect_rdma_work(&sc->disconnect_work);
fs/smb/server/transport_rdma.c
2009
if (sc->ib.qp)
fs/smb/server/transport_rdma.c
201
static void enqueue_reassembly(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
2010
ib_drain_qp(sc->ib.qp);
fs/smb/server/transport_rdma.c
2014
sc->status = SMBDIRECT_SOCKET_DISCONNECTED;
fs/smb/server/transport_rdma.c
2015
smb_direct_disconnect_rdma_work(&sc->disconnect_work);
fs/smb/server/transport_rdma.c
2029
struct smbdirect_socket *sc = context;
fs/smb/server/transport_rdma.c
2032
sc->rdma.cm_id, ib_event_msg(event->event), event->event);
fs/smb/server/transport_rdma.c
2037
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
2044
static int smb_direct_send_negotiate_response(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
2047
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/server/transport_rdma.c
2052
sendmsg = smb_direct_alloc_sendmsg(sc);
fs/smb/server/transport_rdma.c
2063
sc->status = SMBDIRECT_SOCKET_NEGOTIATE_FAILED;
fs/smb/server/transport_rdma.c
207
spin_lock_irqsave(&sc->recv_io.reassembly.lock, flags);
fs/smb/server/transport_rdma.c
2072
resp->credits_granted = cpu_to_le16(manage_credits_prior_sending(sc));
fs/smb/server/transport_rdma.c
2079
atomic_set(&sc->send_io.bcredits.count, 1);
fs/smb/server/transport_rdma.c
208
list_add_tail(&recvmsg->list, &sc->recv_io.reassembly.list);
fs/smb/server/transport_rdma.c
2080
sc->recv_io.expected = SMBDIRECT_EXPECT_DATA_TRANSFER;
fs/smb/server/transport_rdma.c
2081
sc->status = SMBDIRECT_SOCKET_CONNECTED;
fs/smb/server/transport_rdma.c
2084
sendmsg->sge[0].addr = ib_dma_map_single(sc->ib.dev,
fs/smb/server/transport_rdma.c
2087
ret = ib_dma_mapping_error(sc->ib.dev, sendmsg->sge[0].addr);
fs/smb/server/transport_rdma.c
2089
smb_direct_free_sendmsg(sc, sendmsg);
fs/smb/server/transport_rdma.c
209
sc->recv_io.reassembly.queue_length++;
fs/smb/server/transport_rdma.c
2095
sendmsg->sge[0].lkey = sc->ib.pd->local_dma_lkey;
fs/smb/server/transport_rdma.c
2097
ret = post_sendmsg(sc, NULL, sendmsg);
fs/smb/server/transport_rdma.c
2099
smb_direct_free_sendmsg(sc, sendmsg);
fs/smb/server/transport_rdma.c
2103
wait_event(sc->send_io.pending.zero_wait_queue,
fs/smb/server/transport_rdma.c
2104
atomic_read(&sc->send_io.pending.count) == 0 ||
fs/smb/server/transport_rdma.c
2105
sc->status != SMBDIRECT_SOCKET_CONNECTED);
fs/smb/server/transport_rdma.c
2106
if (sc->status != SMBDIRECT_SOCKET_CONNECTED)
fs/smb/server/transport_rdma.c
2112
static int smb_direct_accept_client(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
2114
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/server/transport_rdma.c
2128
if (sc->rdma.legacy_iwarp) {
fs/smb/server/transport_rdma.c
2145
sc->idle.keepalive = SMBDIRECT_KEEPALIVE_PENDING;
fs/smb/server/transport_rdma.c
2146
mod_delayed_work(sc->workqueue, &sc->idle.timer_work,
fs/smb/server/transport_rdma.c
2149
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_RDMA_CONNECT_NEEDED);
fs/smb/server/transport_rdma.c
2150
sc->status = SMBDIRECT_SOCKET_RDMA_CONNECT_RUNNING;
fs/smb/server/transport_rdma.c
2151
ret = rdma_accept(sc->rdma.cm_id, &conn_param);
fs/smb/server/transport_rdma.c
2159
static int smb_direct_prepare_negotiation(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
2165
WARN_ON_ONCE(sc->status != SMBDIRECT_SOCKET_CREATED);
fs/smb/server/transport_rdma.c
2166
sc->status = SMBDIRECT_SOCKET_RDMA_CONNECT_NEEDED;
fs/smb/server/transport_rdma.c
2168
sc->recv_io.expected = SMBDIRECT_EXPECT_NEGOTIATE_REQ;
fs/smb/server/transport_rdma.c
217
sc->recv_io.reassembly.data_length += data_length;
fs/smb/server/transport_rdma.c
2170
recvmsg = get_free_recvmsg(sc);
fs/smb/server/transport_rdma.c
2175
ret = smb_direct_post_recv(sc, recvmsg);
fs/smb/server/transport_rdma.c
218
spin_unlock_irqrestore(&sc->recv_io.reassembly.lock, flags);
fs/smb/server/transport_rdma.c
2182
ret = smb_direct_accept_client(sc);
fs/smb/server/transport_rdma.c
2197
put_recvmsg(sc, recvmsg);
fs/smb/server/transport_rdma.c
2201
static int smb_direct_init_params(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
2203
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/server/transport_rdma.c
221
static struct smbdirect_recv_io *get_first_reassembly(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
2216
atomic_set(&sc->send_io.lcredits.count, sp->send_credit_target);
fs/smb/server/transport_rdma.c
2219
sc->rw_io.credits.max = rdma_rw_mr_factor(sc->ib.dev,
fs/smb/server/transport_rdma.c
2220
sc->rdma.cm_id->port_num,
fs/smb/server/transport_rdma.c
2222
sc->rw_io.credits.num_pages = DIV_ROUND_UP(maxpages, sc->rw_io.credits.max);
fs/smb/server/transport_rdma.c
2224
sc->rw_io.credits.max += 1;
fs/smb/server/transport_rdma.c
2226
sc->recv_io.credits.target = 1;
fs/smb/server/transport_rdma.c
2228
atomic_set(&sc->rw_io.credits.count, sc->rw_io.credits.max);
fs/smb/server/transport_rdma.c
223
if (!list_empty(&sc->recv_io.reassembly.list))
fs/smb/server/transport_rdma.c
2233
static void smb_direct_destroy_pools(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
2237
while ((recvmsg = get_free_recvmsg(sc)))
fs/smb/server/transport_rdma.c
2238
mempool_free(recvmsg, sc->recv_io.mem.pool);
fs/smb/server/transport_rdma.c
224
return list_first_entry(&sc->recv_io.reassembly.list,
fs/smb/server/transport_rdma.c
2240
mempool_destroy(sc->recv_io.mem.pool);
fs/smb/server/transport_rdma.c
2241
sc->recv_io.mem.pool = NULL;
fs/smb/server/transport_rdma.c
2243
kmem_cache_destroy(sc->recv_io.mem.cache);
fs/smb/server/transport_rdma.c
2244
sc->recv_io.mem.cache = NULL;
fs/smb/server/transport_rdma.c
2246
mempool_destroy(sc->send_io.mem.pool);
fs/smb/server/transport_rdma.c
2247
sc->send_io.mem.pool = NULL;
fs/smb/server/transport_rdma.c
2249
kmem_cache_destroy(sc->send_io.mem.cache);
fs/smb/server/transport_rdma.c
2250
sc->send_io.mem.cache = NULL;
fs/smb/server/transport_rdma.c
2253
static int smb_direct_create_pools(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
2255
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/server/transport_rdma.c
2260
snprintf(name, sizeof(name), "smbdirect_send_io_pool_%p", sc);
fs/smb/server/transport_rdma.c
2261
sc->send_io.mem.cache = kmem_cache_create(name,
fs/smb/server/transport_rdma.c
2265
if (!sc->send_io.mem.cache)
fs/smb/server/transport_rdma.c
2268
sc->send_io.mem.pool = mempool_create(sp->send_credit_target,
fs/smb/server/transport_rdma.c
2270
sc->send_io.mem.cache);
fs/smb/server/transport_rdma.c
2271
if (!sc->send_io.mem.pool)
fs/smb/server/transport_rdma.c
2274
snprintf(name, sizeof(name), "smbdirect_recv_io_pool_%p", sc);
fs/smb/server/transport_rdma.c
2275
sc->recv_io.mem.cache = kmem_cache_create(name,
fs/smb/server/transport_rdma.c
2279
if (!sc->recv_io.mem.cache)
fs/smb/server/transport_rdma.c
2282
sc->recv_io.mem.pool =
fs/smb/server/transport_rdma.c
2284
mempool_free_slab, sc->recv_io.mem.cache);
fs/smb/server/transport_rdma.c
2285
if (!sc->recv_io.mem.pool)
fs/smb/server/transport_rdma.c
2289
recvmsg = mempool_alloc(sc->recv_io.mem.pool, KSMBD_DEFAULT_GFP);
fs/smb/server/transport_rdma.c
2292
recvmsg->socket = sc;
fs/smb/server/transport_rdma.c
2294
list_add(&recvmsg->list, &sc->recv_io.free.list);
fs/smb/server/transport_rdma.c
2299
smb_direct_destroy_pools(sc);
fs/smb/server/transport_rdma.c
230
static void smb_direct_disconnect_wake_up_all(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
2335
static int smb_direct_create_qpair(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
2337
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/server/transport_rdma.c
2358
qp_cap.max_rdma_ctxs = sc->rw_io.credits.max;
fs/smb/server/transport_rdma.c
236
wake_up_all(&sc->status_wait);
fs/smb/server/transport_rdma.c
237
wake_up_all(&sc->send_io.bcredits.wait_queue);
fs/smb/server/transport_rdma.c
2370
qp_attr.port_num = sc->rdma.cm_id->port_num;
fs/smb/server/transport_rdma.c
2371
rdma_send_wr = smb_direct_rdma_rw_send_wrs(sc->ib.dev, &qp_attr);
fs/smb/server/transport_rdma.c
2374
if (qp_cap.max_send_wr > sc->ib.dev->attrs.max_cqe ||
fs/smb/server/transport_rdma.c
2375
qp_cap.max_send_wr > sc->ib.dev->attrs.max_qp_wr) {
fs/smb/server/transport_rdma.c
238
wake_up_all(&sc->send_io.lcredits.wait_queue);
fs/smb/server/transport_rdma.c
2380
sc->ib.dev->name,
fs/smb/server/transport_rdma.c
2381
sc->ib.dev->attrs.max_cqe,
fs/smb/server/transport_rdma.c
2382
sc->ib.dev->attrs.max_qp_wr);
fs/smb/server/transport_rdma.c
2389
(max_send_wr >= sc->ib.dev->attrs.max_cqe ||
fs/smb/server/transport_rdma.c
239
wake_up_all(&sc->send_io.credits.wait_queue);
fs/smb/server/transport_rdma.c
2390
max_send_wr >= sc->ib.dev->attrs.max_qp_wr)) {
fs/smb/server/transport_rdma.c
2395
sc->ib.dev->name,
fs/smb/server/transport_rdma.c
2396
sc->ib.dev->attrs.max_cqe,
fs/smb/server/transport_rdma.c
2397
sc->ib.dev->attrs.max_qp_wr);
fs/smb/server/transport_rdma.c
240
wake_up_all(&sc->send_io.pending.zero_wait_queue);
fs/smb/server/transport_rdma.c
2403
if (qp_cap.max_recv_wr > sc->ib.dev->attrs.max_cqe ||
fs/smb/server/transport_rdma.c
2404
qp_cap.max_recv_wr > sc->ib.dev->attrs.max_qp_wr) {
fs/smb/server/transport_rdma.c
2409
sc->ib.dev->name,
fs/smb/server/transport_rdma.c
241
wake_up_all(&sc->recv_io.reassembly.wait_queue);
fs/smb/server/transport_rdma.c
2410
sc->ib.dev->attrs.max_cqe,
fs/smb/server/transport_rdma.c
2411
sc->ib.dev->attrs.max_qp_wr);
fs/smb/server/transport_rdma.c
2417
if (qp_cap.max_send_sge > sc->ib.dev->attrs.max_send_sge ||
fs/smb/server/transport_rdma.c
2418
qp_cap.max_recv_sge > sc->ib.dev->attrs.max_recv_sge) {
fs/smb/server/transport_rdma.c
242
wake_up_all(&sc->rw_io.credits.wait_queue);
fs/smb/server/transport_rdma.c
2421
sc->ib.dev->name,
fs/smb/server/transport_rdma.c
2422
sc->ib.dev->attrs.max_send_sge,
fs/smb/server/transport_rdma.c
2423
sc->ib.dev->attrs.max_recv_sge);
fs/smb/server/transport_rdma.c
2427
sc->ib.pd = ib_alloc_pd(sc->ib.dev, 0);
fs/smb/server/transport_rdma.c
2428
if (IS_ERR(sc->ib.pd)) {
fs/smb/server/transport_rdma.c
2430
ret = PTR_ERR(sc->ib.pd);
fs/smb/server/transport_rdma.c
2431
sc->ib.pd = NULL;
fs/smb/server/transport_rdma.c
2435
sc->ib.send_cq = ib_alloc_cq_any(sc->ib.dev, sc,
fs/smb/server/transport_rdma.c
2438
if (IS_ERR(sc->ib.send_cq)) {
fs/smb/server/transport_rdma.c
2440
ret = PTR_ERR(sc->ib.send_cq);
fs/smb/server/transport_rdma.c
2441
sc->ib.send_cq = NULL;
fs/smb/server/transport_rdma.c
2445
sc->ib.recv_cq = ib_alloc_cq_any(sc->ib.dev, sc,
fs/smb/server/transport_rdma.c
2448
if (IS_ERR(sc->ib.recv_cq)) {
fs/smb/server/transport_rdma.c
2450
ret = PTR_ERR(sc->ib.recv_cq);
fs/smb/server/transport_rdma.c
2451
sc->ib.recv_cq = NULL;
fs/smb/server/transport_rdma.c
2465
qp_attr.qp_context = sc;
fs/smb/server/transport_rdma.c
2469
qp_attr.send_cq = sc->ib.send_cq;
fs/smb/server/transport_rdma.c
247
struct smbdirect_socket *sc =
fs/smb/server/transport_rdma.c
2470
qp_attr.recv_cq = sc->ib.recv_cq;
fs/smb/server/transport_rdma.c
2473
ret = rdma_create_qp(sc->rdma.cm_id, sc->ib.pd, &qp_attr);
fs/smb/server/transport_rdma.c
2479
sc->ib.qp = sc->rdma.cm_id->qp;
fs/smb/server/transport_rdma.c
2480
sc->rdma.cm_id->event_handler = smb_direct_cm_handler;
fs/smb/server/transport_rdma.c
2484
if (sc->ib.qp) {
fs/smb/server/transport_rdma.c
2485
sc->ib.qp = NULL;
fs/smb/server/transport_rdma.c
2486
rdma_destroy_qp(sc->rdma.cm_id);
fs/smb/server/transport_rdma.c
2488
if (sc->ib.recv_cq) {
fs/smb/server/transport_rdma.c
2489
ib_destroy_cq(sc->ib.recv_cq);
fs/smb/server/transport_rdma.c
2490
sc->ib.recv_cq = NULL;
fs/smb/server/transport_rdma.c
2492
if (sc->ib.send_cq) {
fs/smb/server/transport_rdma.c
2493
ib_destroy_cq(sc->ib.send_cq);
fs/smb/server/transport_rdma.c
2494
sc->ib.send_cq = NULL;
fs/smb/server/transport_rdma.c
2496
if (sc->ib.pd) {
fs/smb/server/transport_rdma.c
2497
ib_dealloc_pd(sc->ib.pd);
fs/smb/server/transport_rdma.c
2498
sc->ib.pd = NULL;
fs/smb/server/transport_rdma.c
250
if (sc->first_error == 0)
fs/smb/server/transport_rdma.c
2506
struct smbdirect_socket *sc = &st->socket;
fs/smb/server/transport_rdma.c
2507
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/server/transport_rdma.c
251
sc->first_error = -ECONNABORTED;
fs/smb/server/transport_rdma.c
2526
ret = wait_event_interruptible_timeout(sc->status_wait,
fs/smb/server/transport_rdma.c
2527
sc->status != SMBDIRECT_SOCKET_RDMA_CONNECT_NEEDED &&
fs/smb/server/transport_rdma.c
2528
sc->status != SMBDIRECT_SOCKET_RDMA_CONNECT_RUNNING &&
fs/smb/server/transport_rdma.c
2529
sc->status != SMBDIRECT_SOCKET_NEGOTIATE_NEEDED,
fs/smb/server/transport_rdma.c
2531
if (ret <= 0 || sc->status != SMBDIRECT_SOCKET_NEGOTIATE_RUNNING)
fs/smb/server/transport_rdma.c
2534
recvmsg = get_first_reassembly(sc);
fs/smb/server/transport_rdma.c
2574
sc->recv_io.credits.target = le16_to_cpu(req->credits_requested);
fs/smb/server/transport_rdma.c
2575
sc->recv_io.credits.target = min_t(u16, sc->recv_io.credits.target, sp->recv_credit_max);
fs/smb/server/transport_rdma.c
2576
sc->recv_io.credits.target = max_t(u16, sc->recv_io.credits.target, 1);
fs/smb/server/transport_rdma.c
2579
spin_lock_irqsave(&sc->recv_io.reassembly.lock, flags);
fs/smb/server/transport_rdma.c
258
disable_work(&sc->disconnect_work);
fs/smb/server/transport_rdma.c
2580
sc->recv_io.reassembly.queue_length--;
fs/smb/server/transport_rdma.c
2582
spin_unlock_irqrestore(&sc->recv_io.reassembly.lock, flags);
fs/smb/server/transport_rdma.c
2583
put_recvmsg(sc, recvmsg);
fs/smb/server/transport_rdma.c
259
disable_work(&sc->connect.work);
fs/smb/server/transport_rdma.c
260
disable_work(&sc->recv_io.posted.refill_work);
fs/smb/server/transport_rdma.c
2601
INIT_WORK(&sc->recv_io.posted.refill_work, smb_direct_post_recv_credits);
fs/smb/server/transport_rdma.c
2602
smb_direct_post_recv_credits(&sc->recv_io.posted.refill_work);
fs/smb/server/transport_rdma.c
2603
if (unlikely(sc->first_error))
fs/smb/server/transport_rdma.c
2604
return sc->first_error;
fs/smb/server/transport_rdma.c
2605
INIT_WORK(&sc->idle.immediate_work, smb_direct_send_immediate_work);
fs/smb/server/transport_rdma.c
2608
ret = smb_direct_send_negotiate_response(sc, ret);
fs/smb/server/transport_rdma.c
261
disable_delayed_work(&sc->idle.timer_work);
fs/smb/server/transport_rdma.c
2613
static int smb_direct_connect(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
2618
ret = smb_direct_init_params(sc);
fs/smb/server/transport_rdma.c
262
disable_work(&sc->idle.immediate_work);
fs/smb/server/transport_rdma.c
2624
ret = smb_direct_create_pools(sc);
fs/smb/server/transport_rdma.c
2630
list_for_each_entry(recv_io, &sc->recv_io.free.list, list)
fs/smb/server/transport_rdma.c
2633
ret = smb_direct_create_qpair(sc);
fs/smb/server/transport_rdma.c
2639
ret = smb_direct_prepare_negotiation(sc);
fs/smb/server/transport_rdma.c
264
switch (sc->status) {
fs/smb/server/transport_rdma.c
2661
struct smbdirect_socket *sc;
fs/smb/server/transport_rdma.c
2678
sc = &t->socket;
fs/smb/server/transport_rdma.c
2679
sp = &sc->parameters;
fs/smb/server/transport_rdma.c
270
sc->status = SMBDIRECT_SOCKET_DISCONNECTING;
fs/smb/server/transport_rdma.c
271
rdma_disconnect(sc->rdma.cm_id);
fs/smb/server/transport_rdma.c
2718
sc->rdma.legacy_iwarp = true;
fs/smb/server/transport_rdma.c
2742
ret = smb_direct_connect(sc);
fs/smb/server/transport_rdma.c
288
sc->status = SMBDIRECT_SOCKET_DISCONNECTED;
fs/smb/server/transport_rdma.c
301
smb_direct_disconnect_wake_up_all(sc);
fs/smb/server/transport_rdma.c
305
smb_direct_disconnect_rdma_connection(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
307
if (sc->first_error == 0)
fs/smb/server/transport_rdma.c
308
sc->first_error = -ECONNABORTED;
fs/smb/server/transport_rdma.c
315
disable_work(&sc->connect.work);
fs/smb/server/transport_rdma.c
316
disable_work(&sc->recv_io.posted.refill_work);
fs/smb/server/transport_rdma.c
317
disable_work(&sc->idle.immediate_work);
fs/smb/server/transport_rdma.c
318
disable_delayed_work(&sc->idle.timer_work);
fs/smb/server/transport_rdma.c
320
switch (sc->status) {
fs/smb/server/transport_rdma.c
336
sc->status = SMBDIRECT_SOCKET_RESOLVE_ADDR_FAILED;
fs/smb/server/transport_rdma.c
341
sc->status = SMBDIRECT_SOCKET_RESOLVE_ROUTE_FAILED;
fs/smb/server/transport_rdma.c
346
sc->status = SMBDIRECT_SOCKET_RDMA_CONNECT_FAILED;
fs/smb/server/transport_rdma.c
351
sc->status = SMBDIRECT_SOCKET_NEGOTIATE_FAILED;
fs/smb/server/transport_rdma.c
355
sc->status = SMBDIRECT_SOCKET_DISCONNECTED;
fs/smb/server/transport_rdma.c
359
sc->status = SMBDIRECT_SOCKET_ERROR;
fs/smb/server/transport_rdma.c
367
smb_direct_disconnect_wake_up_all(sc);
fs/smb/server/transport_rdma.c
369
queue_work(sc->workqueue, &sc->disconnect_work);
fs/smb/server/transport_rdma.c
374
struct smbdirect_socket *sc =
fs/smb/server/transport_rdma.c
377
if (sc->status != SMBDIRECT_SOCKET_CONNECTED)
fs/smb/server/transport_rdma.c
380
smb_direct_post_send_data(sc, NULL, NULL, 0, 0);
fs/smb/server/transport_rdma.c
385
struct smbdirect_socket *sc =
fs/smb/server/transport_rdma.c
387
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/server/transport_rdma.c
389
if (sc->idle.keepalive != SMBDIRECT_KEEPALIVE_NONE) {
fs/smb/server/transport_rdma.c
390
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
394
if (sc->status != SMBDIRECT_SOCKET_CONNECTED)
fs/smb/server/transport_rdma.c
401
sc->idle.keepalive = SMBDIRECT_KEEPALIVE_PENDING;
fs/smb/server/transport_rdma.c
402
mod_delayed_work(sc->workqueue, &sc->idle.timer_work,
fs/smb/server/transport_rdma.c
404
queue_work(sc->workqueue, &sc->idle.immediate_work);
fs/smb/server/transport_rdma.c
410
struct smbdirect_socket *sc;
fs/smb/server/transport_rdma.c
417
sc = &t->socket;
fs/smb/server/transport_rdma.c
418
smbdirect_socket_init(sc);
fs/smb/server/transport_rdma.c
419
sp = &sc->parameters;
fs/smb/server/transport_rdma.c
421
sc->workqueue = smb_direct_wq;
fs/smb/server/transport_rdma.c
423
INIT_WORK(&sc->disconnect_work, smb_direct_disconnect_rdma_work);
fs/smb/server/transport_rdma.c
437
sc->rdma.cm_id = cm_id;
fs/smb/server/transport_rdma.c
438
cm_id->context = sc;
fs/smb/server/transport_rdma.c
440
sc->ib.dev = sc->rdma.cm_id->device;
fs/smb/server/transport_rdma.c
442
INIT_DELAYED_WORK(&sc->idle.timer_work, smb_direct_idle_connection_timer);
fs/smb/server/transport_rdma.c
468
struct smbdirect_socket *sc = &t->socket;
fs/smb/server/transport_rdma.c
471
disable_work_sync(&sc->disconnect_work);
fs/smb/server/transport_rdma.c
472
if (sc->status < SMBDIRECT_SOCKET_DISCONNECTING)
fs/smb/server/transport_rdma.c
473
smb_direct_disconnect_rdma_work(&sc->disconnect_work);
fs/smb/server/transport_rdma.c
474
if (sc->status < SMBDIRECT_SOCKET_DISCONNECTED)
fs/smb/server/transport_rdma.c
475
wait_event(sc->status_wait, sc->status == SMBDIRECT_SOCKET_DISCONNECTED);
fs/smb/server/transport_rdma.c
484
smb_direct_disconnect_wake_up_all(sc);
fs/smb/server/transport_rdma.c
486
disable_work_sync(&sc->connect.work);
fs/smb/server/transport_rdma.c
487
disable_work_sync(&sc->recv_io.posted.refill_work);
fs/smb/server/transport_rdma.c
488
disable_delayed_work_sync(&sc->idle.timer_work);
fs/smb/server/transport_rdma.c
489
disable_work_sync(&sc->idle.immediate_work);
fs/smb/server/transport_rdma.c
491
if (sc->rdma.cm_id)
fs/smb/server/transport_rdma.c
492
rdma_lock_handler(sc->rdma.cm_id);
fs/smb/server/transport_rdma.c
494
if (sc->ib.qp) {
fs/smb/server/transport_rdma.c
495
ib_drain_qp(sc->ib.qp);
fs/smb/server/transport_rdma.c
496
sc->ib.qp = NULL;
fs/smb/server/transport_rdma.c
497
rdma_destroy_qp(sc->rdma.cm_id);
fs/smb/server/transport_rdma.c
504
spin_lock_irqsave(&sc->recv_io.reassembly.lock, flags);
fs/smb/server/transport_rdma.c
505
recvmsg = get_first_reassembly(sc);
fs/smb/server/transport_rdma.c
508
spin_unlock_irqrestore(&sc->recv_io.reassembly.lock, flags);
fs/smb/server/transport_rdma.c
509
put_recvmsg(sc, recvmsg);
fs/smb/server/transport_rdma.c
511
spin_unlock_irqrestore(&sc->recv_io.reassembly.lock, flags);
fs/smb/server/transport_rdma.c
514
sc->recv_io.reassembly.data_length = 0;
fs/smb/server/transport_rdma.c
516
if (sc->ib.send_cq)
fs/smb/server/transport_rdma.c
517
ib_free_cq(sc->ib.send_cq);
fs/smb/server/transport_rdma.c
518
if (sc->ib.recv_cq)
fs/smb/server/transport_rdma.c
519
ib_free_cq(sc->ib.recv_cq);
fs/smb/server/transport_rdma.c
520
if (sc->ib.pd)
fs/smb/server/transport_rdma.c
521
ib_dealloc_pd(sc->ib.pd);
fs/smb/server/transport_rdma.c
522
if (sc->rdma.cm_id) {
fs/smb/server/transport_rdma.c
523
rdma_unlock_handler(sc->rdma.cm_id);
fs/smb/server/transport_rdma.c
524
rdma_destroy_id(sc->rdma.cm_id);
fs/smb/server/transport_rdma.c
527
smb_direct_destroy_pools(sc);
fs/smb/server/transport_rdma.c
532
*smb_direct_alloc_sendmsg(struct smbdirect_socket *sc)
fs/smb/server/transport_rdma.c
536
msg = mempool_alloc(sc->send_io.mem.pool, KSMBD_DEFAULT_GFP);
fs/smb/server/transport_rdma.c
539
msg->socket = sc;
fs/smb/server/transport_rdma.c
545
static void smb_direct_free_sendmsg(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
557
ib_dma_unmap_single(sc->ib.dev,
fs/smb/server/transport_rdma.c
561
ib_dma_unmap_page(sc->ib.dev,
fs/smb/server/transport_rdma.c
565
mempool_free(msg, sc->send_io.mem.pool);
fs/smb/server/transport_rdma.c
570
struct smbdirect_socket *sc = recvmsg->socket;
fs/smb/server/transport_rdma.c
572
switch (sc->recv_io.expected) {
fs/smb/server/transport_rdma.c
620
struct smbdirect_socket *sc;
fs/smb/server/transport_rdma.c
624
sc = recvmsg->socket;
fs/smb/server/transport_rdma.c
625
sp = &sc->parameters;
fs/smb/server/transport_rdma.c
628
put_recvmsg(sc, recvmsg);
fs/smb/server/transport_rdma.c
633
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
649
sc->idle.keepalive = SMBDIRECT_KEEPALIVE_NONE;
fs/smb/server/transport_rdma.c
650
mod_delayed_work(sc->workqueue, &sc->idle.timer_work,
fs/smb/server/transport_rdma.c
653
switch (sc->recv_io.expected) {
fs/smb/server/transport_rdma.c
666
put_recvmsg(sc, recvmsg);
fs/smb/server/transport_rdma.c
667
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
676
put_recvmsg(sc, recvmsg);
fs/smb/server/transport_rdma.c
677
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
684
put_recvmsg(sc, recvmsg);
fs/smb/server/transport_rdma.c
685
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
690
if (sc->recv_io.reassembly.full_packet_received)
fs/smb/server/transport_rdma.c
694
sc->recv_io.reassembly.full_packet_received = false;
fs/smb/server/transport_rdma.c
696
sc->recv_io.reassembly.full_packet_received = true;
fs/smb/server/transport_rdma.c
699
atomic_dec(&sc->recv_io.posted.count);
fs/smb/server/transport_rdma.c
700
current_recv_credits = atomic_dec_return(&sc->recv_io.credits.count);
fs/smb/server/transport_rdma.c
702
old_recv_credit_target = sc->recv_io.credits.target;
fs/smb/server/transport_rdma.c
703
sc->recv_io.credits.target =
fs/smb/server/transport_rdma.c
705
sc->recv_io.credits.target =
fs/smb/server/transport_rdma.c
706
min_t(u16, sc->recv_io.credits.target, sp->recv_credit_max);
fs/smb/server/transport_rdma.c
707
sc->recv_io.credits.target =
fs/smb/server/transport_rdma.c
708
max_t(u16, sc->recv_io.credits.target, 1);
fs/smb/server/transport_rdma.c
710
&sc->send_io.credits.count);
fs/smb/server/transport_rdma.c
714
queue_work(sc->workqueue, &sc->idle.immediate_work);
fs/smb/server/transport_rdma.c
716
if (atomic_read(&sc->send_io.credits.count) > 0)
fs/smb/server/transport_rdma.c
717
wake_up(&sc->send_io.credits.wait_queue);
fs/smb/server/transport_rdma.c
720
if (current_recv_credits <= (sc->recv_io.credits.target / 4) ||
fs/smb/server/transport_rdma.c
721
sc->recv_io.credits.target > old_recv_credit_target)
fs/smb/server/transport_rdma.c
722
queue_work(sc->workqueue, &sc->recv_io.posted.refill_work);
fs/smb/server/transport_rdma.c
724
enqueue_reassembly(sc, recvmsg, (int)data_length);
fs/smb/server/transport_rdma.c
725
wake_up(&sc->recv_io.reassembly.wait_queue);
fs/smb/server/transport_rdma.c
727
put_recvmsg(sc, recvmsg);
fs/smb/server/transport_rdma.c
739
WARN_ON_ONCE(sc->recv_io.expected != SMBDIRECT_EXPECT_DATA_TRANSFER);
fs/smb/server/transport_rdma.c
740
put_recvmsg(sc, recvmsg);
fs/smb/server/transport_rdma.c
741
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
750
struct smbdirect_socket *sc = recv_io->socket;
fs/smb/server/transport_rdma.c
759
put_recvmsg(sc, recv_io);
fs/smb/server/transport_rdma.c
764
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
773
ib_dma_sync_single_for_cpu(sc->ib.dev,
fs/smb/server/transport_rdma.c
781
if (WARN_ON_ONCE(sc->recv_io.expected != SMBDIRECT_EXPECT_NEGOTIATE_REQ)) {
fs/smb/server/transport_rdma.c
782
put_recvmsg(sc, recv_io);
fs/smb/server/transport_rdma.c
783
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
798
sc->recv_io.reassembly.full_packet_received = true;
fs/smb/server/transport_rdma.c
800
enqueue_reassembly(sc, recv_io, 0);
fs/smb/server/transport_rdma.c
802
put_recvmsg(sc, recv_io);
fs/smb/server/transport_rdma.c
817
spin_lock_irqsave(&sc->connect.lock, flags);
fs/smb/server/transport_rdma.c
818
if (!sc->first_error) {
fs/smb/server/transport_rdma.c
819
INIT_WORK(&sc->connect.work, smb_direct_negotiate_recv_work);
fs/smb/server/transport_rdma.c
820
if (sc->status == SMBDIRECT_SOCKET_NEGOTIATE_NEEDED)
fs/smb/server/transport_rdma.c
821
queue_work(sc->workqueue, &sc->connect.work);
fs/smb/server/transport_rdma.c
823
spin_unlock_irqrestore(&sc->connect.lock, flags);
fs/smb/server/transport_rdma.c
828
struct smbdirect_socket *sc =
fs/smb/server/transport_rdma.c
830
const struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/server/transport_rdma.c
833
if (sc->first_error)
fs/smb/server/transport_rdma.c
842
sc->idle.keepalive = SMBDIRECT_KEEPALIVE_NONE;
fs/smb/server/transport_rdma.c
843
mod_delayed_work(sc->workqueue, &sc->idle.timer_work,
fs/smb/server/transport_rdma.c
850
recv_io = get_first_reassembly(sc);
fs/smb/server/transport_rdma.c
852
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
856
if (SMBDIRECT_CHECK_STATUS_WARN(sc, SMBDIRECT_SOCKET_NEGOTIATE_NEEDED)) {
fs/smb/server/transport_rdma.c
857
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
860
sc->status = SMBDIRECT_SOCKET_NEGOTIATE_RUNNING;
fs/smb/server/transport_rdma.c
861
wake_up(&sc->status_wait);
fs/smb/server/transport_rdma.c
864
static int smb_direct_post_recv(struct smbdirect_socket *sc,
fs/smb/server/transport_rdma.c
867
struct smbdirect_socket_parameters *sp = &sc->parameters;
fs/smb/server/transport_rdma.c
871
recvmsg->sge.addr = ib_dma_map_single(sc->ib.dev,
fs/smb/server/transport_rdma.c
875
ret = ib_dma_mapping_error(sc->ib.dev, recvmsg->sge.addr);
fs/smb/server/transport_rdma.c
879
recvmsg->sge.lkey = sc->ib.pd->local_dma_lkey;
fs/smb/server/transport_rdma.c
886
ret = ib_post_recv(sc->ib.qp, &wr, NULL);
fs/smb/server/transport_rdma.c
889
ib_dma_unmap_single(sc->ib.dev,
fs/smb/server/transport_rdma.c
893
smb_direct_disconnect_rdma_connection(sc);
fs/smb/server/transport_rdma.c
908
struct smbdirect_socket *sc = &st->socket;
fs/smb/server/transport_rdma.c
911
if (sc->status != SMBDIRECT_SOCKET_CONNECTED) {
fs/smb/server/transport_rdma.c
921
if (sc->recv_io.reassembly.data_length >= size) {
fs/smb/server/transport_rdma.c
934
queue_length = sc->recv_io.reassembly.queue_length;
fs/smb/server/transport_rdma.c
937
offset = sc->recv_io.reassembly.first_entry_offset;
fs/smb/server/transport_rdma.c
939
recvmsg = get_first_reassembly(sc);
fs/smb/server/transport_rdma.c
980
spin_lock_irqsave(&sc->recv_io.reassembly.lock, flags);
fs/smb/server/transport_rdma.c
982
spin_unlock_irqrestore(&sc->recv_io.reassembly.lock, flags);
fs/smb/server/transport_rdma.c
985
put_recvmsg(sc, recvmsg);
fs/smb/server/transport_rdma.c
995
spin_lock_irqsave(&sc->recv_io.reassembly.lock, flags);
fs/smb/server/transport_rdma.c
996
sc->recv_io.reassembly.data_length -= data_read;
fs/smb/server/transport_rdma.c
997
sc->recv_io.reassembly.queue_length -= queue_removed;
fs/smb/server/transport_rdma.c
998
spin_unlock_irqrestore(&sc->recv_io.reassembly.lock, flags);
fs/super.c
180
struct shrink_control *sc)
fs/super.c
195
if (!(sc->gfp_mask & __GFP_FS))
fs/super.c
202
fs_objects = sb->s_op->nr_cached_objects(sb, sc);
fs/super.c
204
inodes = list_lru_shrink_count(&sb->s_inode_lru, sc);
fs/super.c
205
dentries = list_lru_shrink_count(&sb->s_dentry_lru, sc);
fs/super.c
211
dentries = mult_frac(sc->nr_to_scan, dentries, total_objects);
fs/super.c
212
inodes = mult_frac(sc->nr_to_scan, inodes, total_objects);
fs/super.c
213
fs_objects = mult_frac(sc->nr_to_scan, fs_objects, total_objects);
fs/super.c
222
sc->nr_to_scan = dentries + 1;
fs/super.c
223
freed = prune_dcache_sb(sb, sc);
fs/super.c
224
sc->nr_to_scan = inodes + 1;
fs/super.c
225
freed += prune_icache_sb(sb, sc);
fs/super.c
228
sc->nr_to_scan = fs_objects + 1;
fs/super.c
229
freed += sb->s_op->free_cached_objects(sb, sc);
fs/super.c
237
struct shrink_control *sc)
fs/super.c
263
total_objects = sb->s_op->nr_cached_objects(sb, sc);
fs/super.c
265
total_objects += list_lru_shrink_count(&sb->s_dentry_lru, sc);
fs/super.c
266
total_objects += list_lru_shrink_count(&sb->s_inode_lru, sc);
fs/ubifs/shrinker.c
268
struct shrink_control *sc)
fs/ubifs/shrinker.c
280
struct shrink_control *sc)
fs/ubifs/shrinker.c
282
unsigned long nr = sc->nr_to_scan;
fs/ubifs/ubifs.h
1909
struct shrink_control *sc);
fs/ubifs/ubifs.h
1911
struct shrink_control *sc);
fs/xfs/scrub/agheader.c
100
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
1003
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
1008
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
1012
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
1017
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
102
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader.c
1021
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
1029
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
1034
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
1038
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
1044
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
1048
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
1052
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
1054
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
1056
xchk_iunlink(sc, agi);
fs/xfs/scrub/agheader.c
1058
xchk_agi_xref(sc);
fs/xfs/scrub/agheader.c
113
agno = sc->sm->sm_agno;
fs/xfs/scrub/agheader.c
126
error = xfs_sb_read_secondary(mp, sc->tp, agno, &bp);
fs/xfs/scrub/agheader.c
144
if (!xchk_process_error(sc, agno, XFS_SB_BLOCK(mp), &error))
fs/xfs/scrub/agheader.c
156
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
159
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
162
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
165
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
168
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
171
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
174
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
176
if (xfs_has_metadir(sc->mp)) {
fs/xfs/scrub/agheader.c
178
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
181
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
184
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
187
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
191
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
194
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
197
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
200
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
203
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
216
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
224
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
227
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
230
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
233
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
236
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
239
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
24
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
242
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
245
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
248
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
251
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
254
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
257
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
26
if (xchk_need_intent_drain(sc))
fs/xfs/scrub/agheader.c
266
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
269
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
27
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
fs/xfs/scrub/agheader.c
272
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
275
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
28
return xchk_setup_fs(sc);
fs/xfs/scrub/agheader.c
284
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
287
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
290
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
293
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
296
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
299
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
302
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
305
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
308
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
313
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
320
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
323
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
333
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
339
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
346
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
351
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
356
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
36
struct xfs_scrub *sc,
fs/xfs/scrub/agheader.c
365
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
370
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
378
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
383
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
387
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
39
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader.c
390
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
399
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
40
xfs_agnumber_t agno = sc->sm->sm_agno;
fs/xfs/scrub/agheader.c
404
xchk_block_set_preen(sc, bp);
fs/xfs/scrub/agheader.c
407
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
410
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
413
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
416
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
422
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/agheader.c
424
xchk_superblock_xref(sc, bp);
fs/xfs/scrub/agheader.c
44
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/agheader.c
448
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
450
struct xfs_agf *agf = sc->sa.agf_bp->b_addr;
fs/xfs/scrub/agheader.c
454
if (!sc->sa.bno_cur)
fs/xfs/scrub/agheader.c
457
error = xfs_alloc_query_all(sc->sa.bno_cur,
fs/xfs/scrub/agheader.c
459
if (!xchk_should_check_xref(sc, &error, &sc->sa.bno_cur))
fs/xfs/scrub/agheader.c
462
xchk_block_xref_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
468
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
470
struct xfs_agf *agf = sc->sa.agf_bp->b_addr;
fs/xfs/scrub/agheader.c
476
if (!sc->sa.cnt_cur)
fs/xfs/scrub/agheader.c
480
error = xfs_alloc_lookup_le(sc->sa.cnt_cur, 0, -1U, &have);
fs/xfs/scrub/agheader.c
481
if (!xchk_should_check_xref(sc, &error, &sc->sa.cnt_cur))
fs/xfs/scrub/agheader.c
485
xchk_block_xref_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
49
error = xchk_ag_init_existing(sc, agno, &sc->sa);
fs/xfs/scrub/agheader.c
490
error = xfs_alloc_get_rec(sc->sa.cnt_cur, &agbno, &blocks, &have);
fs/xfs/scrub/agheader.c
491
if (!xchk_should_check_xref(sc, &error, &sc->sa.cnt_cur))
fs/xfs/scrub/agheader.c
494
xchk_block_xref_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
50
if (!xchk_xref_process_error(sc, agno, agbno, &error))
fs/xfs/scrub/agheader.c
500
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
502
struct xfs_agf *agf = sc->sa.agf_bp->b_addr;
fs/xfs/scrub/agheader.c
503
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader.c
509
if (!xfs_has_lazysbcount(sc->mp))
fs/xfs/scrub/agheader.c
513
if (sc->sa.rmap_cur) {
fs/xfs/scrub/agheader.c
514
error = xfs_btree_count_blocks(sc->sa.rmap_cur, &blocks);
fs/xfs/scrub/agheader.c
515
if (!xchk_should_check_xref(sc, &error, &sc->sa.rmap_cur))
fs/xfs/scrub/agheader.c
519
xchk_block_xref_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
528
if ((xfs_has_rmapbt(mp) && !sc->sa.rmap_cur) ||
fs/xfs/scrub/agheader.c
529
!sc->sa.bno_cur || !sc->sa.cnt_cur)
fs/xfs/scrub/agheader.c
53
xchk_xref_is_used_space(sc, agbno, 1);
fs/xfs/scrub/agheader.c
533
error = xfs_btree_count_blocks(sc->sa.bno_cur, &blocks);
fs/xfs/scrub/agheader.c
534
if (!xchk_should_check_xref(sc, &error, &sc->sa.bno_cur))
fs/xfs/scrub/agheader.c
538
error = xfs_btree_count_blocks(sc->sa.cnt_cur, &blocks);
fs/xfs/scrub/agheader.c
539
if (!xchk_should_check_xref(sc, &error, &sc->sa.cnt_cur))
fs/xfs/scrub/agheader.c
54
xchk_xref_is_not_inode_chunk(sc, agbno, 1);
fs/xfs/scrub/agheader.c
544
xchk_block_xref_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
55
xchk_xref_is_only_owned_by(sc, agbno, 1, &XFS_RMAP_OINFO_FS);
fs/xfs/scrub/agheader.c
550
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
552
struct xfs_agf *agf = sc->sa.agf_bp->b_addr;
fs/xfs/scrub/agheader.c
556
if (!sc->sa.refc_cur)
fs/xfs/scrub/agheader.c
559
error = xfs_btree_count_blocks(sc->sa.refc_cur, &blocks);
fs/xfs/scrub/agheader.c
56
xchk_xref_is_not_shared(sc, agbno, 1);
fs/xfs/scrub/agheader.c
560
if (!xchk_should_check_xref(sc, &error, &sc->sa.refc_cur))
fs/xfs/scrub/agheader.c
563
xchk_block_xref_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
569
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
57
xchk_xref_is_not_cow_staging(sc, agbno, 1);
fs/xfs/scrub/agheader.c
571
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader.c
574
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/agheader.c
579
xchk_ag_btcur_init(sc, &sc->sa);
fs/xfs/scrub/agheader.c
581
xchk_xref_is_used_space(sc, agbno, 1);
fs/xfs/scrub/agheader.c
582
xchk_agf_xref_freeblks(sc);
fs/xfs/scrub/agheader.c
583
xchk_agf_xref_cntbt(sc);
fs/xfs/scrub/agheader.c
584
xchk_xref_is_not_inode_chunk(sc, agbno, 1);
fs/xfs/scrub/agheader.c
585
xchk_xref_is_only_owned_by(sc, agbno, 1, &XFS_RMAP_OINFO_FS);
fs/xfs/scrub/agheader.c
586
xchk_agf_xref_btreeblks(sc);
fs/xfs/scrub/agheader.c
587
xchk_xref_is_not_shared(sc, agbno, 1);
fs/xfs/scrub/agheader.c
588
xchk_xref_is_not_cow_staging(sc, agbno, 1);
fs/xfs/scrub/agheader.c
589
xchk_agf_xref_refcblks(sc);
fs/xfs/scrub/agheader.c
597
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
599
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader.c
602
xfs_agnumber_t agno = sc->sm->sm_agno;
fs/xfs/scrub/agheader.c
612
error = xchk_ag_read_headers(sc, agno, &sc->sa);
fs/xfs/scrub/agheader.c
613
if (!xchk_process_error(sc, agno, XFS_AGF_BLOCK(sc->mp), &error))
fs/xfs/scrub/agheader.c
615
xchk_buffer_recheck(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
617
agf = sc->sa.agf_bp->b_addr;
fs/xfs/scrub/agheader.c
618
pag = sc->sa.pag;
fs/xfs/scrub/agheader.c
623
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
628
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
632
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
636
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
640
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
645
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
649
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
655
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
659
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
671
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
675
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
677
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
678
if (xfs_has_lazysbcount(sc->mp) &&
fs/xfs/scrub/agheader.c
680
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
682
xchk_agf_xref(sc);
fs/xfs/scrub/agheader.c
700
struct xfs_scrub *sc;
fs/xfs/scrub/agheader.c
706
struct xfs_scrub *sc,
fs/xfs/scrub/agheader.c
709
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/agheader.c
712
xchk_xref_is_used_space(sc, agbno, 1);
fs/xfs/scrub/agheader.c
713
xchk_xref_is_not_inode_chunk(sc, agbno, 1);
fs/xfs/scrub/agheader.c
714
xchk_xref_is_only_owned_by(sc, agbno, 1, &XFS_RMAP_OINFO_AG);
fs/xfs/scrub/agheader.c
715
xchk_xref_is_not_shared(sc, agbno, 1);
fs/xfs/scrub/agheader.c
716
xchk_xref_is_not_cow_staging(sc, agbno, 1);
fs/xfs/scrub/agheader.c
727
struct xfs_scrub *sc = sai->sc;
fs/xfs/scrub/agheader.c
729
if (xfs_verify_agbno(sc->sa.pag, agbno) &&
fs/xfs/scrub/agheader.c
733
xchk_block_set_corrupt(sc, sai->agfl_bp);
fs/xfs/scrub/agheader.c
735
xchk_agfl_block_xref(sc, agbno);
fs/xfs/scrub/agheader.c
737
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/agheader.c
757
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
759
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader.c
762
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/agheader.c
767
xchk_ag_btcur_init(sc, &sc->sa);
fs/xfs/scrub/agheader.c
769
xchk_xref_is_used_space(sc, agbno, 1);
fs/xfs/scrub/agheader.c
770
xchk_xref_is_not_inode_chunk(sc, agbno, 1);
fs/xfs/scrub/agheader.c
771
xchk_xref_is_only_owned_by(sc, agbno, 1, &XFS_RMAP_OINFO_FS);
fs/xfs/scrub/agheader.c
772
xchk_xref_is_not_shared(sc, agbno, 1);
fs/xfs/scrub/agheader.c
773
xchk_xref_is_not_cow_staging(sc, agbno, 1);
fs/xfs/scrub/agheader.c
784
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
787
.sc = sc,
fs/xfs/scrub/agheader.c
790
xfs_agnumber_t agno = sc->sm->sm_agno;
fs/xfs/scrub/agheader.c
795
error = xchk_ag_read_headers(sc, agno, &sc->sa);
fs/xfs/scrub/agheader.c
796
if (!xchk_process_error(sc, agno, XFS_AGFL_BLOCK(sc->mp), &error))
fs/xfs/scrub/agheader.c
798
if (!sc->sa.agf_bp)
fs/xfs/scrub/agheader.c
802
error = xfs_alloc_read_agfl(sc->sa.pag, sc->tp, &sai.agfl_bp);
fs/xfs/scrub/agheader.c
803
if (!xchk_process_error(sc, agno, XFS_AGFL_BLOCK(sc->mp), &error))
fs/xfs/scrub/agheader.c
805
xchk_buffer_recheck(sc, sai.agfl_bp);
fs/xfs/scrub/agheader.c
807
xchk_agfl_xref(sc);
fs/xfs/scrub/agheader.c
809
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/agheader.c
813
agf = sc->sa.agf_bp->b_addr;
fs/xfs/scrub/agheader.c
815
if (sai.agflcount > xfs_agfl_size(sc->mp)) {
fs/xfs/scrub/agheader.c
816
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
827
error = xfs_agfl_walk(sc->mp, sc->sa.agf_bp->b_addr, sai.agfl_bp,
fs/xfs/scrub/agheader.c
837
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
846
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
fs/xfs/scrub/agheader.c
862
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
864
struct xfs_agi *agi = sc->sa.agi_bp->b_addr;
fs/xfs/scrub/agheader.c
869
if (!sc->sa.ino_cur)
fs/xfs/scrub/agheader.c
872
error = xfs_ialloc_count_inodes(sc->sa.ino_cur, &icount, &freecount);
fs/xfs/scrub/agheader.c
873
if (!xchk_should_check_xref(sc, &error, &sc->sa.ino_cur))
fs/xfs/scrub/agheader.c
877
xchk_block_xref_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
883
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
885
struct xfs_agi *agi = sc->sa.agi_bp->b_addr;
fs/xfs/scrub/agheader.c
889
if (!xfs_has_inobtcounts(sc->mp))
fs/xfs/scrub/agheader.c
892
if (sc->sa.ino_cur) {
fs/xfs/scrub/agheader.c
893
error = xfs_btree_count_blocks(sc->sa.ino_cur, &blocks);
fs/xfs/scrub/agheader.c
894
if (!xchk_should_check_xref(sc, &error, &sc->sa.ino_cur))
fs/xfs/scrub/agheader.c
897
xchk_block_xref_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
900
if (sc->sa.fino_cur) {
fs/xfs/scrub/agheader.c
901
error = xfs_btree_count_blocks(sc->sa.fino_cur, &blocks);
fs/xfs/scrub/agheader.c
902
if (!xchk_should_check_xref(sc, &error, &sc->sa.fino_cur))
fs/xfs/scrub/agheader.c
905
xchk_block_xref_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
912
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
914
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader.c
917
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/agheader.c
922
xchk_ag_btcur_init(sc, &sc->sa);
fs/xfs/scrub/agheader.c
924
xchk_xref_is_used_space(sc, agbno, 1);
fs/xfs/scrub/agheader.c
925
xchk_xref_is_not_inode_chunk(sc, agbno, 1);
fs/xfs/scrub/agheader.c
926
xchk_agi_xref_icounts(sc);
fs/xfs/scrub/agheader.c
927
xchk_xref_is_only_owned_by(sc, agbno, 1, &XFS_RMAP_OINFO_FS);
fs/xfs/scrub/agheader.c
928
xchk_xref_is_not_shared(sc, agbno, 1);
fs/xfs/scrub/agheader.c
929
xchk_xref_is_not_cow_staging(sc, agbno, 1);
fs/xfs/scrub/agheader.c
930
xchk_agi_xref_fiblocks(sc);
fs/xfs/scrub/agheader.c
941
struct xfs_scrub *sc,
fs/xfs/scrub/agheader.c
952
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
956
ip = xfs_iunlink_lookup(sc->sa.pag, agino);
fs/xfs/scrub/agheader.c
958
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
963
xchk_block_set_corrupt(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
975
struct xfs_scrub *sc)
fs/xfs/scrub/agheader.c
977
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader.c
980
struct xfs_ino_geometry *igeo = M_IGEO(sc->mp);
fs/xfs/scrub/agheader.c
981
xfs_agnumber_t agno = sc->sm->sm_agno;
fs/xfs/scrub/agheader.c
992
error = xchk_ag_read_headers(sc, agno, &sc->sa);
fs/xfs/scrub/agheader.c
993
if (!xchk_process_error(sc, agno, XFS_AGI_BLOCK(sc->mp), &error))
fs/xfs/scrub/agheader.c
995
xchk_buffer_recheck(sc, sc->sa.agi_bp);
fs/xfs/scrub/agheader.c
997
agi = sc->sa.agi_bp->b_addr;
fs/xfs/scrub/agheader.c
998
pag = sc->sa.pag;
fs/xfs/scrub/agheader_repair.c
1019
struct xfs_scrub *sc,
fs/xfs/scrub/agheader_repair.c
102
if (xchk_should_terminate(raa->sc, &error))
fs/xfs/scrub/agheader_repair.c
1024
ip = xfs_iunlink_lookup(sc->sa.pag, agino);
fs/xfs/scrub/agheader_repair.c
1043
struct xfs_scrub *sc = ragi->sc;
fs/xfs/scrub/agheader_repair.c
1048
error = xchk_iget(ragi->sc, xfs_agino_to_ino(sc->sa.pag, agino), &ip);
fs/xfs/scrub/agheader_repair.c
1069
xchk_irele(sc, ip);
fs/xfs/scrub/agheader_repair.c
1083
struct xfs_scrub *sc = ragi->sc;
fs/xfs/scrub/agheader_repair.c
1084
struct xfs_agi *agi = sc->sa.agi_bp->b_addr;
fs/xfs/scrub/agheader_repair.c
1093
if (xchk_should_terminate(ragi->sc, &error))
fs/xfs/scrub/agheader_repair.c
1096
trace_xrep_iunlink_walk_ondisk_bucket(sc->sa.pag, bucket,
fs/xfs/scrub/agheader_repair.c
1102
next_agino = xrep_iunlink_next(sc, agino);
fs/xfs/scrub/agheader_repair.c
1139
struct xfs_mount *mp = ragi->sc->mp;
fs/xfs/scrub/agheader_repair.c
1145
ASSERT(XFS_INO_TO_AGNO(mp, ip->i_ino) == pag_agno(ragi->sc->sa.pag));
fs/xfs/scrub/agheader_repair.c
1151
trace_xrep_iunlink_visit(ragi->sc->sa.pag, bucket,
fs/xfs/scrub/agheader_repair.c
1175
struct xfs_perag *pag = ragi->sc->sa.pag;
fs/xfs/scrub/agheader_repair.c
118
struct xfs_scrub *sc = priv;
fs/xfs/scrub/agheader_repair.c
1185
if (xchk_should_terminate(ragi->sc, &error))
fs/xfs/scrub/agheader_repair.c
120
if (!xfs_verify_agbno(sc->sa.pag, agbno))
fs/xfs/scrub/agheader_repair.c
1247
struct xfs_scrub *sc = ragi->sc;
fs/xfs/scrub/agheader_repair.c
1273
ip = radix_tree_lookup(&sc->sa.pag->pag_ici_root, agino);
fs/xfs/scrub/agheader_repair.c
1283
error = xchk_iget(ragi->sc, xfs_agino_to_ino(sc->sa.pag, agino),
fs/xfs/scrub/agheader_repair.c
1292
xchk_irele(sc, ip);
fs/xfs/scrub/agheader_repair.c
1309
struct xfs_scrub *sc = ragi->sc;
fs/xfs/scrub/agheader_repair.c
1314
cur = xfs_inobt_init_cursor(sc->sa.pag, sc->tp, agi_bp);
fs/xfs/scrub/agheader_repair.c
1329
struct xfs_scrub *sc = ragi->sc;
fs/xfs/scrub/agheader_repair.c
1336
if (xchk_should_terminate(ragi->sc, &error))
fs/xfs/scrub/agheader_repair.c
1340
ip = xfs_iunlink_lookup(sc->sa.pag, next_agino);
fs/xfs/scrub/agheader_repair.c
1343
trace_xrep_iunlink_resolve_uncached(sc->sa.pag,
fs/xfs/scrub/agheader_repair.c
1355
trace_xrep_iunlink_resolve_wronglist(sc->sa.pag,
fs/xfs/scrub/agheader_repair.c
1369
trace_xrep_iunlink_resolve_nolist(sc->sa.pag,
fs/xfs/scrub/agheader_repair.c
1375
trace_xrep_iunlink_resolve_ok(sc->sa.pag, bucket, prev_agino,
fs/xfs/scrub/agheader_repair.c
141
struct xfs_scrub *sc,
fs/xfs/scrub/agheader_repair.c
1430
trace_xrep_iunlink_add_to_bucket(ragi->sc->sa.pag, bucket, agino,
fs/xfs/scrub/agheader_repair.c
144
return xfs_verify_agbno(sc->sa.pag, fab->root) &&
fs/xfs/scrub/agheader_repair.c
1533
struct xfs_scrub *sc = ragi->sc;
fs/xfs/scrub/agheader_repair.c
1534
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/agheader_repair.c
1548
error = xchk_iget(sc, xfs_agino_to_ino(pag, agino), &ip);
fs/xfs/scrub/agheader_repair.c
1565
error = xfs_iunlink_log_inode(sc->tp, ip, pag, next_agino);
fs/xfs/scrub/agheader_repair.c
1580
xchk_irele(sc, ip);
fs/xfs/scrub/agheader_repair.c
159
struct xfs_scrub *sc,
fs/xfs/scrub/agheader_repair.c
1591
struct xfs_scrub *sc = ragi->sc;
fs/xfs/scrub/agheader_repair.c
1592
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/agheader_repair.c
1608
error = xchk_iget(sc, xfs_agino_to_ino(pag, agino), &ip);
fs/xfs/scrub/agheader_repair.c
1619
error = xfs_iunlink_log_inode(sc->tp, ip, pag, next_agino);
fs/xfs/scrub/agheader_repair.c
1640
xchk_irele(sc, ip);
fs/xfs/scrub/agheader_repair.c
1672
trace_xrep_iunlink_commit_bucket(ragi->sc->sa.pag, i,
fs/xfs/scrub/agheader_repair.c
168
error = xrep_find_ag_btree_roots(sc, agf_bp, fab, agfl_bp);
fs/xfs/scrub/agheader_repair.c
1687
struct xfs_scrub *sc = ragi->sc;
fs/xfs/scrub/agheader_repair.c
1693
xfs_force_summary_recalc(sc->mp);
fs/xfs/scrub/agheader_repair.c
1696
xfs_trans_buf_set_type(sc->tp, agi_bp, XFS_BLFT_AGI_BUF);
fs/xfs/scrub/agheader_repair.c
1697
xfs_trans_log_buf(sc->tp, agi_bp, 0, BBTOB(agi_bp->b_length) - 1);
fs/xfs/scrub/agheader_repair.c
1700
pag = sc->sa.pag;
fs/xfs/scrub/agheader_repair.c
1705
return xrep_roll_ag_trans(sc);
fs/xfs/scrub/agheader_repair.c
1711
struct xfs_scrub *sc)
fs/xfs/scrub/agheader_repair.c
1714
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader_repair.c
1722
sc->buf = kzalloc_obj(struct xrep_agi, XCHK_GFP_FLAGS);
fs/xfs/scrub/agheader_repair.c
1723
if (!sc->buf)
fs/xfs/scrub/agheader_repair.c
1725
ragi = sc->buf;
fs/xfs/scrub/agheader_repair.c
1726
ragi->sc = sc;
fs/xfs/scrub/agheader_repair.c
173
if (!xrep_check_btree_root(sc, &fab[XREP_AGF_BNOBT]) ||
fs/xfs/scrub/agheader_repair.c
1731
.maxlevels = M_IGEO(sc->mp)->inobt_maxlevels,
fs/xfs/scrub/agheader_repair.c
1736
.maxlevels = M_IGEO(sc->mp)->inobt_maxlevels,
fs/xfs/scrub/agheader_repair.c
174
!xrep_check_btree_root(sc, &fab[XREP_AGF_CNTBT]) ||
fs/xfs/scrub/agheader_repair.c
1746
sc->buf_cleanup = xrep_agi_buf_cleanup;
fs/xfs/scrub/agheader_repair.c
175
!xrep_check_btree_root(sc, &fab[XREP_AGF_RMAPBT]))
fs/xfs/scrub/agheader_repair.c
1762
error = xfs_trans_read_buf(mp, sc->tp, mp->m_ddev_targp,
fs/xfs/scrub/agheader_repair.c
1763
XFS_AG_DADDR(mp, pag_agno(sc->sa.pag),
fs/xfs/scrub/agheader_repair.c
1780
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/agheader_repair.c
1798
clear_bit(XFS_AGSTATE_AGI_INIT, &sc->sa.pag->pag_opstate);
fs/xfs/scrub/agheader_repair.c
186
if (xfs_has_reflink(sc->mp) &&
fs/xfs/scrub/agheader_repair.c
187
!xrep_check_btree_root(sc, &fab[XREP_AGF_REFCOUNTBT]))
fs/xfs/scrub/agheader_repair.c
199
struct xfs_scrub *sc,
fs/xfs/scrub/agheader_repair.c
203
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader_repair.c
204
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/agheader_repair.c
227
struct xfs_scrub *sc,
fs/xfs/scrub/agheader_repair.c
240
if (xfs_has_reflink(sc->mp)) {
fs/xfs/scrub/agheader_repair.c
251
struct xfs_scrub *sc,
fs/xfs/scrub/agheader_repair.c
254
struct xrep_agf_allocbt raa = { .sc = sc };
fs/xfs/scrub/agheader_repair.c
257
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader_repair.c
263
cur = xfs_bnobt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
fs/xfs/scrub/agheader_repair.c
276
cur = xfs_cntbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
fs/xfs/scrub/agheader_repair.c
284
cur = xfs_rmapbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
fs/xfs/scrub/agheader_repair.c
296
cur = xfs_refcountbt_init_cursor(mp, sc->tp, agf_bp,
fs/xfs/scrub/agheader_repair.c
297
sc->sa.pag);
fs/xfs/scrub/agheader_repair.c
314
struct xfs_scrub *sc,
fs/xfs/scrub/agheader_repair.c
321
xfs_force_summary_recalc(sc->mp);
fs/xfs/scrub/agheader_repair.c
324
xfs_trans_buf_set_type(sc->tp, agf_bp, XFS_BLFT_AGF_BUF);
fs/xfs/scrub/agheader_repair.c
325
xfs_trans_log_buf(sc->tp, agf_bp, 0, BBTOB(agf_bp->b_length) - 1);
fs/xfs/scrub/agheader_repair.c
328
pag = sc->sa.pag;
fs/xfs/scrub/agheader_repair.c
338
return xrep_roll_ag_trans(sc);
fs/xfs/scrub/agheader_repair.c
344
struct xfs_scrub *sc)
fs/xfs/scrub/agheader_repair.c
350
.maxlevels = sc->mp->m_alloc_maxlevels,
fs/xfs/scrub/agheader_repair.c
355
.maxlevels = sc->mp->m_alloc_maxlevels,
fs/xfs/scrub/agheader_repair.c
360
.maxlevels = sc->mp->m_rmap_maxlevels,
fs/xfs/scrub/agheader_repair.c
365
.maxlevels = sc->mp->m_refc_maxlevels,
fs/xfs/scrub/agheader_repair.c
372
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader_repair.c
386
error = xfs_trans_read_buf(mp, sc->tp, mp->m_ddev_targp,
fs/xfs/scrub/agheader_repair.c
387
XFS_AG_DADDR(mp, pag_agno(sc->sa.pag),
fs/xfs/scrub/agheader_repair.c
404
error = xfs_alloc_read_agfl(sc->sa.pag, sc->tp, &agfl_bp);
fs/xfs/scrub/agheader_repair.c
412
error = xfs_agfl_walk(sc->mp, agf_bp->b_addr, agfl_bp,
fs/xfs/scrub/agheader_repair.c
413
xrep_agf_check_agfl_block, sc);
fs/xfs/scrub/agheader_repair.c
42
struct xfs_scrub *sc)
fs/xfs/scrub/agheader_repair.c
421
error = xrep_agf_find_btrees(sc, agf_bp, fab, agfl_bp);
fs/xfs/scrub/agheader_repair.c
426
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/agheader_repair.c
430
xrep_agf_init_header(sc, agf_bp, &old_agf);
fs/xfs/scrub/agheader_repair.c
431
xrep_agf_set_roots(sc, agf, fab);
fs/xfs/scrub/agheader_repair.c
432
error = xrep_agf_calc_from_btrees(sc, agf_bp);
fs/xfs/scrub/agheader_repair.c
437
return xrep_agf_commit_new(sc, agf_bp);
fs/xfs/scrub/agheader_repair.c
44
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader_repair.c
441
clear_bit(XFS_AGSTATE_AGF_INIT, &sc->sa.pag->pag_opstate);
fs/xfs/scrub/agheader_repair.c
461
struct xfs_scrub *sc;
fs/xfs/scrub/agheader_repair.c
474
if (xchk_should_terminate(ra->sc, &error))
fs/xfs/scrub/agheader_repair.c
50
agno = sc->sm->sm_agno;
fs/xfs/scrub/agheader_repair.c
513
if (xchk_should_terminate(ra->sc, &error))
fs/xfs/scrub/agheader_repair.c
532
struct xfs_scrub *sc,
fs/xfs/scrub/agheader_repair.c
538
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader_repair.c
54
error = xfs_sb_get_secondary(mp, sc->tp, agno, &bp);
fs/xfs/scrub/agheader_repair.c
542
ra.sc = sc;
fs/xfs/scrub/agheader_repair.c
548
cur = xfs_rmapbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
fs/xfs/scrub/agheader_repair.c
555
cur = xfs_bnobt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
fs/xfs/scrub/agheader_repair.c
562
cur = xfs_cntbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
fs/xfs/scrub/agheader_repair.c
577
ra.rmap_cur = xfs_rmapbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
fs/xfs/scrub/agheader_repair.c
59
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/agheader_repair.c
602
struct xfs_scrub *sc,
fs/xfs/scrub/agheader_repair.c
608
ASSERT(flcount <= xfs_agfl_size(sc->mp));
fs/xfs/scrub/agheader_repair.c
611
xfs_force_summary_recalc(sc->mp);
fs/xfs/scrub/agheader_repair.c
614
if (xfs_perag_initialised_agf(sc->sa.pag)) {
fs/xfs/scrub/agheader_repair.c
615
sc->sa.pag->pagf_flcount = flcount;
fs/xfs/scrub/agheader_repair.c
617
&sc->sa.pag->pag_opstate);
fs/xfs/scrub/agheader_repair.c
624
agf->agf_fllast = cpu_to_be32(xfs_agfl_size(sc->mp) - 1);
fs/xfs/scrub/agheader_repair.c
626
xfs_alloc_log_agf(sc->tp, agf_bp,
fs/xfs/scrub/agheader_repair.c
632
struct xfs_scrub *sc;
fs/xfs/scrub/agheader_repair.c
646
struct xfs_scrub *sc = af->sc;
fs/xfs/scrub/agheader_repair.c
650
trace_xrep_agfl_insert(pag_group(sc->sa.pag), agbno, len);
fs/xfs/scrub/agheader_repair.c
668
struct xfs_scrub *sc,
fs/xfs/scrub/agheader_repair.c
674
.sc = sc,
fs/xfs/scrub/agheader_repair.c
677
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader_repair.c
690
agfl->agfl_seqno = cpu_to_be32(pag_agno(sc->sa.pag));
fs/xfs/scrub/agheader_repair.c
706
xfs_trans_buf_set_type(sc->tp, agfl_bp, XFS_BLFT_AGFL_BUF);
fs/xfs/scrub/agheader_repair.c
707
xfs_trans_log_buf(sc->tp, agfl_bp, 0, BBTOB(agfl_bp->b_length) - 1);
fs/xfs/scrub/agheader_repair.c
715
struct xfs_scrub *sc)
fs/xfs/scrub/agheader_repair.c
718
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader_repair.c
735
error = xfs_alloc_read_agf(sc->sa.pag, sc->tp, 0, &agf_bp);
fs/xfs/scrub/agheader_repair.c
743
error = xfs_trans_read_buf(mp, sc->tp, mp->m_ddev_targp,
fs/xfs/scrub/agheader_repair.c
744
XFS_AG_DADDR(mp, pag_agno(sc->sa.pag),
fs/xfs/scrub/agheader_repair.c
752
error = xrep_agfl_collect_blocks(sc, agf_bp, &agfl_extents, &flcount);
fs/xfs/scrub/agheader_repair.c
757
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/agheader_repair.c
765
xrep_agfl_update_agf(sc, agf_bp, flcount);
fs/xfs/scrub/agheader_repair.c
766
error = xrep_agfl_init_header(sc, agfl_bp, &agfl_extents, flcount);
fs/xfs/scrub/agheader_repair.c
775
sc->sa.agf_bp = agf_bp;
fs/xfs/scrub/agheader_repair.c
776
error = xrep_roll_ag_trans(sc);
fs/xfs/scrub/agheader_repair.c
781
error = xrep_reap_agblocks(sc, &agfl_extents, &XFS_RMAP_OINFO_AG,
fs/xfs/scrub/agheader_repair.c
79
xfs_trans_buf_set_type(sc->tp, bp, XFS_BLFT_SB_BUF);
fs/xfs/scrub/agheader_repair.c
80
xfs_trans_log_buf(sc->tp, bp, 0, BBTOB(bp->b_length) - 1);
fs/xfs/scrub/agheader_repair.c
807
struct xfs_scrub *sc;
fs/xfs/scrub/agheader_repair.c
857
struct xfs_scrub *sc = ragi->sc;
fs/xfs/scrub/agheader_repair.c
860
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader_repair.c
864
error = xfs_alloc_read_agf(sc->sa.pag, sc->tp, 0, &agf_bp);
fs/xfs/scrub/agheader_repair.c
869
error = xrep_find_ag_btree_roots(sc, agf_bp, fab, NULL);
fs/xfs/scrub/agheader_repair.c
87
struct xfs_scrub *sc;
fs/xfs/scrub/agheader_repair.c
874
if (!xrep_check_btree_root(sc, &fab[XREP_AGI_INOBT]))
fs/xfs/scrub/agheader_repair.c
879
!xrep_check_btree_root(sc, &fab[XREP_AGI_FINOBT]))
fs/xfs/scrub/agheader_repair.c
893
struct xfs_scrub *sc = ragi->sc;
fs/xfs/scrub/agheader_repair.c
897
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/agheader_repair.c
898
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader_repair.c
921
struct xfs_scrub *sc = ragi->sc;
fs/xfs/scrub/agheader_repair.c
928
if (xfs_has_finobt(sc->mp)) {
fs/xfs/scrub/agheader_repair.c
939
struct xfs_scrub *sc = ragi->sc;
fs/xfs/scrub/agheader_repair.c
943
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/agheader_repair.c
948
cur = xfs_inobt_init_cursor(sc->sa.pag, sc->tp, agi_bp);
fs/xfs/scrub/agheader_repair.c
968
cur = xfs_finobt_init_cursor(sc->sa.pag, sc->tp, agi_bp);
fs/xfs/scrub/alloc.c
104
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/alloc.c
107
xchk_allocbt_xref_other(sc, agbno, len);
fs/xfs/scrub/alloc.c
108
xchk_xref_is_not_inode_chunk(sc, agbno, len);
fs/xfs/scrub/alloc.c
109
xchk_xref_has_no_owner(sc, agbno, len);
fs/xfs/scrub/alloc.c
110
xchk_xref_is_not_shared(sc, agbno, len);
fs/xfs/scrub/alloc.c
111
xchk_xref_is_not_cow_staging(sc, agbno, len);
fs/xfs/scrub/alloc.c
121
if (bs->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/alloc.c
127
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/alloc.c
143
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/alloc.c
148
xchk_allocbt_xref(bs->sc, &irec);
fs/xfs/scrub/alloc.c
156
struct xfs_scrub *sc)
fs/xfs/scrub/alloc.c
161
switch (sc->sm->sm_type) {
fs/xfs/scrub/alloc.c
163
cur = sc->sa.bno_cur;
fs/xfs/scrub/alloc.c
166
cur = sc->sa.cnt_cur;
fs/xfs/scrub/alloc.c
173
return xchk_btree(sc, cur, xchk_allocbt_rec, &XFS_RMAP_OINFO_AG, &ca);
fs/xfs/scrub/alloc.c
179
struct xfs_scrub *sc,
fs/xfs/scrub/alloc.c
186
if (!sc->sa.bno_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/alloc.c
189
error = xfs_alloc_has_records(sc->sa.bno_cur, agbno, len, &outcome);
fs/xfs/scrub/alloc.c
190
if (!xchk_should_check_xref(sc, &error, &sc->sa.bno_cur))
fs/xfs/scrub/alloc.c
193
xchk_btree_xref_set_corrupt(sc, sc->sa.bno_cur, 0);
fs/xfs/scrub/alloc.c
28
struct xfs_scrub *sc)
fs/xfs/scrub/alloc.c
32
if (xchk_need_intent_drain(sc))
fs/xfs/scrub/alloc.c
33
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
fs/xfs/scrub/alloc.c
35
error = xchk_setup_ag_btree(sc, false);
fs/xfs/scrub/alloc.c
39
if (xchk_could_repair(sc))
fs/xfs/scrub/alloc.c
40
return xrep_setup_ag_allocbt(sc);
fs/xfs/scrub/alloc.c
58
struct xfs_scrub *sc,
fs/xfs/scrub/alloc.c
68
if (sc->sm->sm_type == XFS_SCRUB_TYPE_BNOBT)
fs/xfs/scrub/alloc.c
69
pcur = &sc->sa.cnt_cur;
fs/xfs/scrub/alloc.c
71
pcur = &sc->sa.bno_cur;
fs/xfs/scrub/alloc.c
72
if (!*pcur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/alloc.c
76
if (!xchk_should_check_xref(sc, &error, pcur))
fs/xfs/scrub/alloc.c
79
xchk_btree_xref_set_corrupt(sc, *pcur, 0);
fs/xfs/scrub/alloc.c
84
if (!xchk_should_check_xref(sc, &error, pcur))
fs/xfs/scrub/alloc.c
87
xchk_btree_xref_set_corrupt(sc, *pcur, 0);
fs/xfs/scrub/alloc.c
92
xchk_btree_xref_set_corrupt(sc, *pcur, 0);
fs/xfs/scrub/alloc.c
98
struct xfs_scrub *sc,
fs/xfs/scrub/alloc_repair.c
109
struct xfs_scrub *sc;
fs/xfs/scrub/alloc_repair.c
133
struct xfs_scrub *sc)
fs/xfs/scrub/alloc_repair.c
135
struct xfs_group *xg = pag_group(sc->sa.pag);
fs/xfs/scrub/alloc_repair.c
144
return xfs_extent_busy_flush(sc->tp, xg, busy_gen, 0);
fs/xfs/scrub/alloc_repair.c
150
struct xfs_scrub *sc,
fs/xfs/scrub/alloc_repair.c
156
if (xfs_alloc_check_irec(sc->sa.pag, rec) != NULL)
fs/xfs/scrub/alloc_repair.c
160
error = xfs_ialloc_has_inodes_at_extent(sc->sa.ino_cur,
fs/xfs/scrub/alloc_repair.c
168
if (sc->sa.refc_cur) {
fs/xfs/scrub/alloc_repair.c
169
error = xfs_refcount_has_records(sc->sa.refc_cur,
fs/xfs/scrub/alloc_repair.c
177
error = xfs_refcount_has_records(sc->sa.refc_cur,
fs/xfs/scrub/alloc_repair.c
202
struct xfs_scrub *sc = ra->sc;
fs/xfs/scrub/alloc_repair.c
205
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/alloc_repair.c
208
error = xrep_abt_check_free_ext(ra->sc, &arec);
fs/xfs/scrub/alloc_repair.c
212
trace_xrep_abt_found(sc->sa.pag, &arec);
fs/xfs/scrub/alloc_repair.c
364
struct xfs_scrub *sc = ra->sc;
fs/xfs/scrub/alloc_repair.c
365
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/alloc_repair.c
366
struct xfs_agf *agf = sc->sa.agf_bp->b_addr;
fs/xfs/scrub/alloc_repair.c
373
xrep_ag_btcur_init(sc, &sc->sa);
fs/xfs/scrub/alloc_repair.c
379
error = xfs_rmap_query_all(sc->sa.rmap_cur, xrep_abt_walk_rmap, ra);
fs/xfs/scrub/alloc_repair.c
392
error = xfs_alloc_read_agfl(sc->sa.pag, sc->tp, &agfl_bp);
fs/xfs/scrub/alloc_repair.c
408
xfs_trans_brelse(sc->tp, agfl_bp);
fs/xfs/scrub/alloc_repair.c
410
xchk_ag_btcur_free(&sc->sa);
fs/xfs/scrub/alloc_repair.c
438
struct xfs_scrub *sc = ra->sc;
fs/xfs/scrub/alloc_repair.c
486
trace_xrep_newbt_alloc_ag_blocks(sc->sa.pag, arec.ar_startblock,
fs/xfs/scrub/alloc_repair.c
489
error = xrep_newbt_add_extent(&ra->new_bnobt, sc->sa.pag,
fs/xfs/scrub/alloc_repair.c
535
struct xfs_scrub *sc = ra->sc;
fs/xfs/scrub/alloc_repair.c
536
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/alloc_repair.c
545
xfs_rmap_alloc_extent(sc->tp, false,
fs/xfs/scrub/alloc_repair.c
560
error = __xfs_free_extent(sc->tp, resv->pag, free_agbno, free_aglen,
fs/xfs/scrub/alloc_repair.c
565
return xrep_defer_finish(sc);
fs/xfs/scrub/alloc_repair.c
651
struct xfs_scrub *sc = ra->sc;
fs/xfs/scrub/alloc_repair.c
652
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/alloc_repair.c
653
struct xfs_agf *agf = sc->sa.agf_bp->b_addr;
fs/xfs/scrub/alloc_repair.c
675
xfs_alloc_log_agf(sc->tp, sc->sa.agf_bp, XFS_AGF_BTREEBLKS |
fs/xfs/scrub/alloc_repair.c
694
return xrep_reinit_pagf(sc);
fs/xfs/scrub/alloc_repair.c
706
struct xfs_scrub *sc = ra->sc;
fs/xfs/scrub/alloc_repair.c
709
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/alloc_repair.c
728
xrep_newbt_init_bare(&ra->new_bnobt, sc);
fs/xfs/scrub/alloc_repair.c
729
xrep_newbt_init_bare(&ra->new_cntbt, sc);
fs/xfs/scrub/alloc_repair.c
738
bno_cur = xfs_bnobt_init_cursor(sc->mp, NULL, NULL, pag);
fs/xfs/scrub/alloc_repair.c
741
cnt_cur = xfs_cntbt_init_cursor(sc->mp, NULL, NULL, pag);
fs/xfs/scrub/alloc_repair.c
745
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/alloc_repair.c
793
xfs_allocbt_commit_staged_btree(bno_cur, sc->tp, sc->sa.agf_bp);
fs/xfs/scrub/alloc_repair.c
795
xfs_allocbt_commit_staged_btree(cnt_cur, sc->tp, sc->sa.agf_bp);
fs/xfs/scrub/alloc_repair.c
806
return xrep_roll_ag_trans(sc);
fs/xfs/scrub/alloc_repair.c
827
struct xfs_perag *pag = ra->sc->sa.pag;
fs/xfs/scrub/alloc_repair.c
831
error = xrep_reap_agblocks(ra->sc, &ra->old_allocbt_blocks,
fs/xfs/scrub/alloc_repair.c
848
struct xfs_scrub *sc)
fs/xfs/scrub/alloc_repair.c
851
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/alloc_repair.c
862
ra->sc = sc;
fs/xfs/scrub/alloc_repair.c
865
sc->sick_mask = XFS_SICK_AG_BNOBT | XFS_SICK_AG_CNTBT;
fs/xfs/scrub/alloc_repair.c
872
if (!xfs_extent_busy_list_empty(pag_group(sc->sa.pag), &busy_gen)) {
fs/xfs/scrub/alloc_repair.c
911
struct xfs_scrub *sc)
fs/xfs/scrub/alloc_repair.c
913
__u32 old_type = sc->sm->sm_type;
fs/xfs/scrub/alloc_repair.c
921
sc->sm->sm_type = XFS_SCRUB_TYPE_BNOBT;
fs/xfs/scrub/alloc_repair.c
922
error = xchk_allocbt(sc);
fs/xfs/scrub/alloc_repair.c
934
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/alloc_repair.c
937
sc->sm->sm_type = XFS_SCRUB_TYPE_CNTBT;
fs/xfs/scrub/alloc_repair.c
938
if (!sc->sa.cnt_cur) {
fs/xfs/scrub/alloc_repair.c
939
xchk_set_incomplete(sc);
fs/xfs/scrub/alloc_repair.c
942
error = xchk_allocbt(sc);
fs/xfs/scrub/alloc_repair.c
944
sc->sm->sm_type = old_type;
fs/xfs/scrub/attr.c
104
if (xchk_could_repair(sc)) {
fs/xfs/scrub/attr.c
132
struct xfs_scrub *sc)
fs/xfs/scrub/attr.c
136
if (xchk_could_repair(sc)) {
fs/xfs/scrub/attr.c
137
error = xrep_setup_xattr(sc);
fs/xfs/scrub/attr.c
147
if (sc->flags & XCHK_TRY_HARDER) {
fs/xfs/scrub/attr.c
148
error = xchk_setup_xattr_buf(sc, XATTR_SIZE_MAX);
fs/xfs/scrub/attr.c
153
return xchk_setup_inode_contents(sc, 0);
fs/xfs/scrub/attr.c
167
struct xfs_scrub *sc,
fs/xfs/scrub/attr.c
178
.geo = sc->mp->m_attr_geo,
fs/xfs/scrub/attr.c
183
.trans = sc->tp,
fs/xfs/scrub/attr.c
190
ab = sc->buf;
fs/xfs/scrub/attr.c
192
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/attr.c
196
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, args.blkno);
fs/xfs/scrub/attr.c
202
xchk_ino_set_preen(sc, ip->i_ino);
fs/xfs/scrub/attr.c
208
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, args.blkno);
fs/xfs/scrub/attr.c
214
!xfs_parent_valuecheck(sc->mp, value, valuelen)) {
fs/xfs/scrub/attr.c
215
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, args.blkno);
fs/xfs/scrub/attr.c
224
error = xchk_setup_xattr_buf(sc, valuelen);
fs/xfs/scrub/attr.c
250
if (!xchk_fblock_process_error(sc, XFS_ATTR_FORK, args.blkno,
fs/xfs/scrub/attr.c
254
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, args.blkno);
fs/xfs/scrub/attr.c
268
struct xfs_scrub *sc,
fs/xfs/scrub/attr.c
273
unsigned int mapsize = sc->mp->m_attr_geo->blksize;
fs/xfs/scrub/attr.c
307
struct xchk_xattr_buf *ab = ds->sc->buf;
fs/xfs/scrub/attr.c
350
if (!xchk_xattr_set_map(ds->sc, ab->usedmap, nameidx, namesize))
fs/xfs/scrub/attr.c
352
if (!(ds->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/attr.c
370
struct xchk_xattr_buf *ab = ds->sc->buf;
fs/xfs/scrub/attr.c
386
if (xfs_has_crc(ds->sc->mp)) {
fs/xfs/scrub/attr.c
418
if (!xchk_xattr_set_map(ds->sc, ab->usedmap, 0, hdrsize))
fs/xfs/scrub/attr.c
423
if (ds->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/attr.c
430
if (ds->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/attr.c
437
if (!xchk_xattr_set_map(ds->sc, ab->usedmap, off,
fs/xfs/scrub/attr.c
447
if (ds->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/attr.c
453
if (!xchk_xattr_set_map(ds->sc, ab->freemap,
fs/xfs/scrub/attr.c
467
if (ds->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/attr.c
509
if (ds->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/attr.c
52
struct xfs_scrub *sc)
fs/xfs/scrub/attr.c
56
if (sc->flags & XCHK_TRY_HARDER)
fs/xfs/scrub/attr.c
573
struct xfs_scrub *sc)
fs/xfs/scrub/attr.c
575
struct xchk_xattr_buf *ab = sc->buf;
fs/xfs/scrub/attr.c
576
struct xfs_ifork *ifp = &sc->ip->i_af;
fs/xfs/scrub/attr.c
585
xchk_xattr_set_map(sc, ab->usedmap, 0, sizeof(*sf));
fs/xfs/scrub/attr.c
588
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/attr.c
59
if (!sc->ip)
fs/xfs/scrub/attr.c
596
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/attr.c
601
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/attr.c
610
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/attr.c
614
if (!xchk_xattr_set_map(sc, ab->usedmap,
fs/xfs/scrub/attr.c
617
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/attr.c
62
ifp = xfs_ifork_ptr(sc->ip, XFS_ATTR_FORK);
fs/xfs/scrub/attr.c
621
if (!xchk_xattr_set_map(sc, ab->usedmap,
fs/xfs/scrub/attr.c
624
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/attr.c
628
if (!xchk_xattr_set_map(sc, ab->usedmap,
fs/xfs/scrub/attr.c
631
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/attr.c
644
struct xfs_scrub *sc)
fs/xfs/scrub/attr.c
649
if (!xfs_inode_hasattr(sc->ip))
fs/xfs/scrub/attr.c
653
error = xchk_setup_xattr_buf(sc, 0);
fs/xfs/scrub/attr.c
660
if (sc->ip->i_af.if_format == XFS_DINODE_FMT_LOCAL)
fs/xfs/scrub/attr.c
661
error = xchk_xattr_check_sf(sc);
fs/xfs/scrub/attr.c
663
error = xchk_da_btree(sc, XFS_ATTR_FORK, xchk_xattr_rec,
fs/xfs/scrub/attr.c
668
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/attr.c
681
error = xchk_xattr_walk(sc, sc->ip, xchk_xattr_actor, NULL, NULL);
fs/xfs/scrub/attr.c
682
if (!xchk_fblock_process_error(sc, XFS_ATTR_FORK, 0, &error))
fs/xfs/scrub/attr.c
76
struct xfs_scrub *sc,
fs/xfs/scrub/attr.c
80
struct xchk_xattr_buf *ab = sc->buf;
fs/xfs/scrub/attr.c
83
bmp_sz = sizeof(long) * BITS_TO_LONGS(sc->mp->m_attr_geo->blksize);
fs/xfs/scrub/attr.c
91
sc->buf = ab;
fs/xfs/scrub/attr.c
92
sc->buf_cleanup = xchk_xattr_buf_cleanup;
fs/xfs/scrub/attr.c
98
if (xchk_xattr_want_freemap(sc)) {
fs/xfs/scrub/attr.h
27
bool xchk_xattr_set_map(struct xfs_scrub *sc, unsigned long *map,
fs/xfs/scrub/attr.h
29
int xchk_setup_xattr_buf(struct xfs_scrub *sc, size_t value_size);
fs/xfs/scrub/attr_repair.c
1008
struct xfs_scrub *sc)
fs/xfs/scrub/attr_repair.c
1012
trace_xrep_xattr_reset_fork(sc->ip, sc->ip);
fs/xfs/scrub/attr_repair.c
1015
if (xfs_ifork_has_extents(&sc->ip->i_af)) {
fs/xfs/scrub/attr_repair.c
1016
error = xrep_reap_ifork(sc, sc->ip, XFS_ATTR_FORK);
fs/xfs/scrub/attr_repair.c
1021
error = xrep_xattr_fork_remove(sc, sc->ip);
fs/xfs/scrub/attr_repair.c
1025
return xfs_trans_roll_inode(&sc->tp, sc->ip);
fs/xfs/scrub/attr_repair.c
1035
struct xfs_scrub *sc)
fs/xfs/scrub/attr_repair.c
1039
trace_xrep_xattr_reset_fork(sc->ip, sc->tempip);
fs/xfs/scrub/attr_repair.c
1045
if (xfs_ifork_has_extents(&sc->tempip->i_af)) {
fs/xfs/scrub/attr_repair.c
1046
error = xrep_reap_ifork(sc, sc->tempip, XFS_ATTR_FORK);
fs/xfs/scrub/attr_repair.c
1051
return xrep_xattr_fork_remove(sc, sc->tempip);
fs/xfs/scrub/attr_repair.c
1064
struct xfs_inode *ip = rx->sc->ip;
fs/xfs/scrub/attr_repair.c
1068
if (rx->sc->ip->i_af.if_format == XFS_DINODE_FMT_LOCAL) {
fs/xfs/scrub/attr_repair.c
1084
error = xfs_trans_roll(&rx->sc->tp);
fs/xfs/scrub/attr_repair.c
1088
error = xfs_iread_extents(rx->sc->tp, ip, XFS_ATTR_FORK);
fs/xfs/scrub/attr_repair.c
1110
struct xfs_scrub *sc = rx->sc;
fs/xfs/scrub/attr_repair.c
1116
trace_xrep_xattr_replay_parentadd(sc->tempip, xname,
fs/xfs/scrub/attr_repair.c
1119
error = xfs_parent_set(sc->tempip, sc->ip->i_ino, xname,
fs/xfs/scrub/attr_repair.c
1125
trace_xrep_xattr_replay_parentremove(sc->tempip, xname,
fs/xfs/scrub/attr_repair.c
1128
error = xfs_parent_unset(sc->tempip, sc->ip->i_ino, xname,
fs/xfs/scrub/attr_repair.c
1200
trace_xrep_xattr_stash_parentadd(rx->sc->tempip, dp, name);
fs/xfs/scrub/attr_repair.c
1226
trace_xrep_xattr_stash_parentremove(rx->sc->tempip, dp, name);
fs/xfs/scrub/attr_repair.c
1248
struct xfs_scrub *sc;
fs/xfs/scrub/attr_repair.c
1252
sc = rx->sc;
fs/xfs/scrub/attr_repair.c
1259
if (p->ip->i_ino != sc->ip->i_ino)
fs/xfs/scrub/attr_repair.c
1280
struct xfs_scrub *sc,
fs/xfs/scrub/attr_repair.c
1293
.dp = sc->tempip,
fs/xfs/scrub/attr_repair.c
1294
.geo = sc->mp->m_attr_geo,
fs/xfs/scrub/attr_repair.c
1296
.trans = sc->tp,
fs/xfs/scrub/attr_repair.c
1298
.owner = sc->ip->i_ino,
fs/xfs/scrub/attr_repair.c
1309
error = xfs_defer_finish(&sc->tp);
fs/xfs/scrub/attr_repair.c
1322
ifp = xfs_ifork_ptr(sc->ip, XFS_ATTR_FORK);
fs/xfs/scrub/attr_repair.c
1331
xfs_trans_log_inode(sc->tp, sc->ip,
fs/xfs/scrub/attr_repair.c
1341
struct xfs_scrub *sc,
fs/xfs/scrub/attr_repair.c
1347
ip_local = sc->ip->i_af.if_format == XFS_DINODE_FMT_LOCAL;
fs/xfs/scrub/attr_repair.c
1348
temp_local = sc->tempip->i_af.if_format == XFS_DINODE_FMT_LOCAL;
fs/xfs/scrub/attr_repair.c
1359
newsize = xfs_attr_sf_totsize(sc->tempip);
fs/xfs/scrub/attr_repair.c
1360
forkoff = xfs_attr_shortform_bytesfit(sc->ip, newsize);
fs/xfs/scrub/attr_repair.c
1362
sc->ip->i_forkoff = forkoff;
fs/xfs/scrub/attr_repair.c
1363
xrep_tempfile_copyout_local(sc, XFS_ATTR_FORK);
fs/xfs/scrub/attr_repair.c
1369
error = xrep_xattr_swap_prep(sc, temp_local, ip_local);
fs/xfs/scrub/attr_repair.c
1373
return xrep_tempexch_contents(sc, tx);
fs/xfs/scrub/attr_repair.c
1385
struct xfs_scrub *sc = rx->sc;
fs/xfs/scrub/attr_repair.c
1388
if (!xfs_has_parent(sc->mp))
fs/xfs/scrub/attr_repair.c
1389
return xrep_tempexch_trans_alloc(sc, XFS_ATTR_FORK, &rx->tx);
fs/xfs/scrub/attr_repair.c
1402
error = xrep_tempexch_trans_alloc(sc, XFS_ATTR_FORK, &rx->tx);
fs/xfs/scrub/attr_repair.c
1409
xchk_trans_cancel(sc);
fs/xfs/scrub/attr_repair.c
1410
xrep_tempfile_iunlock_both(sc);
fs/xfs/scrub/attr_repair.c
1411
} while (!xchk_should_terminate(sc, &error));
fs/xfs/scrub/attr_repair.c
1423
struct xfs_scrub *sc = rx->sc;
fs/xfs/scrub/attr_repair.c
1431
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/attr_repair.c
1432
error = xrep_xattr_reset_fork(sc);
fs/xfs/scrub/attr_repair.c
1439
trace_xrep_xattr_rebuild_tree(sc->ip, sc->tempip);
fs/xfs/scrub/attr_repair.c
1452
error = xrep_trans_commit(sc);
fs/xfs/scrub/attr_repair.c
1456
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/attr_repair.c
1463
error = xrep_tempfile_iolock_polled(rx->sc);
fs/xfs/scrub/attr_repair.c
1481
error = xrep_xattr_swap(sc, &rx->tx);
fs/xfs/scrub/attr_repair.c
1485
error = xrep_xattr_reset_tempfile_fork(sc);
fs/xfs/scrub/attr_repair.c
1494
error = xfs_trans_roll(&sc->tp);
fs/xfs/scrub/attr_repair.c
1498
xrep_tempfile_iunlock(sc);
fs/xfs/scrub/attr_repair.c
1499
xrep_tempfile_iounlock(sc);
fs/xfs/scrub/attr_repair.c
150
struct xfs_scrub *sc)
fs/xfs/scrub/attr_repair.c
1503
xfs_forget_acl(VFS_I(sc->ip), SGI_ACL_FILE);
fs/xfs/scrub/attr_repair.c
1504
xfs_forget_acl(VFS_I(sc->ip), SGI_ACL_DEFAULT);
fs/xfs/scrub/attr_repair.c
1513
if (xfs_has_parent(rx->sc->mp))
fs/xfs/scrub/attr_repair.c
1514
xfs_dir_hook_del(rx->sc->mp, &rx->dhook);
fs/xfs/scrub/attr_repair.c
152
if (xfs_has_parent(sc->mp))
fs/xfs/scrub/attr_repair.c
153
xchk_fsgates_enable(sc, XCHK_FSGATES_DIRENTS);
fs/xfs/scrub/attr_repair.c
1530
struct xfs_scrub *sc,
fs/xfs/scrub/attr_repair.c
1540
rx->sc = sc;
fs/xfs/scrub/attr_repair.c
155
return xrep_tempfile_create(sc, S_IFREG);
fs/xfs/scrub/attr_repair.c
1551
max_len = xfs_attr_leaf_entsize_local_max(sc->mp->m_attr_geo->blksize);
fs/xfs/scrub/attr_repair.c
1552
error = xchk_setup_xattr_buf(rx->sc, max_len);
fs/xfs/scrub/attr_repair.c
1568
if (xfs_has_parent(sc->mp)) {
fs/xfs/scrub/attr_repair.c
1569
ASSERT(sc->flags & XCHK_FSGATES_DIRENTS);
fs/xfs/scrub/attr_repair.c
1583
error = xfs_dir_hook_add(sc->mp, &rx->dhook);
fs/xfs/scrub/attr_repair.c
1614
struct xfs_scrub *sc)
fs/xfs/scrub/attr_repair.c
1619
if (!xfs_inode_hasattr(sc->ip))
fs/xfs/scrub/attr_repair.c
1623
if (!xfs_has_rmapbt(sc->mp))
fs/xfs/scrub/attr_repair.c
1626
if (!xfs_has_exchange_range(sc->mp))
fs/xfs/scrub/attr_repair.c
1629
error = xrep_xattr_setup_scan(sc, &rx);
fs/xfs/scrub/attr_repair.c
1633
ASSERT(sc->ilock_flags & XFS_ILOCK_EXCL);
fs/xfs/scrub/attr_repair.c
1645
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/attr_repair.c
181
return xfs_parent_valuecheck(rx->sc->mp, value, valuelen);
fs/xfs/scrub/attr_repair.c
203
if (xchk_should_terminate(rx->sc, &error))
fs/xfs/scrub/attr_repair.c
213
trace_xrep_xattr_salvage_pptr(rx->sc->ip, flags, name,
fs/xfs/scrub/attr_repair.c
222
trace_xrep_xattr_salvage_rec(rx->sc->ip, flags, name,
fs/xfs/scrub/attr_repair.c
254
struct xfs_scrub *sc = rx->sc;
fs/xfs/scrub/attr_repair.c
255
struct xchk_xattr_buf *ab = sc->buf;
fs/xfs/scrub/attr_repair.c
259
if (!xchk_xattr_set_map(sc, ab->usedmap, (char *)name - (char *)hdr,
fs/xfs/scrub/attr_repair.c
263
if (!xchk_xattr_set_map(sc, ab->usedmap, (char *)value - (char *)hdr,
fs/xfs/scrub/attr_repair.c
287
struct xchk_xattr_buf *ab = rx->sc->buf;
fs/xfs/scrub/attr_repair.c
304
if (!xchk_xattr_set_map(rx->sc, ab->usedmap, nameidx, namesize))
fs/xfs/scrub/attr_repair.c
326
struct xchk_xattr_buf *ab = rx->sc->buf;
fs/xfs/scrub/attr_repair.c
328
.trans = rx->sc->tp,
fs/xfs/scrub/attr_repair.c
329
.dp = rx->sc->ip,
fs/xfs/scrub/attr_repair.c
331
.geo = rx->sc->mp->m_attr_geo,
fs/xfs/scrub/attr_repair.c
332
.owner = rx->sc->ip->i_ino,
fs/xfs/scrub/attr_repair.c
353
if (!xchk_xattr_set_map(rx->sc, ab->usedmap, nameidx, namesize))
fs/xfs/scrub/attr_repair.c
360
error = xchk_setup_xattr_buf(rx->sc, args.valuelen);
fs/xfs/scrub/attr_repair.c
393
struct xfs_scrub *sc = rx->sc;
fs/xfs/scrub/attr_repair.c
394
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/attr_repair.c
400
struct xchk_xattr_buf *ab = rx->sc->buf;
fs/xfs/scrub/attr_repair.c
414
xchk_xattr_set_map(sc, ab->usedmap, 0, hdrsize);
fs/xfs/scrub/attr_repair.c
419
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/attr_repair.c
424
if (!xchk_xattr_set_map(sc, ab->usedmap, off,
fs/xfs/scrub/attr_repair.c
455
struct xfs_scrub *sc = rx->sc;
fs/xfs/scrub/attr_repair.c
456
struct xchk_xattr_buf *ab = sc->buf;
fs/xfs/scrub/attr_repair.c
465
ifp = xfs_ifork_ptr(rx->sc->ip, XFS_ATTR_FORK);
fs/xfs/scrub/attr_repair.c
470
xchk_xattr_set_map(sc, ab->usedmap, 0, sizeof(*hdr));
fs/xfs/scrub/attr_repair.c
477
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/attr_repair.c
484
if (xchk_xattr_set_map(sc, ab->usedmap,
fs/xfs/scrub/attr_repair.c
578
error = xrep_xattr_find_buf(rx->sc->mp, fsbno, max_len, true, &bp);
fs/xfs/scrub/attr_repair.c
582
*actual_len = XFS_BB_TO_FSB(rx->sc->mp, bp->b_length);
fs/xfs/scrub/attr_repair.c
584
trace_xrep_xattr_recover_leafblock(rx->sc->ip, dabno,
fs/xfs/scrub/attr_repair.c
593
xfs_attr3_leaf_header_check(bp, rx->sc->ip->i_ino) == NULL)
fs/xfs/scrub/attr_repair.c
616
.dp = rx->sc->tempip,
fs/xfs/scrub/attr_repair.c
620
.owner = rx->sc->ip->i_ino,
fs/xfs/scrub/attr_repair.c
621
.geo = rx->sc->mp->m_attr_geo,
fs/xfs/scrub/attr_repair.c
625
struct xchk_xattr_buf *ab = rx->sc->buf;
fs/xfs/scrub/attr_repair.c
662
trace_xrep_xattr_insert_pptr(rx->sc->tempip, key->flags,
fs/xfs/scrub/attr_repair.c
667
trace_xrep_xattr_insert_rec(rx->sc->tempip, key->flags,
fs/xfs/scrub/attr_repair.c
714
error = xrep_trans_commit(rx->sc);
fs/xfs/scrub/attr_repair.c
717
xchk_iunlock(rx->sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/attr_repair.c
725
error = xrep_tempfile_iolock_polled(rx->sc);
fs/xfs/scrub/attr_repair.c
746
xrep_tempfile_iounlock(rx->sc);
fs/xfs/scrub/attr_repair.c
749
error = xchk_trans_alloc(rx->sc, 0);
fs/xfs/scrub/attr_repair.c
752
xchk_ilock(rx->sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/attr_repair.c
783
if (!xfs_has_parent(rx->sc->mp))
fs/xfs/scrub/attr_repair.c
786
xfs_assert_ilocked(rx->sc->ip, XFS_ILOCK_EXCL);
fs/xfs/scrub/attr_repair.c
805
struct xfs_scrub *sc = rx->sc;
fs/xfs/scrub/attr_repair.c
807
struct xfs_ifork *ifp = &sc->tempip->i_af;
fs/xfs/scrub/attr_repair.c
810
trace_xrep_xattr_full_reset(sc->ip, sc->tempip);
fs/xfs/scrub/attr_repair.c
813
if (sc->tempip->i_df.if_format == XFS_DINODE_FMT_BTREE) {
fs/xfs/scrub/attr_repair.c
824
xchk_iunlock(rx->sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/attr_repair.c
825
xrep_tempfile_ilock_both(sc);
fs/xfs/scrub/attr_repair.c
826
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/attr_repair.c
827
xfs_trans_ijoin(sc->tp, sc->tempip, 0);
fs/xfs/scrub/attr_repair.c
833
if (xfs_ifork_has_extents(&sc->tempip->i_af)) {
fs/xfs/scrub/attr_repair.c
834
error = xrep_reap_ifork(sc, sc->tempip, XFS_ATTR_FORK);
fs/xfs/scrub/attr_repair.c
840
xfs_idata_realloc(sc->tempip, sizeof(*hdr), XFS_ATTR_FORK);
fs/xfs/scrub/attr_repair.c
847
xfs_trans_log_inode(sc->tp, sc->tempip, XFS_ILOG_CORE | XFS_ILOG_ADATA);
fs/xfs/scrub/attr_repair.c
855
error = xrep_roll_trans(sc);
fs/xfs/scrub/attr_repair.c
858
xrep_tempfile_iunlock(sc);
fs/xfs/scrub/attr_repair.c
86
struct xfs_scrub *sc;
fs/xfs/scrub/attr_repair.c
885
struct xfs_scrub *sc = rx->sc;
fs/xfs/scrub/attr_repair.c
886
struct xfs_da_geometry *geo = sc->mp->m_attr_geo;
fs/xfs/scrub/attr_repair.c
902
error = xfs_bmapi_read(sc->ip, offset, XFS_MAX_FILEOFF - offset,
fs/xfs/scrub/attr_repair.c
917
if (xchk_should_terminate(rx->sc, &error))
fs/xfs/scrub/attr_repair.c
953
struct xfs_scrub *sc,
fs/xfs/scrub/attr_repair.c
972
xfs_trans_log_inode(sc->tp, ip,
fs/xfs/scrub/attr_repair.c
983
xfs_emerg(sc->mp,
fs/xfs/scrub/attr_repair.c
987
xfs_err(sc->mp,
fs/xfs/scrub/attr_repair.c
997
xfs_attr_fork_remove(ip, sc->tp);
fs/xfs/scrub/attr_repair.h
11
int xrep_xattr_swap(struct xfs_scrub *sc, struct xrep_tempexch *tx);
fs/xfs/scrub/attr_repair.h
12
int xrep_xattr_reset_fork(struct xfs_scrub *sc);
fs/xfs/scrub/attr_repair.h
13
int xrep_xattr_reset_tempfile_fork(struct xfs_scrub *sc);
fs/xfs/scrub/bmap.c
100
error = xchk_trans_alloc(sc, 0);
fs/xfs/scrub/bmap.c
1006
xchk_ino_set_preen(info->sc, info->sc->ip->i_ino);
fs/xfs/scrub/bmap.c
1019
struct xfs_scrub *sc,
fs/xfs/scrub/bmap.c
1024
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/bmap.c
1025
struct xfs_inode *ip = sc->ip;
fs/xfs/scrub/bmap.c
1037
info.sc = sc;
fs/xfs/scrub/bmap.c
104
error = xchk_ino_dqattach(sc);
fs/xfs/scrub/bmap.c
1043
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/bmap.c
1055
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/bmap.c
1070
xchk_fblock_set_corrupt(sc, whichfork, 0);
fs/xfs/scrub/bmap.c
1076
xchk_fblock_set_corrupt(sc, whichfork, 0);
fs/xfs/scrub/bmap.c
108
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/bmap.c
1080
error = xchk_bmap_btree(sc, whichfork, &info);
fs/xfs/scrub/bmap.c
1085
xchk_fblock_set_corrupt(sc, whichfork, 0);
fs/xfs/scrub/bmap.c
1089
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/bmap.c
1094
if (!xchk_fblock_process_error(sc, whichfork, 0, &error))
fs/xfs/scrub/bmap.c
1106
if (xchk_should_terminate(sc, &error) ||
fs/xfs/scrub/bmap.c
1107
(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/bmap.c
1111
xchk_fblock_set_corrupt(sc, whichfork,
fs/xfs/scrub/bmap.c
1124
error = xchk_bmap_check_rmaps(sc, whichfork);
fs/xfs/scrub/bmap.c
1125
if (!xchk_fblock_xref_process_error(sc, whichfork, 0, &error))
fs/xfs/scrub/bmap.c
1135
struct xfs_scrub *sc)
fs/xfs/scrub/bmap.c
1139
if (xchk_file_looks_zapped(sc, XFS_SICK_INO_BMBTD_ZAPPED)) {
fs/xfs/scrub/bmap.c
1140
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/bmap.c
1144
error = xchk_bmap(sc, XFS_DATA_FORK);
fs/xfs/scrub/bmap.c
1149
xchk_mark_healthy_if_clean(sc, XFS_SICK_INO_BMBTD_ZAPPED);
fs/xfs/scrub/bmap.c
1156
struct xfs_scrub *sc)
fs/xfs/scrub/bmap.c
1167
if (xchk_file_looks_zapped(sc, XFS_SICK_INO_BMBTA_ZAPPED)) {
fs/xfs/scrub/bmap.c
1168
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/bmap.c
1172
error = xchk_bmap(sc, XFS_ATTR_FORK);
fs/xfs/scrub/bmap.c
1177
xchk_mark_healthy_if_clean(sc, XFS_SICK_INO_BMBTA_ZAPPED);
fs/xfs/scrub/bmap.c
1184
struct xfs_scrub *sc)
fs/xfs/scrub/bmap.c
1186
return xchk_bmap(sc, XFS_COW_FORK);
fs/xfs/scrub/bmap.c
122
struct xfs_scrub *sc;
fs/xfs/scrub/bmap.c
152
struct xfs_btree_cur **curp = &info->sc->sa.rmap_cur;
fs/xfs/scrub/bmap.c
158
if (xfs_ifork_is_realtime(info->sc->ip, info->whichfork))
fs/xfs/scrub/bmap.c
159
curp = &info->sc->sr.rmap_cur;
fs/xfs/scrub/bmap.c
190
if (!xchk_should_check_xref(info->sc, &error, curp))
fs/xfs/scrub/bmap.c
194
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
208
uint64_t owner = info->sc->ip->i_ino;
fs/xfs/scrub/bmap.c
210
if (xchk_skip_xref(info->sc->sm))
fs/xfs/scrub/bmap.c
222
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
227
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
232
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
237
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
242
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
254
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
259
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
262
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
277
if (!info->sc->sa.rmap_cur || xchk_skip_xref(info->sc->sm))
fs/xfs/scrub/bmap.c
290
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
295
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
300
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
310
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
313
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
316
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
331
error = xchk_rtgroup_init_existing(info->sc,
fs/xfs/scrub/bmap.c
333
&info->sc->sr);
fs/xfs/scrub/bmap.c
334
if (!xchk_fblock_process_error(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
338
error = xchk_rtgroup_lock(info->sc, &info->sc->sr, XCHK_RTGLOCK_ALL);
fs/xfs/scrub/bmap.c
339
if (!xchk_fblock_process_error(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
343
xchk_xref_is_used_rt_space(info->sc, irec->br_startblock,
fs/xfs/scrub/bmap.c
346
if (!xfs_has_rtrmapbt(info->sc->mp))
fs/xfs/scrub/bmap.c
349
rgbno = xfs_rtb_to_rgbno(info->sc->mp, irec->br_startblock);
fs/xfs/scrub/bmap.c
35
struct xfs_scrub *sc)
fs/xfs/scrub/bmap.c
354
if (!xfs_is_reflink_inode(info->sc->ip)) {
fs/xfs/scrub/bmap.c
355
xfs_rmap_ino_owner(&oinfo, info->sc->ip->i_ino,
fs/xfs/scrub/bmap.c
357
xchk_xref_is_only_rt_owned_by(info->sc, rgbno,
fs/xfs/scrub/bmap.c
359
xchk_xref_is_not_rt_shared(info->sc, rgbno,
fs/xfs/scrub/bmap.c
362
xchk_xref_is_not_rt_cow_staging(info->sc, rgbno,
fs/xfs/scrub/bmap.c
367
xchk_xref_is_only_rt_owned_by(info->sc, rgbno,
fs/xfs/scrub/bmap.c
369
xchk_xref_is_rt_cow_staging(info->sc, rgbno,
fs/xfs/scrub/bmap.c
371
xchk_xref_is_not_rt_shared(info->sc, rgbno,
fs/xfs/scrub/bmap.c
376
xchk_rtgroup_btcur_free(&info->sc->sr);
fs/xfs/scrub/bmap.c
378
xchk_rtgroup_free(info->sc, &info->sc->sr);
fs/xfs/scrub/bmap.c
389
struct xfs_mount *mp = info->sc->mp;
fs/xfs/scrub/bmap.c
39
if (xchk_need_intent_drain(sc))
fs/xfs/scrub/bmap.c
399
error = xchk_ag_init_existing(info->sc, agno, &info->sc->sa);
fs/xfs/scrub/bmap.c
40
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
fs/xfs/scrub/bmap.c
400
if (!xchk_fblock_process_error(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
404
xchk_xref_is_used_space(info->sc, agbno, len);
fs/xfs/scrub/bmap.c
405
xchk_xref_is_not_inode_chunk(info->sc, agbno, len);
fs/xfs/scrub/bmap.c
409
if (!xfs_is_reflink_inode(info->sc->ip)) {
fs/xfs/scrub/bmap.c
410
xfs_rmap_ino_owner(&oinfo, info->sc->ip->i_ino,
fs/xfs/scrub/bmap.c
412
xchk_xref_is_only_owned_by(info->sc, agbno,
fs/xfs/scrub/bmap.c
414
xchk_xref_is_not_shared(info->sc, agbno,
fs/xfs/scrub/bmap.c
417
xchk_xref_is_not_cow_staging(info->sc, agbno,
fs/xfs/scrub/bmap.c
42
error = xchk_iget_for_scrubbing(sc);
fs/xfs/scrub/bmap.c
422
xfs_rmap_ino_owner(&oinfo, info->sc->ip->i_ino,
fs/xfs/scrub/bmap.c
424
xchk_xref_is_only_owned_by(info->sc, agbno, irec->br_blockcount,
fs/xfs/scrub/bmap.c
426
xchk_xref_is_not_shared(info->sc, agbno,
fs/xfs/scrub/bmap.c
428
xchk_xref_is_not_cow_staging(info->sc, agbno,
fs/xfs/scrub/bmap.c
433
xchk_xref_is_only_owned_by(info->sc, agbno, irec->br_blockcount,
fs/xfs/scrub/bmap.c
435
xchk_xref_is_cow_staging(info->sc, agbno,
fs/xfs/scrub/bmap.c
437
xchk_xref_is_not_shared(info->sc, agbno,
fs/xfs/scrub/bmap.c
443
xchk_ag_free(info->sc, &info->sc->sa);
fs/xfs/scrub/bmap.c
46
xchk_ilock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/bmap.c
463
xchk_fblock_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
468
xchk_fblock_set_corrupt(info->sc, info->whichfork, off);
fs/xfs/scrub/bmap.c
478
struct xfs_mount *mp = info->sc->mp;
fs/xfs/scrub/bmap.c
486
xchk_fblock_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
490
xchk_fblock_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
498
xchk_fblock_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
502
xchk_fblock_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
508
xchk_fblock_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
511
if (info->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/bmap.c
53
if (S_ISREG(VFS_I(sc->ip)->i_mode) &&
fs/xfs/scrub/bmap.c
54
sc->sm->sm_type != XFS_SCRUB_TYPE_BMBTA) {
fs/xfs/scrub/bmap.c
547
xchk_fblock_set_corrupt(bs->sc,
fs/xfs/scrub/bmap.c
55
struct address_space *mapping = VFS_I(sc->ip)->i_mapping;
fs/xfs/scrub/bmap.c
56
bool is_repair = xchk_could_repair(sc);
fs/xfs/scrub/bmap.c
564
xchk_fblock_set_corrupt(bs->sc, info->whichfork,
fs/xfs/scrub/bmap.c
575
xchk_fblock_set_corrupt(bs->sc, info->whichfork,
fs/xfs/scrub/bmap.c
58
xchk_ilock(sc, XFS_MMAPLOCK_EXCL);
fs/xfs/scrub/bmap.c
583
struct xfs_scrub *sc,
fs/xfs/scrub/bmap.c
588
struct xfs_ifork *ifp = xfs_ifork_ptr(sc->ip, whichfork);
fs/xfs/scrub/bmap.c
589
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/bmap.c
590
struct xfs_inode *ip = sc->ip;
fs/xfs/scrub/bmap.c
597
error = xfs_iread_extents(sc->tp, ip, whichfork);
fs/xfs/scrub/bmap.c
598
if (!xchk_fblock_process_error(sc, whichfork, 0, &error))
fs/xfs/scrub/bmap.c
602
cur = xfs_bmbt_init_cursor(mp, sc->tp, ip, whichfork);
fs/xfs/scrub/bmap.c
604
error = xchk_btree(sc, cur, xchk_bmapbt_rec, &oinfo, info);
fs/xfs/scrub/bmap.c
611
struct xfs_scrub *sc;
fs/xfs/scrub/bmap.c
62
error = xfs_break_layouts(VFS_I(sc->ip),
fs/xfs/scrub/bmap.c
627
struct xfs_scrub *sc = sbcri->sc;
fs/xfs/scrub/bmap.c
63
&sc->ilock_flags, BREAK_WRITE);
fs/xfs/scrub/bmap.c
631
if (rec->rm_owner != sc->ip->i_ino)
fs/xfs/scrub/bmap.c
640
ifp = xfs_ifork_ptr(sc->ip, sbcri->whichfork);
fs/xfs/scrub/bmap.c
642
xchk_fblock_set_corrupt(sc, sbcri->whichfork,
fs/xfs/scrub/bmap.c
646
have_map = xfs_iext_lookup_extent(sc->ip, ifp, rec->rm_offset,
fs/xfs/scrub/bmap.c
649
xchk_fblock_set_corrupt(sc, sbcri->whichfork,
fs/xfs/scrub/bmap.c
661
xchk_fblock_set_corrupt(sc, sbcri->whichfork,
fs/xfs/scrub/bmap.c
665
xchk_fblock_set_corrupt(sc, sbcri->whichfork,
fs/xfs/scrub/bmap.c
668
xchk_fblock_set_corrupt(sc, sbcri->whichfork,
fs/xfs/scrub/bmap.c
670
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/bmap.c
679
xchk_fblock_set_corrupt(sc, sbcri->whichfork,
fs/xfs/scrub/bmap.c
68
inode_dio_wait(VFS_I(sc->ip));
fs/xfs/scrub/bmap.c
684
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/bmap.c
692
struct xfs_scrub *sc,
fs/xfs/scrub/bmap.c
701
error = xfs_alloc_read_agf(pag, sc->tp, 0, &agf);
fs/xfs/scrub/bmap.c
705
cur = xfs_rmapbt_init_cursor(sc->mp, sc->tp, agf, pag);
fs/xfs/scrub/bmap.c
707
sbcri.sc = sc;
fs/xfs/scrub/bmap.c
714
xfs_trans_brelse(sc->tp, agf);
fs/xfs/scrub/bmap.c
721
struct xfs_scrub *sc,
fs/xfs/scrub/bmap.c
729
cur = xfs_rtrmapbt_init_cursor(sc->tp, rtg);
fs/xfs/scrub/bmap.c
731
sbcri.sc = sc;
fs/xfs/scrub/bmap.c
822
struct xfs_scrub *sc = info->sc;
fs/xfs/scrub/bmap.c
824
if (!xfs_has_rmapbt(sc->mp))
fs/xfs/scrub/bmap.c
828
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/bmap.c
832
return xchk_bmap_check_empty_attrfork(sc->ip);
fs/xfs/scrub/bmap.c
834
return xchk_bmap_check_empty_datafork(sc->ip);
fs/xfs/scrub/bmap.c
840
struct xfs_scrub *sc,
fs/xfs/scrub/bmap.c
846
if (xfs_ifork_is_realtime(sc->ip, whichfork)) {
fs/xfs/scrub/bmap.c
849
while ((rtg = xfs_rtgroup_next(sc->mp, rtg))) {
fs/xfs/scrub/bmap.c
850
error = xchk_bmap_check_rt_rmaps(sc, rtg);
fs/xfs/scrub/bmap.c
852
(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)) {
fs/xfs/scrub/bmap.c
861
while ((pag = xfs_perag_next(sc->mp, pag))) {
fs/xfs/scrub/bmap.c
862
error = xchk_bmap_check_ag_rmaps(sc, whichfork, pag);
fs/xfs/scrub/bmap.c
864
(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)) {
fs/xfs/scrub/bmap.c
880
struct xfs_mount *mp = info->sc->mp;
fs/xfs/scrub/bmap.c
888
xchk_fblock_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
892
xchk_fblock_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
897
xchk_fblock_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
92
VFS_I(sc->ip)->i_mapping);
fs/xfs/scrub/bmap.c
922
struct xfs_mount *mp = info->sc->mp;
fs/xfs/scrub/bmap.c
966
ifp = xfs_ifork_ptr(info->sc->ip, info->whichfork);
fs/xfs/scrub/bmap.c
974
xchk_fblock_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap.c
989
xchk_fblock_set_corrupt(info->sc, info->whichfork,
fs/xfs/scrub/bmap_repair.c
103
struct xfs_scrub *sc = rb->sc;
fs/xfs/scrub/bmap_repair.c
110
if (XFS_IS_REALTIME_INODE(sc->ip)) {
fs/xfs/scrub/bmap_repair.c
111
agbno = xfs_rtb_to_rgbno(sc->mp, startblock);
fs/xfs/scrub/bmap_repair.c
112
cur = sc->sr.refc_cur;
fs/xfs/scrub/bmap_repair.c
114
agbno = XFS_FSB_TO_AGBNO(sc->mp, startblock);
fs/xfs/scrub/bmap_repair.c
115
cur = sc->sa.refc_cur;
fs/xfs/scrub/bmap_repair.c
143
struct xfs_scrub *sc = rb->sc;
fs/xfs/scrub/bmap_repair.c
163
fa = xfs_bmap_validate_extent(sc->ip, rb->whichfork, &irec);
fs/xfs/scrub/bmap_repair.c
169
trace_xrep_bmap_found(sc->ip, rb->whichfork, &irec);
fs/xfs/scrub/bmap_repair.c
171
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/bmap_repair.c
195
struct xfs_scrub *sc = rb->sc;
fs/xfs/scrub/bmap_repair.c
203
if (XFS_IS_REALTIME_INODE(sc->ip) &&
fs/xfs/scrub/bmap_repair.c
214
!xfs_verify_fileext(sc->mp, rec->rm_offset, rec->rm_blockcount))
fs/xfs/scrub/bmap_repair.c
223
error = xfs_alloc_has_records(sc->sa.bno_cur, rec->rm_startblock,
fs/xfs/scrub/bmap_repair.c
231
error = xfs_ialloc_has_inodes_at_extent(sc->sa.ino_cur,
fs/xfs/scrub/bmap_repair.c
252
if (xchk_should_terminate(rb->sc, &error))
fs/xfs/scrub/bmap_repair.c
255
if (rec->rm_owner != rb->sc->ip->i_ino)
fs/xfs/scrub/bmap_repair.c
335
if (xchk_should_terminate(rb->sc, &error))
fs/xfs/scrub/bmap_repair.c
359
struct xfs_scrub *sc = rb->sc;
fs/xfs/scrub/bmap_repair.c
362
error = xrep_ag_init(sc, pag, &sc->sa);
fs/xfs/scrub/bmap_repair.c
366
error = xfs_rmap_query_all(sc->sa.rmap_cur, xrep_bmap_walk_rmap, rb);
fs/xfs/scrub/bmap_repair.c
367
xchk_ag_free(sc, &sc->sa);
fs/xfs/scrub/bmap_repair.c
375
struct xfs_scrub *sc,
fs/xfs/scrub/bmap_repair.c
388
if (!XFS_IS_REALTIME_INODE(sc->ip))
fs/xfs/scrub/bmap_repair.c
392
if (!xfs_verify_fileext(sc->mp, rec->rm_offset, rec->rm_blockcount))
fs/xfs/scrub/bmap_repair.c
401
return xrep_require_rtext_inuse(sc, rec->rm_startblock,
fs/xfs/scrub/bmap_repair.c
415
if (xchk_should_terminate(rb->sc, &error))
fs/xfs/scrub/bmap_repair.c
419
if (rec->rm_owner != rb->sc->ip->i_ino)
fs/xfs/scrub/bmap_repair.c
422
error = xrep_bmap_check_rtfork_rmap(rb->sc, cur, rec);
fs/xfs/scrub/bmap_repair.c
453
struct xfs_scrub *sc = rb->sc;
fs/xfs/scrub/bmap_repair.c
456
if (!xfs_has_rtrmapbt(sc->mp))
fs/xfs/scrub/bmap_repair.c
459
error = xrep_rtgroup_init(sc, rtg, &sc->sr,
fs/xfs/scrub/bmap_repair.c
466
error = xfs_rmap_query_all(sc->sr.rmap_cur, xrep_bmap_walk_rtrmap, rb);
fs/xfs/scrub/bmap_repair.c
467
xchk_rtgroup_btcur_free(&sc->sr);
fs/xfs/scrub/bmap_repair.c
468
xchk_rtgroup_free(sc, &sc->sr);
fs/xfs/scrub/bmap_repair.c
487
struct xfs_inode *ip = rb->sc->ip;
fs/xfs/scrub/bmap_repair.c
506
if (xchk_should_terminate(rb->sc, &error))
fs/xfs/scrub/bmap_repair.c
526
struct xfs_scrub *sc = rb->sc;
fs/xfs/scrub/bmap_repair.c
534
if (!xfs_is_metadir_inode(sc->ip)) {
fs/xfs/scrub/bmap_repair.c
537
while ((rtg = xfs_rtgroup_next(sc->mp, rtg))) {
fs/xfs/scrub/bmap_repair.c
547
while ((pag = xfs_perag_next(sc->mp, pag))) {
fs/xfs/scrub/bmap_repair.c
621
struct xfs_scrub *sc = rb->sc;
fs/xfs/scrub/bmap_repair.c
626
sc->ip->i_diflags2 |= XFS_DIFLAG2_REFLINK;
fs/xfs/scrub/bmap_repair.c
633
sc->ip->i_nblocks = rb->nblocks + delta;
fs/xfs/scrub/bmap_repair.c
634
xfs_trans_log_inode(sc->tp, sc->ip, XFS_ILOG_CORE);
fs/xfs/scrub/bmap_repair.c
640
xfs_trans_mod_dquot_byino(sc->tp, sc->ip, XFS_TRANS_DQ_BCOUNT, delta);
fs/xfs/scrub/bmap_repair.c
679
return xrep_ino_ensure_extent_count(rb->sc, rb->whichfork,
fs/xfs/scrub/bmap_repair.c
692
struct xfs_scrub *sc = rb->sc;
fs/xfs/scrub/bmap_repair.c
702
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/bmap_repair.c
711
error = xfs_trans_reserve_more_inode(sc->tp, sc->ip,
fs/xfs/scrub/bmap_repair.c
72
struct xfs_scrub *sc;
fs/xfs/scrub/bmap_repair.c
750
struct xfs_scrub *sc = rb->sc;
fs/xfs/scrub/bmap_repair.c
763
xfs_rmap_ino_bmbt_owner(&oinfo, sc->ip->i_ino, rb->whichfork);
fs/xfs/scrub/bmap_repair.c
764
error = xrep_newbt_init_inode(&rb->new_bmapbt, sc, rb->whichfork,
fs/xfs/scrub/bmap_repair.c
777
bmap_cur = xfs_bmbt_init_cursor(sc->mp, NULL, sc->ip, XFS_STAGING_FORK);
fs/xfs/scrub/bmap_repair.c
785
if (rb->real_mappings <= XFS_IFORK_MAXEXT(sc->ip, rb->whichfork)) {
fs/xfs/scrub/bmap_repair.c
801
xfs_bmbt_commit_staged_btree(bmap_cur, sc->tp, rb->whichfork);
fs/xfs/scrub/bmap_repair.c
814
return xrep_roll_trans(sc);
fs/xfs/scrub/bmap_repair.c
832
struct xfs_scrub *sc = rb->sc;
fs/xfs/scrub/bmap_repair.c
836
xfs_rmap_ino_bmbt_owner(&oinfo, sc->ip->i_ino, rb->whichfork);
fs/xfs/scrub/bmap_repair.c
837
return xrep_reap_fsblocks(sc, &rb->old_bmbt_blocks, &oinfo);
fs/xfs/scrub/bmap_repair.c
843
struct xfs_scrub *sc,
fs/xfs/scrub/bmap_repair.c
846
struct xfs_ifork *ifp = xfs_ifork_ptr(sc->ip, whichfork);
fs/xfs/scrub/bmap_repair.c
850
if (!xfs_has_rmapbt(sc->mp))
fs/xfs/scrub/bmap_repair.c
880
switch (VFS_I(sc->ip)->i_mode & S_IFMT) {
fs/xfs/scrub/bmap_repair.c
896
struct xfs_scrub *sc,
fs/xfs/scrub/bmap_repair.c
900
if (!xfs_has_reflink(sc->mp))
fs/xfs/scrub/bmap_repair.c
904
if (xfs_is_reflink_inode(sc->ip))
fs/xfs/scrub/bmap_repair.c
908
if (!S_ISREG(VFS_I(sc->ip)->i_mode))
fs/xfs/scrub/bmap_repair.c
921
struct xfs_scrub *sc,
fs/xfs/scrub/bmap_repair.c
930
error = xrep_bmap_check_inputs(sc, whichfork);
fs/xfs/scrub/bmap_repair.c
939
rb->sc = sc;
fs/xfs/scrub/bmap_repair.c
941
rb->reflink_scan = xrep_bmap_init_reflink_scan(sc, whichfork);
fs/xfs/scrub/bmap_repair.c
945
large_extcount = xfs_has_large_extent_counts(sc->mp);
fs/xfs/scrub/bmap_repair.c
958
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/bmap_repair.c
981
struct xfs_scrub *sc)
fs/xfs/scrub/bmap_repair.c
983
return xrep_bmap(sc, XFS_DATA_FORK, true);
fs/xfs/scrub/bmap_repair.c
989
struct xfs_scrub *sc)
fs/xfs/scrub/bmap_repair.c
991
return xrep_bmap(sc, XFS_ATTR_FORK, false);
fs/xfs/scrub/btree.c
100
trace_xchk_btree_error(sc, cur, level,
fs/xfs/scrub/btree.c
106
struct xfs_scrub *sc,
fs/xfs/scrub/btree.c
110
__xchk_btree_set_corrupt(sc, cur, level, XFS_SCRUB_OFLAG_CORRUPT,
fs/xfs/scrub/btree.c
116
struct xfs_scrub *sc,
fs/xfs/scrub/btree.c
120
__xchk_btree_set_corrupt(sc, cur, level, XFS_SCRUB_OFLAG_XCORRUPT,
fs/xfs/scrub/btree.c
126
struct xfs_scrub *sc,
fs/xfs/scrub/btree.c
130
__xchk_btree_set_corrupt(sc, cur, level, XFS_SCRUB_OFLAG_PREEN,
fs/xfs/scrub/btree.c
154
trace_xchk_btree_rec(bs->sc, cur, 0);
fs/xfs/scrub/btree.c
159
xchk_btree_set_corrupt(bs->sc, cur, 0);
fs/xfs/scrub/btree.c
171
xchk_btree_set_corrupt(bs->sc, cur, 1);
fs/xfs/scrub/btree.c
180
xchk_btree_set_corrupt(bs->sc, cur, 1);
fs/xfs/scrub/btree.c
202
trace_xchk_btree_key(bs->sc, cur, level);
fs/xfs/scrub/btree.c
207
xchk_btree_set_corrupt(bs->sc, cur, level);
fs/xfs/scrub/btree.c
218
xchk_btree_set_corrupt(bs->sc, cur, level);
fs/xfs/scrub/btree.c
228
xchk_btree_set_corrupt(bs->sc, cur, level);
fs/xfs/scrub/btree.c
248
xchk_btree_set_corrupt(bs->sc, bs->cur, level);
fs/xfs/scrub/btree.c
27
struct xfs_scrub *sc,
fs/xfs/scrub/btree.c
272
if (!xchk_btree_process_error(bs->sc, cur, level + 1, &error) ||
fs/xfs/scrub/btree.c
286
xchk_btree_set_corrupt(bs->sc, cur, level);
fs/xfs/scrub/btree.c
296
if (!xchk_btree_process_error(bs->sc, cur, level + 1, &error))
fs/xfs/scrub/btree.c
299
xchk_btree_set_corrupt(bs->sc, cur, level + 1);
fs/xfs/scrub/btree.c
309
xchk_buffer_recheck(bs->sc, pbp);
fs/xfs/scrub/btree.c
312
xchk_btree_set_corrupt(bs->sc, cur, level);
fs/xfs/scrub/btree.c
338
xchk_btree_set_corrupt(bs->sc, cur, level);
fs/xfs/scrub/btree.c
394
error = xchk_ag_init_existing(bs->sc, agno, &bs->sc->sa);
fs/xfs/scrub/btree.c
395
if (!xchk_btree_xref_process_error(bs->sc, bs->cur,
fs/xfs/scrub/btree.c
400
xchk_xref_is_used_space(bs->sc, agbno, 1);
fs/xfs/scrub/btree.c
406
if (!bs->sc->sa.bno_cur && is_bnobt)
fs/xfs/scrub/btree.c
409
xchk_xref_is_only_owned_by(bs->sc, agbno, 1, bs->oinfo);
fs/xfs/scrub/btree.c
41
trace_xchk_deadlock_retry(sc->ip, sc->sm, *error);
fs/xfs/scrub/btree.c
410
if (!bs->sc->sa.rmap_cur && is_rmapbt)
fs/xfs/scrub/btree.c
415
xchk_ag_free(bs->sc, &bs->sc->sa);
fs/xfs/scrub/btree.c
437
xchk_btree_set_corrupt(bs->sc, bs->cur, level);
fs/xfs/scrub/btree.c
48
sc->sm->sm_flags |= errflag;
fs/xfs/scrub/btree.c
484
xfs_inode_has_attr_fork(bs->sc->ip))
fs/xfs/scrub/btree.c
526
xchk_btree_set_corrupt(bs->sc, cur, level);
fs/xfs/scrub/btree.c
53
trace_xchk_ifork_btree_op_error(sc, cur, level,
fs/xfs/scrub/btree.c
535
xchk_btree_set_corrupt(bs->sc, cur, level);
fs/xfs/scrub/btree.c
56
trace_xchk_btree_op_error(sc, cur, level,
fs/xfs/scrub/btree.c
565
xchk_btree_set_corrupt(bs->sc, bs->cur, level);
fs/xfs/scrub/btree.c
577
xchk_btree_set_corrupt(bs->sc, bs->cur, level);
fs/xfs/scrub/btree.c
598
if (!xchk_btree_process_error(bs->sc, bs->cur, level, &error) ||
fs/xfs/scrub/btree.c
604
xchk_btree_set_corrupt(bs->sc, bs->cur, level);
fs/xfs/scrub/btree.c
608
xchk_buffer_recheck(bs->sc, *pbp);
fs/xfs/scrub/btree.c
65
struct xfs_scrub *sc,
fs/xfs/scrub/btree.c
662
xchk_btree_set_corrupt(bs->sc, cur, 1);
fs/xfs/scrub/btree.c
673
xchk_btree_set_corrupt(bs->sc, cur, 1);
fs/xfs/scrub/btree.c
683
struct xfs_scrub *sc,
fs/xfs/scrub/btree.c
70
return __xchk_btree_process_error(sc, cur, level, error,
fs/xfs/scrub/btree.c
708
xchk_btree_set_corrupt(sc, cur, 0);
fs/xfs/scrub/btree.c
718
bs->sc = sc;
fs/xfs/scrub/btree.c
76
struct xfs_scrub *sc,
fs/xfs/scrub/btree.c
760
if (xchk_should_terminate(sc, &error) ||
fs/xfs/scrub/btree.c
761
(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/btree.c
81
return __xchk_btree_process_error(sc, cur, level, error,
fs/xfs/scrub/btree.c
88
struct xfs_scrub *sc,
fs/xfs/scrub/btree.c
94
sc->sm->sm_flags |= errflag;
fs/xfs/scrub/btree.c
97
trace_xchk_ifork_btree_error(sc, cur, level,
fs/xfs/scrub/btree.h
12
bool xchk_btree_process_error(struct xfs_scrub *sc,
fs/xfs/scrub/btree.h
16
bool xchk_btree_xref_process_error(struct xfs_scrub *sc,
fs/xfs/scrub/btree.h
20
void xchk_btree_set_corrupt(struct xfs_scrub *sc,
fs/xfs/scrub/btree.h
22
void xchk_btree_set_preen(struct xfs_scrub *sc, struct xfs_btree_cur *cur,
fs/xfs/scrub/btree.h
26
void xchk_btree_xref_set_corrupt(struct xfs_scrub *sc,
fs/xfs/scrub/btree.h
41
struct xfs_scrub *sc;
fs/xfs/scrub/btree.h
66
int xchk_btree(struct xfs_scrub *sc, struct xfs_btree_cur *cur,
fs/xfs/scrub/common.c
1000
struct xfs_trans *tp = sc->tp;
fs/xfs/scrub/common.c
1004
ASSERT(sc->tp != NULL);
fs/xfs/scrub/common.c
101
trace_xchk_op_error(sc, agno, bno, *error, ret_ip);
fs/xfs/scrub/common.c
1011
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/common.c
1064
struct xfs_scrub *sc)
fs/xfs/scrub/common.c
1066
ASSERT(sc->tp != NULL);
fs/xfs/scrub/common.c
1067
ASSERT(sc->ip != NULL);
fs/xfs/scrub/common.c
1069
if (!xchk_could_repair(sc))
fs/xfs/scrub/common.c
1072
return xrep_ino_dqattach(sc);
fs/xfs/scrub/common.c
1079
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1082
if (VFS_I(ip)->i_generation != sc->sm->sm_gen) {
fs/xfs/scrub/common.c
1083
xchk_irele(sc, ip);
fs/xfs/scrub/common.c
1087
sc->ip = ip;
fs/xfs/scrub/common.c
109
sc->sm->sm_flags |= errflag;
fs/xfs/scrub/common.c
1098
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1102
xchk_ino_set_corrupt(sc, ip->i_ino);
fs/xfs/scrub/common.c
1106
sc->ip = ip;
fs/xfs/scrub/common.c
1119
struct xfs_scrub *sc)
fs/xfs/scrub/common.c
1122
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/common.c
1125
struct xfs_inode *ip_in = XFS_I(file_inode(sc->file));
fs/xfs/scrub/common.c
1127
xfs_agnumber_t agno = XFS_INO_TO_AGNO(mp, sc->sm->sm_ino);
fs/xfs/scrub/common.c
113
trace_xchk_op_error(sc, agno, bno, *error, ret_ip);
fs/xfs/scrub/common.c
1130
ASSERT(sc->tp == NULL);
fs/xfs/scrub/common.c
1133
if (sc->sm->sm_ino == 0 || sc->sm->sm_ino == ip_in->i_ino)
fs/xfs/scrub/common.c
1134
return xchk_install_live_inode(sc, ip_in);
fs/xfs/scrub/common.c
1142
if (!xfs_has_metadir(mp) && xfs_is_sb_inum(mp, sc->sm->sm_ino))
fs/xfs/scrub/common.c
1145
if (!xfs_verify_ino(sc->mp, sc->sm->sm_ino))
fs/xfs/scrub/common.c
1149
error = xchk_iget_safe(sc, sc->sm->sm_ino, &ip);
fs/xfs/scrub/common.c
1151
return xchk_install_handle_inode(sc, ip);
fs/xfs/scrub/common.c
1172
error = xchk_trans_alloc(sc, 0);
fs/xfs/scrub/common.c
1176
error = xchk_iget_agi(sc, sc->sm->sm_ino, &agi_bp, &ip);
fs/xfs/scrub/common.c
1179
xchk_trans_cancel(sc);
fs/xfs/scrub/common.c
1180
return xchk_install_handle_inode(sc, ip);
fs/xfs/scrub/common.c
121
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1210
pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, sc->sm->sm_ino));
fs/xfs/scrub/common.c
1216
error = xfs_imap(pag, sc->tp, sc->sm->sm_ino, &imap,
fs/xfs/scrub/common.c
1225
xchk_trans_cancel(sc);
fs/xfs/scrub/common.c
1227
trace_xchk_op_error(sc, agno, XFS_INO_TO_AGBNO(mp, sc->sm->sm_ino),
fs/xfs/scrub/common.c
1232
xchk_trans_cancel(sc);
fs/xfs/scrub/common.c
1239
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1242
if (sc->tp) {
fs/xfs/scrub/common.c
126
return __xchk_process_error(sc, agno, bno, error,
fs/xfs/scrub/common.c
1270
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1275
error = xchk_iget_for_scrubbing(sc);
fs/xfs/scrub/common.c
1279
error = xrep_tempfile_adjust_directory_tree(sc);
fs/xfs/scrub/common.c
1284
xchk_ilock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/common.c
1286
error = xchk_trans_alloc(sc, resblks);
fs/xfs/scrub/common.c
1290
error = xchk_ino_dqattach(sc);
fs/xfs/scrub/common.c
1294
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/common.c
1302
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1305
xfs_ilock(sc->ip, ilock_flags);
fs/xfs/scrub/common.c
1306
sc->ilock_flags |= ilock_flags;
fs/xfs/scrub/common.c
1311
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1314
if (xfs_ilock_nowait(sc->ip, ilock_flags)) {
fs/xfs/scrub/common.c
1315
sc->ilock_flags |= ilock_flags;
fs/xfs/scrub/common.c
132
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1324
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1327
sc->ilock_flags &= ~ilock_flags;
fs/xfs/scrub/common.c
1328
xfs_iunlock(sc->ip, ilock_flags);
fs/xfs/scrub/common.c
1338
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1343
if (xchk_skip_xref(sc->sm))
fs/xfs/scrub/common.c
1359
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_XFAIL;
fs/xfs/scrub/common.c
1360
trace_xchk_xref_error(sc, *error, __return_address);
fs/xfs/scrub/common.c
137
return __xchk_process_error(sc, rgno, rgbno, error,
fs/xfs/scrub/common.c
1373
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1379
xchk_block_set_corrupt(sc, bp);
fs/xfs/scrub/common.c
1383
xchk_set_incomplete(sc);
fs/xfs/scrub/common.c
1389
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT;
fs/xfs/scrub/common.c
1390
trace_xchk_block_error(sc, xfs_buf_daddr(bp), fa);
fs/xfs/scrub/common.c
1395
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1401
sub = xchk_scrub_create_subord(sc, scrub_type);
fs/xfs/scrub/common.c
1405
error = sub->sc.ops->scrub(&sub->sc);
fs/xfs/scrub/common.c
1416
struct xfs_scrub *sc)
fs/xfs/scrub/common.c
1421
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/common.c
1425
error = xchk_metadata_inode_subtype(sc, XFS_SCRUB_TYPE_INODE);
fs/xfs/scrub/common.c
1426
if (error || (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/common.c
143
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1430
if (sc->ip->i_diflags & XFS_DIFLAG_REALTIME) {
fs/xfs/scrub/common.c
1431
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/common.c
1436
if (xfs_is_reflink_inode(sc->ip)) {
fs/xfs/scrub/common.c
1437
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/common.c
1442
error = xchk_metadata_inode_subtype(sc, XFS_SCRUB_TYPE_BMBTD);
fs/xfs/scrub/common.c
1443
if (error || (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/common.c
1447
if (xfs_has_reflink(sc->mp)) {
fs/xfs/scrub/common.c
1448
error = xfs_reflink_inode_has_shared_extents(sc->tp, sc->ip,
fs/xfs/scrub/common.c
1450
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, 0,
fs/xfs/scrub/common.c
1454
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/common.c
1461
if (xfs_inode_hasattr(sc->ip)) {
fs/xfs/scrub/common.c
1462
if (!xfs_has_metadir(sc->mp)) {
fs/xfs/scrub/common.c
1463
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/common.c
1467
error = xchk_metadata_inode_subtype(sc, XFS_SCRUB_TYPE_BMBTA);
fs/xfs/scrub/common.c
1468
if (error || (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/common.c
148
return __xchk_process_error(sc, agno, bno, error,
fs/xfs/scrub/common.c
1483
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1487
ASSERT(!(sc->flags & scrub_fsgates));
fs/xfs/scrub/common.c
1489
trace_xchk_fsgates_enable(sc, scrub_fsgates);
fs/xfs/scrub/common.c
1503
sc->flags |= scrub_fsgates;
fs/xfs/scrub/common.c
1524
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1528
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/common.c
1529
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/common.c
1541
if (sc->sa.agi_bp == NULL) {
fs/xfs/scrub/common.c
1542
ASSERT(sc->sa.agi_bp != NULL);
fs/xfs/scrub/common.c
155
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
168
trace_xchk_deadlock_retry(sc->ip, sc->sm, *error);
fs/xfs/scrub/common.c
1689
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1696
if (!sc->sr.rtg) {
fs/xfs/scrub/common.c
1701
switch (sc->ip->i_metatype) {
fs/xfs/scrub/common.c
1703
cur = xfs_rtrmapbt_init_cursor(sc->tp, sc->sr.rtg);
fs/xfs/scrub/common.c
1706
cur = xfs_rtrefcountbt_init_cursor(sc->tp, sc->sr.rtg);
fs/xfs/scrub/common.c
1725
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
1730
struct xfs_ifork *ifp = xfs_ifork_ptr(sc->ip, whichfork);
fs/xfs/scrub/common.c
1740
return xchk_meta_btree_count_blocks(sc, nextents, count);
fs/xfs/scrub/common.c
1743
return xfs_bmap_count_blocks(sc->tp, sc->ip, whichfork, nextents,
fs/xfs/scrub/common.c
176
trace_xchk_file_op_error(sc, whichfork, offset, *error,
fs/xfs/scrub/common.c
185
sc->sm->sm_flags |= errflag;
fs/xfs/scrub/common.c
189
trace_xchk_file_op_error(sc, whichfork, offset, *error,
fs/xfs/scrub/common.c
198
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
203
return __xchk_fblock_process_error(sc, whichfork, offset, error,
fs/xfs/scrub/common.c
209
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
214
return __xchk_fblock_process_error(sc, whichfork, offset, error,
fs/xfs/scrub/common.c
233
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
236
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_PREEN;
fs/xfs/scrub/common.c
237
trace_xchk_block_preen(sc, xfs_buf_daddr(bp), __return_address);
fs/xfs/scrub/common.c
247
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
250
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_PREEN;
fs/xfs/scrub/common.c
251
trace_xchk_ino_preen(sc, ino, __return_address);
fs/xfs/scrub/common.c
257
struct xfs_scrub *sc)
fs/xfs/scrub/common.c
259
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT;
fs/xfs/scrub/common.c
260
trace_xchk_fs_error(sc, 0, __return_address);
fs/xfs/scrub/common.c
266
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
269
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT;
fs/xfs/scrub/common.c
270
trace_xchk_block_error(sc, xfs_buf_daddr(bp), __return_address);
fs/xfs/scrub/common.c
277
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
281
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT;
fs/xfs/scrub/common.c
282
trace_xchk_qcheck_error(sc, dqtype, id, __return_address);
fs/xfs/scrub/common.c
289
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
292
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_XCORRUPT;
fs/xfs/scrub/common.c
293
trace_xchk_block_error(sc, xfs_buf_daddr(bp), __return_address);
fs/xfs/scrub/common.c
303
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
306
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT;
fs/xfs/scrub/common.c
307
trace_xchk_ino_error(sc, ino, __return_address);
fs/xfs/scrub/common.c
313
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
316
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_XCORRUPT;
fs/xfs/scrub/common.c
317
trace_xchk_ino_error(sc, ino, __return_address);
fs/xfs/scrub/common.c
323
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
327
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT;
fs/xfs/scrub/common.c
328
trace_xchk_fblock_error(sc, whichfork, offset, __return_address);
fs/xfs/scrub/common.c
334
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
338
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_XCORRUPT;
fs/xfs/scrub/common.c
339
trace_xchk_fblock_error(sc, whichfork, offset, __return_address);
fs/xfs/scrub/common.c
348
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
351
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_WARNING;
fs/xfs/scrub/common.c
352
trace_xchk_ino_warning(sc, ino, __return_address);
fs/xfs/scrub/common.c
358
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
362
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_WARNING;
fs/xfs/scrub/common.c
363
trace_xchk_fblock_warning(sc, whichfork, offset, __return_address);
fs/xfs/scrub/common.c
369
struct xfs_scrub *sc)
fs/xfs/scrub/common.c
371
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_INCOMPLETE;
fs/xfs/scrub/common.c
372
trace_xchk_incomplete(sc, __return_address);
fs/xfs/scrub/common.c
413
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
439
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
443
if (sc->sm->sm_type != XFS_SCRUB_TYPE_AGF &&
fs/xfs/scrub/common.c
444
sc->sm->sm_type != XFS_SCRUB_TYPE_AGFL &&
fs/xfs/scrub/common.c
445
sc->sm->sm_type != XFS_SCRUB_TYPE_AGI)
fs/xfs/scrub/common.c
452
if (sc->sm->sm_type == type)
fs/xfs/scrub/common.c
466
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
471
error = xfs_ialloc_read_agi(sa->pag, sc->tp, 0, &sa->agi_bp);
fs/xfs/scrub/common.c
472
if (error && want_ag_read_header_failure(sc, XFS_SCRUB_TYPE_AGI))
fs/xfs/scrub/common.c
475
error = xfs_alloc_read_agf(sa->pag, sc->tp, 0, &sa->agf_bp);
fs/xfs/scrub/common.c
476
if (error && want_ag_read_header_failure(sc, XFS_SCRUB_TYPE_AGF))
fs/xfs/scrub/common.c
488
struct xfs_scrub *sc)
fs/xfs/scrub/common.c
490
struct xchk_ag *sa = &sc->sa;
fs/xfs/scrub/common.c
498
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/common.c
501
error = xchk_perag_read_headers(sc, sa);
fs/xfs/scrub/common.c
510
if (sc->ip)
fs/xfs/scrub/common.c
540
xfs_trans_brelse(sc->tp, sa->agf_bp);
fs/xfs/scrub/common.c
545
xfs_trans_brelse(sc->tp, sa->agi_bp);
fs/xfs/scrub/common.c
549
if (!(sc->flags & XCHK_FSGATES_DRAIN))
fs/xfs/scrub/common.c
566
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
570
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/common.c
577
return xchk_perag_drain_and_lock(sc);
fs/xfs/scrub/common.c
609
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
612
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/common.c
616
sa->bno_cur = xfs_bnobt_init_cursor(mp, sc->tp, sa->agf_bp,
fs/xfs/scrub/common.c
618
xchk_ag_btree_del_cursor_if_sick(sc, &sa->bno_cur,
fs/xfs/scrub/common.c
622
sa->cnt_cur = xfs_cntbt_init_cursor(mp, sc->tp, sa->agf_bp,
fs/xfs/scrub/common.c
624
xchk_ag_btree_del_cursor_if_sick(sc, &sa->cnt_cur,
fs/xfs/scrub/common.c
629
sa->rmap_cur = xfs_rmapbt_init_cursor(mp, sc->tp,
fs/xfs/scrub/common.c
631
xchk_ag_btree_del_cursor_if_sick(sc, &sa->rmap_cur,
fs/xfs/scrub/common.c
637
sa->refc_cur = xfs_refcountbt_init_cursor(mp, sc->tp,
fs/xfs/scrub/common.c
639
xchk_ag_btree_del_cursor_if_sick(sc, &sa->refc_cur,
fs/xfs/scrub/common.c
646
sa->ino_cur = xfs_inobt_init_cursor(sa->pag, sc->tp,
fs/xfs/scrub/common.c
648
xchk_ag_btree_del_cursor_if_sick(sc, &sa->ino_cur,
fs/xfs/scrub/common.c
653
sa->fino_cur = xfs_finobt_init_cursor(sa->pag, sc->tp,
fs/xfs/scrub/common.c
655
xchk_ag_btree_del_cursor_if_sick(sc, &sa->fino_cur,
fs/xfs/scrub/common.c
664
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
668
xrep_reset_perag_resv(sc);
fs/xfs/scrub/common.c
670
xfs_trans_brelse(sc->tp, sa->agf_bp);
fs/xfs/scrub/common.c
674
xfs_trans_brelse(sc->tp, sa->agi_bp);
fs/xfs/scrub/common.c
692
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
698
error = xchk_ag_read_headers(sc, agno, sa);
fs/xfs/scrub/common.c
702
xchk_ag_btcur_init(sc, sa);
fs/xfs/scrub/common.c
716
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
723
sr->rtg = xfs_rtgroup_get(sc->mp, rgno);
fs/xfs/scrub/common.c
732
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
753
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/common.c
763
if (sc->ip && !xfs_is_internal_inode(sc->ip))
fs/xfs/scrub/common.c
78
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
790
if (!(sc->flags & XCHK_FSGATES_DRAIN))
fs/xfs/scrub/common.c
802
if (xfs_has_rtrmapbt(sc->mp) && (rtglock_flags & XFS_RTGLOCK_RMAP))
fs/xfs/scrub/common.c
803
sr->rmap_cur = xfs_rtrmapbt_init_cursor(sc->tp, sr->rtg);
fs/xfs/scrub/common.c
805
if (xfs_has_rtreflink(sc->mp) && (rtglock_flags & XFS_RTGLOCK_REFCOUNT))
fs/xfs/scrub/common.c
806
sr->refc_cur = xfs_rtrefcountbt_init_cursor(sc->tp, sr->rtg);
fs/xfs/scrub/common.c
851
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
867
struct xfs_scrub *sc)
fs/xfs/scrub/common.c
869
xfs_trans_cancel(sc->tp);
fs/xfs/scrub/common.c
870
sc->tp = NULL;
fs/xfs/scrub/common.c
875
struct xfs_scrub *sc)
fs/xfs/scrub/common.c
877
sc->tp = xfs_trans_alloc_empty(sc->mp);
fs/xfs/scrub/common.c
892
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
895
if (sc->sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR)
fs/xfs/scrub/common.c
896
return xfs_trans_alloc(sc->mp, &M_RES(sc->mp)->tr_itruncate,
fs/xfs/scrub/common.c
897
resblks, 0, 0, &sc->tp);
fs/xfs/scrub/common.c
899
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/common.c
906
struct xfs_scrub *sc)
fs/xfs/scrub/common.c
910
resblks = xrep_calc_ag_resblks(sc);
fs/xfs/scrub/common.c
911
return xchk_trans_alloc(sc, resblks);
fs/xfs/scrub/common.c
917
struct xfs_scrub *sc)
fs/xfs/scrub/common.c
919
return xchk_trans_alloc(sc, xrep_calc_rtgroup_resblks(sc));
fs/xfs/scrub/common.c
92
sc->ip ? sc->ip : XFS_I(file_inode(sc->file)),
fs/xfs/scrub/common.c
925
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
928
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/common.c
93
sc->sm, *error);
fs/xfs/scrub/common.c
943
error = xchk_setup_fs(sc);
fs/xfs/scrub/common.c
947
return xchk_ag_init(sc, sc->sm->sm_agno, &sc->sa);
fs/xfs/scrub/common.c
967
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
971
ASSERT(sc->tp != NULL);
fs/xfs/scrub/common.c
973
return xfs_iget(sc->mp, sc->tp, inum, XCHK_IGET_FLAGS, 0, ipp);
fs/xfs/scrub/common.c
994
struct xfs_scrub *sc,
fs/xfs/scrub/common.c
999
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/common.h
10
void xchk_trans_alloc_empty(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
106
int xchk_setup_fscounters(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
107
int xchk_setup_nlinks(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
109
void xchk_ag_free(struct xfs_scrub *sc, struct xchk_ag *sa);
fs/xfs/scrub/common.h
11
void xchk_trans_cancel(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
110
int xchk_ag_init(struct xfs_scrub *sc, xfs_agnumber_t agno,
fs/xfs/scrub/common.h
112
int xchk_perag_drain_and_lock(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
121
struct xfs_scrub *sc,
fs/xfs/scrub/common.h
125
int error = xchk_ag_init(sc, agno, sa);
fs/xfs/scrub/common.h
13
bool xchk_process_error(struct xfs_scrub *sc, xfs_agnumber_t agno,
fs/xfs/scrub/common.h
137
int xchk_rtgroup_init(struct xfs_scrub *sc, xfs_rgnumber_t rgno,
fs/xfs/scrub/common.h
142
struct xfs_scrub *sc,
fs/xfs/scrub/common.h
146
int error = xchk_rtgroup_init(sc, rgno, sr);
fs/xfs/scrub/common.h
15
bool xchk_process_rt_error(struct xfs_scrub *sc, xfs_rgnumber_t rgno,
fs/xfs/scrub/common.h
151
int xchk_rtgroup_lock(struct xfs_scrub *sc, struct xchk_rt *sr,
fs/xfs/scrub/common.h
155
void xchk_rtgroup_free(struct xfs_scrub *sc, struct xchk_rt *sr);
fs/xfs/scrub/common.h
157
# define xchk_rtgroup_init(sc, rgno, sr) (-EFSCORRUPTED)
fs/xfs/scrub/common.h
158
# define xchk_rtgroup_init_existing(sc, rgno, sr) (-EFSCORRUPTED)
fs/xfs/scrub/common.h
159
# define xchk_rtgroup_lock(sc, sr, lockflags) (-EFSCORRUPTED)
fs/xfs/scrub/common.h
162
# define xchk_rtgroup_free(sc, sr) do { } while (0)
fs/xfs/scrub/common.h
165
int xchk_ag_read_headers(struct xfs_scrub *sc, xfs_agnumber_t agno,
fs/xfs/scrub/common.h
168
void xchk_ag_btcur_init(struct xfs_scrub *sc, struct xchk_ag *sa);
fs/xfs/scrub/common.h
169
int xchk_count_rmap_ownedby_ag(struct xfs_scrub *sc, struct xfs_btree_cur *cur,
fs/xfs/scrub/common.h
17
bool xchk_fblock_process_error(struct xfs_scrub *sc, int whichfork,
fs/xfs/scrub/common.h
172
int xchk_setup_ag_btree(struct xfs_scrub *sc, bool force_log);
fs/xfs/scrub/common.h
173
int xchk_iget_for_scrubbing(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
174
int xchk_setup_inode_contents(struct xfs_scrub *sc, unsigned int resblks);
fs/xfs/scrub/common.h
175
int xchk_install_live_inode(struct xfs_scrub *sc, struct xfs_inode *ip);
fs/xfs/scrub/common.h
177
void xchk_ilock(struct xfs_scrub *sc, unsigned int ilock_flags);
fs/xfs/scrub/common.h
178
bool xchk_ilock_nowait(struct xfs_scrub *sc, unsigned int ilock_flags);
fs/xfs/scrub/common.h
179
void xchk_iunlock(struct xfs_scrub *sc, unsigned int ilock_flags);
fs/xfs/scrub/common.h
181
void xchk_buffer_recheck(struct xfs_scrub *sc, struct xfs_buf *bp);
fs/xfs/scrub/common.h
188
int xchk_iget(struct xfs_scrub *sc, xfs_ino_t inum, struct xfs_inode **ipp);
fs/xfs/scrub/common.h
189
int xchk_iget_agi(struct xfs_scrub *sc, xfs_ino_t inum,
fs/xfs/scrub/common.h
191
void xchk_irele(struct xfs_scrub *sc, struct xfs_inode *ip);
fs/xfs/scrub/common.h
192
int xchk_install_handle_inode(struct xfs_scrub *sc, struct xfs_inode *ip);
fs/xfs/scrub/common.h
20
bool xchk_xref_process_error(struct xfs_scrub *sc,
fs/xfs/scrub/common.h
200
xchk_iget_safe(struct xfs_scrub *sc, xfs_ino_t inum, struct xfs_inode **ipp)
fs/xfs/scrub/common.h
204
ASSERT(sc->tp == NULL);
fs/xfs/scrub/common.h
206
error = xchk_trans_alloc(sc, 0);
fs/xfs/scrub/common.h
209
error = xchk_iget(sc, inum, ipp);
fs/xfs/scrub/common.h
210
xchk_trans_cancel(sc);
fs/xfs/scrub/common.h
22
bool xchk_fblock_xref_process_error(struct xfs_scrub *sc,
fs/xfs/scrub/common.h
241
static inline bool xchk_could_repair(const struct xfs_scrub *sc)
fs/xfs/scrub/common.h
243
return (sc->sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR) &&
fs/xfs/scrub/common.h
244
!(sc->flags & XREP_ALREADY_FIXED);
fs/xfs/scrub/common.h
247
int xchk_metadata_inode_forks(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
25
void xchk_block_set_preen(struct xfs_scrub *sc,
fs/xfs/scrub/common.h
256
static inline bool xchk_need_intent_drain(struct xfs_scrub *sc)
fs/xfs/scrub/common.h
258
return sc->flags & XCHK_NEED_DRAIN;
fs/xfs/scrub/common.h
261
void xchk_fsgates_enable(struct xfs_scrub *sc, unsigned int scrub_fshooks);
fs/xfs/scrub/common.h
263
int xchk_inode_is_allocated(struct xfs_scrub *sc, xfs_agino_t agino,
fs/xfs/scrub/common.h
265
int xchk_inode_count_blocks(struct xfs_scrub *sc, int whichfork,
fs/xfs/scrub/common.h
27
void xchk_ino_set_preen(struct xfs_scrub *sc, xfs_ino_t ino);
fs/xfs/scrub/common.h
29
void xchk_set_corrupt(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
30
void xchk_block_set_corrupt(struct xfs_scrub *sc,
fs/xfs/scrub/common.h
32
void xchk_ino_set_corrupt(struct xfs_scrub *sc, xfs_ino_t ino);
fs/xfs/scrub/common.h
33
void xchk_fblock_set_corrupt(struct xfs_scrub *sc, int whichfork,
fs/xfs/scrub/common.h
36
void xchk_qcheck_set_corrupt(struct xfs_scrub *sc, unsigned int dqtype,
fs/xfs/scrub/common.h
40
void xchk_block_xref_set_corrupt(struct xfs_scrub *sc,
fs/xfs/scrub/common.h
42
void xchk_ino_xref_set_corrupt(struct xfs_scrub *sc,
fs/xfs/scrub/common.h
44
void xchk_fblock_xref_set_corrupt(struct xfs_scrub *sc,
fs/xfs/scrub/common.h
47
void xchk_ino_set_warning(struct xfs_scrub *sc, xfs_ino_t ino);
fs/xfs/scrub/common.h
48
void xchk_fblock_set_warning(struct xfs_scrub *sc, int whichfork,
fs/xfs/scrub/common.h
51
void xchk_set_incomplete(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
55
bool xchk_should_check_xref(struct xfs_scrub *sc, int *error,
fs/xfs/scrub/common.h
58
static inline int xchk_setup_nothing(struct xfs_scrub *sc)
fs/xfs/scrub/common.h
64
int xchk_setup_agheader(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
65
int xchk_setup_fs(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
66
int xchk_setup_rt(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
67
int xchk_setup_ag_allocbt(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
68
int xchk_setup_ag_iallocbt(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
69
int xchk_setup_ag_rmapbt(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
70
int xchk_setup_ag_refcountbt(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
71
int xchk_setup_inode(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
72
int xchk_setup_inode_bmap(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
73
int xchk_setup_inode_bmap_data(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
74
int xchk_setup_directory(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
75
int xchk_setup_xattr(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
76
int xchk_setup_symlink(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
77
int xchk_setup_parent(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
78
int xchk_setup_dirtree(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
79
int xchk_setup_metapath(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
81
int xchk_setup_rtbitmap(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
82
int xchk_setup_rtsummary(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
83
int xchk_setup_rgsuperblock(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
84
int xchk_setup_rtrmapbt(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
85
int xchk_setup_rtrefcountbt(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
9
int xchk_trans_alloc(struct xfs_scrub *sc, uint resblks);
fs/xfs/scrub/common.h
94
int xchk_ino_dqattach(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
95
int xchk_setup_quota(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
96
int xchk_setup_quotacheck(struct xfs_scrub *sc);
fs/xfs/scrub/common.h
99
xchk_ino_dqattach(struct xfs_scrub *sc)
fs/xfs/scrub/cow_repair.c
104
trace_xrep_cow_mark_file_range(xc->sc->ip, startblock, startoff,
fs/xfs/scrub/cow_repair.c
246
struct xfs_scrub *sc = xc->sc;
fs/xfs/scrub/cow_repair.c
250
agno = XFS_FSB_TO_AGNO(sc->mp, xc->irec.br_startblock);
fs/xfs/scrub/cow_repair.c
251
xc->irec_startbno = XFS_FSB_TO_AGBNO(sc->mp, xc->irec.br_startblock);
fs/xfs/scrub/cow_repair.c
253
pag = xfs_perag_get(sc->mp, agno);
fs/xfs/scrub/cow_repair.c
257
error = xrep_ag_init(sc, pag, &sc->sa);
fs/xfs/scrub/cow_repair.c
265
error = xfs_refcount_query_range(sc->sa.refc_cur, &rc_low, &rc_high,
fs/xfs/scrub/cow_repair.c
275
error = xfs_refcount_query_range(sc->sa.refc_cur, &rc_low, &rc_high,
fs/xfs/scrub/cow_repair.c
293
error = xfs_rmap_query_range(sc->sa.rmap_cur, &rm_low, &rm_high,
fs/xfs/scrub/cow_repair.c
302
if ((sc->sm->sm_flags & XFS_SCRUB_IFLAG_FORCE_REBUILD) ||
fs/xfs/scrub/cow_repair.c
303
XFS_TEST_ERROR(sc->mp, XFS_ERRTAG_FORCE_SCRUB_REPAIR)) {
fs/xfs/scrub/cow_repair.c
311
xchk_ag_free(sc, &sc->sa);
fs/xfs/scrub/cow_repair.c
329
struct xfs_scrub *sc = xc->sc;
fs/xfs/scrub/cow_repair.c
333
xc->irec_startbno = xfs_rtb_to_rgbno(sc->mp, xc->irec.br_startblock);
fs/xfs/scrub/cow_repair.c
335
rtg = xfs_rtgroup_get(sc->mp,
fs/xfs/scrub/cow_repair.c
336
xfs_rtb_to_rgno(sc->mp, xc->irec.br_startblock));
fs/xfs/scrub/cow_repair.c
340
error = xrep_rtgroup_init(sc, rtg, &sc->sr,
fs/xfs/scrub/cow_repair.c
349
error = xfs_refcount_query_range(sc->sr.refc_cur, &rc_low, &rc_high,
fs/xfs/scrub/cow_repair.c
359
error = xfs_refcount_query_range(sc->sr.refc_cur, &rc_low, &rc_high,
fs/xfs/scrub/cow_repair.c
377
error = xfs_rmap_query_range(sc->sr.rmap_cur, &rm_low, &rm_high,
fs/xfs/scrub/cow_repair.c
387
if ((sc->sm->sm_flags & XFS_SCRUB_IFLAG_FORCE_REBUILD) ||
fs/xfs/scrub/cow_repair.c
388
XFS_TEST_ERROR(sc->mp, XFS_ERRTAG_FORCE_SCRUB_REPAIR)) {
fs/xfs/scrub/cow_repair.c
396
xchk_rtgroup_btcur_free(&sc->sr);
fs/xfs/scrub/cow_repair.c
397
xchk_rtgroup_free(sc, &sc->sr);
fs/xfs/scrub/cow_repair.c
409
struct xfs_scrub *sc,
fs/xfs/scrub/cow_repair.c
414
.tp = sc->tp,
fs/xfs/scrub/cow_repair.c
415
.mp = sc->mp,
fs/xfs/scrub/cow_repair.c
425
error = xfs_trans_reserve_more(sc->tp, maxlen, 0);
fs/xfs/scrub/cow_repair.c
430
XFS_INO_TO_FSB(sc->mp, sc->ip->i_ino));
fs/xfs/scrub/cow_repair.c
436
xfs_refcount_alloc_cow_extent(sc->tp, false, args.fsbno, args.len);
fs/xfs/scrub/cow_repair.c
449
struct xfs_scrub *sc,
fs/xfs/scrub/cow_repair.c
453
xfs_rtxlen_t maxrtx = xfs_rtb_to_rtx(sc->mp, maxlen);
fs/xfs/scrub/cow_repair.c
456
error = xfs_trans_reserve_more(sc->tp, 0, maxrtx);
fs/xfs/scrub/cow_repair.c
460
error = xfs_rtallocate_rtgs(sc->tp, NULLRTBLOCK, 1, maxrtx, 1, false,
fs/xfs/scrub/cow_repair.c
465
xfs_refcount_alloc_cow_extent(sc->tp, true, repl->fsbno, repl->len);
fs/xfs/scrub/cow_repair.c
482
struct xfs_inode *ip = xc->sc->ip;
fs/xfs/scrub/cow_repair.c
565
struct xfs_scrub *sc = xc->sc;
fs/xfs/scrub/cow_repair.c
586
if (XFS_IS_REALTIME_INODE(sc->ip))
fs/xfs/scrub/cow_repair.c
587
error = xrep_cow_alloc_rt(sc, alloc_len, &repl);
fs/xfs/scrub/cow_repair.c
589
error = xrep_cow_alloc(sc, alloc_len, &repl);
fs/xfs/scrub/cow_repair.c
597
xrep_cow_replace_mapping(sc->ip, &icur, &got, &repl);
fs/xfs/scrub/cow_repair.c
599
xfs_inode_set_cowblocks_tag(sc->ip);
fs/xfs/scrub/cow_repair.c
600
error = xfs_defer_finish(&sc->tp);
fs/xfs/scrub/cow_repair.c
605
if (XFS_IS_REALTIME_INODE(sc->ip))
fs/xfs/scrub/cow_repair.c
62
struct xfs_scrub *sc;
fs/xfs/scrub/cow_repair.c
653
struct xfs_scrub *sc)
fs/xfs/scrub/cow_repair.c
657
struct xfs_ifork *ifp = xfs_ifork_ptr(sc->ip, XFS_COW_FORK);
fs/xfs/scrub/cow_repair.c
660
if (!xfs_has_rmapbt(sc->mp) || !xfs_has_reflink(sc->mp))
fs/xfs/scrub/cow_repair.c
671
if (xfs_inode_has_bigrtalloc(sc->ip))
fs/xfs/scrub/cow_repair.c
675
if (xfs_is_metadir_inode(sc->ip) && XFS_IS_REALTIME_INODE(sc->ip))
fs/xfs/scrub/cow_repair.c
692
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/cow_repair.c
694
xc->sc = sc;
fs/xfs/scrub/cow_repair.c
696
if (XFS_IS_REALTIME_INODE(sc->ip))
fs/xfs/scrub/cow_repair.c
702
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/cow_repair.c
722
if (XFS_IS_REALTIME_INODE(sc->ip))
fs/xfs/scrub/cow_repair.c
740
if (XFS_IS_REALTIME_INODE(sc->ip))
fs/xfs/scrub/cow_repair.c
741
error = xrep_reap_rtblocks(sc, &xc->old_cowfork_rtblocks,
fs/xfs/scrub/cow_repair.c
744
error = xrep_reap_fsblocks(sc, &xc->old_cowfork_fsblocks,
fs/xfs/scrub/cow_repair.c
750
if (XFS_IS_REALTIME_INODE(sc->ip))
fs/xfs/scrub/dabtree.c
109
xfs_da3_node_hdr_from_disk(ds->sc->mp, &hdr, blk->bp->b_addr);
fs/xfs/scrub/dabtree.c
272
xchk_buffer_recheck(ds->sc, altpath->blk[level].bp);
fs/xfs/scrub/dabtree.c
35
struct xfs_scrub *sc = ds->sc;
fs/xfs/scrub/dabtree.c
368
xchk_buffer_recheck(ds->sc, blk->bp);
fs/xfs/scrub/dabtree.c
390
if (xfs_has_crc(ds->sc->mp) && hdr3->hdr.pad)
fs/xfs/scrub/dabtree.c
44
trace_xchk_deadlock_retry(sc->ip, sc->sm, *error);
fs/xfs/scrub/dabtree.c
497
struct xfs_scrub *sc,
fs/xfs/scrub/dabtree.c
503
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/dabtree.c
51
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT;
fs/xfs/scrub/dabtree.c
511
if (!xfs_ifork_has_extents(xfs_ifork_ptr(sc->ip, whichfork)))
fs/xfs/scrub/dabtree.c
518
ds->dargs.dp = sc->ip;
fs/xfs/scrub/dabtree.c
520
ds->dargs.trans = sc->tp;
fs/xfs/scrub/dabtree.c
522
ds->dargs.owner = sc->ip->i_ino;
fs/xfs/scrub/dabtree.c
524
ds->sc = sc;
fs/xfs/scrub/dabtree.c
55
trace_xchk_file_op_error(sc, ds->dargs.whichfork,
fs/xfs/scrub/dabtree.c
568
if (xchk_should_terminate(sc, &error) ||
fs/xfs/scrub/dabtree.c
569
(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/dabtree.c
615
xfs_trans_brelse(sc->tp, blks[level].bp);
fs/xfs/scrub/dabtree.c
73
struct xfs_scrub *sc = ds->sc;
fs/xfs/scrub/dabtree.c
75
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT;
fs/xfs/scrub/dabtree.c
77
trace_xchk_fblock_error(sc, ds->dargs.whichfork,
fs/xfs/scrub/dabtree.c
89
struct xfs_scrub *sc = ds->sc;
fs/xfs/scrub/dabtree.c
91
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_PREEN;
fs/xfs/scrub/dabtree.c
92
trace_xchk_fblock_preen(sc, ds->dargs.whichfork,
fs/xfs/scrub/dabtree.h
16
struct xfs_scrub *sc;
fs/xfs/scrub/dabtree.h
43
int xchk_da_btree(struct xfs_scrub *sc, int whichfork,
fs/xfs/scrub/dir.c
1002
xchk_iunlock(sc, sc->ilock_flags);
fs/xfs/scrub/dir.c
1005
trace_xchk_dir_ultraslowpath(sc->ip, xname, ip->i_ino);
fs/xfs/scrub/dir.c
1007
error = xchk_dir_trylock_for_pptrs(sc, ip, &lockmode);
fs/xfs/scrub/dir.c
1017
if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, 0, &error))
fs/xfs/scrub/dir.c
102
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/dir.c
1025
xchk_irele(sc, ip);
fs/xfs/scrub/dir.c
1040
if (sd->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/dir.c
1063
struct xfs_scrub *sc)
fs/xfs/scrub/dir.c
1068
if (!S_ISDIR(VFS_I(sc->ip)->i_mode))
fs/xfs/scrub/dir.c
1071
if (xchk_file_looks_zapped(sc, XFS_SICK_INO_DIR_ZAPPED)) {
fs/xfs/scrub/dir.c
1072
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/dir.c
1077
if (sc->ip->i_disk_size < xfs_dir2_sf_hdr_size(0)) {
fs/xfs/scrub/dir.c
1078
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/dir.c
1083
error = xchk_da_btree(sc, XFS_DATA_FORK, xchk_dir_rec, NULL);
fs/xfs/scrub/dir.c
1087
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/dir.c
109
if (xfs_is_metadir_inode(ip) != xfs_is_metadir_inode(sc->ip))
fs/xfs/scrub/dir.c
1091
error = xchk_directory_blocks(sc);
fs/xfs/scrub/dir.c
1095
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/dir.c
110
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/dir.c
1101
sd->sc = sc;
fs/xfs/scrub/dir.c
1104
if (xfs_has_parent(sc->mp)) {
fs/xfs/scrub/dir.c
1121
error = xchk_dir_walk(sc, sc->ip, xchk_dir_actor, sd);
fs/xfs/scrub/dir.c
1127
if (xfs_has_parent(sc->mp)) {
fs/xfs/scrub/dir.c
1150
xchk_mark_healthy_if_clean(sc, XFS_SICK_INO_DIR_ZAPPED);
fs/xfs/scrub/dir.c
119
struct xfs_scrub *sc,
fs/xfs/scrub/dir.c
150
struct xfs_scrub *sc = sd->sc;
fs/xfs/scrub/dir.c
153
xfs_inode_to_parent_rec(&sd->pptr_rec, sc->ip);
fs/xfs/scrub/dir.c
154
error = xfs_parent_lookup(sc->tp, ip, name, &sd->pptr_rec,
fs/xfs/scrub/dir.c
157
xchk_fblock_xref_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/dir.c
170
struct xfs_scrub *sc = sd->sc;
fs/xfs/scrub/dir.c
180
if (ip == sc->ip) {
fs/xfs/scrub/dir.c
181
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/dir.c
186
lockmode = xchk_dir_lock_child(sc, ip);
fs/xfs/scrub/dir.c
194
trace_xchk_dir_defer(sc->ip, name, ip->i_ino);
fs/xfs/scrub/dir.c
198
if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, 0,
fs/xfs/scrub/dir.c
203
if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, 0,
fs/xfs/scrub/dir.c
223
struct xfs_scrub *sc,
fs/xfs/scrub/dir.c
240
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/dir.c
245
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/dir.c
251
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/dir.c
258
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/dir.c
265
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/dir.c
269
error = xchk_dir_lookup(sc, dp, name, &lookup_ino);
fs/xfs/scrub/dir.c
273
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, offset, &error))
fs/xfs/scrub/dir.c
276
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/dir.c
289
error = xchk_iget(sc, ino, &ip);
fs/xfs/scrub/dir.c
292
xchk_fblock_process_error(sc, XFS_DATA_FORK, 0, &error);
fs/xfs/scrub/dir.c
295
if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, offset, &error))
fs/xfs/scrub/dir.c
298
xchk_dir_check_ftype(sc, offset, ip, name->type);
fs/xfs/scrub/dir.c
307
xchk_irele(sc, ip);
fs/xfs/scrub/dir.c
309
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/dir.c
35
struct xfs_scrub *sc)
fs/xfs/scrub/dir.c
368
if (!xchk_fblock_process_error(ds->sc, XFS_DATA_FORK, rec_bno,
fs/xfs/scrub/dir.c
372
xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
fs/xfs/scrub/dir.c
375
xchk_buffer_recheck(ds->sc, bp);
fs/xfs/scrub/dir.c
377
if (ds->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/dir.c
386
xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
fs/xfs/scrub/dir.c
39
if (xchk_could_repair(sc)) {
fs/xfs/scrub/dir.c
394
xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
fs/xfs/scrub/dir.c
40
error = xrep_setup_directory(sc);
fs/xfs/scrub/dir.c
412
xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
fs/xfs/scrub/dir.c
414
xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
fs/xfs/scrub/dir.c
423
xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
fs/xfs/scrub/dir.c
438
struct xfs_scrub *sc,
fs/xfs/scrub/dir.c
45
return xchk_setup_inode_contents(sc, 0);
fs/xfs/scrub/dir.c
457
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
463
struct xfs_scrub *sc,
fs/xfs/scrub/dir.c
471
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/dir.c
484
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
485
error = xfs_dir3_block_read(sc->tp, sc->ip, sc->ip->i_ino, &bp);
fs/xfs/scrub/dir.c
488
error = xfs_dir3_data_read(sc->tp, sc->ip, sc->ip->i_ino, lblk,
fs/xfs/scrub/dir.c
491
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, lblk, &error))
fs/xfs/scrub/dir.c
493
xchk_buffer_recheck(sc, bp);
fs/xfs/scrub/dir.c
497
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/dir.c
508
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
518
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
524
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
546
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK,
fs/xfs/scrub/dir.c
557
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
565
xchk_directory_check_free_entry(sc, lblk, bf, dup);
fs/xfs/scrub/dir.c
566
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/dir.c
572
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
582
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
586
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
588
xfs_trans_brelse(sc->tp, bp);
fs/xfs/scrub/dir.c
601
struct xfs_scrub *sc,
fs/xfs/scrub/dir.c
608
dfp = xfs_dir2_data_bestfree_p(sc->mp, dbp->b_addr);
fs/xfs/scrub/dir.c
611
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
614
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
620
struct xfs_scrub *sc,
fs/xfs/scrub/dir.c
63
struct xfs_scrub *sc;
fs/xfs/scrub/dir.c
630
struct xfs_da_geometry *geo = sc->mp->m_dir_geo;
fs/xfs/scrub/dir.c
641
error = xfs_dir3_leaf_read(sc->tp, sc->ip, sc->ip->i_ino, lblk, &bp);
fs/xfs/scrub/dir.c
642
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, lblk, &error))
fs/xfs/scrub/dir.c
644
xchk_buffer_recheck(sc, bp);
fs/xfs/scrub/dir.c
647
xfs_dir2_leaf_hdr_from_disk(sc->ip->i_mount, &leafhdr, leaf);
fs/xfs/scrub/dir.c
652
if (xfs_has_crc(sc->mp)) {
fs/xfs/scrub/dir.c
656
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
668
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
674
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
680
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
688
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
695
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
696
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/dir.c
702
error = xfs_dir3_data_read(sc->tp, sc->ip, args->owner,
fs/xfs/scrub/dir.c
705
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, lblk,
fs/xfs/scrub/dir.c
711
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK,
fs/xfs/scrub/dir.c
719
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
721
xchk_directory_check_freesp(sc, lblk, dbp, best);
fs/xfs/scrub/dir.c
722
xfs_trans_brelse(sc->tp, dbp);
fs/xfs/scrub/dir.c
723
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/dir.c
727
xfs_trans_brelse(sc->tp, bp);
fs/xfs/scrub/dir.c
734
struct xfs_scrub *sc,
fs/xfs/scrub/dir.c
747
error = xfs_dir2_free_read(sc->tp, sc->ip, sc->ip->i_ino, lblk, &bp);
fs/xfs/scrub/dir.c
748
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, lblk, &error))
fs/xfs/scrub/dir.c
750
xchk_buffer_recheck(sc, bp);
fs/xfs/scrub/dir.c
752
if (xfs_has_crc(sc->mp)) {
fs/xfs/scrub/dir.c
756
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
760
xfs_dir2_free_hdr_from_disk(sc->ip->i_mount, &freehdr, bp->b_addr);
fs/xfs/scrub/dir.c
767
error = xfs_dir3_data_read(sc->tp, sc->ip, args->owner,
fs/xfs/scrub/dir.c
770
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, lblk,
fs/xfs/scrub/dir.c
773
xchk_directory_check_freesp(sc, lblk, dbp, best);
fs/xfs/scrub/dir.c
774
xfs_trans_brelse(sc->tp, dbp);
fs/xfs/scrub/dir.c
778
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
780
xfs_trans_brelse(sc->tp, bp);
fs/xfs/scrub/dir.c
787
struct xfs_scrub *sc)
fs/xfs/scrub/dir.c
791
.dp = sc->ip,
fs/xfs/scrub/dir.c
793
.geo = sc->mp->m_dir_geo,
fs/xfs/scrub/dir.c
794
.trans = sc->tp,
fs/xfs/scrub/dir.c
795
.owner = sc->ip->i_ino,
fs/xfs/scrub/dir.c
797
struct xfs_ifork *ifp = xfs_ifork_ptr(sc->ip, XFS_DATA_FORK);
fs/xfs/scrub/dir.c
798
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/dir.c
821
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, lblk, &error))
fs/xfs/scrub/dir.c
825
found = xfs_iext_lookup_extent(sc->ip, ifp, lblk, &icur, &got);
fs/xfs/scrub/dir.c
826
while (found && !(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)) {
fs/xfs/scrub/dir.c
847
error = xchk_directory_data_bestfree(sc, lblk,
fs/xfs/scrub/dir.c
854
found = xfs_iext_lookup_extent(sc->ip, ifp, lblk, &icur, &got);
fs/xfs/scrub/dir.c
857
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/dir.c
861
if (xfs_iext_lookup_extent(sc->ip, ifp, leaf_lblk, &icur, &got) &&
fs/xfs/scrub/dir.c
866
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
869
error = xchk_directory_leaf1_bestfree(sc, &args, last_data_db,
fs/xfs/scrub/dir.c
875
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/dir.c
88
struct xfs_scrub *sc,
fs/xfs/scrub/dir.c
880
found = xfs_iext_lookup_extent(sc->ip, ifp, lblk, &icur, &got);
fs/xfs/scrub/dir.c
881
while (found && !(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)) {
fs/xfs/scrub/dir.c
888
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
892
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
fs/xfs/scrub/dir.c
911
error = xchk_directory_free_bestfree(sc, &args,
fs/xfs/scrub/dir.c
918
found = xfs_iext_lookup_extent(sc->ip, ifp, lblk, &icur, &got);
fs/xfs/scrub/dir.c
93
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/dir.c
935
struct xfs_scrub *sc = sd->sc;
fs/xfs/scrub/dir.c
944
error = xchk_dir_lookup(sc, sc->ip, xname, &child_ino);
fs/xfs/scrub/dir.c
965
struct xfs_scrub *sc = sd->sc;
fs/xfs/scrub/dir.c
97
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/dir.c
975
if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, 0,
fs/xfs/scrub/dir.c
980
error = xchk_iget(sc, dirent->ino, &ip);
fs/xfs/scrub/dir.c
982
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/dir.c
985
if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, 0, &error))
fs/xfs/scrub/dir.c
992
lockmode = xchk_dir_lock_child(sc, ip);
fs/xfs/scrub/dir.c
994
trace_xchk_dir_slowpath(sc->ip, xname, ip->i_ino);
fs/xfs/scrub/dir_repair.c
1015
struct xfs_inode *dp = rd->sc->ip;
fs/xfs/scrub/dir_repair.c
1025
error = xfs_iread_extents(rd->sc->tp, dp, XFS_DATA_FORK);
fs/xfs/scrub/dir_repair.c
1042
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
1051
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dir_repair.c
1053
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dir_repair.c
1081
error = xrep_trans_commit(sc);
fs/xfs/scrub/dir_repair.c
1085
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dir_repair.c
1097
struct xfs_scrub *sc,
fs/xfs/scrub/dir_repair.c
1123
error = xfs_parent_from_attr(sc->mp, attr_flags, name, namelen, value,
fs/xfs/scrub/dir_repair.c
1128
if (parent_ino != sc->ip->i_ino ||
fs/xfs/scrub/dir_repair.c
1129
parent_gen != VFS_I(sc->ip)->i_generation)
fs/xfs/scrub/dir_repair.c
1144
struct xfs_scrub *sc,
fs/xfs/scrub/dir_repair.c
1154
if (ino != rd->sc->ip->i_ino)
fs/xfs/scrub/dir_repair.c
1158
if (!xfs_verify_dir_ino(rd->sc->mp, ino))
fs/xfs/scrub/dir_repair.c
1170
trace_xrep_dir_stash_createname(sc->tempip, &xfs_name_dotdot,
fs/xfs/scrub/dir_repair.c
1186
return ip != rd->sc->ip && !xrep_is_tempfile(ip);
fs/xfs/scrub/dir_repair.c
119
struct xfs_scrub *sc;
fs/xfs/scrub/dir_repair.c
1245
error = xchk_xattr_walk(rd->sc, ip, xrep_dir_scan_pptr, NULL, rd);
fs/xfs/scrub/dir_repair.c
1259
error = xchk_dir_walk(rd->sc, ip, xrep_dir_scan_dirent, rd);
fs/xfs/scrub/dir_repair.c
1278
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
1283
if (xchk_inode_is_dirtree_root(sc->ip))
fs/xfs/scrub/dir_repair.c
1284
xrep_findparent_scan_found(&rd->pscan, sc->ip->i_ino);
fs/xfs/scrub/dir_repair.c
1292
xchk_trans_cancel(sc);
fs/xfs/scrub/dir_repair.c
1293
if (sc->ilock_flags & (XFS_ILOCK_SHARED | XFS_ILOCK_EXCL))
fs/xfs/scrub/dir_repair.c
1294
xchk_iunlock(sc, sc->ilock_flags & (XFS_ILOCK_SHARED |
fs/xfs/scrub/dir_repair.c
1296
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/dir_repair.c
1302
xchk_irele(sc, ip);
fs/xfs/scrub/dir_repair.c
1311
xchk_trans_cancel(sc);
fs/xfs/scrub/dir_repair.c
1313
error = xrep_tempfile_iolock_polled(sc);
fs/xfs/scrub/dir_repair.c
1318
xrep_tempfile_iounlock(sc);
fs/xfs/scrub/dir_repair.c
1322
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/dir_repair.c
1325
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/dir_repair.c
1345
xchk_trans_cancel(rd->sc);
fs/xfs/scrub/dir_repair.c
1361
struct xfs_scrub *sc;
fs/xfs/scrub/dir_repair.c
1365
sc = rd->sc;
fs/xfs/scrub/dir_repair.c
1372
if (p->dp->i_ino == sc->ip->i_ino &&
fs/xfs/scrub/dir_repair.c
1391
if (p->ip->i_ino == sc->ip->i_ino &&
fs/xfs/scrub/dir_repair.c
1394
trace_xrep_dir_stash_createname(sc->tempip,
fs/xfs/scrub/dir_repair.c
1400
trace_xrep_dir_stash_removename(sc->tempip,
fs/xfs/scrub/dir_repair.c
1424
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
1425
struct xfs_ifork *ifp = xfs_ifork_ptr(sc->tempip, XFS_DATA_FORK);
fs/xfs/scrub/dir_repair.c
1430
error = xrep_reap_ifork(sc, sc->tempip, XFS_DATA_FORK);
fs/xfs/scrub/dir_repair.c
1435
trace_xrep_dir_reset_fork(sc->tempip, parent_ino);
fs/xfs/scrub/dir_repair.c
1440
sc->tempip->i_disk_size = 0;
fs/xfs/scrub/dir_repair.c
1443
xrep_dir_init_args(rd, sc->tempip, NULL);
fs/xfs/scrub/dir_repair.c
1454
struct xfs_scrub *sc,
fs/xfs/scrub/dir_repair.c
1466
.dp = sc->tempip,
fs/xfs/scrub/dir_repair.c
1467
.geo = sc->mp->m_dir_geo,
fs/xfs/scrub/dir_repair.c
1469
.trans = sc->tp,
fs/xfs/scrub/dir_repair.c
1471
.owner = sc->ip->i_ino,
fs/xfs/scrub/dir_repair.c
1482
error = xfs_defer_finish(&sc->tp);
fs/xfs/scrub/dir_repair.c
1495
ifp = xfs_ifork_ptr(sc->ip, XFS_DATA_FORK);
fs/xfs/scrub/dir_repair.c
1503
xfs_trans_log_inode(sc->tp, sc->ip,
fs/xfs/scrub/dir_repair.c
1521
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
1526
error = xfs_dir_ino_validate(sc->mp, inum);
fs/xfs/scrub/dir_repair.c
1544
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
1545
struct xfs_inode *dp = sc->ip;
fs/xfs/scrub/dir_repair.c
1579
pag = xfs_perag_get(sc->mp, XFS_INO_TO_AGNO(sc->mp, dp->i_ino));
fs/xfs/scrub/dir_repair.c
1585
error = xfs_iunlink_remove(sc->tp, pag, dp);
fs/xfs/scrub/dir_repair.c
1605
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
1608
if (!xfs_has_parent(sc->mp))
fs/xfs/scrub/dir_repair.c
1609
return xrep_tempexch_trans_alloc(sc, XFS_DATA_FORK, &rd->tx);
fs/xfs/scrub/dir_repair.c
1622
error = xrep_tempexch_trans_alloc(sc, XFS_DATA_FORK, &rd->tx);
fs/xfs/scrub/dir_repair.c
1629
xchk_trans_cancel(sc);
fs/xfs/scrub/dir_repair.c
1630
xrep_tempfile_iunlock_both(sc);
fs/xfs/scrub/dir_repair.c
1631
} while (!xchk_should_terminate(sc, &error));
fs/xfs/scrub/dir_repair.c
1640
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
1651
ASSERT(sc->ilock_flags & XFS_ILOCK_EXCL);
fs/xfs/scrub/dir_repair.c
1654
rd->pscan.parent_ino = rd->sc->mp->m_sb.sb_rootino;
fs/xfs/scrub/dir_repair.c
1665
error = xchk_dir_lookup(sc, rd->sc->tempip, &xfs_name_dotdot, &ino);
fs/xfs/scrub/dir_repair.c
1670
error = xrep_dir_replace(rd, rd->sc->tempip, &xfs_name_dotdot,
fs/xfs/scrub/dir_repair.c
1680
ip_local = sc->ip->i_df.if_format == XFS_DINODE_FMT_LOCAL;
fs/xfs/scrub/dir_repair.c
1681
temp_local = sc->tempip->i_df.if_format == XFS_DINODE_FMT_LOCAL;
fs/xfs/scrub/dir_repair.c
1690
sc->tempip->i_disk_size <= xfs_inode_data_fork_size(sc->ip)) {
fs/xfs/scrub/dir_repair.c
1691
xrep_tempfile_copyout_local(sc, XFS_DATA_FORK);
fs/xfs/scrub/dir_repair.c
1699
error = xrep_tempfile_roll_trans(rd->sc);
fs/xfs/scrub/dir_repair.c
170
struct xfs_scrub *sc)
fs/xfs/scrub/dir_repair.c
1704
error = xrep_dir_swap_prep(sc, temp_local, ip_local);
fs/xfs/scrub/dir_repair.c
1716
return xrep_tempexch_contents(sc, &rd->tx);
fs/xfs/scrub/dir_repair.c
172
struct xrep_dir *rd = sc->buf;
fs/xfs/scrub/dir_repair.c
1727
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
1730
trace_xrep_dir_rebuild_tree(sc->ip, rd->pscan.parent_ino);
fs/xfs/scrub/dir_repair.c
1737
error = xrep_tempfile_iolock_polled(rd->sc);
fs/xfs/scrub/dir_repair.c
1767
error = xrep_dir_reset_fork(rd, sc->mp->m_rootip->i_ino);
fs/xfs/scrub/dir_repair.c
1776
error = xfs_trans_roll(&sc->tp);
fs/xfs/scrub/dir_repair.c
1780
xrep_tempfile_iunlock(sc);
fs/xfs/scrub/dir_repair.c
1781
xrep_tempfile_iounlock(sc);
fs/xfs/scrub/dir_repair.c
1790
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
1803
if (xfs_has_parent(sc->mp))
fs/xfs/scrub/dir_repair.c
1804
error = __xrep_findparent_scan_start(sc, &rd->pscan,
fs/xfs/scrub/dir_repair.c
1807
error = xrep_findparent_scan_start(sc, &rd->pscan);
fs/xfs/scrub/dir_repair.c
1834
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
1843
error = xchk_dir_lookup(sc, sc->ip, &xfs_name_dotdot, &orig_parent);
fs/xfs/scrub/dir_repair.c
1852
error = xrep_trans_commit(sc);
fs/xfs/scrub/dir_repair.c
1855
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dir_repair.c
1858
if (!xrep_orphanage_ilock_nowait(sc, XFS_IOLOCK_EXCL)) {
fs/xfs/scrub/dir_repair.c
1859
xchk_iunlock(sc, sc->ilock_flags);
fs/xfs/scrub/dir_repair.c
186
struct xfs_scrub *sc)
fs/xfs/scrub/dir_repair.c
1860
error = xrep_orphanage_iolock_two(sc);
fs/xfs/scrub/dir_repair.c
1866
error = xrep_adoption_trans_alloc(sc, &rd->adoption);
fs/xfs/scrub/dir_repair.c
1880
error = xchk_dir_lookup(sc, sc->ip, &xfs_name_dotdot, &new_parent);
fs/xfs/scrub/dir_repair.c
1888
if (orig_parent == new_parent && VFS_I(sc->ip)->i_nlink > 0) {
fs/xfs/scrub/dir_repair.c
1902
xrep_orphanage_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dir_repair.c
1903
xrep_orphanage_iunlock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/dir_repair.c
191
xchk_fsgates_enable(sc, XCHK_FSGATES_DIRENTS);
fs/xfs/scrub/dir_repair.c
1920
struct xfs_scrub *sc)
fs/xfs/scrub/dir_repair.c
1922
struct xrep_dir *rd = sc->buf;
fs/xfs/scrub/dir_repair.c
1926
if (!xfs_has_rmapbt(sc->mp))
fs/xfs/scrub/dir_repair.c
1929
if (!xfs_has_exchange_range(sc->mp))
fs/xfs/scrub/dir_repair.c
193
error = xrep_orphanage_try_create(sc);
fs/xfs/scrub/dir_repair.c
1936
if (xfs_has_parent(sc->mp))
fs/xfs/scrub/dir_repair.c
1944
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/dir_repair.c
1952
if (!xrep_orphanage_can_adopt(rd->sc))
fs/xfs/scrub/dir_repair.c
1961
xrep_dir_teardown(sc);
fs/xfs/scrub/dir_repair.c
197
error = xrep_tempfile_create(sc, S_IFDIR);
fs/xfs/scrub/dir_repair.c
204
rd->sc = sc;
fs/xfs/scrub/dir_repair.c
206
sc->buf = rd;
fs/xfs/scrub/dir_repair.c
219
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
223
error = xfs_dir_lookup(sc->tp, sc->ip, &xfs_name_dotdot, &ino, NULL);
fs/xfs/scrub/dir_repair.c
226
if (!xfs_verify_dir_ino(sc->mp, ino))
fs/xfs/scrub/dir_repair.c
229
error = xrep_findparent_confirm(sc, &ino);
fs/xfs/scrub/dir_repair.c
244
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
248
parent_ino = xrep_findparent_from_dcache(sc);
fs/xfs/scrub/dir_repair.c
252
error = xrep_findparent_confirm(sc, &parent_ino);
fs/xfs/scrub/dir_repair.c
266
ino = xrep_findparent_self_reference(rd->sc);
fs/xfs/scrub/dir_repair.c
304
struct xfs_mount *mp = rd->sc->mp;
fs/xfs/scrub/dir_repair.c
307
if (ino == rd->sc->ip->i_ino)
fs/xfs/scrub/dir_repair.c
341
trace_xrep_dir_stash_createname(rd->sc->tempip, name, ino);
fs/xfs/scrub/dir_repair.c
368
trace_xrep_dir_stash_removename(rd->sc->tempip, name, ino);
fs/xfs/scrub/dir_repair.c
388
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
393
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/dir_repair.c
408
trace_xrep_dir_salvaged_parent(sc->ip, ino);
fs/xfs/scrub/dir_repair.c
412
trace_xrep_dir_salvage_entry(sc->ip, &xname, ino);
fs/xfs/scrub/dir_repair.c
418
error = xchk_iget(sc, ino, &ip);
fs/xfs/scrub/dir_repair.c
423
if (xfs_is_metadir_inode(ip) != xfs_is_metadir_inode(rd->sc->ip)) {
fs/xfs/scrub/dir_repair.c
424
xchk_irele(sc, ip);
fs/xfs/scrub/dir_repair.c
429
xchk_irele(sc, ip);
fs/xfs/scrub/dir_repair.c
443
ino = xfs_dir2_sf_get_ino(rd->sc->mp, sfp, sfep);
fs/xfs/scrub/dir_repair.c
471
struct xfs_da_geometry *geo = rd->sc->mp->m_dir_geo;
fs/xfs/scrub/dir_repair.c
488
if (xchk_should_terminate(rd->sc, &error))
fs/xfs/scrub/dir_repair.c
498
offset += xfs_dir2_data_entsize(rd->sc->mp, dep->namelen);
fs/xfs/scrub/dir_repair.c
525
ifp = xfs_ifork_ptr(rd->sc->ip, XFS_DATA_FORK);
fs/xfs/scrub/dir_repair.c
530
trace_xrep_dir_salvaged_parent(rd->sc->ip, ino);
fs/xfs/scrub/dir_repair.c
534
if (xchk_should_terminate(rd->sc, &error))
fs/xfs/scrub/dir_repair.c
537
next = xfs_dir2_sf_nextentry(rd->sc->mp, hdr, sfep);
fs/xfs/scrub/dir_repair.c
565
struct xfs_inode *dp = rd->sc->ip;
fs/xfs/scrub/dir_repair.c
566
struct xfs_mount *mp = rd->sc->mp;
fs/xfs/scrub/dir_repair.c
592
error = xfs_bmap_last_before(rd->sc->tp, dp, &last, XFS_DATA_FORK);
fs/xfs/scrub/dir_repair.c
617
error = xfs_da_read_buf(rd->sc->tp, rd->sc->ip, dabno,
fs/xfs/scrub/dir_repair.c
625
trace_xrep_dir_recover_dirblock(rd->sc->ip, dabno,
fs/xfs/scrub/dir_repair.c
647
if (xfs_dir3_block_header_check(bp, rd->sc->ip->i_ino) != NULL)
fs/xfs/scrub/dir_repair.c
654
if (xfs_dir3_data_header_check(bp, rd->sc->ip->i_ino) != NULL)
fs/xfs/scrub/dir_repair.c
666
xfs_trans_brelse(rd->sc->tp, bp);
fs/xfs/scrub/dir_repair.c
677
rd->args.geo = rd->sc->mp->m_dir_geo;
fs/xfs/scrub/dir_repair.c
679
rd->args.owner = rd->sc->ip->i_ino;
fs/xfs/scrub/dir_repair.c
680
rd->args.trans = rd->sc->tp;
fs/xfs/scrub/dir_repair.c
687
rd->args.hashval = xfs_dir2_hashname(rd->sc->mp, name);
fs/xfs/scrub/dir_repair.c
698
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
699
struct xfs_inode *dp = rd->sc->tempip;
fs/xfs/scrub/dir_repair.c
704
error = xfs_dir_ino_validate(sc->mp, inum);
fs/xfs/scrub/dir_repair.c
747
struct xfs_mount *mp = rd->sc->mp;
fs/xfs/scrub/dir_repair.c
755
error = xchk_trans_alloc(rd->sc, resblks);
fs/xfs/scrub/dir_repair.c
760
xrep_tempfile_ilock(rd->sc);
fs/xfs/scrub/dir_repair.c
761
xfs_trans_ijoin(rd->sc->tp, rd->sc->tempip, 0);
fs/xfs/scrub/dir_repair.c
772
error = xchk_dir_lookup(rd->sc, rd->sc->tempip, xname, &ino);
fs/xfs/scrub/dir_repair.c
796
error = xchk_dir_lookup(rd->sc, rd->sc->tempip, xname, &ino);
fs/xfs/scrub/dir_repair.c
823
error = xrep_trans_commit(rd->sc);
fs/xfs/scrub/dir_repair.c
827
xrep_tempfile_iunlock(rd->sc);
fs/xfs/scrub/dir_repair.c
830
xchk_trans_cancel(rd->sc);
fs/xfs/scrub/dir_repair.c
831
xrep_tempfile_iunlock(rd->sc);
fs/xfs/scrub/dir_repair.c
912
error = xrep_trans_commit(rd->sc);
fs/xfs/scrub/dir_repair.c
915
xchk_iunlock(rd->sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dir_repair.c
923
error = xrep_tempfile_iolock_polled(rd->sc);
fs/xfs/scrub/dir_repair.c
929
xrep_tempfile_iounlock(rd->sc);
fs/xfs/scrub/dir_repair.c
936
error = xchk_trans_alloc(rd->sc, 0);
fs/xfs/scrub/dir_repair.c
939
xchk_ilock(rd->sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dir_repair.c
960
struct xfs_scrub *sc = rd->sc;
fs/xfs/scrub/dir_repair.c
961
struct xfs_da_geometry *geo = sc->mp->m_dir_geo;
fs/xfs/scrub/dir_repair.c
975
error = xfs_bmapi_read(sc->ip, offset, geo->leafblk - offset,
fs/xfs/scrub/dir_repair.c
987
if (xchk_should_terminate(rd->sc, &error))
fs/xfs/scrub/dirtree.c
1001
struct xfs_scrub *sc = dl->sc;
fs/xfs/scrub/dirtree.c
1003
if (xchk_inode_is_dirtree_root(sc->ip))
fs/xfs/scrub/dirtree.c
1005
if (VFS_I(sc->ip)->i_nlink == 0)
fs/xfs/scrub/dirtree.c
101
xchk_fsgates_enable(sc, XCHK_FSGATES_DIRENTS);
fs/xfs/scrub/dirtree.c
103
if (xchk_could_repair(sc)) {
fs/xfs/scrub/dirtree.c
104
error = xrep_setup_dirtree(sc);
fs/xfs/scrub/dirtree.c
112
dl->sc = sc;
fs/xfs/scrub/dirtree.c
131
error = xchk_setup_inode_contents(sc, 0);
fs/xfs/scrub/dirtree.c
135
sc->buf = dl;
fs/xfs/scrub/dirtree.c
136
sc->buf_cleanup = xchk_dirtree_buf_cleanup;
fs/xfs/scrub/dirtree.c
202
struct xfs_scrub *sc,
fs/xfs/scrub/dirtree.c
223
error = xfs_parent_from_attr(sc->mp, attr_flags, name, namelen, value,
fs/xfs/scrub/dirtree.c
235
trace_xchk_dirtree_create_path(sc, ip, dl->nr_paths, &xname, rec);
fs/xfs/scrub/dirtree.c
250
error = xchk_dirpath_append(dl, sc->ip, path, &xname, rec);
fs/xfs/scrub/dirtree.c
281
struct xfs_scrub *sc = dl->sc;
fs/xfs/scrub/dirtree.c
289
error = xfs_parent_lookup(sc->tp, sc->ip, &dl->xname, &dl->pptr_rec,
fs/xfs/scrub/dirtree.c
292
trace_xchk_dirpath_disappeared(dl->sc, sc->ip, path->path_nr,
fs/xfs/scrub/dirtree.c
307
struct xfs_scrub *sc,
fs/xfs/scrub/dirtree.c
323
error = xfs_parent_from_attr(sc->mp, attr_flags, name, namelen, value,
fs/xfs/scrub/dirtree.c
349
trace_xchk_dirpath_set_outcome(dl->sc, path->path_nr, path->nr_steps,
fs/xfs/scrub/dirtree.c
367
struct xfs_scrub *sc = dl->sc;
fs/xfs/scrub/dirtree.c
374
error = xchk_iget(sc, parent_ino, &dp);
fs/xfs/scrub/dirtree.c
397
if (parent_ino == sc->ip->i_ino) {
fs/xfs/scrub/dirtree.c
416
trace_xchk_dirpath_badgen(dl->sc, dp, path->path_nr,
fs/xfs/scrub/dirtree.c
424
trace_xchk_dirpath_nondir_parent(dl->sc, dp, path->path_nr,
fs/xfs/scrub/dirtree.c
432
trace_xchk_dirpath_unlinked_parent(dl->sc, dp, path->path_nr,
fs/xfs/scrub/dirtree.c
440
trace_xchk_dirpath_crosses_tree(dl->sc, dp, path->path_nr,
fs/xfs/scrub/dirtree.c
452
xchk_set_incomplete(sc);
fs/xfs/scrub/dirtree.c
464
error = xchk_xattr_walk(sc, dp, xchk_dirpath_find_next_step, NULL, dl);
fs/xfs/scrub/dirtree.c
486
trace_xchk_dirpath_found_next_step(sc, dp, path->path_nr,
fs/xfs/scrub/dirtree.c
500
xchk_irele(sc, dp);
fs/xfs/scrub/dirtree.c
518
struct xfs_scrub *sc = dl->sc;
fs/xfs/scrub/dirtree.c
522
ASSERT(sc->ilock_flags & XFS_ILOCK_EXCL);
fs/xfs/scrub/dirtree.c
529
trace_xchk_dirpath_walk_upwards(sc, sc->ip, path->path_nr, &dl->xname,
fs/xfs/scrub/dirtree.c
536
if (be64_to_cpu(dl->pptr_rec.p_ino) == sc->ip->i_ino) {
fs/xfs/scrub/dirtree.c
550
is_metadir = xfs_is_metadir_inode(sc->ip);
fs/xfs/scrub/dirtree.c
552
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dirtree.c
562
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dirtree.c
576
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dirtree.c
648
trace_xchk_dirpath_changed(dl->sc, path->path_nr, step_nr, p->dp,
fs/xfs/scrub/dirtree.c
705
trace_xchk_dirtree_live_update(dl->sc, p->dp, action, p->ip, p->delta,
fs/xfs/scrub/dirtree.c
738
ASSERT(dl->sc->ilock_flags & XFS_ILOCK_EXCL);
fs/xfs/scrub/dirtree.c
76
xfs_dir_hook_del(dl->sc->mp, &dl->dhook);
fs/xfs/scrub/dirtree.c
789
struct xfs_scrub *sc = dl->sc;
fs/xfs/scrub/dirtree.c
794
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/dirtree.c
804
if (xchk_pptr_looks_zapped(sc->ip)) {
fs/xfs/scrub/dirtree.c
805
xchk_set_incomplete(sc);
fs/xfs/scrub/dirtree.c
814
error = xchk_xattr_walk(sc, sc->ip, xchk_dirtree_create_path,
fs/xfs/scrub/dirtree.c
869
trace_xchk_dirpath_evaluate_path(dl->sc, path->path_nr,
fs/xfs/scrub/dirtree.c
910
struct xfs_scrub *sc)
fs/xfs/scrub/dirtree.c
913
struct xchk_dirtree *dl = sc->buf;
fs/xfs/scrub/dirtree.c
920
if (!S_ISDIR(VFS_I(sc->ip)->i_mode))
fs/xfs/scrub/dirtree.c
923
ASSERT(xfs_has_parent(sc->mp));
fs/xfs/scrub/dirtree.c
930
dl->root_ino = xchk_inode_rootdir_inum(sc->ip);
fs/xfs/scrub/dirtree.c
931
dl->scan_ino = sc->ip->i_ino;
fs/xfs/scrub/dirtree.c
933
trace_xchk_dirtree_start(sc->ip, sc->sm, 0);
fs/xfs/scrub/dirtree.c
941
ASSERT(sc->flags & XCHK_FSGATES_DIRENTS);
fs/xfs/scrub/dirtree.c
943
error = xfs_dir_hook_add(sc->mp, &dl->dhook);
fs/xfs/scrub/dirtree.c
957
xchk_ino_xref_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/dirtree.c
96
struct xfs_scrub *sc)
fs/xfs/scrub/dirtree.c
974
xchk_set_incomplete(sc);
fs/xfs/scrub/dirtree.c
982
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/dirtree.c
985
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/dirtree.c
987
xchk_ino_xref_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/dirtree.c
993
trace_xchk_dirtree_done(sc->ip, sc->sm, error);
fs/xfs/scrub/dirtree.h
78
struct xfs_scrub *sc;
fs/xfs/scrub/dirtree_repair.c
236
if (dl->sc->orphanage)
fs/xfs/scrub/dirtree_repair.c
345
struct xfs_scrub *sc,
fs/xfs/scrub/dirtree_repair.c
350
ASSERT(sc->ilock_flags & XFS_IOLOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
355
xchk_iunlock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
358
if (xchk_ilock_nowait(sc, XFS_IOLOCK_EXCL))
fs/xfs/scrub/dirtree_repair.c
362
if (xchk_should_terminate(sc, &error)) {
fs/xfs/scrub/dirtree_repair.c
363
xchk_ilock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
384
struct xfs_scrub *sc = dl->sc;
fs/xfs/scrub/dirtree_repair.c
385
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/dirtree_repair.c
393
error = xrep_dirtree_unlink_iolock(sc, dp);
fs/xfs/scrub/dirtree_repair.c
403
error = xfs_trans_alloc_dir(dp, &M_RES(mp)->tr_remove, sc->ip,
fs/xfs/scrub/dirtree_repair.c
404
&resblks, &sc->tp, &dontcare);
fs/xfs/scrub/dirtree_repair.c
421
trace_xrep_dirtree_delete_path(dl->sc, sc->ip, path->path_nr,
fs/xfs/scrub/dirtree_repair.c
436
error = xchk_dir_lookup(sc, sc->ip, &xfs_name_dotdot, &dotdot_ino);
fs/xfs/scrub/dirtree_repair.c
445
error = xfs_droplink(sc->tp, dp);
fs/xfs/scrub/dirtree_repair.c
451
error = xfs_dir_replace(sc->tp, sc->ip, &xfs_name_dotdot,
fs/xfs/scrub/dirtree_repair.c
458
error = xfs_droplink(sc->tp, sc->ip);
fs/xfs/scrub/dirtree_repair.c
462
error = xfs_dir_removename(sc->tp, dp, &dl->xname, sc->ip->i_ino,
fs/xfs/scrub/dirtree_repair.c
469
if (xfs_has_parent(sc->mp)) {
fs/xfs/scrub/dirtree_repair.c
470
error = xfs_parent_removename(sc->tp, &dl->ppargs, dp,
fs/xfs/scrub/dirtree_repair.c
471
&dl->xname, sc->ip);
fs/xfs/scrub/dirtree_repair.c
48
struct xfs_scrub *sc)
fs/xfs/scrub/dirtree_repair.c
480
xfs_dir_update_hook(dp, sc->ip, -1, &dl->xname);
fs/xfs/scrub/dirtree_repair.c
485
error = xrep_trans_commit(sc);
fs/xfs/scrub/dirtree_repair.c
489
xchk_trans_cancel(sc);
fs/xfs/scrub/dirtree_repair.c
491
xfs_iunlock(sc->ip, XFS_ILOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
50
return xrep_orphanage_try_create(sc);
fs/xfs/scrub/dirtree_repair.c
508
struct xfs_scrub *sc = dl->sc;
fs/xfs/scrub/dirtree_repair.c
522
error = xchk_iget(sc, be64_to_cpu(step.pptr_rec.p_ino), &dp);
fs/xfs/scrub/dirtree_repair.c
527
xchk_trans_cancel(sc);
fs/xfs/scrub/dirtree_repair.c
528
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
532
xchk_irele(sc, dp);
fs/xfs/scrub/dirtree_repair.c
539
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/dirtree_repair.c
540
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
553
struct xfs_scrub *sc = dl->sc;
fs/xfs/scrub/dirtree_repair.c
584
xfs_inode_to_parent_rec(&dl->pptr_rec, sc->orphanage);
fs/xfs/scrub/dirtree_repair.c
586
error = xino_bitmap_set(&path->seen_inodes, sc->orphanage->i_ino);
fs/xfs/scrub/dirtree_repair.c
590
trace_xrep_dirtree_create_adoption(sc, sc->ip, dl->nr_paths,
fs/xfs/scrub/dirtree_repair.c
593
error = xchk_dirpath_append(dl, sc->ip, path, &dl->xname,
fs/xfs/scrub/dirtree_repair.c
60
trace_xrep_dirpath_set_outcome(dl->sc, path->path_nr, path->nr_steps,
fs/xfs/scrub/dirtree_repair.c
619
struct xfs_scrub *sc)
fs/xfs/scrub/dirtree_repair.c
623
ASSERT(sc->ilock_flags & XFS_IOLOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
625
if (xrep_orphanage_ilock_nowait(sc, XFS_IOLOCK_EXCL))
fs/xfs/scrub/dirtree_repair.c
628
xchk_iunlock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
630
xrep_orphanage_ilock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
631
if (xchk_ilock_nowait(sc, XFS_IOLOCK_EXCL))
fs/xfs/scrub/dirtree_repair.c
633
xrep_orphanage_iunlock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
635
if (xchk_should_terminate(sc, &error)) {
fs/xfs/scrub/dirtree_repair.c
636
xchk_ilock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
655
struct xfs_scrub *sc = dl->sc;
fs/xfs/scrub/dirtree_repair.c
659
error = xrep_dirtree_adopt_iolock(sc);
fs/xfs/scrub/dirtree_repair.c
669
error = xrep_adoption_trans_alloc(sc, &dl->adoption);
fs/xfs/scrub/dirtree_repair.c
703
error = xrep_trans_commit(sc);
fs/xfs/scrub/dirtree_repair.c
707
xchk_trans_cancel(sc);
fs/xfs/scrub/dirtree_repair.c
709
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
710
xrep_orphanage_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
712
xrep_orphanage_iunlock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
724
struct xfs_scrub *sc = dl->sc;
fs/xfs/scrub/dirtree_repair.c
732
xchk_trans_cancel(sc);
fs/xfs/scrub/dirtree_repair.c
733
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
743
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/dirtree_repair.c
744
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/dirtree_repair.c
776
if (xrep_orphanage_can_adopt(dl->sc))
fs/xfs/scrub/dirtree_repair.c
787
struct xfs_scrub *sc)
fs/xfs/scrub/dirtree_repair.c
789
struct xchk_dirtree *dl = sc->buf;
fs/xfs/scrub/dqiterate.c
148
struct xfs_quotainfo *qi = cursor->sc->mp->m_quotainfo;
fs/xfs/scrub/dqiterate.c
175
struct xfs_mount *mp = cursor->sc->mp;
fs/xfs/scrub/dqiterate.c
28
struct xfs_scrub *sc,
fs/xfs/scrub/dqiterate.c
31
cursor->sc = sc;
fs/xfs/scrub/dqiterate.c
34
cursor->quota_ip = xfs_quota_inode(sc->mp, cursor->dqtype);
fs/xfs/scrub/dqiterate.c
46
struct xfs_quotainfo *qi = cursor->sc->mp->m_quotainfo;
fs/xfs/scrub/dqiterate.c
90
struct xfs_quotainfo *qi = cursor->sc->mp->m_quotainfo;
fs/xfs/scrub/findparent.c
106
if (xchk_should_terminate(fpi->sc, &error))
fs/xfs/scrub/findparent.c
109
if (ino != fpi->sc->ip->i_ino)
fs/xfs/scrub/findparent.c
127
trace_xrep_findparent_dirent(fpi->sc->ip, 0);
fs/xfs/scrub/findparent.c
132
trace_xrep_findparent_dirent(fpi->sc->ip, fpi->dp->i_ino);
fs/xfs/scrub/findparent.c
150
struct xfs_scrub *sc = fpi->sc;
fs/xfs/scrub/findparent.c
159
if (dp == sc->ip || dp == sc->tempip)
fs/xfs/scrub/findparent.c
176
if (xfs_is_metadir_inode(dp) != xfs_is_metadir_inode(sc->ip))
fs/xfs/scrub/findparent.c
199
error = xchk_dir_walk(sc, dp, xrep_findparent_dirent, fpi);
fs/xfs/scrub/findparent.c
219
struct xfs_scrub *sc;
fs/xfs/scrub/findparent.c
223
sc = pscan->sc;
fs/xfs/scrub/findparent.c
230
if (p->ip->i_ino == sc->ip->i_ino &&
fs/xfs/scrub/findparent.c
248
struct xfs_scrub *sc,
fs/xfs/scrub/findparent.c
254
if (!(sc->flags & XCHK_FSGATES_DIRENTS)) {
fs/xfs/scrub/findparent.c
255
ASSERT(sc->flags & XCHK_FSGATES_DIRENTS);
fs/xfs/scrub/findparent.c
259
pscan->sc = sc;
fs/xfs/scrub/findparent.c
264
xchk_iscan_start(sc, 30000, 100, &pscan->iscan);
fs/xfs/scrub/findparent.c
276
error = xfs_dir_hook_add(sc->mp, &pscan->dhook);
fs/xfs/scrub/findparent.c
302
.sc = pscan->sc,
fs/xfs/scrub/findparent.c
306
struct xfs_scrub *sc = pscan->sc;
fs/xfs/scrub/findparent.c
309
ASSERT(S_ISDIR(VFS_IC(sc->ip)->i_mode));
fs/xfs/scrub/findparent.c
317
xchk_irele(sc, fpi.dp);
fs/xfs/scrub/findparent.c
321
if (xchk_should_terminate(sc, &ret))
fs/xfs/scrub/findparent.c
334
xfs_dir_hook_del(pscan->sc->mp, &pscan->dhook);
fs/xfs/scrub/findparent.c
360
struct xfs_scrub *sc,
fs/xfs/scrub/findparent.c
364
.sc = sc,
fs/xfs/scrub/findparent.c
370
if (sc->ip == sc->mp->m_rootip) {
fs/xfs/scrub/findparent.c
371
*parent_ino = sc->mp->m_sb.sb_rootino;
fs/xfs/scrub/findparent.c
376
if (sc->ip == sc->mp->m_metadirip) {
fs/xfs/scrub/findparent.c
377
*parent_ino = sc->mp->m_sb.sb_metadirino;
fs/xfs/scrub/findparent.c
382
if (VFS_I(sc->ip)->i_nlink == 0) {
fs/xfs/scrub/findparent.c
383
*parent_ino = xchk_inode_rootdir_inum(sc->ip);
fs/xfs/scrub/findparent.c
390
if (!xfs_verify_dir_ino(sc->mp, *parent_ino) ||
fs/xfs/scrub/findparent.c
391
*parent_ino == sc->ip->i_ino) {
fs/xfs/scrub/findparent.c
396
error = xchk_iget(sc, *parent_ino, &fpi.dp);
fs/xfs/scrub/findparent.c
411
xchk_irele(sc, fpi.dp);
fs/xfs/scrub/findparent.c
423
struct xfs_scrub *sc)
fs/xfs/scrub/findparent.c
425
if (sc->ip->i_ino == sc->mp->m_sb.sb_rootino)
fs/xfs/scrub/findparent.c
426
return sc->mp->m_sb.sb_rootino;
fs/xfs/scrub/findparent.c
428
if (sc->ip->i_ino == sc->mp->m_sb.sb_metadirino)
fs/xfs/scrub/findparent.c
429
return sc->mp->m_sb.sb_metadirino;
fs/xfs/scrub/findparent.c
431
if (VFS_I(sc->ip)->i_nlink == 0)
fs/xfs/scrub/findparent.c
432
return xchk_inode_rootdir_inum(sc->ip);
fs/xfs/scrub/findparent.c
440
struct xfs_scrub *sc)
fs/xfs/scrub/findparent.c
446
dentry = d_find_alias(VFS_I(sc->ip));
fs/xfs/scrub/findparent.c
454
ASSERT(parent->d_sb == sc->ip->i_mount->m_super);
fs/xfs/scrub/findparent.c
460
trace_xrep_findparent_from_dcache(sc->ip, XFS_I(pip)->i_ino);
fs/xfs/scrub/findparent.c
464
xchk_irele(sc, XFS_I(pip));
fs/xfs/scrub/findparent.c
70
struct xfs_scrub *sc;
fs/xfs/scrub/findparent.c
96
struct xfs_scrub *sc,
fs/xfs/scrub/findparent.h
10
struct xfs_scrub *sc;
fs/xfs/scrub/findparent.h
27
int __xrep_findparent_scan_start(struct xfs_scrub *sc,
fs/xfs/scrub/findparent.h
30
static inline int xrep_findparent_scan_start(struct xfs_scrub *sc,
fs/xfs/scrub/findparent.h
33
return __xrep_findparent_scan_start(sc, pscan, NULL);
fs/xfs/scrub/findparent.h
51
int xrep_findparent_confirm(struct xfs_scrub *sc, xfs_ino_t *parent_ino);
fs/xfs/scrub/findparent.h
53
xfs_ino_t xrep_findparent_self_reference(struct xfs_scrub *sc);
fs/xfs/scrub/findparent.h
54
xfs_ino_t xrep_findparent_from_dcache(struct xfs_scrub *sc);
fs/xfs/scrub/fscounters.c
122
struct xfs_scrub *sc)
fs/xfs/scrub/fscounters.c
126
error = freeze_super(sc->mp->m_super, FREEZE_HOLDER_KERNEL, NULL);
fs/xfs/scrub/fscounters.c
127
trace_xchk_fsfreeze(sc, error);
fs/xfs/scrub/fscounters.c
133
struct xfs_scrub *sc)
fs/xfs/scrub/fscounters.c
138
error = thaw_super(sc->mp->m_super, FREEZE_HOLDER_KERNEL, NULL);
fs/xfs/scrub/fscounters.c
139
trace_xchk_fsthaw(sc, error);
fs/xfs/scrub/fscounters.c
153
struct xfs_scrub *sc)
fs/xfs/scrub/fscounters.c
155
struct xchk_fscounters *fsc = sc->buf;
fs/xfs/scrub/fscounters.c
158
if (sc->flags & XCHK_HAVE_FREEZE_PROT) {
fs/xfs/scrub/fscounters.c
159
sc->flags &= ~XCHK_HAVE_FREEZE_PROT;
fs/xfs/scrub/fscounters.c
160
mnt_drop_write_file(sc->file);
fs/xfs/scrub/fscounters.c
164
while ((error = xchk_fsfreeze(sc)) == -EBUSY) {
fs/xfs/scrub/fscounters.c
165
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/fscounters.c
183
struct xfs_scrub *sc = fsc->sc;
fs/xfs/scrub/fscounters.c
189
error = xchk_fsthaw(sc);
fs/xfs/scrub/fscounters.c
191
xfs_emerg(sc->mp, "still frozen after scrub, err=%d", error);
fs/xfs/scrub/fscounters.c
198
struct xfs_scrub *sc)
fs/xfs/scrub/fscounters.c
207
if (!xfs_has_lazysbcount(sc->mp))
fs/xfs/scrub/fscounters.c
208
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
fs/xfs/scrub/fscounters.c
210
sc->buf = kzalloc_obj(struct xchk_fscounters, XCHK_GFP_FLAGS);
fs/xfs/scrub/fscounters.c
211
if (!sc->buf)
fs/xfs/scrub/fscounters.c
213
sc->buf_cleanup = xchk_fscounters_cleanup;
fs/xfs/scrub/fscounters.c
214
fsc = sc->buf;
fs/xfs/scrub/fscounters.c
215
fsc->sc = sc;
fs/xfs/scrub/fscounters.c
217
xfs_icount_range(sc->mp, &fsc->icount_min, &fsc->icount_max);
fs/xfs/scrub/fscounters.c
220
error = xchk_fscount_warmup(sc);
fs/xfs/scrub/fscounters.c
234
if ((sc->flags & XCHK_TRY_HARDER) || xchk_could_repair(sc)) {
fs/xfs/scrub/fscounters.c
235
error = xchk_fscounters_freeze(sc);
fs/xfs/scrub/fscounters.c
240
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/fscounters.c
261
struct xfs_scrub *sc,
fs/xfs/scrub/fscounters.c
268
error = xchk_ag_init_existing(sc, agno, &sc->sa);
fs/xfs/scrub/fscounters.c
272
error = xfs_btree_count_blocks(sc->sa.bno_cur, &blocks);
fs/xfs/scrub/fscounters.c
277
error = xfs_btree_count_blocks(sc->sa.cnt_cur, &blocks);
fs/xfs/scrub/fscounters.c
283
xchk_ag_free(sc, &sc->sa);
fs/xfs/scrub/fscounters.c
295
struct xfs_scrub *sc,
fs/xfs/scrub/fscounters.c
298
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/fscounters.c
310
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/fscounters.c
327
if (xfs_has_lazysbcount(sc->mp)) {
fs/xfs/scrub/fscounters.c
330
error = xchk_fscount_btreeblks(sc, fsc, pag_agno(pag));
fs/xfs/scrub/fscounters.c
346
xchk_set_incomplete(sc);
fs/xfs/scrub/fscounters.c
401
xchk_should_terminate(fsc->sc, &error);
fs/xfs/scrub/fscounters.c
408
struct xfs_scrub *sc,
fs/xfs/scrub/fscounters.c
411
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/fscounters.c
428
error = xfs_rtalloc_query_all(rtg, sc->tp,
fs/xfs/scrub/fscounters.c
432
xchk_set_incomplete(sc);
fs/xfs/scrub/fscounters.c
444
struct xfs_scrub *sc,
fs/xfs/scrub/fscounters.c
475
struct xfs_scrub *sc,
fs/xfs/scrub/fscounters.c
483
trace_xchk_fscounters_within_range(sc->mp, expected, curr_value,
fs/xfs/scrub/fscounters.c
495
if (sc->sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR)
fs/xfs/scrub/fscounters.c
512
struct xfs_scrub *sc)
fs/xfs/scrub/fscounters.c
514
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/fscounters.c
515
struct xchk_fscounters *fsc = sc->buf;
fs/xfs/scrub/fscounters.c
528
xchk_set_corrupt(sc);
fs/xfs/scrub/fscounters.c
543
xchk_set_corrupt(sc);
fs/xfs/scrub/fscounters.c
549
xchk_set_corrupt(sc);
fs/xfs/scrub/fscounters.c
553
xchk_set_corrupt(sc);
fs/xfs/scrub/fscounters.c
557
xchk_set_corrupt(sc);
fs/xfs/scrub/fscounters.c
564
xchk_set_corrupt(sc);
fs/xfs/scrub/fscounters.c
567
error = xchk_fscount_aggregate_agcounts(sc, fsc);
fs/xfs/scrub/fscounters.c
568
if (!xchk_process_error(sc, 0, XFS_SB_BLOCK(mp), &error))
fs/xfs/scrub/fscounters.c
572
error = xchk_fscount_count_frextents(sc, fsc);
fs/xfs/scrub/fscounters.c
573
if (!xchk_process_error(sc, 0, XFS_SB_BLOCK(mp), &error))
fs/xfs/scrub/fscounters.c
575
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_INCOMPLETE)
fs/xfs/scrub/fscounters.c
584
if (!xchk_fscount_within_range(sc, icount, &mp->m_icount,
fs/xfs/scrub/fscounters.c
587
xchk_set_corrupt(sc);
fs/xfs/scrub/fscounters.c
592
if (!xchk_fscount_within_range(sc, ifree, &mp->m_ifree, fsc->ifree)) {
fs/xfs/scrub/fscounters.c
594
xchk_set_corrupt(sc);
fs/xfs/scrub/fscounters.c
599
if (!xchk_fscount_within_range(sc, fdblocks,
fs/xfs/scrub/fscounters.c
602
xchk_set_corrupt(sc);
fs/xfs/scrub/fscounters.c
608
!xchk_fscount_within_range(sc, frextents,
fs/xfs/scrub/fscounters.c
612
xchk_set_corrupt(sc);
fs/xfs/scrub/fscounters.c
72
struct xfs_scrub *sc)
fs/xfs/scrub/fscounters.c
74
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/fscounters.c
81
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/fscounters.c
88
error = xfs_ialloc_read_agi(pag, sc->tp, 0, &agi_bp);
fs/xfs/scrub/fscounters.c
91
error = xfs_alloc_read_agf(pag, sc->tp, 0, &agf_bp);
fs/xfs/scrub/fscounters.h
10
struct xfs_scrub *sc;
fs/xfs/scrub/fscounters_repair.c
48
struct xfs_scrub *sc)
fs/xfs/scrub/fscounters_repair.c
50
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/fscounters_repair.c
51
struct xchk_fscounters *fsc = sc->buf;
fs/xfs/scrub/health.c
135
struct xfs_scrub *sc,
fs/xfs/scrub/health.c
138
if (!(sc->sm->sm_flags & (XFS_SCRUB_OFLAG_CORRUPT |
fs/xfs/scrub/health.c
140
sc->healthy_mask |= mask;
fs/xfs/scrub/health.c
150
struct xfs_scrub *sc,
fs/xfs/scrub/health.c
155
if (sc->flags & XREP_ALREADY_FIXED)
fs/xfs/scrub/health.c
158
return xfs_inode_has_sickness(sc->ip, mask);
fs/xfs/scrub/health.c
192
struct xfs_scrub *sc)
fs/xfs/scrub/health.c
196
unsigned int mask = sc->sick_mask;
fs/xfs/scrub/health.c
205
if (sc->sm->sm_type == XFS_SCRUB_TYPE_HEALTHY &&
fs/xfs/scrub/health.c
206
!(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)) {
fs/xfs/scrub/health.c
207
xchk_mark_all_healthy(sc->mp);
fs/xfs/scrub/health.c
211
bad = (sc->sm->sm_flags & (XFS_SCRUB_OFLAG_CORRUPT |
fs/xfs/scrub/health.c
214
mask |= sc->healthy_mask;
fs/xfs/scrub/health.c
215
switch (type_to_health_flag[sc->sm->sm_type].group) {
fs/xfs/scrub/health.c
221
pag = xfs_perag_get(sc->mp, sc->sm->sm_agno);
fs/xfs/scrub/health.c
229
if (!sc->ip)
fs/xfs/scrub/health.c
236
if (sc->sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR)
fs/xfs/scrub/health.c
241
xfs_inode_mark_corrupt(sc->ip, mask);
fs/xfs/scrub/health.c
243
xfs_inode_mark_healthy(sc->ip, mask);
fs/xfs/scrub/health.c
249
xfs_fs_mark_corrupt(sc->mp, mask);
fs/xfs/scrub/health.c
251
xfs_fs_mark_healthy(sc->mp, mask);
fs/xfs/scrub/health.c
256
rtg = xfs_rtgroup_get(sc->mp, sc->sm->sm_agno);
fs/xfs/scrub/health.c
272
struct xfs_scrub *sc,
fs/xfs/scrub/health.c
285
if (sc->sm->sm_type == sm_type)
fs/xfs/scrub/health.c
294
if ((sc->flags & XREP_ALREADY_FIXED) &&
fs/xfs/scrub/health.c
295
type_to_health_flag[sc->sm->sm_type].group == XHG_AG)
fs/xfs/scrub/health.c
296
mask &= ~sc->sick_mask;
fs/xfs/scrub/health.c
299
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_XFAIL;
fs/xfs/scrub/health.c
312
struct xfs_scrub *sc)
fs/xfs/scrub/health.c
314
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/health.c
322
xchk_set_corrupt(sc);
fs/xfs/scrub/health.c
327
xchk_set_corrupt(sc);
fs/xfs/scrub/health.c
333
xchk_set_corrupt(sc);
fs/xfs/scrub/health.h
10
void xchk_update_health(struct xfs_scrub *sc);
fs/xfs/scrub/health.h
11
void xchk_ag_btree_del_cursor_if_sick(struct xfs_scrub *sc,
fs/xfs/scrub/health.h
13
void xchk_mark_healthy_if_clean(struct xfs_scrub *sc, unsigned int mask);
fs/xfs/scrub/health.h
14
bool xchk_file_looks_zapped(struct xfs_scrub *sc, unsigned int mask);
fs/xfs/scrub/health.h
15
int xchk_health_record(struct xfs_scrub *sc);
fs/xfs/scrub/ialloc.c
101
xchk_btree_xref_set_corrupt(sc, cur, 0);
fs/xfs/scrub/ialloc.c
103
xchk_btree_xref_set_corrupt(sc, cur, 0);
fs/xfs/scrub/ialloc.c
123
xchk_btree_xref_set_corrupt(sc, cur, 0);
fs/xfs/scrub/ialloc.c
133
struct xfs_scrub *sc,
fs/xfs/scrub/ialloc.c
142
ASSERT(sc->sm->sm_type == XFS_SCRUB_TYPE_INOBT);
fs/xfs/scrub/ialloc.c
144
if (!sc->sa.fino_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/ialloc.c
157
error = xchk_inobt_xref_finobt(sc, irec, i, free, hole);
fs/xfs/scrub/ialloc.c
158
if (!xchk_should_check_xref(sc, &error, &sc->sa.fino_cur))
fs/xfs/scrub/ialloc.c
169
struct xfs_scrub *sc,
fs/xfs/scrub/ialloc.c
176
struct xfs_btree_cur *cur = sc->sa.ino_cur;
fs/xfs/scrub/ialloc.c
204
xchk_btree_xref_set_corrupt(sc, cur, 0);
fs/xfs/scrub/ialloc.c
206
xchk_btree_xref_set_corrupt(sc, cur, 0);
fs/xfs/scrub/ialloc.c
211
xchk_btree_xref_set_corrupt(sc, cur, 0);
fs/xfs/scrub/ialloc.c
221
struct xfs_scrub *sc,
fs/xfs/scrub/ialloc.c
230
ASSERT(sc->sm->sm_type == XFS_SCRUB_TYPE_FINOBT);
fs/xfs/scrub/ialloc.c
232
if (!sc->sa.ino_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/ialloc.c
245
error = xchk_finobt_xref_inobt(sc, frec, i, ffree, fhole);
fs/xfs/scrub/ialloc.c
246
if (!xchk_should_check_xref(sc, &error, &sc->sa.ino_cur))
fs/xfs/scrub/ialloc.c
259
struct xfs_scrub *sc = bs->sc;
fs/xfs/scrub/ialloc.c
269
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
271
if (bs->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/ialloc.c
274
xchk_xref_is_used_space(sc, agbno, len);
fs/xfs/scrub/ialloc.c
275
if (sc->sm->sm_type == XFS_SCRUB_TYPE_INOBT)
fs/xfs/scrub/ialloc.c
276
xchk_inobt_chunk_xref_finobt(sc, irec, agino, nr_inodes);
fs/xfs/scrub/ialloc.c
278
xchk_finobt_chunk_xref_inobt(sc, irec, agino, nr_inodes);
fs/xfs/scrub/ialloc.c
279
xchk_xref_is_only_owned_by(sc, agbno, len, &XFS_RMAP_OINFO_INODES);
fs/xfs/scrub/ialloc.c
280
xchk_xref_is_not_shared(sc, agbno, len);
fs/xfs/scrub/ialloc.c
281
xchk_xref_is_not_cow_staging(sc, agbno, len);
fs/xfs/scrub/ialloc.c
313
if (xchk_should_terminate(bs->sc, &error))
fs/xfs/scrub/ialloc.c
326
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
33
struct xfs_scrub *sc)
fs/xfs/scrub/ialloc.c
330
error = xchk_inode_is_allocated(bs->sc, agino, &ino_inuse);
fs/xfs/scrub/ialloc.c
334
if (!(bs->sc->flags & XCHK_TRY_HARDER) && !freemask_ok)
fs/xfs/scrub/ialloc.c
348
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
35
if (xchk_need_intent_drain(sc))
fs/xfs/scrub/ialloc.c
36
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
fs/xfs/scrub/ialloc.c
37
return xchk_setup_ag_btree(sc, sc->flags & XCHK_TRY_HARDER);
fs/xfs/scrub/ialloc.c
404
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
416
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
422
xchk_xref_is_not_owned_by(bs->sc, agbno,
fs/xfs/scrub/ialloc.c
428
xchk_xref_is_only_owned_by(bs->sc, agbno, M_IGEO(mp)->blocks_per_cluster,
fs/xfs/scrub/ialloc.c
433
if (!xchk_btree_xref_process_error(bs->sc, bs->cur, 0, &error))
fs/xfs/scrub/ialloc.c
441
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
479
cluster_base += M_IGEO(bs->sc->mp)->inodes_per_cluster) {
fs/xfs/scrub/ialloc.c
499
struct xfs_mount *mp = bs->sc->mp;
fs/xfs/scrub/ialloc.c
521
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
532
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
548
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
553
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
587
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
594
if (bs->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/ialloc.c
602
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
616
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
630
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/ialloc.c
633
if (bs->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/ialloc.c
650
struct xfs_scrub *sc)
fs/xfs/scrub/ialloc.c
657
if (!sc->sa.ino_cur || !sc->sa.rmap_cur ||
fs/xfs/scrub/ialloc.c
658
(xfs_has_finobt(sc->mp) && !sc->sa.fino_cur) ||
fs/xfs/scrub/ialloc.c
659
xchk_skip_xref(sc->sm))
fs/xfs/scrub/ialloc.c
66
struct xfs_scrub *sc,
fs/xfs/scrub/ialloc.c
663
error = xfs_btree_count_blocks(sc->sa.ino_cur, &inobt_blocks);
fs/xfs/scrub/ialloc.c
664
if (!xchk_process_error(sc, 0, 0, &error))
fs/xfs/scrub/ialloc.c
667
if (sc->sa.fino_cur) {
fs/xfs/scrub/ialloc.c
668
error = xfs_btree_count_blocks(sc->sa.fino_cur, &finobt_blocks);
fs/xfs/scrub/ialloc.c
669
if (!xchk_process_error(sc, 0, 0, &error))
fs/xfs/scrub/ialloc.c
673
error = xchk_count_rmap_ownedby_ag(sc, sc->sa.rmap_cur,
fs/xfs/scrub/ialloc.c
675
if (!xchk_should_check_xref(sc, &error, &sc->sa.rmap_cur))
fs/xfs/scrub/ialloc.c
678
xchk_btree_set_corrupt(sc, sc->sa.ino_cur, 0);
fs/xfs/scrub/ialloc.c
687
struct xfs_scrub *sc,
fs/xfs/scrub/ialloc.c
694
if (!sc->sa.rmap_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/ialloc.c
698
error = xchk_count_rmap_ownedby_ag(sc, sc->sa.rmap_cur,
fs/xfs/scrub/ialloc.c
700
if (!xchk_should_check_xref(sc, &error, &sc->sa.rmap_cur))
fs/xfs/scrub/ialloc.c
702
inode_blocks = XFS_B_TO_FSB(sc->mp, inodes * sc->mp->m_sb.sb_inodesize);
fs/xfs/scrub/ialloc.c
704
xchk_btree_xref_set_corrupt(sc, sc->sa.rmap_cur, 0);
fs/xfs/scrub/ialloc.c
710
struct xfs_scrub *sc)
fs/xfs/scrub/ialloc.c
720
switch (sc->sm->sm_type) {
fs/xfs/scrub/ialloc.c
722
cur = sc->sa.ino_cur;
fs/xfs/scrub/ialloc.c
725
cur = sc->sa.fino_cur;
fs/xfs/scrub/ialloc.c
73
struct xfs_btree_cur *cur = sc->sa.fino_cur;
fs/xfs/scrub/ialloc.c
732
error = xchk_btree(sc, cur, xchk_iallocbt_rec, &XFS_RMAP_OINFO_INOBT,
fs/xfs/scrub/ialloc.c
737
xchk_iallocbt_xref_rmap_btreeblks(sc);
fs/xfs/scrub/ialloc.c
746
if (sc->sm->sm_type == XFS_SCRUB_TYPE_INOBT)
fs/xfs/scrub/ialloc.c
747
xchk_iallocbt_xref_rmap_inodes(sc, iabt.inodes);
fs/xfs/scrub/ialloc.c
754
struct xfs_scrub *sc,
fs/xfs/scrub/ialloc.c
763
if (!(*icur) || xchk_skip_xref(sc->sm))
fs/xfs/scrub/ialloc.c
767
if (!xchk_should_check_xref(sc, &error, icur))
fs/xfs/scrub/ialloc.c
770
xchk_btree_xref_set_corrupt(sc, *icur, 0);
fs/xfs/scrub/ialloc.c
776
struct xfs_scrub *sc,
fs/xfs/scrub/ialloc.c
780
xchk_xref_inode_check(sc, agbno, len, &sc->sa.ino_cur,
fs/xfs/scrub/ialloc.c
782
xchk_xref_inode_check(sc, agbno, len, &sc->sa.fino_cur,
fs/xfs/scrub/ialloc.c
789
struct xfs_scrub *sc,
fs/xfs/scrub/ialloc.c
793
xchk_xref_inode_check(sc, agbno, len, &sc->sa.ino_cur,
fs/xfs/scrub/ialloc_repair.c
112
struct xfs_scrub *sc;
fs/xfs/scrub/ialloc_repair.c
146
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/ialloc_repair.c
147
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/ialloc_repair.c
166
be64_to_cpu(dip->di_ino) != xfs_agino_to_ino(ri->sc->sa.pag, agino))
fs/xfs/scrub/ialloc_repair.c
170
error = xchk_inode_is_allocated(sc, agino, inuse);
fs/xfs/scrub/ialloc_repair.c
185
if (xchk_should_terminate(ri->sc, &error))
fs/xfs/scrub/ialloc_repair.c
189
if (xfs_inobt_check_irec(ri->sc->sa.pag, &ri->rie) != NULL)
fs/xfs/scrub/ialloc_repair.c
195
trace_xrep_ibt_found(ri->sc->sa.pag, &ri->rie);
fs/xfs/scrub/ialloc_repair.c
224
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/ialloc_repair.c
225
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/ialloc_repair.c
292
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/ialloc_repair.c
293
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/ialloc_repair.c
308
imap.im_blkno = xfs_agbno_to_daddr(sc->sa.pag, cluster_bno);
fs/xfs/scrub/ialloc_repair.c
311
error = xfs_imap_to_bp(mp, sc->tp, &imap, &cluster_bp);
fs/xfs/scrub/ialloc_repair.c
331
xfs_trans_brelse(sc->tp, cluster_bp);
fs/xfs/scrub/ialloc_repair.c
338
struct xfs_scrub *sc,
fs/xfs/scrub/ialloc_repair.c
342
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/ialloc_repair.c
349
if (!xfs_verify_agbext(sc->sa.pag, agbno, len))
fs/xfs/scrub/ialloc_repair.c
377
if (!xfs_verify_agino(sc->sa.pag, agino))
fs/xfs/scrub/ialloc_repair.c
381
if (!xfs_verify_agino(sc->sa.pag, agino))
fs/xfs/scrub/ialloc_repair.c
385
error = xfs_alloc_has_records(sc->sa.bno_cur, agbno, len, &outcome);
fs/xfs/scrub/ialloc_repair.c
400
if (!xfs_verify_agbext(ri->sc->sa.pag, rec->rm_startblock,
fs/xfs/scrub/ialloc_repair.c
414
struct xfs_mount *mp = ri->sc->mp;
fs/xfs/scrub/ialloc_repair.c
419
error = xrep_ibt_check_inode_ext(ri->sc, rec->rm_startblock,
fs/xfs/scrub/ialloc_repair.c
424
trace_xrep_ibt_walk_rmap(ri->sc->sa.pag, rec);
fs/xfs/scrub/ialloc_repair.c
451
if (xchk_should_terminate(ri->sc, &error))
fs/xfs/scrub/ialloc_repair.c
473
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/ialloc_repair.c
479
xrep_ag_btcur_init(sc, &sc->sa);
fs/xfs/scrub/ialloc_repair.c
480
error = xfs_rmap_query_all(sc->sa.rmap_cur, xrep_ibt_walk_rmap, ri);
fs/xfs/scrub/ialloc_repair.c
481
xchk_ag_btcur_free(&sc->sa);
fs/xfs/scrub/ialloc_repair.c
497
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/ialloc_repair.c
498
struct xfs_agi *agi = sc->sa.agi_bp->b_addr;
fs/xfs/scrub/ialloc_repair.c
502
xfs_force_summary_recalc(sc->mp);
fs/xfs/scrub/ialloc_repair.c
510
xfs_ialloc_log_agi(sc->tp, sc->sa.agi_bp,
fs/xfs/scrub/ialloc_repair.c
514
return xrep_reinit_pagi(sc);
fs/xfs/scrub/ialloc_repair.c
609
if (xchk_should_terminate(ri->sc, &error))
fs/xfs/scrub/ialloc_repair.c
630
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/ialloc_repair.c
636
need_finobt = xfs_has_finobt(sc->mp);
fs/xfs/scrub/ialloc_repair.c
654
xrep_newbt_init_ag(&ri->new_inobt, sc, &XFS_RMAP_OINFO_INOBT,
fs/xfs/scrub/ialloc_repair.c
655
xfs_agbno_to_fsb(sc->sa.pag, XFS_IBT_BLOCK(sc->mp)),
fs/xfs/scrub/ialloc_repair.c
660
ino_cur = xfs_inobt_init_cursor(sc->sa.pag, NULL, NULL);
fs/xfs/scrub/ialloc_repair.c
671
if (sc->mp->m_finobt_nores)
fs/xfs/scrub/ialloc_repair.c
674
xrep_newbt_init_ag(&ri->new_finobt, sc, &XFS_RMAP_OINFO_INOBT,
fs/xfs/scrub/ialloc_repair.c
675
xfs_agbno_to_fsb(sc->sa.pag, XFS_FIBT_BLOCK(sc->mp)),
fs/xfs/scrub/ialloc_repair.c
680
fino_cur = xfs_finobt_init_cursor(sc->sa.pag, NULL, NULL);
fs/xfs/scrub/ialloc_repair.c
689
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/ialloc_repair.c
723
xfs_inobt_commit_staged_btree(ino_cur, sc->tp, sc->sa.agi_bp);
fs/xfs/scrub/ialloc_repair.c
727
xfs_inobt_commit_staged_btree(fino_cur, sc->tp, sc->sa.agi_bp);
fs/xfs/scrub/ialloc_repair.c
746
return xrep_roll_ag_trans(sc);
fs/xfs/scrub/ialloc_repair.c
769
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/ialloc_repair.c
778
error = xrep_reap_agblocks(sc, &ri->old_iallocbt_blocks,
fs/xfs/scrub/ialloc_repair.c
787
if (xfs_has_finobt(sc->mp) && !sc->mp->m_finobt_nores)
fs/xfs/scrub/ialloc_repair.c
788
sc->flags |= XREP_RESET_PERAG_RESV;
fs/xfs/scrub/ialloc_repair.c
796
struct xfs_scrub *sc)
fs/xfs/scrub/ialloc_repair.c
799
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/ialloc_repair.c
810
ri->sc = sc;
fs/xfs/scrub/ialloc_repair.c
813
sc->sick_mask = XFS_SICK_AG_INOBT | XFS_SICK_AG_FINOBT;
fs/xfs/scrub/ialloc_repair.c
816
xfs_agino_range(mp, pag_agno(sc->sa.pag), &first_agino, &last_agino);
fs/xfs/scrub/ialloc_repair.c
851
struct xfs_scrub *sc)
fs/xfs/scrub/ialloc_repair.c
853
__u32 old_type = sc->sm->sm_type;
fs/xfs/scrub/ialloc_repair.c
861
sc->sm->sm_type = XFS_SCRUB_TYPE_INOBT;
fs/xfs/scrub/ialloc_repair.c
862
error = xchk_iallocbt(sc);
fs/xfs/scrub/ialloc_repair.c
874
if (!xfs_has_finobt(sc->mp) ||
fs/xfs/scrub/ialloc_repair.c
875
(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/ialloc_repair.c
878
sc->sm->sm_type = XFS_SCRUB_TYPE_FINOBT;
fs/xfs/scrub/ialloc_repair.c
879
if (!sc->sa.fino_cur) {
fs/xfs/scrub/ialloc_repair.c
880
xchk_set_incomplete(sc);
fs/xfs/scrub/ialloc_repair.c
883
error = xchk_iallocbt(sc);
fs/xfs/scrub/ialloc_repair.c
886
sc->sm->sm_type = old_type;
fs/xfs/scrub/inode.c
101
if (xchk_need_intent_drain(sc))
fs/xfs/scrub/inode.c
102
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
fs/xfs/scrub/inode.c
105
if (sc->sm->sm_ino == 0 || sc->sm->sm_ino == ip_in->i_ino) {
fs/xfs/scrub/inode.c
106
error = xchk_install_live_inode(sc, ip_in);
fs/xfs/scrub/inode.c
110
return xchk_prepare_iscrub(sc);
fs/xfs/scrub/inode.c
119
if (!xfs_has_metadir(mp) && xfs_is_sb_inum(mp, sc->sm->sm_ino))
fs/xfs/scrub/inode.c
122
if (!xfs_verify_ino(sc->mp, sc->sm->sm_ino))
fs/xfs/scrub/inode.c
126
error = xchk_iget_safe(sc, sc->sm->sm_ino, &ip);
fs/xfs/scrub/inode.c
128
return xchk_install_handle_iscrub(sc, ip);
fs/xfs/scrub/inode.c
156
error = xchk_trans_alloc(sc, 0);
fs/xfs/scrub/inode.c
160
error = xchk_iget_agi(sc, sc->sm->sm_ino, &agi_bp, &ip);
fs/xfs/scrub/inode.c
163
xchk_trans_cancel(sc);
fs/xfs/scrub/inode.c
164
return xchk_install_handle_iscrub(sc, ip);
fs/xfs/scrub/inode.c
189
pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, sc->sm->sm_ino));
fs/xfs/scrub/inode.c
195
error = xfs_imap(pag, sc->tp, sc->sm->sm_ino, &imap,
fs/xfs/scrub/inode.c
214
if (xchk_could_repair(sc))
fs/xfs/scrub/inode.c
215
xrep_setup_inode(sc, &imap);
fs/xfs/scrub/inode.c
219
xchk_trans_cancel(sc);
fs/xfs/scrub/inode.c
221
trace_xchk_op_error(sc, agno, XFS_INO_TO_AGBNO(mp, sc->sm->sm_ino),
fs/xfs/scrub/inode.c
226
xchk_trans_cancel(sc);
fs/xfs/scrub/inode.c
235
struct xfs_scrub *sc,
fs/xfs/scrub/inode.c
244
fa = xfs_inode_validate_extsize(sc->mp, value, mode, flags);
fs/xfs/scrub/inode.c
246
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
259
xfs_extlen_to_rtxmod(sc->mp, value) > 0)
fs/xfs/scrub/inode.c
260
xchk_ino_set_warning(sc, ino);
fs/xfs/scrub/inode.c
266
struct xfs_scrub *sc,
fs/xfs/scrub/inode.c
279
if (xfs_has_zoned(sc->mp) &&
fs/xfs/scrub/inode.c
283
fa = xfs_inode_validate_cowextsize(sc->mp, value, mode, flags, flags2);
fs/xfs/scrub/inode.c
285
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
298
value % sc->mp->m_sb.sb_rextsize > 0)
fs/xfs/scrub/inode.c
299
xchk_ino_set_warning(sc, ino);
fs/xfs/scrub/inode.c
305
struct xfs_scrub *sc,
fs/xfs/scrub/inode.c
311
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/inode.c
33
struct xfs_scrub *sc)
fs/xfs/scrub/inode.c
344
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
350
struct xfs_scrub *sc,
fs/xfs/scrub/inode.c
357
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/inode.c
361
xchk_ino_set_warning(sc, ino);
fs/xfs/scrub/inode.c
37
xchk_ilock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/inode.c
39
error = xchk_trans_alloc(sc, 0);
fs/xfs/scrub/inode.c
393
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
398
struct xfs_scrub *sc,
fs/xfs/scrub/inode.c
407
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
413
struct xfs_scrub *sc,
fs/xfs/scrub/inode.c
417
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/inode.c
43
error = xchk_ino_dqattach(sc);
fs/xfs/scrub/inode.c
446
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
457
xchk_ino_set_preen(sc, ino);
fs/xfs/scrub/inode.c
464
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
467
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
47
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/inode.c
470
if (dip->di_mode == 0 && sc->ip)
fs/xfs/scrub/inode.c
471
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
475
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
480
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
493
xchk_ino_set_warning(sc, ino);
fs/xfs/scrub/inode.c
500
xchk_ino_set_warning(sc, ino);
fs/xfs/scrub/inode.c
507
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
511
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
515
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
519
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
523
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
527
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
532
xchk_dinode_nsec(sc, ino, dip, dip->di_atime);
fs/xfs/scrub/inode.c
533
xchk_dinode_nsec(sc, ino, dip, dip->di_mtime);
fs/xfs/scrub/inode.c
534
xchk_dinode_nsec(sc, ino, dip, dip->di_ctime);
fs/xfs/scrub/inode.c
54
struct xfs_scrub *sc,
fs/xfs/scrub/inode.c
543
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
547
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
551
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
555
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
564
xchk_ino_set_warning(sc, ino);
fs/xfs/scrub/inode.c
579
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
582
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
585
xchk_inode_flags(sc, dip, ino, mode, flags);
fs/xfs/scrub/inode.c
587
xchk_inode_extsize(sc, dip, ino, mode, flags);
fs/xfs/scrub/inode.c
59
error = xchk_install_handle_inode(sc, ip);
fs/xfs/scrub/inode.c
597
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
601
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
605
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
611
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
613
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
615
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
621
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
628
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
632
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
636
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
640
xchk_dinode_nsec(sc, ino, dip, dip->di_crtime);
fs/xfs/scrub/inode.c
641
xchk_inode_flags2(sc, dip, ino, mode, flags, flags2);
fs/xfs/scrub/inode.c
642
xchk_inode_cowextsize(sc, dip, ino, mode, flags,
fs/xfs/scrub/inode.c
654
struct xfs_scrub *sc,
fs/xfs/scrub/inode.c
662
if (!sc->sa.fino_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/inode.c
665
agino = XFS_INO_TO_AGINO(sc->mp, ino);
fs/xfs/scrub/inode.c
671
error = xfs_inobt_lookup(sc->sa.fino_cur, agino, XFS_LOOKUP_LE,
fs/xfs/scrub/inode.c
673
if (!xchk_should_check_xref(sc, &error, &sc->sa.fino_cur) ||
fs/xfs/scrub/inode.c
677
error = xfs_inobt_get_rec(sc->sa.fino_cur, &rec, &has_record);
fs/xfs/scrub/inode.c
678
if (!xchk_should_check_xref(sc, &error, &sc->sa.fino_cur) ||
fs/xfs/scrub/inode.c
691
xchk_btree_xref_set_corrupt(sc, sc->sa.fino_cur, 0);
fs/xfs/scrub/inode.c
697
struct xfs_scrub *sc,
fs/xfs/scrub/inode.c
705
if (xchk_skip_xref(sc->sm))
fs/xfs/scrub/inode.c
709
error = xchk_inode_count_blocks(sc, XFS_DATA_FORK, &nextents, &count);
fs/xfs/scrub/inode.c
710
if (!xchk_should_check_xref(sc, &error, NULL))
fs/xfs/scrub/inode.c
713
xchk_ino_xref_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/inode.c
715
error = xchk_inode_count_blocks(sc, XFS_ATTR_FORK, &nextents, &acount);
fs/xfs/scrub/inode.c
716
if (!xchk_should_check_xref(sc, &error, NULL))
fs/xfs/scrub/inode.c
719
xchk_ino_xref_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/inode.c
723
xchk_ino_xref_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/inode.c
729
struct xfs_scrub *sc,
fs/xfs/scrub/inode.c
737
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/inode.c
74
xchk_irele(sc, ip);
fs/xfs/scrub/inode.c
740
agno = XFS_INO_TO_AGNO(sc->mp, ino);
fs/xfs/scrub/inode.c
741
agbno = XFS_INO_TO_AGBNO(sc->mp, ino);
fs/xfs/scrub/inode.c
743
error = xchk_ag_init_existing(sc, agno, &sc->sa);
fs/xfs/scrub/inode.c
744
if (!xchk_xref_process_error(sc, agno, agbno, &error))
fs/xfs/scrub/inode.c
747
xchk_xref_is_used_space(sc, agbno, 1);
fs/xfs/scrub/inode.c
748
xchk_inode_xref_finobt(sc, ino);
fs/xfs/scrub/inode.c
749
xchk_xref_is_only_owned_by(sc, agbno, 1, &XFS_RMAP_OINFO_INODES);
fs/xfs/scrub/inode.c
75
sc->ip = NULL;
fs/xfs/scrub/inode.c
750
xchk_xref_is_not_shared(sc, agbno, 1);
fs/xfs/scrub/inode.c
751
xchk_xref_is_not_cow_staging(sc, agbno, 1);
fs/xfs/scrub/inode.c
752
xchk_inode_xref_bmap(sc, dip);
fs/xfs/scrub/inode.c
755
xchk_ag_free(sc, &sc->sa);
fs/xfs/scrub/inode.c
766
struct xfs_scrub *sc,
fs/xfs/scrub/inode.c
769
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/inode.c
776
error = xfs_reflink_inode_has_shared_extents(sc->tp, sc->ip,
fs/xfs/scrub/inode.c
778
if (!xchk_xref_process_error(sc, XFS_INO_TO_AGNO(mp, ino),
fs/xfs/scrub/inode.c
781
if (xfs_is_reflink_inode(sc->ip) && !has_shared)
fs/xfs/scrub/inode.c
782
xchk_ino_set_preen(sc, ino);
fs/xfs/scrub/inode.c
783
else if (!xfs_is_reflink_inode(sc->ip) && has_shared)
fs/xfs/scrub/inode.c
784
xchk_ino_set_corrupt(sc, ino);
fs/xfs/scrub/inode.c
79
return xchk_prepare_iscrub(sc);
fs/xfs/scrub/inode.c
793
struct xfs_scrub *sc)
fs/xfs/scrub/inode.c
795
if (VFS_I(sc->ip)->i_nlink == 0) {
fs/xfs/scrub/inode.c
796
if (!xfs_inode_on_unlinked_list(sc->ip))
fs/xfs/scrub/inode.c
797
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/inode.c
799
if (xfs_inode_on_unlinked_list(sc->ip))
fs/xfs/scrub/inode.c
800
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/inode.c
807
struct xfs_scrub *sc)
fs/xfs/scrub/inode.c
817
if (!sc->ip) {
fs/xfs/scrub/inode.c
818
xchk_ino_set_corrupt(sc, sc->sm->sm_ino);
fs/xfs/scrub/inode.c
823
xfs_inode_to_disk(sc->ip, &di, 0);
fs/xfs/scrub/inode.c
824
xchk_dinode(sc, &di, sc->ip->i_ino);
fs/xfs/scrub/inode.c
825
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/inode.c
833
if (S_ISREG(VFS_I(sc->ip)->i_mode))
fs/xfs/scrub/inode.c
834
xchk_inode_check_reflink_iflag(sc, sc->ip->i_ino);
fs/xfs/scrub/inode.c
836
xchk_inode_check_unlinked(sc);
fs/xfs/scrub/inode.c
838
xchk_inode_xref(sc, sc->ip->i_ino, &di);
fs/xfs/scrub/inode.c
90
struct xfs_scrub *sc)
fs/xfs/scrub/inode.c
94
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/inode.c
95
struct xfs_inode *ip_in = XFS_I(file_inode(sc->file));
fs/xfs/scrub/inode.c
98
xfs_agnumber_t agno = XFS_INO_TO_AGNO(mp, sc->sm->sm_ino);
fs/xfs/scrub/inode_repair.c
1007
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
1017
return xrep_dinode_bad_rtrmapbt_fork(sc, dip, dfork_size);
fs/xfs/scrub/inode_repair.c
1019
return xrep_dinode_bad_rtrefcountbt_fork(sc, dip, dfork_size);
fs/xfs/scrub/inode_repair.c
1033
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
107
struct xfs_scrub *sc;
fs/xfs/scrub/inode_repair.c
1086
dfork_size = XFS_DFORK_SIZE(dip, sc->mp, XFS_DATA_FORK);
fs/xfs/scrub/inode_repair.c
1098
xfs_dir2_sf_verify(sc->mp, dfork_ptr, data_size) != NULL)
fs/xfs/scrub/inode_repair.c
1106
if (xrep_dinode_bad_extents_fork(sc, dip, dfork_size,
fs/xfs/scrub/inode_repair.c
1111
if (xrep_dinode_bad_bmbt_fork(sc, dip, dfork_size,
fs/xfs/scrub/inode_repair.c
1116
if (xrep_dinode_bad_metabt_fork(sc, dip, dfork_size,
fs/xfs/scrub/inode_repair.c
1156
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/inode_repair.c
1158
trace_xrep_dinode_zap_dfork(sc, dip);
fs/xfs/scrub/inode_repair.c
1203
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
1214
afork_size = XFS_DFORK_SIZE(dip, sc->mp, XFS_ATTR_FORK);
fs/xfs/scrub/inode_repair.c
1231
if (xrep_dinode_bad_extents_fork(sc, dip, afork_size,
fs/xfs/scrub/inode_repair.c
1236
if (xrep_dinode_bad_bmbt_fork(sc, dip, afork_size,
fs/xfs/scrub/inode_repair.c
1241
if (xrep_dinode_bad_metabt_fork(sc, dip, afork_size,
fs/xfs/scrub/inode_repair.c
1262
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/inode_repair.c
1264
trace_xrep_dinode_zap_afork(sc, dip);
fs/xfs/scrub/inode_repair.c
1294
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/inode_repair.c
1297
unsigned int lit_sz = XFS_LITINO(sc->mp);
fs/xfs/scrub/inode_repair.c
1300
trace_xrep_dinode_ensure_forkoff(sc, dip);
fs/xfs/scrub/inode_repair.c
1319
afork_min = XFS_DFORK_SIZE(dip, sc->mp, XFS_ATTR_FORK);
fs/xfs/scrub/inode_repair.c
1348
afork_min = xfs_bmap_broot_space(sc->mp, bmdr);
fs/xfs/scrub/inode_repair.c
1398
dfork_min = xfs_bmap_broot_space(sc->mp, bmdr);
fs/xfs/scrub/inode_repair.c
1404
dfork_min = xfs_rtrmap_broot_space(sc->mp, rmdr);
fs/xfs/scrub/inode_repair.c
1408
dfork_min = xfs_rtrefcount_broot_space(sc->mp, rcdr);
fs/xfs/scrub/inode_repair.c
1438
bmdr_minsz > XFS_DFORK_DSIZE(dip, sc->mp)) {
fs/xfs/scrub/inode_repair.c
1453
memmove(after, before, XFS_DFORK_ASIZE(dip, sc->mp));
fs/xfs/scrub/inode_repair.c
1464
bmdr_minsz > XFS_DFORK_ASIZE(dip, sc->mp)) {
fs/xfs/scrub/inode_repair.c
149
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
1498
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/inode_repair.c
1506
trace_xrep_dinode_zap_forks(sc, dip);
fs/xfs/scrub/inode_repair.c
1523
zap_datafork = xrep_dinode_check_dfork(sc, dip, mode);
fs/xfs/scrub/inode_repair.c
1525
zap_attrfork = xrep_dinode_check_afork(sc, dip);
fs/xfs/scrub/inode_repair.c
154
sc->buf = kzalloc_obj(struct xrep_inode, XCHK_GFP_FLAGS);
fs/xfs/scrub/inode_repair.c
1549
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/inode_repair.c
155
if (!sc->buf)
fs/xfs/scrub/inode_repair.c
1552
xfs_ino_t ino = sc->sm->sm_ino;
fs/xfs/scrub/inode_repair.c
1562
error = xfs_trans_read_buf(sc->mp, sc->tp, sc->mp->m_ddev_targp,
fs/xfs/scrub/inode_repair.c
1568
xrep_dinode_buf(sc, bp);
fs/xfs/scrub/inode_repair.c
1573
xrep_dinode_header(sc, dip);
fs/xfs/scrub/inode_repair.c
1578
xrep_dinode_flags(sc, dip, ri->rt_extents > 0);
fs/xfs/scrub/inode_repair.c
158
ri = sc->buf;
fs/xfs/scrub/inode_repair.c
1580
xrep_dinode_extsize_hints(sc, dip);
fs/xfs/scrub/inode_repair.c
1585
trace_xrep_dinode_fixed(sc, dip);
fs/xfs/scrub/inode_repair.c
1586
xfs_dinode_calc_crc(sc->mp, dip);
fs/xfs/scrub/inode_repair.c
1587
xfs_trans_buf_set_type(sc->tp, bp, XFS_BLFT_DINO_BUF);
fs/xfs/scrub/inode_repair.c
1588
xfs_trans_log_buf(sc->tp, bp, ri->imap.im_boffset,
fs/xfs/scrub/inode_repair.c
1589
ri->imap.im_boffset + sc->mp->m_sb.sb_inodesize - 1);
fs/xfs/scrub/inode_repair.c
160
ri->sc = sc;
fs/xfs/scrub/inode_repair.c
1600
iget_error = xchk_iget(sc, ino, &sc->ip);
fs/xfs/scrub/inode_repair.c
1602
xchk_ilock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/inode_repair.c
1609
error = xrep_trans_commit(sc);
fs/xfs/scrub/inode_repair.c
1616
error = xchk_trans_alloc(sc, 0);
fs/xfs/scrub/inode_repair.c
1620
error = xrep_ino_dqattach(sc);
fs/xfs/scrub/inode_repair.c
1624
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/inode_repair.c
1626
xfs_inode_mark_sick(sc->ip, ri->ino_sick_mask);
fs/xfs/scrub/inode_repair.c
1635
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/inode_repair.c
1643
if (XFS_IS_UQUOTA_ON(sc->mp))
fs/xfs/scrub/inode_repair.c
1644
xrep_force_quotacheck(sc, XFS_DQTYPE_USER);
fs/xfs/scrub/inode_repair.c
1645
if (XFS_IS_GQUOTA_ON(sc->mp))
fs/xfs/scrub/inode_repair.c
1646
xrep_force_quotacheck(sc, XFS_DQTYPE_GROUP);
fs/xfs/scrub/inode_repair.c
1647
if (XFS_IS_PQUOTA_ON(sc->mp))
fs/xfs/scrub/inode_repair.c
1648
xrep_force_quotacheck(sc, XFS_DQTYPE_PROJ);
fs/xfs/scrub/inode_repair.c
1662
struct xfs_scrub *sc)
fs/xfs/scrub/inode_repair.c
1670
trace_xrep_inode_blockcounts(sc);
fs/xfs/scrub/inode_repair.c
1673
error = xchk_inode_count_blocks(sc, XFS_DATA_FORK, &nextents, &count);
fs/xfs/scrub/inode_repair.c
1676
if (xfs_is_reflink_inode(sc->ip)) {
fs/xfs/scrub/inode_repair.c
1682
} else if (XFS_IS_REALTIME_INODE(sc->ip)) {
fs/xfs/scrub/inode_repair.c
1683
if (count >= sc->mp->m_sb.sb_rblocks)
fs/xfs/scrub/inode_repair.c
1686
if (count >= sc->mp->m_sb.sb_dblocks)
fs/xfs/scrub/inode_repair.c
1689
error = xrep_ino_ensure_extent_count(sc, XFS_DATA_FORK, nextents);
fs/xfs/scrub/inode_repair.c
1692
sc->ip->i_df.if_nextents = nextents;
fs/xfs/scrub/inode_repair.c
1695
ifp = xfs_ifork_ptr(sc->ip, XFS_ATTR_FORK);
fs/xfs/scrub/inode_repair.c
1697
error = xchk_inode_count_blocks(sc, XFS_ATTR_FORK, &nextents,
fs/xfs/scrub/inode_repair.c
170
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
1701
if (count >= sc->mp->m_sb.sb_dblocks)
fs/xfs/scrub/inode_repair.c
1703
error = xrep_ino_ensure_extent_count(sc, XFS_ATTR_FORK,
fs/xfs/scrub/inode_repair.c
1712
sc->ip->i_nblocks = count + acount;
fs/xfs/scrub/inode_repair.c
1719
struct xfs_scrub *sc)
fs/xfs/scrub/inode_repair.c
1723
trace_xrep_inode_ids(sc);
fs/xfs/scrub/inode_repair.c
1725
if (!uid_valid(VFS_I(sc->ip)->i_uid)) {
fs/xfs/scrub/inode_repair.c
1726
i_uid_write(VFS_I(sc->ip), 0);
fs/xfs/scrub/inode_repair.c
1728
if (XFS_IS_UQUOTA_ON(sc->mp))
fs/xfs/scrub/inode_repair.c
1729
xrep_force_quotacheck(sc, XFS_DQTYPE_USER);
fs/xfs/scrub/inode_repair.c
1732
if (!gid_valid(VFS_I(sc->ip)->i_gid)) {
fs/xfs/scrub/inode_repair.c
1733
i_gid_write(VFS_I(sc->ip), 0);
fs/xfs/scrub/inode_repair.c
1735
if (XFS_IS_GQUOTA_ON(sc->mp))
fs/xfs/scrub/inode_repair.c
1736
xrep_force_quotacheck(sc, XFS_DQTYPE_GROUP);
fs/xfs/scrub/inode_repair.c
1739
if (sc->ip->i_projid == -1U) {
fs/xfs/scrub/inode_repair.c
1740
sc->ip->i_projid = 0;
fs/xfs/scrub/inode_repair.c
1742
if (XFS_IS_PQUOTA_ON(sc->mp))
fs/xfs/scrub/inode_repair.c
1743
xrep_force_quotacheck(sc, XFS_DQTYPE_PROJ);
fs/xfs/scrub/inode_repair.c
1748
VFS_I(sc->ip)->i_mode &= ~(S_ISUID | S_ISGID);
fs/xfs/scrub/inode_repair.c
175
struct xfs_trans *tp = sc->tp;
fs/xfs/scrub/inode_repair.c
176
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/inode_repair.c
1786
struct xfs_scrub *sc)
fs/xfs/scrub/inode_repair.c
1790
trace_xrep_inode_flags(sc);
fs/xfs/scrub/inode_repair.c
1792
mode = VFS_I(sc->ip)->i_mode;
fs/xfs/scrub/inode_repair.c
1795
if (sc->ip->i_diflags & ~XFS_DIFLAG_ANY)
fs/xfs/scrub/inode_repair.c
1796
sc->ip->i_diflags &= ~XFS_DIFLAG_ANY;
fs/xfs/scrub/inode_repair.c
1799
if (sc->ip->i_ino == sc->mp->m_sb.sb_rbmino)
fs/xfs/scrub/inode_repair.c
1800
sc->ip->i_diflags |= XFS_DIFLAG_NEWRTBM;
fs/xfs/scrub/inode_repair.c
1802
sc->ip->i_diflags &= ~XFS_DIFLAG_NEWRTBM;
fs/xfs/scrub/inode_repair.c
1806
sc->ip->i_diflags &= ~(XFS_DIFLAG_RTINHERIT |
fs/xfs/scrub/inode_repair.c
1813
sc->ip->i_diflags &= ~(XFS_DIFLAG_REALTIME |
fs/xfs/scrub/inode_repair.c
1817
if (sc->ip->i_diflags & XFS_DIFLAG_REALTIME)
fs/xfs/scrub/inode_repair.c
1818
sc->ip->i_diflags &= ~XFS_DIFLAG_FILESTREAM;
fs/xfs/scrub/inode_repair.c
1821
if ((sc->ip->i_diflags & XFS_DIFLAG_IMMUTABLE) &&
fs/xfs/scrub/inode_repair.c
1822
(sc->ip->i_diflags & XFS_DIFLAG_APPEND))
fs/xfs/scrub/inode_repair.c
1823
sc->ip->i_diflags &= ~XFS_DIFLAG_APPEND;
fs/xfs/scrub/inode_repair.c
1826
if (sc->ip->i_diflags2 & ~XFS_DIFLAG2_ANY)
fs/xfs/scrub/inode_repair.c
1827
sc->ip->i_diflags2 &= ~XFS_DIFLAG2_ANY;
fs/xfs/scrub/inode_repair.c
1830
if (!xfs_has_reflink(sc->mp) || !S_ISREG(mode))
fs/xfs/scrub/inode_repair.c
1831
sc->ip->i_diflags2 &= ~XFS_DIFLAG2_REFLINK;
fs/xfs/scrub/inode_repair.c
1835
sc->ip->i_diflags2 &= ~XFS_DIFLAG2_DAX;
fs/xfs/scrub/inode_repair.c
1845
struct xfs_scrub *sc)
fs/xfs/scrub/inode_repair.c
1853
trace_xrep_inode_blockdir_size(sc);
fs/xfs/scrub/inode_repair.c
1855
error = xfs_iread_extents(sc->tp, sc->ip, XFS_DATA_FORK);
fs/xfs/scrub/inode_repair.c
1860
ifp = xfs_ifork_ptr(sc->ip, XFS_DATA_FORK);
fs/xfs/scrub/inode_repair.c
1861
off = XFS_B_TO_FSB(sc->mp, XFS_DIR2_SPACE_SIZE);
fs/xfs/scrub/inode_repair.c
1862
if (!xfs_iext_lookup_extent_before(sc->ip, ifp, &off, &icur, &got)) {
fs/xfs/scrub/inode_repair.c
1868
sc->ip->i_disk_size = min_t(loff_t, XFS_DIR2_SPACE_SIZE,
fs/xfs/scrub/inode_repair.c
1869
XFS_FSB_TO_B(sc->mp, off));
fs/xfs/scrub/inode_repair.c
1875
struct xfs_scrub *sc)
fs/xfs/scrub/inode_repair.c
1879
trace_xrep_inode_sfdir_size(sc);
fs/xfs/scrub/inode_repair.c
1881
ifp = xfs_ifork_ptr(sc->ip, XFS_DATA_FORK);
fs/xfs/scrub/inode_repair.c
1882
sc->ip->i_disk_size = ifp->if_bytes;
fs/xfs/scrub/inode_repair.c
1891
struct xfs_scrub *sc)
fs/xfs/scrub/inode_repair.c
1893
trace_xrep_inode_dir_size(sc);
fs/xfs/scrub/inode_repair.c
1895
switch (sc->ip->i_df.if_format) {
fs/xfs/scrub/inode_repair.c
1898
xrep_inode_blockdir_size(sc);
fs/xfs/scrub/inode_repair.c
1901
xrep_inode_sfdir_size(sc);
fs/xfs/scrub/inode_repair.c
1909
struct xfs_scrub *sc)
fs/xfs/scrub/inode_repair.c
1912
if ((sc->ip->i_diflags & XFS_DIFLAG_RTINHERIT) &&
fs/xfs/scrub/inode_repair.c
1913
(sc->ip->i_diflags & XFS_DIFLAG_EXTSZINHERIT) &&
fs/xfs/scrub/inode_repair.c
1914
xfs_extlen_to_rtxmod(sc->mp, sc->ip->i_extsize) > 0) {
fs/xfs/scrub/inode_repair.c
1915
sc->ip->i_extsize = 0;
fs/xfs/scrub/inode_repair.c
1916
sc->ip->i_diflags &= ~XFS_DIFLAG_EXTSZINHERIT;
fs/xfs/scrub/inode_repair.c
1923
struct xfs_scrub *sc)
fs/xfs/scrub/inode_repair.c
1925
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/inode_repair.c
1926
struct xfs_inode *ip = sc->ip;
fs/xfs/scrub/inode_repair.c
1947
return xfs_bmap_add_attrfork(sc->tp, ip,
fs/xfs/scrub/inode_repair.c
1954
struct xfs_scrub *sc)
fs/xfs/scrub/inode_repair.c
1957
if ((sc->ip->i_diflags & XFS_DIFLAG_RTINHERIT) &&
fs/xfs/scrub/inode_repair.c
1958
(sc->ip->i_diflags2 & XFS_DIFLAG2_COWEXTSIZE) &&
fs/xfs/scrub/inode_repair.c
1959
sc->ip->i_extsize % sc->mp->m_sb.sb_rextsize > 0) {
fs/xfs/scrub/inode_repair.c
1960
sc->ip->i_cowextsize = 0;
fs/xfs/scrub/inode_repair.c
1961
sc->ip->i_diflags2 &= ~XFS_DIFLAG2_COWEXTSIZE;
fs/xfs/scrub/inode_repair.c
1968
struct xfs_scrub *sc)
fs/xfs/scrub/inode_repair.c
1972
error = xrep_inode_blockcounts(sc);
fs/xfs/scrub/inode_repair.c
1975
error = xrep_inode_pptr(sc);
fs/xfs/scrub/inode_repair.c
1978
xrep_inode_timestamps(sc->ip);
fs/xfs/scrub/inode_repair.c
1979
xrep_inode_flags(sc);
fs/xfs/scrub/inode_repair.c
1980
xrep_inode_ids(sc);
fs/xfs/scrub/inode_repair.c
1985
if (S_ISDIR(VFS_I(sc->ip)->i_mode))
fs/xfs/scrub/inode_repair.c
1986
xrep_inode_dir_size(sc);
fs/xfs/scrub/inode_repair.c
1987
xrep_inode_extsize(sc);
fs/xfs/scrub/inode_repair.c
1988
xrep_inode_cowextsize(sc);
fs/xfs/scrub/inode_repair.c
1990
trace_xrep_inode_fixed(sc);
fs/xfs/scrub/inode_repair.c
1991
xfs_trans_log_inode(sc->tp, sc->ip, XFS_ILOG_CORE);
fs/xfs/scrub/inode_repair.c
1992
return xrep_roll_trans(sc);
fs/xfs/scrub/inode_repair.c
2001
struct xfs_scrub *sc)
fs/xfs/scrub/inode_repair.c
2003
unsigned int nlink = VFS_I(sc->ip)->i_nlink;
fs/xfs/scrub/inode_repair.c
2010
if (nlink > 0 && xfs_inode_on_unlinked_list(sc->ip)) {
fs/xfs/scrub/inode_repair.c
2014
pag = xfs_perag_get(sc->mp,
fs/xfs/scrub/inode_repair.c
2015
XFS_INO_TO_AGNO(sc->mp, sc->ip->i_ino));
fs/xfs/scrub/inode_repair.c
2016
error = xfs_iunlink_remove(sc->tp, pag, sc->ip);
fs/xfs/scrub/inode_repair.c
2026
if (nlink == 0 && !xfs_inode_on_unlinked_list(sc->ip)) {
fs/xfs/scrub/inode_repair.c
2027
error = xfs_iunlink(sc->tp, sc->ip);
fs/xfs/scrub/inode_repair.c
2038
struct xfs_scrub *sc)
fs/xfs/scrub/inode_repair.c
2046
if (!sc->ip) {
fs/xfs/scrub/inode_repair.c
2047
struct xrep_inode *ri = sc->buf;
fs/xfs/scrub/inode_repair.c
2063
if (!sc->ip)
fs/xfs/scrub/inode_repair.c
2067
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/inode_repair.c
2070
if ((sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT) ||
fs/xfs/scrub/inode_repair.c
2071
(sc->sm->sm_flags & XFS_SCRUB_OFLAG_XCORRUPT)) {
fs/xfs/scrub/inode_repair.c
2072
error = xrep_inode_problems(sc);
fs/xfs/scrub/inode_repair.c
2078
if (xfs_is_reflink_inode(sc->ip)) {
fs/xfs/scrub/inode_repair.c
2079
error = xfs_reflink_clear_inode_flag(sc->ip, &sc->tp);
fs/xfs/scrub/inode_repair.c
2085
error = xrep_inode_unlinked(sc);
fs/xfs/scrub/inode_repair.c
2089
return xrep_defer_finish(sc);
fs/xfs/scrub/inode_repair.c
213
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
216
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/inode_repair.c
222
xrep_dinode_buf_core(sc, bp, i << mp->m_sb.sb_inodelog);
fs/xfs/scrub/inode_repair.c
228
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
231
trace_xrep_dinode_header(sc, dip);
fs/xfs/scrub/inode_repair.c
234
if (!xfs_dinode_good_version(sc->mp, dip->di_version))
fs/xfs/scrub/inode_repair.c
236
dip->di_ino = cpu_to_be64(sc->sm->sm_ino);
fs/xfs/scrub/inode_repair.c
237
uuid_copy(&dip->di_uuid, &sc->mp->m_sb.sb_meta_uuid);
fs/xfs/scrub/inode_repair.c
238
dip->di_gen = cpu_to_be32(sc->sm->sm_gen);
fs/xfs/scrub/inode_repair.c
247
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
257
if (xchk_should_terminate(ri->sc, &error))
fs/xfs/scrub/inode_repair.c
260
if (ino != sc->sm->sm_ino)
fs/xfs/scrub/inode_repair.c
278
trace_xrep_dinode_findmode_dirent_inval(ri->sc, dp, name->type,
fs/xfs/scrub/inode_repair.c
284
trace_xrep_dinode_findmode_dirent(ri->sc, dp, name->type);
fs/xfs/scrub/inode_repair.c
318
if (xchk_should_terminate(ri->sc, &error))
fs/xfs/scrub/inode_repair.c
343
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/inode_repair.c
379
error = xchk_dir_walk(sc, dp, xrep_dinode_findmode_dirent, ri);
fs/xfs/scrub/inode_repair.c
397
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/inode_repair.c
402
if (!xfs_has_ftype(sc->mp)) {
fs/xfs/scrub/inode_repair.c
413
xchk_iscan_start(sc, 5000, 100, &ri->ftype_iscan);
fs/xfs/scrub/inode_repair.c
415
ri->ftype_iscan.skip_ino = sc->sm->sm_ino;
fs/xfs/scrub/inode_repair.c
421
xchk_irele(sc, dp);
fs/xfs/scrub/inode_repair.c
424
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/inode_repair.c
439
} else if (!(sc->flags & XCHK_TRY_HARDER)) {
fs/xfs/scrub/inode_repair.c
488
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/inode_repair.c
492
trace_xrep_dinode_mode(sc, dip);
fs/xfs/scrub/inode_repair.c
543
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
547
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/inode_repair.c
552
trace_xrep_dinode_flags(sc, dip);
fs/xfs/scrub/inode_repair.c
580
fa = xfs_dinode_verify_metadir(sc->mp, dip, mode, flags,
fs/xfs/scrub/inode_repair.c
599
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/inode_repair.c
602
trace_xrep_dinode_zap_symlink(sc, dip);
fs/xfs/scrub/inode_repair.c
622
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/inode_repair.c
623
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/inode_repair.c
627
trace_xrep_dinode_zap_dir(sc, dip);
fs/xfs/scrub/inode_repair.c
645
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/inode_repair.c
649
trace_xrep_dinode_size(sc, dip);
fs/xfs/scrub/inode_repair.c
693
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
696
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/inode_repair.c
703
trace_xrep_dinode_extsize_hints(sc, dip);
fs/xfs/scrub/inode_repair.c
714
(xfs_has_zoned(sc->mp) &&
fs/xfs/scrub/inode_repair.c
736
if (xchk_should_terminate(ri->sc, &error))
fs/xfs/scrub/inode_repair.c
740
if (rec->rm_owner != ri->sc->sm->sm_ino)
fs/xfs/scrub/inode_repair.c
768
error = xfs_alloc_read_agf(pag, ri->sc->tp, 0, &agf);
fs/xfs/scrub/inode_repair.c
772
cur = xfs_rmapbt_init_cursor(ri->sc->mp, ri->sc->tp, agf, pag);
fs/xfs/scrub/inode_repair.c
775
xfs_trans_brelse(ri->sc->tp, agf);
fs/xfs/scrub/inode_repair.c
789
if (xchk_should_terminate(ri->sc, &error))
fs/xfs/scrub/inode_repair.c
793
if (rec->rm_owner != ri->sc->sm->sm_ino)
fs/xfs/scrub/inode_repair.c
810
struct xfs_scrub *sc = ri->sc;
fs/xfs/scrub/inode_repair.c
813
error = xrep_rtgroup_init(sc, rtg, &sc->sr, XFS_RTGLOCK_RMAP);
fs/xfs/scrub/inode_repair.c
817
error = xfs_rmap_query_all(sc->sr.rmap_cur, xrep_dinode_walk_rtrmap,
fs/xfs/scrub/inode_repair.c
819
xchk_rtgroup_btcur_free(&sc->sr);
fs/xfs/scrub/inode_repair.c
820
xchk_rtgroup_free(sc, &sc->sr);
fs/xfs/scrub/inode_repair.c
833
if (!xfs_has_rmapbt(ri->sc->mp))
fs/xfs/scrub/inode_repair.c
836
while ((rtg = xfs_rtgroup_next(ri->sc->mp, rtg))) {
fs/xfs/scrub/inode_repair.c
844
while ((pag = xfs_perag_next(ri->sc->mp, pag))) {
fs/xfs/scrub/inode_repair.c
856
trace_xrep_dinode_count_rmaps(ri->sc,
fs/xfs/scrub/inode_repair.c
865
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
887
fa = xfs_bmap_validate_extent_raw(sc->mp, isrt, whichfork,
fs/xfs/scrub/inode_repair.c
899
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
924
if (level == 0 || level >= XFS_BM_MAXLEVELS(sc->mp, whichfork))
fs/xfs/scrub/inode_repair.c
936
if (!xfs_verify_fileoff(sc->mp, fileoff))
fs/xfs/scrub/inode_repair.c
941
if (!xfs_verify_fsbno(sc->mp, fsbno))
fs/xfs/scrub/inode_repair.c
951
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
966
if (level > sc->mp->m_rtrmap_maxlevels)
fs/xfs/scrub/inode_repair.c
979
struct xfs_scrub *sc,
fs/xfs/scrub/inode_repair.c
994
if (level > sc->mp->m_rtrefc_maxlevels)
fs/xfs/scrub/iscan.c
204
struct xfs_scrub *sc = iscan->sc;
fs/xfs/scrub/iscan.c
205
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/iscan.c
268
struct xfs_scrub *sc = iscan->sc;
fs/xfs/scrub/iscan.c
273
return xfs_ialloc_read_agi(pag, sc->tp, 0, agi_bpp);
fs/xfs/scrub/iscan.c
277
ret = xfs_ialloc_read_agi(pag, sc->tp, XFS_IALLOC_FLAG_TRYLOCK,
fs/xfs/scrub/iscan.c
310
struct xfs_scrub *sc = iscan->sc;
fs/xfs/scrub/iscan.c
311
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/iscan.c
357
xfs_trans_brelse(sc->tp, agi_bp);
fs/xfs/scrub/iscan.c
367
xfs_trans_brelse(sc->tp, agi_bp);
fs/xfs/scrub/iscan.c
436
struct xfs_scrub *sc = iscan->sc;
fs/xfs/scrub/iscan.c
437
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/iscan.c
446
error = xfs_iget(sc->mp, sc->tp, ino, ISCAN_IGET_FLAGS, 0,
fs/xfs/scrub/iscan.c
452
xfs_trans_brelse(sc->tp, agi_bp);
fs/xfs/scrub/iscan.c
462
if (sc->tp && !(sc->tp->t_flags & XFS_TRANS_NO_WRITECOUNT))
fs/xfs/scrub/iscan.c
470
xfs_trans_brelse(sc->tp, agi_bp);
fs/xfs/scrub/iscan.c
484
xfs_trans_brelse(sc->tp, agi_bp);
fs/xfs/scrub/iscan.c
519
error = xfs_iget(sc->mp, sc->tp, ino, ISCAN_IGET_FLAGS, 0,
fs/xfs/scrub/iscan.c
530
trace_xchk_iscan_iget_batch(sc->mp, iscan, nr_inodes, idx);
fs/xfs/scrub/iscan.c
531
xfs_trans_brelse(sc->tp, agi_bp);
fs/xfs/scrub/iscan.c
571
struct xfs_scrub *sc = iscan->sc;
fs/xfs/scrub/iscan.c
592
xfs_trans_brelse(sc->tp, agi_bp);
fs/xfs/scrub/iscan.c
649
struct xfs_scrub *sc = iscan->sc;
fs/xfs/scrub/iscan.c
65
struct xfs_scrub *sc = iscan->sc;
fs/xfs/scrub/iscan.c
654
xchk_irele(sc, iscan->__inodes[i]);
fs/xfs/scrub/iscan.c
66
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/iscan.c
696
struct xfs_scrub *sc,
fs/xfs/scrub/iscan.c
703
start_ino = xchk_iscan_rotor(sc->mp);
fs/xfs/scrub/iscan.c
708
iscan->sc = sc;
fs/xfs/scrub/iscan.c
93
struct xfs_scrub *sc = iscan->sc;
fs/xfs/scrub/iscan.c
96
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/iscan.c
97
struct xfs_trans *tp = sc->tp;
fs/xfs/scrub/iscan.h
10
struct xfs_scrub *sc;
fs/xfs/scrub/iscan.h
89
void xchk_iscan_start(struct xfs_scrub *sc, unsigned int iget_timeout,
fs/xfs/scrub/listxattr.c
110
struct xfs_scrub *sc,
fs/xfs/scrub/listxattr.c
118
error = xfs_attr3_leaf_read(sc->tp, ip, ip->i_ino, 0, &leaf_bp);
fs/xfs/scrub/listxattr.c
122
error = xchk_xattr_walk_leaf_entries(sc, ip, attr_fn, leaf_bp, priv);
fs/xfs/scrub/listxattr.c
123
xfs_trans_brelse(sc->tp, leaf_bp);
fs/xfs/scrub/listxattr.c
130
struct xfs_scrub *sc,
fs/xfs/scrub/listxattr.c
136
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/listxattr.c
137
struct xfs_trans *tp = sc->tp;
fs/xfs/scrub/listxattr.c
221
struct xfs_scrub *sc,
fs/xfs/scrub/listxattr.c
229
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/listxattr.c
236
error = xchk_xattr_find_leftmost_leaf(sc, ip, &seen_dablks, &leaf_bp);
fs/xfs/scrub/listxattr.c
243
error = xchk_xattr_walk_leaf_entries(sc, ip, attr_fn, leaf_bp,
fs/xfs/scrub/listxattr.c
254
xfs_trans_brelse(sc->tp, leaf_bp);
fs/xfs/scrub/listxattr.c
257
error = leaf_fn(sc, priv);
fs/xfs/scrub/listxattr.c
269
error = xfs_attr3_leaf_read(sc->tp, ip, ip->i_ino,
fs/xfs/scrub/listxattr.c
28
struct xfs_scrub *sc,
fs/xfs/scrub/listxattr.c
281
xfs_trans_brelse(sc->tp, leaf_bp);
fs/xfs/scrub/listxattr.c
295
struct xfs_scrub *sc,
fs/xfs/scrub/listxattr.c
309
return xchk_xattr_walk_sf(sc, ip, attr_fn, priv);
fs/xfs/scrub/listxattr.c
312
error = xfs_iread_extents(sc->tp, ip, XFS_ATTR_FORK);
fs/xfs/scrub/listxattr.c
317
return xchk_xattr_walk_leaf(sc, ip, attr_fn, priv);
fs/xfs/scrub/listxattr.c
319
return xchk_xattr_walk_node(sc, ip, attr_fn, leaf_fn, priv);
fs/xfs/scrub/listxattr.c
40
error = attr_fn(sc, ip, sfe->flags, sfe->nameval, sfe->namelen,
fs/xfs/scrub/listxattr.c
55
struct xfs_scrub *sc,
fs/xfs/scrub/listxattr.c
62
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/listxattr.c
94
error = attr_fn(sc, ip, entry->flags, name, namelen, value,
fs/xfs/scrub/listxattr.h
14
typedef int (*xchk_xattrleaf_fn)(struct xfs_scrub *sc, void *priv);
fs/xfs/scrub/listxattr.h
16
int xchk_xattr_walk(struct xfs_scrub *sc, struct xfs_inode *ip,
fs/xfs/scrub/listxattr.h
9
typedef int (*xchk_xattr_fn)(struct xfs_scrub *sc, struct xfs_inode *ip,
fs/xfs/scrub/metapath.c
111
mpath->sc = sc;
fs/xfs/scrub/metapath.c
112
sc->buf = mpath;
fs/xfs/scrub/metapath.c
113
sc->buf_cleanup = xchk_metapath_cleanup;
fs/xfs/scrub/metapath.c
129
struct xfs_scrub *sc)
fs/xfs/scrub/metapath.c
131
if (!sc->mp->m_rtdirip)
fs/xfs/scrub/metapath.c
134
return xchk_setup_metapath_scan(sc, sc->mp->m_metadirip,
fs/xfs/scrub/metapath.c
135
kstrdup_const("rtgroups", GFP_KERNEL), sc->mp->m_rtdirip);
fs/xfs/scrub/metapath.c
141
struct xfs_scrub *sc,
fs/xfs/scrub/metapath.c
148
rtg = xfs_rtgroup_get(sc->mp, sc->sm->sm_agno);
fs/xfs/scrub/metapath.c
158
error = xchk_setup_metapath_scan(sc, sc->mp->m_rtdirip,
fs/xfs/scrub/metapath.c
174
struct xfs_scrub *sc)
fs/xfs/scrub/metapath.c
176
struct xfs_quotainfo *qi = sc->mp->m_quotainfo;
fs/xfs/scrub/metapath.c
181
return xchk_setup_metapath_scan(sc, sc->mp->m_metadirip,
fs/xfs/scrub/metapath.c
188
struct xfs_scrub *sc,
fs/xfs/scrub/metapath.c
191
struct xfs_quotainfo *qi = sc->mp->m_quotainfo;
fs/xfs/scrub/metapath.c
214
return xchk_setup_metapath_scan(sc, qi->qi_dirip,
fs/xfs/scrub/metapath.c
224
struct xfs_scrub *sc)
fs/xfs/scrub/metapath.c
226
if (!xfs_has_metadir(sc->mp))
fs/xfs/scrub/metapath.c
228
if (sc->sm->sm_gen)
fs/xfs/scrub/metapath.c
231
switch (sc->sm->sm_ino) {
fs/xfs/scrub/metapath.c
234
if (sc->sm->sm_agno)
fs/xfs/scrub/metapath.c
238
return xchk_setup_metapath_rtdir(sc);
fs/xfs/scrub/metapath.c
240
return xchk_setup_metapath_rtginode(sc, XFS_RTGI_BITMAP);
fs/xfs/scrub/metapath.c
242
return xchk_setup_metapath_rtginode(sc, XFS_RTGI_SUMMARY);
fs/xfs/scrub/metapath.c
244
return xchk_setup_metapath_quotadir(sc);
fs/xfs/scrub/metapath.c
246
return xchk_setup_metapath_dqinode(sc, XFS_DQTYPE_USER);
fs/xfs/scrub/metapath.c
248
return xchk_setup_metapath_dqinode(sc, XFS_DQTYPE_GROUP);
fs/xfs/scrub/metapath.c
250
return xchk_setup_metapath_dqinode(sc, XFS_DQTYPE_PROJ);
fs/xfs/scrub/metapath.c
252
return xchk_setup_metapath_rtginode(sc, XFS_RTGI_RMAP);
fs/xfs/scrub/metapath.c
254
return xchk_setup_metapath_rtginode(sc, XFS_RTGI_REFCOUNT);
fs/xfs/scrub/metapath.c
269
struct xfs_scrub *sc = mpath->sc;
fs/xfs/scrub/metapath.c
274
if (xchk_ilock_nowait(sc, XFS_ILOCK_EXCL)) {
fs/xfs/scrub/metapath.c
280
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/metapath.c
295
struct xfs_scrub *sc = mpath->sc;
fs/xfs/scrub/metapath.c
297
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/metapath.c
305
struct xfs_scrub *sc)
fs/xfs/scrub/metapath.c
307
struct xchk_metapath *mpath = sc->buf;
fs/xfs/scrub/metapath.c
312
if (sc->sm->sm_ino == XFS_SCRUB_METAPATH_PROBE)
fs/xfs/scrub/metapath.c
317
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/metapath.c
321
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/metapath.c
328
error = xchk_dir_lookup(sc, mpath->dp, &mpath->xname, &ino);
fs/xfs/scrub/metapath.c
329
trace_xchk_metapath_lookup(sc, mpath->path, mpath->dp, ino);
fs/xfs/scrub/metapath.c
332
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/metapath.c
336
if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, 0, &error))
fs/xfs/scrub/metapath.c
338
if (ino != sc->ip->i_ino) {
fs/xfs/scrub/metapath.c
340
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/metapath.c
346
xchk_trans_cancel(sc);
fs/xfs/scrub/metapath.c
356
struct xfs_scrub *sc = mpath->sc;
fs/xfs/scrub/metapath.c
360
mpath->du.ip = sc->ip;
fs/xfs/scrub/metapath.c
362
if (xfs_has_parent(sc->mp))
fs/xfs/scrub/metapath.c
367
trace_xrep_metapath_link(sc, mpath->path, mpath->dp, sc->ip->i_ino);
fs/xfs/scrub/metapath.c
369
return xfs_dir_add_child(sc->tp, mpath->link_resblks, &mpath->du);
fs/xfs/scrub/metapath.c
380
struct xfs_scrub *sc = mpath->sc;
fs/xfs/scrub/metapath.c
381
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/metapath.c
384
trace_xrep_metapath_unlink(sc, mpath->path, mpath->dp, ino);
fs/xfs/scrub/metapath.c
388
xfs_trans_log_inode(sc->tp, mpath->dp, XFS_ILOG_CORE);
fs/xfs/scrub/metapath.c
389
return xfs_dir_removename(sc->tp, mpath->dp, &mpath->xname,
fs/xfs/scrub/metapath.c
401
error = xfs_parent_lookup(sc->tp, ip, &mpath->xname, &rec,
fs/xfs/scrub/metapath.c
414
return xfs_dir_remove_child(sc->tp, mpath->unlink_resblks, &mpath->du);
fs/xfs/scrub/metapath.c
430
struct xfs_scrub *sc = mpath->sc;
fs/xfs/scrub/metapath.c
435
error = xchk_trans_alloc(sc, mpath->link_resblks);
fs/xfs/scrub/metapath.c
44
struct xfs_scrub *sc;
fs/xfs/scrub/metapath.c
441
xchk_trans_cancel(sc);
fs/xfs/scrub/metapath.c
444
xfs_trans_ijoin(sc->tp, mpath->dp, 0);
fs/xfs/scrub/metapath.c
445
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/metapath.c
447
error = xchk_dir_lookup(sc, mpath->dp, &mpath->xname, &ino);
fs/xfs/scrub/metapath.c
448
trace_xrep_metapath_lookup(sc, mpath->path, mpath->dp, ino);
fs/xfs/scrub/metapath.c
458
error = xrep_trans_commit(sc);
fs/xfs/scrub/metapath.c
465
if (ino == sc->ip->i_ino) {
fs/xfs/scrub/metapath.c
479
xchk_trans_cancel(sc);
fs/xfs/scrub/metapath.c
495
struct xfs_scrub *sc = mpath->sc;
fs/xfs/scrub/metapath.c
504
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/metapath.c
528
struct xfs_scrub *sc = mpath->sc;
fs/xfs/scrub/metapath.c
533
ASSERT(*alleged_child != sc->ip->i_ino);
fs/xfs/scrub/metapath.c
535
trace_xrep_metapath_try_unlink(sc, mpath->path, mpath->dp,
fs/xfs/scrub/metapath.c
542
error = xchk_trans_alloc(sc, mpath->unlink_resblks);
fs/xfs/scrub/metapath.c
546
error = xchk_iget(sc, *alleged_child, &ip);
fs/xfs/scrub/metapath.c
552
xchk_trans_cancel(sc);
fs/xfs/scrub/metapath.c
558
xchk_trans_cancel(sc);
fs/xfs/scrub/metapath.c
561
xfs_trans_ijoin(sc->tp, mpath->dp, 0);
fs/xfs/scrub/metapath.c
563
xfs_trans_ijoin(sc->tp, ip, 0);
fs/xfs/scrub/metapath.c
565
error = xchk_dir_lookup(sc, mpath->dp, &mpath->xname, &ino);
fs/xfs/scrub/metapath.c
566
trace_xrep_metapath_lookup(sc, mpath->path, mpath->dp, ino);
fs/xfs/scrub/metapath.c
578
if (ino == sc->ip->i_ino) {
fs/xfs/scrub/metapath.c
599
error = xrep_trans_commit(sc);
fs/xfs/scrub/metapath.c
603
xchk_trans_cancel(sc);
fs/xfs/scrub/metapath.c
608
xchk_irele(sc, ip);
fs/xfs/scrub/metapath.c
622
struct xfs_scrub *sc)
fs/xfs/scrub/metapath.c
624
struct xchk_metapath *mpath = sc->buf;
fs/xfs/scrub/metapath.c
625
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/metapath.c
629
if (sc->sm->sm_ino == XFS_SCRUB_METAPATH_PROBE)
fs/xfs/scrub/metapath.c
641
error = xfs_attr_add_fork(sc->ip,
fs/xfs/scrub/metapath.c
88
struct xfs_scrub *sc,
fs/xfs/scrub/metapath.c
99
error = xchk_install_live_inode(sc, ip);
fs/xfs/scrub/newbt.c
103
xnr->sc = sc;
fs/xfs/scrub/newbt.c
108
xnr->bload.max_dirty = XFS_B_TO_FSBT(sc->mp, 256U << 10); /* 256K */
fs/xfs/scrub/newbt.c
116
struct xfs_scrub *sc,
fs/xfs/scrub/newbt.c
126
xrep_newbt_init_ag(xnr, sc, oinfo,
fs/xfs/scrub/newbt.c
127
XFS_INO_TO_FSB(sc->mp, sc->ip->i_ino),
fs/xfs/scrub/newbt.c
130
xnr->ifake.if_fork_size = xfs_inode_fork_size(sc->ip, whichfork);
fs/xfs/scrub/newbt.c
142
struct xfs_scrub *sc)
fs/xfs/scrub/newbt.c
147
ASSERT(xfs_is_metadir_inode(sc->ip));
fs/xfs/scrub/newbt.c
149
xfs_rmap_ino_bmbt_owner(&oinfo, sc->ip->i_ino, XFS_DATA_FORK);
fs/xfs/scrub/newbt.c
163
xrep_newbt_init_ag(xnr, sc, &oinfo,
fs/xfs/scrub/newbt.c
164
XFS_INO_TO_FSB(sc->mp, sc->ip->i_ino),
fs/xfs/scrub/newbt.c
167
xnr->ifake.if_fork_size = xfs_inode_fork_size(sc->ip, XFS_DATA_FORK);
fs/xfs/scrub/newbt.c
178
struct xfs_scrub *sc)
fs/xfs/scrub/newbt.c
180
xrep_newbt_init_ag(xnr, sc, &XFS_RMAP_OINFO_ANY_OWNER, NULLFSBLOCK,
fs/xfs/scrub/newbt.c
194
struct xfs_mount *mp = xnr->sc->mp;
fs/xfs/scrub/newbt.c
253
struct xfs_scrub *sc = xnr->sc;
fs/xfs/scrub/newbt.c
254
xfs_agnumber_t agno = XFS_FSB_TO_AGNO(sc->mp, xnr->alloc_hint);
fs/xfs/scrub/newbt.c
256
if (agno == pag_agno(sc->sa.pag) &&
fs/xfs/scrub/newbt.c
257
xfs_verify_fsbno(sc->mp, xnr->alloc_hint))
fs/xfs/scrub/newbt.c
261
xfs_agbno_to_fsb(sc->sa.pag, XFS_AGFL_BLOCK(sc->mp) + 1);
fs/xfs/scrub/newbt.c
270
struct xfs_scrub *sc = xnr->sc;
fs/xfs/scrub/newbt.c
271
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/newbt.c
274
ASSERT(sc->sa.pag != NULL);
fs/xfs/scrub/newbt.c
279
.tp = sc->tp,
fs/xfs/scrub/newbt.c
292
error = xnr->alloc_vextent(sc, &args, xnr->alloc_hint);
fs/xfs/scrub/newbt.c
302
if (agno != pag_agno(sc->sa.pag)) {
fs/xfs/scrub/newbt.c
303
ASSERT(agno == pag_agno(sc->sa.pag));
fs/xfs/scrub/newbt.c
307
trace_xrep_newbt_alloc_ag_blocks(sc->sa.pag,
fs/xfs/scrub/newbt.c
311
error = xrep_newbt_add_blocks(xnr, sc->sa.pag, &args);
fs/xfs/scrub/newbt.c
318
error = xrep_defer_finish(sc);
fs/xfs/scrub/newbt.c
331
struct xfs_scrub *sc = xnr->sc;
fs/xfs/scrub/newbt.c
333
if (xfs_verify_fsbno(sc->mp, xnr->alloc_hint))
fs/xfs/scrub/newbt.c
336
xnr->alloc_hint = XFS_AGB_TO_FSB(sc->mp, 0, XFS_AGFL_BLOCK(sc->mp) + 1);
fs/xfs/scrub/newbt.c
345
struct xfs_scrub *sc = xnr->sc;
fs/xfs/scrub/newbt.c
346
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/newbt.c
353
.tp = sc->tp,
fs/xfs/scrub/newbt.c
367
error = xnr->alloc_vextent(sc, &args, xnr->alloc_hint);
fs/xfs/scrub/newbt.c
396
error = xrep_defer_finish(sc);
fs/xfs/scrub/newbt.c
410
if (xnr->sc->ip)
fs/xfs/scrub/newbt.c
425
struct xfs_scrub *sc = xnr->sc;
fs/xfs/scrub/newbt.c
438
xfs_alloc_commit_autoreap(sc->tp, &resv->autoreap);
fs/xfs/scrub/newbt.c
447
xfs_alloc_cancel_autoreap(sc->tp, &resv->autoreap);
fs/xfs/scrub/newbt.c
464
error = xfs_free_extent_later(sc->tp,
fs/xfs/scrub/newbt.c
479
struct xfs_scrub *sc = xnr->sc;
fs/xfs/scrub/newbt.c
488
if (xfs_is_shutdown(sc->mp))
fs/xfs/scrub/newbt.c
505
error = xrep_defer_finish(sc);
fs/xfs/scrub/newbt.c
513
error = xrep_defer_finish(sc);
fs/xfs/scrub/newbt.c
522
xfs_alloc_commit_autoreap(sc->tp, &resv->autoreap);
fs/xfs/scrub/newbt.c
528
if (sc->ip) {
fs/xfs/scrub/newbt.c
57
struct xfs_scrub *sc = xnr->sc;
fs/xfs/scrub/newbt.c
599
return xrep_defer_finish(xnr->sc);
fs/xfs/scrub/newbt.c
70
if (sc->ops->type == ST_PERAG) {
fs/xfs/scrub/newbt.c
71
free = sc->sa.pag->pagf_freeblks;
fs/xfs/scrub/newbt.c
72
sz = xfs_ag_block_count(sc->mp, pag_agno(sc->sa.pag));
fs/xfs/scrub/newbt.c
74
free = xfs_sum_freecounter_raw(sc->mp, XC_FREE_BLOCKS);
fs/xfs/scrub/newbt.c
75
sz = sc->mp->m_sb.sb_dblocks;
fs/xfs/scrub/newbt.c
97
struct xfs_scrub *sc,
fs/xfs/scrub/newbt.h
31
struct xfs_scrub *sc;
fs/xfs/scrub/newbt.h
34
int (*alloc_vextent)(struct xfs_scrub *sc,
fs/xfs/scrub/newbt.h
60
void xrep_newbt_init_bare(struct xrep_newbt *xnr, struct xfs_scrub *sc);
fs/xfs/scrub/newbt.h
61
void xrep_newbt_init_ag(struct xrep_newbt *xnr, struct xfs_scrub *sc,
fs/xfs/scrub/newbt.h
64
int xrep_newbt_init_inode(struct xrep_newbt *xnr, struct xfs_scrub *sc,
fs/xfs/scrub/newbt.h
66
int xrep_newbt_init_metadir_inode(struct xrep_newbt *xnr, struct xfs_scrub *sc);
fs/xfs/scrub/nlinks.c
1002
xchk_iscan_start(sc, 30000, 100, &xnc->collect_iscan);
fs/xfs/scrub/nlinks.c
1023
ASSERT(sc->flags & XCHK_FSGATES_DIRENTS);
fs/xfs/scrub/nlinks.c
1030
sc->buf_cleanup = xchk_nlinks_teardown_scan;
fs/xfs/scrub/nlinks.c
1041
struct xfs_scrub *sc)
fs/xfs/scrub/nlinks.c
1043
struct xchk_nlink_ctrs *xnc = sc->buf;
fs/xfs/scrub/nlinks.c
1047
error = xchk_nlinks_setup_scan(sc, xnc);
fs/xfs/scrub/nlinks.c
1053
if (!xchk_xref_process_error(sc, 0, 0, &error))
fs/xfs/scrub/nlinks.c
1058
xchk_set_incomplete(sc);
fs/xfs/scrub/nlinks.c
1059
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_INCOMPLETE)
fs/xfs/scrub/nlinks.c
1064
if (!xchk_xref_process_error(sc, 0, 0, &error))
fs/xfs/scrub/nlinks.c
1069
xchk_set_incomplete(sc);
fs/xfs/scrub/nlinks.c
135
trace_xchk_nlinks_update_incore(xnc->sc->mp, ino, &nl, parents_delta,
fs/xfs/scrub/nlinks.c
178
trace_xchk_nlinks_live_update(xnc->sc->mp, p->dp, action, p->ip->i_ino,
fs/xfs/scrub/nlinks.c
222
struct xfs_scrub *sc,
fs/xfs/scrub/nlinks.c
252
if (!xfs_verify_dir_ino(sc->mp, ino)) {
fs/xfs/scrub/nlinks.c
264
trace_xchk_nlinks_collect_dirent(sc->mp, dp, ino, name);
fs/xfs/scrub/nlinks.c
284
else if (!xfs_has_parent(sc->mp))
fs/xfs/scrub/nlinks.c
320
xchk_set_incomplete(sc);
fs/xfs/scrub/nlinks.c
327
struct xfs_scrub *sc,
fs/xfs/scrub/nlinks.c
355
error = xfs_parent_from_attr(sc->mp, attr_flags, name, namelen, value,
fs/xfs/scrub/nlinks.c
360
trace_xchk_nlinks_collect_pptr(sc->mp, ip, &xname, pptr_rec);
fs/xfs/scrub/nlinks.c
375
xchk_set_incomplete(sc);
fs/xfs/scrub/nlinks.c
415
struct xfs_scrub *sc = xnc->sc;
fs/xfs/scrub/nlinks.c
446
error = xchk_dir_walk(sc, dp, xchk_nlinks_collect_dirent, xnc);
fs/xfs/scrub/nlinks.c
455
if (xfs_has_parent(sc->mp)) {
fs/xfs/scrub/nlinks.c
466
error = xchk_xattr_walk(sc, dp, xchk_nlinks_collect_pptr, NULL,
fs/xfs/scrub/nlinks.c
48
struct xfs_scrub *sc)
fs/xfs/scrub/nlinks.c
480
xchk_set_incomplete(sc);
fs/xfs/scrub/nlinks.c
493
if (!xfs_verify_ino(xnc->sc->mp, ino))
fs/xfs/scrub/nlinks.c
496
trace_xchk_nlinks_collect_metafile(xnc->sc->mp, ino);
fs/xfs/scrub/nlinks.c
505
struct xfs_mount *mp = xnc->sc->mp;
fs/xfs/scrub/nlinks.c
53
xchk_fsgates_enable(sc, XCHK_FSGATES_DIRENTS);
fs/xfs/scrub/nlinks.c
540
xchk_set_incomplete(xnc->sc);
fs/xfs/scrub/nlinks.c
55
if (xchk_could_repair(sc)) {
fs/xfs/scrub/nlinks.c
56
error = xrep_setup_nlinks(sc);
fs/xfs/scrub/nlinks.c
561
struct xfs_scrub *sc = xnc->sc;
fs/xfs/scrub/nlinks.c
585
xchk_trans_cancel(sc);
fs/xfs/scrub/nlinks.c
586
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/nlinks.c
593
xchk_irele(sc, ip);
fs/xfs/scrub/nlinks.c
597
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/nlinks.c
602
xchk_set_incomplete(sc);
fs/xfs/scrub/nlinks.c
617
xchk_trans_cancel(sc);
fs/xfs/scrub/nlinks.c
618
return xchk_setup_fs(sc);
fs/xfs/scrub/nlinks.c
65
xnc->sc = sc;
fs/xfs/scrub/nlinks.c
652
xchk_set_incomplete(xnc->sc);
fs/xfs/scrub/nlinks.c
66
sc->buf = xnc;
fs/xfs/scrub/nlinks.c
673
struct xfs_scrub *sc = xnc->sc;
fs/xfs/scrub/nlinks.c
68
return xchk_setup_fs(sc);
fs/xfs/scrub/nlinks.c
690
xchk_set_incomplete(xnc->sc);
fs/xfs/scrub/nlinks.c
707
if (!xfs_has_ftype(sc->mp) && S_ISDIR(VFS_I(ip)->i_mode))
fs/xfs/scrub/nlinks.c
713
trace_xchk_nlinks_compare_inode(sc->mp, ip, &obs);
fs/xfs/scrub/nlinks.c
721
xchk_ino_set_corrupt(sc, ip->i_ino);
fs/xfs/scrub/nlinks.c
724
xchk_ino_set_warning(sc, ip->i_ino);
fs/xfs/scrub/nlinks.c
729
xchk_ino_set_corrupt(sc, ip->i_ino);
fs/xfs/scrub/nlinks.c
743
xchk_ino_xref_set_corrupt(sc, ip->i_ino);
fs/xfs/scrub/nlinks.c
750
xchk_ino_set_corrupt(sc, ip->i_ino);
fs/xfs/scrub/nlinks.c
759
xchk_ino_set_corrupt(sc, ip->i_ino);
fs/xfs/scrub/nlinks.c
772
xchk_ino_set_corrupt(sc, ip->i_ino);
fs/xfs/scrub/nlinks.c
781
xchk_ino_set_corrupt(sc, ip->i_ino);
fs/xfs/scrub/nlinks.c
787
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/nlinks.c
806
struct xfs_mount *mp = xnc->sc->mp;
fs/xfs/scrub/nlinks.c
807
struct xfs_trans *tp = xnc->sc->tp;
fs/xfs/scrub/nlinks.c
819
error = xchk_iget_agi(xnc->sc, ino, &agi_bp, &ip);
fs/xfs/scrub/nlinks.c
823
xchk_irele(xnc->sc, ip);
fs/xfs/scrub/nlinks.c
836
xchk_set_incomplete(xnc->sc);
fs/xfs/scrub/nlinks.c
841
xchk_set_incomplete(xnc->sc);
fs/xfs/scrub/nlinks.c
858
xchk_ino_set_corrupt(xnc->sc, ino);
fs/xfs/scrub/nlinks.c
895
struct xfs_scrub *sc = xnc->sc;
fs/xfs/scrub/nlinks.c
900
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/nlinks.c
908
xchk_trans_cancel(sc);
fs/xfs/scrub/nlinks.c
909
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/nlinks.c
916
xchk_iscan_start(sc, 0, 0, &xnc->compare_iscan);
fs/xfs/scrub/nlinks.c
920
xchk_irele(sc, ip);
fs/xfs/scrub/nlinks.c
924
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/nlinks.c
932
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/nlinks.c
952
if (xchk_should_terminate(xnc->sc, &error))
fs/xfs/scrub/nlinks.c
972
xfs_dir_hook_del(xnc->sc->mp, &xnc->dhook);
fs/xfs/scrub/nlinks.c
980
xnc->sc = NULL;
fs/xfs/scrub/nlinks.c
990
struct xfs_scrub *sc,
fs/xfs/scrub/nlinks.c
993
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/nlinks.h
11
struct xfs_scrub *sc;
fs/xfs/scrub/nlinks_repair.c
115
if (xrep_orphanage_can_adopt(sc)) {
fs/xfs/scrub/nlinks_repair.c
116
error = xrep_orphanage_iolock_two(sc);
fs/xfs/scrub/nlinks_repair.c
120
error = xrep_adoption_trans_alloc(sc, &xnc->adoption);
fs/xfs/scrub/nlinks_repair.c
122
xchk_iunlock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/nlinks_repair.c
123
xrep_orphanage_iunlock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/nlinks_repair.c
135
xchk_ilock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/nlinks_repair.c
138
&sc->tp);
fs/xfs/scrub/nlinks_repair.c
140
xchk_iunlock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/nlinks_repair.c
144
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/nlinks_repair.c
145
xfs_trans_ijoin(sc->tp, ip, 0);
fs/xfs/scrub/nlinks_repair.c
189
xrep_nlinks_is_orphaned(sc, ip, actual_nlink, &obs)) {
fs/xfs/scrub/nlinks_repair.c
224
error = xrep_nlinks_iunlink_remove(sc);
fs/xfs/scrub/nlinks_repair.c
235
error = xfs_iunlink(sc->tp, ip);
fs/xfs/scrub/nlinks_repair.c
255
xfs_trans_log_inode(sc->tp, ip, XFS_ILOG_CORE);
fs/xfs/scrub/nlinks_repair.c
257
error = xrep_trans_commit(sc);
fs/xfs/scrub/nlinks_repair.c
263
xchk_trans_cancel(sc);
fs/xfs/scrub/nlinks_repair.c
265
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/nlinks_repair.c
267
xrep_orphanage_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/nlinks_repair.c
268
xrep_orphanage_iunlock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/nlinks_repair.c
270
xchk_iunlock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/nlinks_repair.c
295
struct xfs_scrub *sc)
fs/xfs/scrub/nlinks_repair.c
297
struct xchk_nlink_ctrs *xnc = sc->buf;
fs/xfs/scrub/nlinks_repair.c
308
if (!xfs_has_ftype(sc->mp))
fs/xfs/scrub/nlinks_repair.c
317
xchk_iscan_start(sc, 30000, 100, &xnc->compare_iscan);
fs/xfs/scrub/nlinks_repair.c
318
ASSERT(sc->ip == NULL);
fs/xfs/scrub/nlinks_repair.c
320
while ((error = xrep_nlinks_iter(xnc, &sc->ip)) == 1) {
fs/xfs/scrub/nlinks_repair.c
325
xchk_trans_cancel(sc);
fs/xfs/scrub/nlinks_repair.c
328
xchk_iscan_mark_visited(&xnc->compare_iscan, sc->ip);
fs/xfs/scrub/nlinks_repair.c
329
xchk_irele(sc, sc->ip);
fs/xfs/scrub/nlinks_repair.c
330
sc->ip = NULL;
fs/xfs/scrub/nlinks_repair.c
334
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/nlinks_repair.c
343
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/nlinks_repair.c
47
struct xfs_scrub *sc)
fs/xfs/scrub/nlinks_repair.c
49
return xrep_orphanage_try_create(sc);
fs/xfs/scrub/nlinks_repair.c
58
struct xfs_scrub *sc,
fs/xfs/scrub/nlinks_repair.c
65
if (xchk_inode_is_dirtree_root(ip) || ip == sc->orphanage)
fs/xfs/scrub/nlinks_repair.c
73
struct xfs_scrub *sc)
fs/xfs/scrub/nlinks_repair.c
78
pag = xfs_perag_get(sc->mp, XFS_INO_TO_AGNO(sc->mp, sc->ip->i_ino));
fs/xfs/scrub/nlinks_repair.c
79
error = xfs_iunlink_remove(sc->tp, pag, sc->ip);
fs/xfs/scrub/nlinks_repair.c
93
struct xfs_scrub *sc = xnc->sc;
fs/xfs/scrub/nlinks_repair.c
94
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/nlinks_repair.c
95
struct xfs_inode *ip = sc->ip;
fs/xfs/scrub/orphanage.c
123
struct xfs_scrub *sc)
fs/xfs/scrub/orphanage.c
125
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/orphanage.c
127
struct inode *root_inode = VFS_I(sc->mp->m_rootip);
fs/xfs/scrub/orphanage.c
134
sc->orphanage = NULL;
fs/xfs/scrub/orphanage.c
138
ASSERT(sc->tp == NULL);
fs/xfs/scrub/orphanage.c
139
ASSERT(sc->orphanage == NULL);
fs/xfs/scrub/orphanage.c
193
error = xrep_chown_orphanage(sc, XFS_I(orphanage_inode));
fs/xfs/scrub/orphanage.c
198
sc->orphanage = XFS_I(orphanage_inode);
fs/xfs/scrub/orphanage.c
199
sc->orphanage_ilock_flags = 0;
fs/xfs/scrub/orphanage.c
211
struct xfs_scrub *sc,
fs/xfs/scrub/orphanage.c
214
sc->orphanage_ilock_flags |= ilock_flags;
fs/xfs/scrub/orphanage.c
215
xfs_ilock(sc->orphanage, ilock_flags);
fs/xfs/scrub/orphanage.c
220
struct xfs_scrub *sc,
fs/xfs/scrub/orphanage.c
223
if (xfs_ilock_nowait(sc->orphanage, ilock_flags)) {
fs/xfs/scrub/orphanage.c
224
sc->orphanage_ilock_flags |= ilock_flags;
fs/xfs/scrub/orphanage.c
233
struct xfs_scrub *sc,
fs/xfs/scrub/orphanage.c
236
xfs_iunlock(sc->orphanage, ilock_flags);
fs/xfs/scrub/orphanage.c
237
sc->orphanage_ilock_flags &= ~ilock_flags;
fs/xfs/scrub/orphanage.c
243
struct xfs_scrub *sc)
fs/xfs/scrub/orphanage.c
248
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/orphanage.c
256
if (xrep_orphanage_ilock_nowait(sc, XFS_IOLOCK_EXCL)) {
fs/xfs/scrub/orphanage.c
257
if (xchk_ilock_nowait(sc, XFS_IOLOCK_EXCL))
fs/xfs/scrub/orphanage.c
259
xrep_orphanage_iunlock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/orphanage.c
270
struct xfs_scrub *sc)
fs/xfs/scrub/orphanage.c
272
if (!sc->orphanage)
fs/xfs/scrub/orphanage.c
275
if (sc->orphanage_ilock_flags)
fs/xfs/scrub/orphanage.c
276
xfs_iunlock(sc->orphanage, sc->orphanage_ilock_flags);
fs/xfs/scrub/orphanage.c
278
xchk_irele(sc, sc->orphanage);
fs/xfs/scrub/orphanage.c
279
sc->orphanage = NULL;
fs/xfs/scrub/orphanage.c
287
struct xfs_scrub *sc)
fs/xfs/scrub/orphanage.c
289
ASSERT(sc->ip != NULL);
fs/xfs/scrub/orphanage.c
291
if (!sc->orphanage)
fs/xfs/scrub/orphanage.c
293
if (sc->ip == sc->orphanage)
fs/xfs/scrub/orphanage.c
295
if (xchk_inode_is_sb_rooted(sc->ip))
fs/xfs/scrub/orphanage.c
297
if (xfs_is_internal_inode(sc->ip))
fs/xfs/scrub/orphanage.c
312
struct xfs_scrub *sc,
fs/xfs/scrub/orphanage.c
315
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/orphanage.c
319
ASSERT(sc->tp == NULL);
fs/xfs/scrub/orphanage.c
320
ASSERT(sc->ip != NULL);
fs/xfs/scrub/orphanage.c
321
ASSERT(sc->orphanage != NULL);
fs/xfs/scrub/orphanage.c
322
ASSERT(sc->ilock_flags & XFS_IOLOCK_EXCL);
fs/xfs/scrub/orphanage.c
323
ASSERT(sc->orphanage_ilock_flags & XFS_IOLOCK_EXCL);
fs/xfs/scrub/orphanage.c
324
ASSERT(!(sc->ilock_flags & (XFS_ILOCK_SHARED | XFS_ILOCK_EXCL)));
fs/xfs/scrub/orphanage.c
325
ASSERT(!(sc->orphanage_ilock_flags &
fs/xfs/scrub/orphanage.c
329
adopt->sc = sc;
fs/xfs/scrub/orphanage.c
331
if (S_ISDIR(VFS_I(sc->ip)->i_mode))
fs/xfs/scrub/orphanage.c
345
&sc->tp);
fs/xfs/scrub/orphanage.c
349
xfs_lock_two_inodes(sc->orphanage, XFS_ILOCK_EXCL,
fs/xfs/scrub/orphanage.c
350
sc->ip, XFS_ILOCK_EXCL);
fs/xfs/scrub/orphanage.c
351
sc->ilock_flags |= XFS_ILOCK_EXCL;
fs/xfs/scrub/orphanage.c
352
sc->orphanage_ilock_flags |= XFS_ILOCK_EXCL;
fs/xfs/scrub/orphanage.c
354
xfs_trans_ijoin(sc->tp, sc->orphanage, 0);
fs/xfs/scrub/orphanage.c
355
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/orphanage.c
363
error = xfs_trans_reserve_quota_nblks(sc->tp, sc->orphanage,
fs/xfs/scrub/orphanage.c
374
error = xfs_trans_reserve_quota_nblks(sc->tp, sc->ip,
fs/xfs/scrub/orphanage.c
382
xchk_trans_cancel(sc);
fs/xfs/scrub/orphanage.c
383
xrep_orphanage_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/orphanage.c
384
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/orphanage.c
398
struct xfs_scrub *sc = adopt->sc;
fs/xfs/scrub/orphanage.c
405
xname->len = snprintf(namebuf, MAXNAMELEN, "%llu", sc->ip->i_ino);
fs/xfs/scrub/orphanage.c
406
xname->type = xfs_mode_to_ftype(VFS_I(sc->ip)->i_mode);
fs/xfs/scrub/orphanage.c
409
error = xchk_dir_lookup(sc, sc->orphanage, xname, &ino);
fs/xfs/scrub/orphanage.c
412
sc->ip->i_ino, ++incr);
fs/xfs/scrub/orphanage.c
413
error = xchk_dir_lookup(sc, sc->orphanage, xname, &ino);
fs/xfs/scrub/orphanage.c
436
struct xfs_scrub *sc = adopt->sc;
fs/xfs/scrub/orphanage.c
440
d_orphanage = d_find_alias(VFS_I(sc->orphanage));
fs/xfs/scrub/orphanage.c
451
trace_xrep_adoption_check_child(sc->mp, d_child);
fs/xfs/scrub/orphanage.c
478
struct xfs_scrub *sc = adopt->sc;
fs/xfs/scrub/orphanage.c
482
d_orphanage = d_find_alias(VFS_I(sc->orphanage));
fs/xfs/scrub/orphanage.c
488
trace_xrep_adoption_invalidate_child(sc->mp, d_child);
fs/xfs/scrub/orphanage.c
499
while ((d_child = d_find_alias(VFS_I(sc->ip))) != NULL) {
fs/xfs/scrub/orphanage.c
500
trace_xrep_adoption_invalidate_child(sc->mp, d_child);
fs/xfs/scrub/orphanage.c
51
struct xfs_scrub *sc,
fs/xfs/scrub/orphanage.c
530
struct xfs_scrub *sc = adopt->sc;
fs/xfs/scrub/orphanage.c
531
bool isdir = S_ISDIR(VFS_I(sc->ip)->i_mode);
fs/xfs/scrub/orphanage.c
534
trace_xrep_adoption_reparent(sc->orphanage, adopt->xname,
fs/xfs/scrub/orphanage.c
535
sc->ip->i_ino);
fs/xfs/scrub/orphanage.c
546
if (!xfs_inode_has_attr_fork(sc->ip) && xfs_has_parent(sc->mp)) {
fs/xfs/scrub/orphanage.c
549
error = xfs_bmap_add_attrfork(sc->tp, sc->ip, sf_size, true);
fs/xfs/scrub/orphanage.c
55
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/orphanage.c
555
error = xfs_dir_createname(sc->tp, sc->orphanage, adopt->xname,
fs/xfs/scrub/orphanage.c
556
sc->ip->i_ino, adopt->orphanage_blkres);
fs/xfs/scrub/orphanage.c
564
xfs_trans_ichgtime(sc->tp, sc->orphanage,
fs/xfs/scrub/orphanage.c
567
xfs_bumplink(sc->tp, sc->orphanage);
fs/xfs/scrub/orphanage.c
568
xfs_trans_log_inode(sc->tp, sc->orphanage, XFS_ILOG_CORE);
fs/xfs/scrub/orphanage.c
572
xfs_bumplink(sc->tp, sc->ip);
fs/xfs/scrub/orphanage.c
573
xfs_trans_log_inode(sc->tp, sc->ip, XFS_ILOG_CORE);
fs/xfs/scrub/orphanage.c
578
error = xfs_dir_replace(sc->tp, sc->ip, &xfs_name_dotdot,
fs/xfs/scrub/orphanage.c
579
sc->orphanage->i_ino, adopt->child_blkres);
fs/xfs/scrub/orphanage.c
585
if (xfs_has_parent(sc->mp)) {
fs/xfs/scrub/orphanage.c
586
error = xfs_parent_addname(sc->tp, &adopt->ppargs,
fs/xfs/scrub/orphanage.c
587
sc->orphanage, adopt->xname, sc->ip);
fs/xfs/scrub/orphanage.c
597
xfs_dir_update_hook(sc->orphanage, sc->ip, 1, adopt->xname);
fs/xfs/scrub/orphanage.c
618
struct xfs_scrub *sc = adopt->sc;
fs/xfs/scrub/orphanage.c
621
trace_xrep_adoption_trans_roll(sc->orphanage, sc->ip,
fs/xfs/scrub/orphanage.c
622
!!(sc->tp->t_flags & XFS_TRANS_DIRTY));
fs/xfs/scrub/orphanage.c
625
error = xrep_defer_finish(sc);
fs/xfs/scrub/orphanage.c
630
return xfs_trans_roll(&sc->tp);
fs/xfs/scrub/orphanage.h
10
int xrep_orphanage_create(struct xfs_scrub *sc);
fs/xfs/scrub/orphanage.h
18
struct xfs_scrub *sc)
fs/xfs/scrub/orphanage.h
22
ASSERT(sc->sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR);
fs/xfs/scrub/orphanage.h
24
error = xrep_orphanage_create(sc);
fs/xfs/scrub/orphanage.h
41
int xrep_orphanage_iolock_two(struct xfs_scrub *sc);
fs/xfs/scrub/orphanage.h
43
void xrep_orphanage_ilock(struct xfs_scrub *sc, unsigned int ilock_flags);
fs/xfs/scrub/orphanage.h
44
bool xrep_orphanage_ilock_nowait(struct xfs_scrub *sc,
fs/xfs/scrub/orphanage.h
46
void xrep_orphanage_iunlock(struct xfs_scrub *sc, unsigned int ilock_flags);
fs/xfs/scrub/orphanage.h
48
void xrep_orphanage_rele(struct xfs_scrub *sc);
fs/xfs/scrub/orphanage.h
52
struct xfs_scrub *sc;
fs/xfs/scrub/orphanage.h
73
bool xrep_orphanage_can_adopt(struct xfs_scrub *sc);
fs/xfs/scrub/orphanage.h
75
int xrep_adoption_trans_alloc(struct xfs_scrub *sc,
fs/xfs/scrub/orphanage.h
83
# define xrep_orphanage_rele(sc) ((void)0)
fs/xfs/scrub/parent.c
114
struct xfs_scrub *sc,
fs/xfs/scrub/parent.c
118
.sc = sc,
fs/xfs/scrub/parent.c
121
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/parent.c
128
if (sc->ip == mp->m_rootip) {
fs/xfs/scrub/parent.c
129
if (sc->ip->i_ino != mp->m_sb.sb_rootino ||
fs/xfs/scrub/parent.c
130
sc->ip->i_ino != parent_ino)
fs/xfs/scrub/parent.c
131
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/parent.c
136
if (sc->ip == mp->m_metadirip) {
fs/xfs/scrub/parent.c
137
if (sc->ip->i_ino != mp->m_sb.sb_metadirino ||
fs/xfs/scrub/parent.c
138
sc->ip->i_ino != parent_ino)
fs/xfs/scrub/parent.c
139
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/parent.c
144
if (sc->ip->i_ino == parent_ino) {
fs/xfs/scrub/parent.c
145
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/parent.c
153
expected_nlink = VFS_I(sc->ip)->i_nlink == 0 ? 0 : 1;
fs/xfs/scrub/parent.c
164
error = xchk_iget(sc, parent_ino, &dp);
fs/xfs/scrub/parent.c
167
xchk_fblock_process_error(sc, XFS_DATA_FORK, 0, &error);
fs/xfs/scrub/parent.c
170
if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, 0, &error))
fs/xfs/scrub/parent.c
172
if (dp == sc->ip || xrep_is_tempfile(dp) ||
fs/xfs/scrub/parent.c
174
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/parent.c
180
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/parent.c
181
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/parent.c
192
xchk_set_incomplete(sc);
fs/xfs/scrub/parent.c
197
if (xfs_is_metadir_inode(dp) != xfs_is_metadir_inode(sc->ip)) {
fs/xfs/scrub/parent.c
198
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/parent.c
203
error = xchk_dir_walk(sc, dp, xchk_parent_actor, &spc);
fs/xfs/scrub/parent.c
204
if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, 0, &error))
fs/xfs/scrub/parent.c
212
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/parent.c
217
xchk_irele(sc, dp);
fs/xfs/scrub/parent.c
244
struct xfs_scrub *sc;
fs/xfs/scrub/parent.c
272
struct xfs_scrub *sc,
fs/xfs/scrub/parent.c
288
error = xfs_parent_from_attr(sc->mp, attr_flags, name, namelen, value,
fs/xfs/scrub/parent.c
304
struct xfs_scrub *sc = pp->sc;
fs/xfs/scrub/parent.c
308
error = xchk_dir_lookup(sc, sc->ip, &xfs_name_dotdot, &pp->parent_ino);
fs/xfs/scrub/parent.c
309
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, 0, &error))
fs/xfs/scrub/parent.c
311
if (!xfs_verify_dir_ino(sc->mp, pp->parent_ino)) {
fs/xfs/scrub/parent.c
312
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/parent.c
317
if (xchk_inode_is_dirtree_root(sc->ip)) {
fs/xfs/scrub/parent.c
318
if (sc->ip->i_ino != pp->parent_ino)
fs/xfs/scrub/parent.c
319
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/parent.c
327
if (VFS_I(sc->ip)->i_nlink == 0)
fs/xfs/scrub/parent.c
330
if (pp->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/parent.c
334
error = xchk_xattr_walk(sc, sc->ip, xchk_parent_scan_dotdot, NULL, pp);
fs/xfs/scrub/parent.c
34
struct xfs_scrub *sc)
fs/xfs/scrub/parent.c
341
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/parent.c
353
struct xfs_scrub *sc,
fs/xfs/scrub/parent.c
38
if (xchk_could_repair(sc)) {
fs/xfs/scrub/parent.c
384
struct xfs_scrub *sc = pp->sc;
fs/xfs/scrub/parent.c
39
error = xrep_setup_parent(sc);
fs/xfs/scrub/parent.c
392
error = xchk_dir_lookup(sc, dp, xname, &child_ino);
fs/xfs/scrub/parent.c
394
xchk_fblock_xref_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/parent.c
397
if (!xchk_fblock_xref_process_error(sc, XFS_ATTR_FORK, 0, &error))
fs/xfs/scrub/parent.c
401
if (child_ino != sc->ip->i_ino) {
fs/xfs/scrub/parent.c
402
xchk_fblock_xref_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/parent.c
416
struct xfs_scrub *sc = pp->sc;
fs/xfs/scrub/parent.c
422
error = xfs_dir_ino_validate(sc->mp, parent_ino);
fs/xfs/scrub/parent.c
424
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/parent.c
428
error = xchk_iget(sc, parent_ino, &ip);
fs/xfs/scrub/parent.c
430
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/parent.c
433
if (!xchk_fblock_xref_process_error(sc, XFS_ATTR_FORK, 0, &error))
fs/xfs/scrub/parent.c
438
xchk_fblock_xref_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/parent.c
44
return xchk_setup_inode_contents(sc, 0);
fs/xfs/scrub/parent.c
444
xchk_fblock_xref_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/parent.c
451
xchk_irele(sc, ip);
fs/xfs/scrub/parent.c
462
struct xfs_scrub *sc,
fs/xfs/scrub/parent.c
485
error = xfs_parent_from_attr(sc->mp, attr_flags, name, namelen, value,
fs/xfs/scrub/parent.c
488
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/parent.c
493
if (parent_ino == sc->ip->i_ino) {
fs/xfs/scrub/parent.c
494
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/parent.c
507
lockmode = xchk_parent_lock_dir(sc, dp);
fs/xfs/scrub/parent.c
515
trace_xchk_parent_defer(sc->ip, &xname, dp->i_ino);
fs/xfs/scrub/parent.c
519
if (!xchk_fblock_xref_process_error(sc, XFS_ATTR_FORK, 0,
fs/xfs/scrub/parent.c
52
struct xfs_scrub *sc;
fs/xfs/scrub/parent.c
524
if (!xchk_fblock_xref_process_error(sc, XFS_ATTR_FORK, 0,
fs/xfs/scrub/parent.c
538
xchk_irele(sc, dp);
fs/xfs/scrub/parent.c
553
struct xfs_scrub *sc = pp->sc;
fs/xfs/scrub/parent.c
556
error = xfs_parent_lookup(sc->tp, sc->ip, xname, pptr, &pp->pptr_args);
fs/xfs/scrub/parent.c
575
struct xfs_scrub *sc = pp->sc;
fs/xfs/scrub/parent.c
585
if (!xchk_fblock_xref_process_error(sc, XFS_ATTR_FORK, 0,
fs/xfs/scrub/parent.c
59
struct xfs_scrub *sc,
fs/xfs/scrub/parent.c
600
lockmode = xchk_parent_lock_dir(sc, dp);
fs/xfs/scrub/parent.c
602
trace_xchk_parent_slowpath(sc->ip, xname, dp->i_ino);
fs/xfs/scrub/parent.c
610
xchk_iunlock(sc, sc->ilock_flags);
fs/xfs/scrub/parent.c
613
trace_xchk_parent_ultraslowpath(sc->ip, xname, dp->i_ino);
fs/xfs/scrub/parent.c
615
error = xchk_dir_trylock_for_pptrs(sc, dp, &lockmode);
fs/xfs/scrub/parent.c
625
if (!xchk_fblock_xref_process_error(sc, XFS_ATTR_FORK, 0, &error))
fs/xfs/scrub/parent.c
633
xchk_irele(sc, dp);
fs/xfs/scrub/parent.c
648
if (pp->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/parent.c
674
struct xfs_scrub *sc,
fs/xfs/scrub/parent.c
689
error = xfs_parent_from_attr(sc->mp, attr_flags, name, namelen, value,
fs/xfs/scrub/parent.c
707
struct xfs_scrub *sc = pp->sc;
fs/xfs/scrub/parent.c
716
error = xchk_xattr_walk(sc, sc->ip, xchk_parent_count_pptr,
fs/xfs/scrub/parent.c
72
if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, 0, &error))
fs/xfs/scrub/parent.c
720
xchk_fblock_set_corrupt(sc, XFS_ATTR_FORK, 0);
fs/xfs/scrub/parent.c
727
if (S_ISDIR(VFS_I(sc->ip)->i_mode)) {
fs/xfs/scrub/parent.c
728
if (xchk_inode_is_dirtree_root(sc->ip))
fs/xfs/scrub/parent.c
731
if (VFS_I(sc->ip)->i_nlink == 0 && pp->pptrs_found > 0)
fs/xfs/scrub/parent.c
732
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/parent.c
733
else if (VFS_I(sc->ip)->i_nlink > 0 &&
fs/xfs/scrub/parent.c
735
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/parent.c
742
if (xfs_has_metadir(sc->mp) && xchk_inode_is_sb_rooted(sc->ip))
fs/xfs/scrub/parent.c
745
if (VFS_I(sc->ip)->i_nlink != pp->pptrs_found)
fs/xfs/scrub/parent.c
746
xchk_ino_set_corrupt(sc, sc->ip->i_ino);
fs/xfs/scrub/parent.c
75
if (sc->ip->i_ino == ino)
fs/xfs/scrub/parent.c
755
struct xfs_scrub *sc)
fs/xfs/scrub/parent.c
763
pp->sc = sc;
fs/xfs/scrub/parent.c
779
error = xchk_xattr_walk(sc, sc->ip, xchk_parent_scan_attr, NULL, pp);
fs/xfs/scrub/parent.c
78
if (xchk_should_terminate(spc->sc, &error))
fs/xfs/scrub/parent.c
796
if (pp->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/parent.c
812
if (S_ISDIR(VFS_I(sc->ip)->i_mode)) {
fs/xfs/scrub/parent.c
818
if (pp->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/parent.c
842
struct xfs_scrub *sc)
fs/xfs/scrub/parent.c
844
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/parent.c
849
return xchk_parent_pptr(sc);
fs/xfs/scrub/parent.c
855
if (!S_ISDIR(VFS_I(sc->ip)->i_mode))
fs/xfs/scrub/parent.c
859
if (!xfs_verify_dir_ino(mp, sc->ip->i_ino)) {
fs/xfs/scrub/parent.c
860
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/parent.c
865
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/parent.c
869
error = xchk_dir_lookup(sc, sc->ip, &xfs_name_dotdot,
fs/xfs/scrub/parent.c
871
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, 0, &error))
fs/xfs/scrub/parent.c
874
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/parent.c
882
error = xchk_parent_validate(sc, parent_ino);
fs/xfs/scrub/parent_repair.c
1029
trace_xrep_parent_insert_xattr(rp->sc->tempip, key->flags,
fs/xfs/scrub/parent_repair.c
1065
xchk_trans_cancel(rp->sc);
fs/xfs/scrub/parent_repair.c
1066
xchk_iunlock(rp->sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/parent_repair.c
107
struct xfs_scrub *sc;
fs/xfs/scrub/parent_repair.c
1074
error = xrep_tempfile_iolock_polled(rp->sc);
fs/xfs/scrub/parent_repair.c
1095
xrep_tempfile_iounlock(rp->sc);
fs/xfs/scrub/parent_repair.c
1098
xchk_trans_alloc_empty(rp->sc);
fs/xfs/scrub/parent_repair.c
1099
xchk_ilock(rp->sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/parent_repair.c
1118
struct xfs_scrub *sc,
fs/xfs/scrub/parent_repair.c
1151
struct xfs_scrub *sc = rp->sc;
fs/xfs/scrub/parent_repair.c
1163
error = xchk_xattr_walk(sc, sc->ip, xrep_parent_stash_xattr,
fs/xfs/scrub/parent_repair.c
1174
error = xchk_xattr_walk(sc, sc->ip, xrep_parent_stash_xattr,
fs/xfs/scrub/parent_repair.c
1201
struct xfs_scrub *sc = rp->sc;
fs/xfs/scrub/parent_repair.c
1204
error = xfs_attr_add_fork(sc->tempip,
fs/xfs/scrub/parent_repair.c
1208
return xfs_attr_add_fork(sc->ip, sizeof(struct xfs_attr_sf_hdr), 1);
fs/xfs/scrub/parent_repair.c
1220
struct xfs_scrub *sc = rp->sc;
fs/xfs/scrub/parent_repair.c
1238
error = xrep_tempexch_trans_alloc(sc, XFS_ATTR_FORK, &rp->tx);
fs/xfs/scrub/parent_repair.c
1245
xchk_trans_cancel(sc);
fs/xfs/scrub/parent_repair.c
1246
xrep_tempfile_iunlock_both(sc);
fs/xfs/scrub/parent_repair.c
1247
} while (!xchk_should_terminate(sc, &error));
fs/xfs/scrub/parent_repair.c
1260
struct xfs_scrub *sc = rp->sc;
fs/xfs/scrub/parent_repair.c
1281
xchk_trans_cancel(sc);
fs/xfs/scrub/parent_repair.c
1282
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/parent_repair.c
1284
error = xrep_tempfile_iolock_polled(sc);
fs/xfs/scrub/parent_repair.c
1298
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/parent_repair.c
1308
error = xrep_xattr_swap(sc, &rp->tx);
fs/xfs/scrub/parent_repair.c
1311
error = xrep_xattr_reset_tempfile_fork(sc);
fs/xfs/scrub/parent_repair.c
1320
error = xfs_trans_roll(&sc->tp);
fs/xfs/scrub/parent_repair.c
1323
xrep_tempfile_iunlock(sc);
fs/xfs/scrub/parent_repair.c
1324
xrep_tempfile_iounlock(sc);
fs/xfs/scrub/parent_repair.c
1331
if (xchk_inode_is_dirtree_root(sc->ip)) {
fs/xfs/scrub/parent_repair.c
1332
xrep_findparent_scan_found(&rp->pscan, sc->ip->i_ino);
fs/xfs/scrub/parent_repair.c
1334
error = xrep_parent_lookup_pptrs(sc, &parent_ino);
fs/xfs/scrub/parent_repair.c
1351
struct xfs_scrub *sc = rp->sc;
fs/xfs/scrub/parent_repair.c
1355
if (xfs_has_parent(sc->mp)) {
fs/xfs/scrub/parent_repair.c
1373
if (try_adoption && xfs_has_metadir(sc->mp) &&
fs/xfs/scrub/parent_repair.c
1374
xchk_inode_is_sb_rooted(sc->ip))
fs/xfs/scrub/parent_repair.c
1378
if (xrep_orphanage_can_adopt(sc))
fs/xfs/scrub/parent_repair.c
1384
if (S_ISDIR(VFS_I(sc->ip)->i_mode))
fs/xfs/scrub/parent_repair.c
1393
struct xfs_scrub *sc,
fs/xfs/scrub/parent_repair.c
1408
error = xfs_parent_from_attr(sc->mp, attr_flags, name, namelen, value,
fs/xfs/scrub/parent_repair.c
1426
struct xfs_scrub *sc = rp->sc;
fs/xfs/scrub/parent_repair.c
1427
struct xfs_inode *ip = sc->ip;
fs/xfs/scrub/parent_repair.c
1434
error = xchk_xattr_walk(sc, ip, xrep_parent_count_pptr, NULL, rp);
fs/xfs/scrub/parent_repair.c
1443
if (xfs_has_metadir(sc->mp) && xchk_inode_is_sb_rooted(sc->ip))
fs/xfs/scrub/parent_repair.c
1447
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/parent_repair.c
1454
pag = xfs_perag_get(sc->mp, XFS_INO_TO_AGNO(sc->mp, ip->i_ino));
fs/xfs/scrub/parent_repair.c
1460
error = xfs_iunlink_remove(sc->tp, pag, ip);
fs/xfs/scrub/parent_repair.c
1465
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/parent_repair.c
1472
error = xfs_iunlink(sc->tp, ip);
fs/xfs/scrub/parent_repair.c
1480
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/parent_repair.c
1490
xfs_trans_log_inode(sc->tp, ip, XFS_ILOG_CORE);
fs/xfs/scrub/parent_repair.c
1499
struct xfs_scrub *sc = rp->sc;
fs/xfs/scrub/parent_repair.c
1500
struct xfs_da_geometry *geo = sc->mp->m_attr_geo;
fs/xfs/scrub/parent_repair.c
1504
if (!xfs_has_parent(sc->mp))
fs/xfs/scrub/parent_repair.c
1505
return xrep_findparent_scan_start(sc, &rp->pscan);
fs/xfs/scrub/parent_repair.c
1518
if (sc->flags & XCHK_TRY_HARDER)
fs/xfs/scrub/parent_repair.c
1546
error = __xrep_findparent_scan_start(sc, &rp->pscan,
fs/xfs/scrub/parent_repair.c
1576
struct xfs_scrub *sc)
fs/xfs/scrub/parent_repair.c
1578
struct xrep_parent *rp = sc->buf;
fs/xfs/scrub/parent_repair.c
1586
if (xfs_has_parent(sc->mp)) {
fs/xfs/scrub/parent_repair.c
1587
if (!xfs_has_rmapbt(sc->mp))
fs/xfs/scrub/parent_repair.c
1589
if (!xfs_has_exchange_range(sc->mp))
fs/xfs/scrub/parent_repair.c
1597
if (xfs_has_parent(sc->mp))
fs/xfs/scrub/parent_repair.c
1605
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/parent_repair.c
1611
if (xfs_has_parent(sc->mp) && !S_ISDIR(VFS_I(sc->ip)->i_mode)) {
fs/xfs/scrub/parent_repair.c
1617
error = xrep_defer_finish(sc);
fs/xfs/scrub/parent_repair.c
213
struct xfs_scrub *sc)
fs/xfs/scrub/parent_repair.c
218
xchk_fsgates_enable(sc, XCHK_FSGATES_DIRENTS);
fs/xfs/scrub/parent_repair.c
223
rp->sc = sc;
fs/xfs/scrub/parent_repair.c
225
sc->buf = rp;
fs/xfs/scrub/parent_repair.c
227
error = xrep_tempfile_create(sc, S_IFREG);
fs/xfs/scrub/parent_repair.c
231
return xrep_orphanage_try_create(sc);
fs/xfs/scrub/parent_repair.c
242
struct xfs_scrub *sc = rp->sc;
fs/xfs/scrub/parent_repair.c
251
xfs_inode_measure_sickness(sc->ip, &sick, &checked);
fs/xfs/scrub/parent_repair.c
255
ino = xrep_findparent_self_reference(sc);
fs/xfs/scrub/parent_repair.c
266
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/parent_repair.c
269
ino = xrep_findparent_from_dcache(sc);
fs/xfs/scrub/parent_repair.c
271
error = xrep_findparent_confirm(sc, &ino);
fs/xfs/scrub/parent_repair.c
281
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/parent_repair.c
297
struct xfs_scrub *sc = rp->sc;
fs/xfs/scrub/parent_repair.c
302
trace_xrep_parent_replay_parentadd(sc->tempip, xname,
fs/xfs/scrub/parent_repair.c
305
return xfs_parent_set(sc->tempip, sc->ip->i_ino, xname,
fs/xfs/scrub/parent_repair.c
309
trace_xrep_parent_replay_parentremove(sc->tempip, xname,
fs/xfs/scrub/parent_repair.c
312
return xfs_parent_unset(sc->tempip, sc->ip->i_ino, xname,
fs/xfs/scrub/parent_repair.c
383
trace_xrep_parent_stash_parentadd(rp->sc->tempip, dp, name);
fs/xfs/scrub/parent_repair.c
409
trace_xrep_parent_stash_parentremove(rp->sc->tempip, dp, name);
fs/xfs/scrub/parent_repair.c
426
struct xfs_scrub *sc,
fs/xfs/scrub/parent_repair.c
437
if (ino != rp->sc->ip->i_ino)
fs/xfs/scrub/parent_repair.c
445
if (name->type != xfs_mode_to_ftype(VFS_I(sc->ip)->i_mode))
fs/xfs/scrub/parent_repair.c
472
return ip != rp->sc->ip && !xrep_is_tempfile(ip);
fs/xfs/scrub/parent_repair.c
529
error = xchk_dir_walk(rp->sc, ip, xrep_parent_scan_dirent, rp);
fs/xfs/scrub/parent_repair.c
559
struct xfs_scrub *sc = rp->sc;
fs/xfs/scrub/parent_repair.c
568
xchk_trans_cancel(sc);
fs/xfs/scrub/parent_repair.c
569
if (sc->ilock_flags & (XFS_ILOCK_SHARED | XFS_ILOCK_EXCL))
fs/xfs/scrub/parent_repair.c
570
xchk_iunlock(sc, sc->ilock_flags & (XFS_ILOCK_SHARED |
fs/xfs/scrub/parent_repair.c
572
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/parent_repair.c
578
xchk_irele(sc, ip);
fs/xfs/scrub/parent_repair.c
587
xchk_trans_cancel(sc);
fs/xfs/scrub/parent_repair.c
589
error = xrep_tempfile_iolock_polled(sc);
fs/xfs/scrub/parent_repair.c
594
xrep_tempfile_iounlock(sc);
fs/xfs/scrub/parent_repair.c
598
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/parent_repair.c
601
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/parent_repair.c
621
xchk_ilock(rp->sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/parent_repair.c
637
struct xfs_scrub *sc;
fs/xfs/scrub/parent_repair.c
641
sc = rp->sc;
fs/xfs/scrub/parent_repair.c
648
if (p->ip->i_ino == sc->ip->i_ino &&
fs/xfs/scrub/parent_repair.c
674
struct xfs_scrub *sc = rp->sc;
fs/xfs/scrub/parent_repair.c
679
ASSERT(sc->ilock_flags & XFS_ILOCK_EXCL);
fs/xfs/scrub/parent_repair.c
681
error = xchk_dir_lookup(sc, sc->ip, &xfs_name_dotdot, &ino);
fs/xfs/scrub/parent_repair.c
685
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/parent_repair.c
687
trace_xrep_parent_reset_dotdot(sc->ip, rp->pscan.parent_ino);
fs/xfs/scrub/parent_repair.c
693
spaceres = xfs_rename_space_res(sc->mp, 0, false, xfs_name_dotdot.len,
fs/xfs/scrub/parent_repair.c
695
error = xfs_trans_reserve_more_inode(sc->tp, sc->ip, spaceres, 0,
fs/xfs/scrub/parent_repair.c
700
error = xfs_dir_replace(sc->tp, sc->ip, &xfs_name_dotdot,
fs/xfs/scrub/parent_repair.c
709
return xfs_trans_roll(&sc->tp);
fs/xfs/scrub/parent_repair.c
715
struct xfs_scrub *sc,
fs/xfs/scrub/parent_repair.c
731
error = xfs_parent_from_attr(sc->mp, attr_flags, name, namelen, value,
fs/xfs/scrub/parent_repair.c
747
struct xfs_scrub *sc,
fs/xfs/scrub/parent_repair.c
754
error = xchk_xattr_walk(sc, sc->ip, xrep_parent_lookup_pptr, NULL,
fs/xfs/scrub/parent_repair.c
773
struct xfs_scrub *sc = rp->sc;
fs/xfs/scrub/parent_repair.c
777
if (S_ISDIR(VFS_I(sc->ip)->i_mode)) {
fs/xfs/scrub/parent_repair.c
784
error = xchk_dir_lookup(sc, sc->ip, &xfs_name_dotdot,
fs/xfs/scrub/parent_repair.c
803
error = xrep_trans_commit(sc);
fs/xfs/scrub/parent_repair.c
806
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/parent_repair.c
809
if (!xrep_orphanage_ilock_nowait(sc, XFS_IOLOCK_EXCL)) {
fs/xfs/scrub/parent_repair.c
810
xchk_iunlock(sc, sc->ilock_flags);
fs/xfs/scrub/parent_repair.c
811
error = xrep_orphanage_iolock_two(sc);
fs/xfs/scrub/parent_repair.c
817
error = xrep_adoption_trans_alloc(sc, &rp->adoption);
fs/xfs/scrub/parent_repair.c
832
if (S_ISDIR(VFS_I(sc->ip)->i_mode))
fs/xfs/scrub/parent_repair.c
833
error = xchk_dir_lookup(sc, sc->ip, &xfs_name_dotdot,
fs/xfs/scrub/parent_repair.c
836
error = xrep_parent_lookup_pptrs(sc, &new_parent);
fs/xfs/scrub/parent_repair.c
844
if (orig_parent == new_parent && VFS_I(sc->ip)->i_nlink > 0) {
fs/xfs/scrub/parent_repair.c
858
xrep_orphanage_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/parent_repair.c
859
xrep_orphanage_iunlock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/parent_repair.c
899
struct xfs_scrub *sc = rp->sc;
fs/xfs/scrub/parent_repair.c
902
.geo = sc->mp->m_attr_geo,
fs/xfs/scrub/parent_repair.c
907
.trans = sc->tp,
fs/xfs/scrub/parent_repair.c
931
struct xfs_scrub *sc,
fs/xfs/scrub/parent_repair.c
960
trace_xrep_parent_stash_xattr(rp->sc->tempip, key.flags, (void *)name,
fs/xfs/scrub/parent_repair.c
983
.dp = rp->sc->tempip,
fs/xfs/scrub/parent_repair.c
987
.owner = rp->sc->ip->i_ino,
fs/xfs/scrub/parent_repair.c
988
.geo = rp->sc->mp->m_attr_geo,
fs/xfs/scrub/quota.c
102
error = xfs_bmapi_read(sc->ip, offset, 1, &irec, &nmaps, 0);
fs/xfs/scrub/quota.c
107
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
112
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
114
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
116
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
124
struct xfs_scrub *sc,
fs/xfs/scrub/quota.c
131
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
134
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
144
struct xfs_scrub *sc = sqi->sc;
fs/xfs/scrub/quota.c
145
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/quota.c
151
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/quota.c
159
xchk_ilock(sc, XFS_ILOCK_SHARED);
fs/xfs/scrub/quota.c
168
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
172
error = xchk_quota_item_bmap(sc, dq, offset);
fs/xfs/scrub/quota.c
173
xchk_iunlock(sc, XFS_ILOCK_SHARED);
fs/xfs/scrub/quota.c
174
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, offset, &error)) {
fs/xfs/scrub/quota.c
188
xchk_fblock_set_warning(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
190
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
193
xchk_fblock_set_warning(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
195
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
198
xchk_fblock_set_warning(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
200
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
212
xchk_fblock_set_warning(sc, XFS_DATA_FORK,
fs/xfs/scrub/quota.c
215
xchk_fblock_set_warning(sc, XFS_DATA_FORK,
fs/xfs/scrub/quota.c
219
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK,
fs/xfs/scrub/quota.c
222
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK,
fs/xfs/scrub/quota.c
226
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
238
xchk_fblock_set_warning(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
242
xchk_fblock_set_warning(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
246
xchk_fblock_set_warning(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
248
xchk_quota_item_timer(sc, offset, &dq->q_blk);
fs/xfs/scrub/quota.c
249
xchk_quota_item_timer(sc, offset, &dq->q_ino);
fs/xfs/scrub/quota.c
250
xchk_quota_item_timer(sc, offset, &dq->q_rtb);
fs/xfs/scrub/quota.c
254
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/quota.c
26
struct xfs_scrub *sc)
fs/xfs/scrub/quota.c
263
struct xfs_scrub *sc)
fs/xfs/scrub/quota.c
267
struct xfs_quotainfo *qi = sc->mp->m_quotainfo;
fs/xfs/scrub/quota.c
273
error = xchk_metadata_inode_forks(sc);
fs/xfs/scrub/quota.c
274
if (error || (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/quota.c
279
ifp = xfs_ifork_ptr(sc->ip, XFS_DATA_FORK);
fs/xfs/scrub/quota.c
28
switch (sc->sm->sm_type) {
fs/xfs/scrub/quota.c
281
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/quota.c
291
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK,
fs/xfs/scrub/quota.c
303
struct xfs_scrub *sc)
fs/xfs/scrub/quota.c
306
struct xchk_quota_info sqi = { .sc = sc };
fs/xfs/scrub/quota.c
307
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/quota.c
313
dqtype = xchk_quota_to_dqtype(sc);
fs/xfs/scrub/quota.c
316
error = xchk_quota_data_fork(sc);
fs/xfs/scrub/quota.c
319
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/quota.c
327
xchk_iunlock(sc, sc->ilock_flags);
fs/xfs/scrub/quota.c
330
xchk_dqiter_init(&cursor, sc, dqtype);
fs/xfs/scrub/quota.c
339
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK,
fs/xfs/scrub/quota.c
43
struct xfs_scrub *sc)
fs/xfs/scrub/quota.c
48
if (!XFS_IS_QUOTA_ON(sc->mp))
fs/xfs/scrub/quota.c
51
dqtype = xchk_quota_to_dqtype(sc);
fs/xfs/scrub/quota.c
55
if (!xfs_this_quota_on(sc->mp, dqtype))
fs/xfs/scrub/quota.c
58
if (xchk_need_intent_drain(sc))
fs/xfs/scrub/quota.c
59
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
fs/xfs/scrub/quota.c
61
error = xchk_setup_fs(sc);
fs/xfs/scrub/quota.c
65
error = xchk_install_live_inode(sc, xfs_quota_inode(sc->mp, dqtype));
fs/xfs/scrub/quota.c
69
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/quota.c
76
struct xfs_scrub *sc;
fs/xfs/scrub/quota.c
83
struct xfs_scrub *sc,
fs/xfs/scrub/quota.c
88
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/quota.c
93
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.c
98
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
fs/xfs/scrub/quota.h
14
struct xfs_scrub *sc;
fs/xfs/scrub/quota.h
32
void xchk_dqiter_init(struct xchk_dqiter *cursor, struct xfs_scrub *sc,
fs/xfs/scrub/quota.h
9
xfs_dqtype_t xchk_quota_to_dqtype(struct xfs_scrub *sc);
fs/xfs/scrub/quota_repair.c
101
return xfs_trans_roll(&sc->tp);
fs/xfs/scrub/quota_repair.c
107
struct xfs_scrub *sc,
fs/xfs/scrub/quota_repair.c
112
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/quota_repair.c
125
error = xfs_bmapi_read(sc->ip, offset, 1, &irec, &nmaps, 0);
fs/xfs/scrub/quota_repair.c
131
error = xrep_quota_item_fill_bmap_hole(sc, dq, &irec);
fs/xfs/scrub/quota_repair.c
154
struct xfs_scrub *sc,
fs/xfs/scrub/quota_repair.c
174
struct xfs_scrub *sc = rqi->sc;
fs/xfs/scrub/quota_repair.c
175
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/quota_repair.c
181
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/quota_repair.c
188
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/quota_repair.c
190
error = xrep_quota_item_bmap(sc, dq, &dirty);
fs/xfs/scrub/quota_repair.c
191
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/quota_repair.c
240
xrep_quota_item_timer(sc, &dq->q_blk, &dirty);
fs/xfs/scrub/quota_repair.c
241
xrep_quota_item_timer(sc, &dq->q_ino, &dirty);
fs/xfs/scrub/quota_repair.c
242
xrep_quota_item_timer(sc, &dq->q_rtb, &dirty);
fs/xfs/scrub/quota_repair.c
247
trace_xrep_dquot_item(sc->mp, dq->q_type, dq->q_id);
fs/xfs/scrub/quota_repair.c
250
xfs_trans_dqjoin(sc->tp, dq);
fs/xfs/scrub/quota_repair.c
255
xfs_trans_log_dquot(sc->tp, dq);
fs/xfs/scrub/quota_repair.c
256
return xfs_trans_roll(&sc->tp);
fs/xfs/scrub/quota_repair.c
294
struct xfs_scrub *sc,
fs/xfs/scrub/quota_repair.c
301
struct xfs_quotainfo *qi = sc->mp->m_quotainfo;
fs/xfs/scrub/quota_repair.c
308
error = xfs_trans_read_buf(sc->mp, sc->tp, sc->mp->m_ddev_targp, daddr,
fs/xfs/scrub/quota_repair.c
314
error = xfs_trans_read_buf(sc->mp, sc->tp,
fs/xfs/scrub/quota_repair.c
315
sc->mp->m_ddev_targp, daddr, qi->qi_dqchunklen,
fs/xfs/scrub/quota_repair.c
330
xfs_trans_brelse(sc->tp, bp);
fs/xfs/scrub/quota_repair.c
344
trace_xrep_disk_dquot(sc->mp, dqtype, id + i);
fs/xfs/scrub/quota_repair.c
351
if (xfs_has_bigtime(sc->mp) && ddq->d_id)
fs/xfs/scrub/quota_repair.c
354
xrep_quota_fix_timer(sc->mp, ddq, ddq->d_blk_softlimit,
fs/xfs/scrub/quota_repair.c
358
xrep_quota_fix_timer(sc->mp, ddq, ddq->d_ino_softlimit,
fs/xfs/scrub/quota_repair.c
362
xrep_quota_fix_timer(sc->mp, ddq, ddq->d_rtb_softlimit,
fs/xfs/scrub/quota_repair.c
367
uuid_copy(&dqblk->dd_uuid, &sc->mp->m_sb.sb_meta_uuid);
fs/xfs/scrub/quota_repair.c
383
xfs_trans_buf_set_type(sc->tp, bp, buftype);
fs/xfs/scrub/quota_repair.c
384
xfs_trans_log_buf(sc->tp, bp, 0, BBTOB(bp->b_length) - 1);
fs/xfs/scrub/quota_repair.c
385
return xrep_roll_trans(sc);
fs/xfs/scrub/quota_repair.c
394
struct xfs_scrub *sc,
fs/xfs/scrub/quota_repair.c
399
struct xfs_quotainfo *qi = sc->mp->m_quotainfo;
fs/xfs/scrub/quota_repair.c
408
error = xrep_metadata_inode_forks(sc);
fs/xfs/scrub/quota_repair.c
414
ifp = xfs_ifork_ptr(sc->ip, XFS_DATA_FORK);
fs/xfs/scrub/quota_repair.c
433
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/quota_repair.c
437
error = xfs_bmapi_write(sc->tp, sc->ip,
fs/xfs/scrub/quota_repair.c
445
error = xfs_defer_finish(&sc->tp);
fs/xfs/scrub/quota_repair.c
452
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/quota_repair.c
458
error = xfs_bunmapi_range(&sc->tp, sc->ip, 0,
fs/xfs/scrub/quota_repair.c
459
max_dqid_off * sc->mp->m_sb.sb_blocksize,
fs/xfs/scrub/quota_repair.c
465
error = xfs_reflink_cancel_cow_blocks(sc->ip, &sc->tp, 0,
fs/xfs/scrub/quota_repair.c
469
sc->ip->i_diflags2 &= ~XFS_DIFLAG2_REFLINK;
fs/xfs/scrub/quota_repair.c
47
struct xfs_scrub *sc;
fs/xfs/scrub/quota_repair.c
475
xfs_trans_log_inode(sc->tp, sc->ip, XFS_ILOG_CORE);
fs/xfs/scrub/quota_repair.c
484
error = xrep_quota_block(sc,
fs/xfs/scrub/quota_repair.c
485
XFS_FSB_TO_DADDR(sc->mp, fsbno),
fs/xfs/scrub/quota_repair.c
503
struct xfs_scrub *sc,
fs/xfs/scrub/quota_repair.c
507
struct xrep_quota_info rqi = { .sc = sc };
fs/xfs/scrub/quota_repair.c
511
xchk_dqiter_init(&cursor, sc, dqtype);
fs/xfs/scrub/quota_repair.c
523
xrep_force_quotacheck(sc, dqtype);
fs/xfs/scrub/quota_repair.c
530
struct xfs_scrub *sc)
fs/xfs/scrub/quota_repair.c
535
dqtype = xchk_quota_to_dqtype(sc);
fs/xfs/scrub/quota_repair.c
541
if (!(sc->ilock_flags & XFS_ILOCK_EXCL))
fs/xfs/scrub/quota_repair.c
542
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/quota_repair.c
543
error = xrep_quota_data_fork(sc, dqtype);
fs/xfs/scrub/quota_repair.c
552
error = xrep_defer_finish(sc);
fs/xfs/scrub/quota_repair.c
555
error = xfs_trans_roll(&sc->tp);
fs/xfs/scrub/quota_repair.c
558
xchk_iunlock(sc, sc->ilock_flags);
fs/xfs/scrub/quota_repair.c
561
error = xrep_quota_problems(sc, dqtype);
fs/xfs/scrub/quota_repair.c
565
return xrep_trans_commit(sc);
fs/xfs/scrub/quota_repair.c
57
struct xfs_scrub *sc,
fs/xfs/scrub/quota_repair.c
62
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/quota_repair.c
66
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/quota_repair.c
69
error = xfs_trans_reserve_more(sc->tp, XFS_QM_DQALLOC_SPACE_RES(mp),
fs/xfs/scrub/quota_repair.c
74
error = xfs_bmapi_write(sc->tp, sc->ip, dq->q_fileoffset,
fs/xfs/scrub/quota_repair.c
82
trace_xrep_dquot_item_fill_bmap_hole(sc->mp, dq->q_type, dq->q_id);
fs/xfs/scrub/quota_repair.c
85
error = xfs_trans_get_buf(sc->tp, mp->m_ddev_targp, dq->q_blkno,
fs/xfs/scrub/quota_repair.c
91
xfs_qm_init_dquot_blk(sc->tp, dq->q_id, dq->q_type, bp);
fs/xfs/scrub/quota_repair.c
98
error = xrep_defer_finish(sc);
fs/xfs/scrub/quotacheck.c
394
struct xfs_trans *tp = xqc->sc->tp;
fs/xfs/scrub/quotacheck.c
473
xchk_set_incomplete(xqc->sc);
fs/xfs/scrub/quotacheck.c
487
struct xfs_scrub *sc = xqc->sc;
fs/xfs/scrub/quotacheck.c
507
xchk_trans_cancel(sc);
fs/xfs/scrub/quotacheck.c
508
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/quotacheck.c
512
xchk_irele(sc, ip);
fs/xfs/scrub/quotacheck.c
516
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/quotacheck.c
521
xchk_set_incomplete(sc);
fs/xfs/scrub/quotacheck.c
536
xchk_trans_cancel(sc);
fs/xfs/scrub/quotacheck.c
537
return xchk_setup_fs(sc);
fs/xfs/scrub/quotacheck.c
562
xchk_set_incomplete(xqc->sc);
fs/xfs/scrub/quotacheck.c
573
xchk_qcheck_set_corrupt(xqc->sc, dqtype, dq->q_id);
fs/xfs/scrub/quotacheck.c
576
xchk_qcheck_set_corrupt(xqc->sc, dqtype, dq->q_id);
fs/xfs/scrub/quotacheck.c
579
xchk_qcheck_set_corrupt(xqc->sc, dqtype, dq->q_id);
fs/xfs/scrub/quotacheck.c
590
xchk_set_incomplete(xqc->sc);
fs/xfs/scrub/quotacheck.c
599
if (xqc->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/quotacheck.c
629
error = xfs_qm_dqget(xqc->sc->mp, id, dqtype, false, &dq);
fs/xfs/scrub/quotacheck.c
631
xchk_qcheck_set_corrupt(xqc->sc, dqtype, id);
fs/xfs/scrub/quotacheck.c
642
if (xchk_should_terminate(xqc->sc, &error))
fs/xfs/scrub/quotacheck.c
659
struct xfs_scrub *sc = xqc->sc;
fs/xfs/scrub/quotacheck.c
663
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/quotacheck.c
667
if (!(xfs_quota_chkd_flag(dqtype) & sc->mp->m_qflags)) {
fs/xfs/scrub/quotacheck.c
668
xchk_qcheck_set_corrupt(xqc->sc, dqtype, 0);
fs/xfs/scrub/quotacheck.c
673
xchk_dqiter_init(&cursor, sc, dqtype);
fs/xfs/scrub/quotacheck.c
693
struct xfs_quotainfo *qi = xqc->sc->mp->m_quotainfo;
fs/xfs/scrub/quotacheck.c
731
xqc->sc = NULL;
fs/xfs/scrub/quotacheck.c
741
struct xfs_scrub *sc,
fs/xfs/scrub/quotacheck.c
744
struct xfs_quotainfo *qi = sc->mp->m_quotainfo;
fs/xfs/scrub/quotacheck.c
748
ASSERT(xqc->sc == NULL);
fs/xfs/scrub/quotacheck.c
749
xqc->sc = sc;
fs/xfs/scrub/quotacheck.c
754
xchk_iscan_start(sc, 30000, 100, &xqc->iscan);
fs/xfs/scrub/quotacheck.c
757
if (xfs_this_quota_on(sc->mp, XFS_DQTYPE_USER)) {
fs/xfs/scrub/quotacheck.c
764
if (xfs_this_quota_on(sc->mp, XFS_DQTYPE_GROUP)) {
fs/xfs/scrub/quotacheck.c
771
if (xfs_this_quota_on(sc->mp, XFS_DQTYPE_PROJ)) {
fs/xfs/scrub/quotacheck.c
797
ASSERT(sc->flags & XCHK_FSGATES_QUOTA);
fs/xfs/scrub/quotacheck.c
806
sc->buf_cleanup = xqcheck_teardown_scan;
fs/xfs/scrub/quotacheck.c
817
struct xfs_scrub *sc)
fs/xfs/scrub/quotacheck.c
819
struct xqcheck *xqc = sc->buf;
fs/xfs/scrub/quotacheck.c
82
struct xfs_scrub *sc)
fs/xfs/scrub/quotacheck.c
823
error = xqcheck_setup_scan(sc, xqc);
fs/xfs/scrub/quotacheck.c
829
if (!xchk_xref_process_error(sc, 0, 0, &error))
fs/xfs/scrub/quotacheck.c
834
xchk_set_incomplete(sc);
fs/xfs/scrub/quotacheck.c
835
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_INCOMPLETE)
fs/xfs/scrub/quotacheck.c
84
if (!XFS_IS_QUOTA_ON(sc->mp))
fs/xfs/scrub/quotacheck.c
841
if (!xchk_xref_process_error(sc, 0, 0, &error))
fs/xfs/scrub/quotacheck.c
846
if (!xchk_xref_process_error(sc, 0, 0, &error))
fs/xfs/scrub/quotacheck.c
851
if (!xchk_xref_process_error(sc, 0, 0, &error))
fs/xfs/scrub/quotacheck.c
857
xchk_set_incomplete(sc);
fs/xfs/scrub/quotacheck.c
87
xchk_fsgates_enable(sc, XCHK_FSGATES_QUOTA);
fs/xfs/scrub/quotacheck.c
89
sc->buf = kzalloc_obj(struct xqcheck, XCHK_GFP_FLAGS);
fs/xfs/scrub/quotacheck.c
90
if (!sc->buf)
fs/xfs/scrub/quotacheck.c
93
return xchk_setup_fs(sc);
fs/xfs/scrub/quotacheck.h
38
struct xfs_scrub *sc;
fs/xfs/scrub/quotacheck_repair.c
109
trace_xrep_quotacheck_dquot(xqc->sc->mp, dq->q_type, dq->q_id);
fs/xfs/scrub/quotacheck_repair.c
115
xfs_trans_log_dquot(xqc->sc->tp, dq);
fs/xfs/scrub/quotacheck_repair.c
116
return xrep_trans_commit(xqc->sc);
fs/xfs/scrub/quotacheck_repair.c
121
xchk_trans_cancel(xqc->sc);
fs/xfs/scrub/quotacheck_repair.c
133
struct xfs_scrub *sc = xqc->sc;
fs/xfs/scrub/quotacheck_repair.c
134
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/quotacheck_repair.c
143
xchk_dqiter_init(&cursor, sc, dqtype);
fs/xfs/scrub/quotacheck_repair.c
207
struct xfs_scrub *sc)
fs/xfs/scrub/quotacheck_repair.c
209
struct xqcheck *xqc = sc->buf;
fs/xfs/scrub/quotacheck_repair.c
210
unsigned int qflags = xqcheck_chkd_flags(sc->mp);
fs/xfs/scrub/quotacheck_repair.c
219
xrep_update_qflags(sc, qflags, 0);
fs/xfs/scrub/quotacheck_repair.c
220
error = xrep_trans_commit(sc);
fs/xfs/scrub/quotacheck_repair.c
242
error = xchk_trans_alloc(sc, 0);
fs/xfs/scrub/quotacheck_repair.c
246
xrep_update_qflags(sc, 0, qflags);
fs/xfs/scrub/quotacheck_repair.c
247
return xrep_trans_commit(sc);
fs/xfs/scrub/quotacheck_repair.c
55
error = xchk_trans_alloc(xqc->sc, 0);
fs/xfs/scrub/quotacheck_repair.c
60
xfs_trans_dqjoin(xqc->sc->tp, dq);
fs/xfs/scrub/readdir.c
103
error = xfs_dir3_block_read(sc->tp, dp, dp->i_ino, &bp);
fs/xfs/scrub/readdir.c
133
error = dirent_fn(sc, dp, dapos, &name, ino, priv);
fs/xfs/scrub/readdir.c
138
xfs_trans_brelse(sc->tp, bp);
fs/xfs/scrub/readdir.c
185
struct xfs_scrub *sc,
fs/xfs/scrub/readdir.c
212
xfs_trans_brelse(sc->tp, bp);
fs/xfs/scrub/readdir.c
216
error = xchk_read_leaf_dir_buf(sc->tp, dp, geo, &curoff,
fs/xfs/scrub/readdir.c
247
error = dirent_fn(sc, dp, dapos, &name, ino, priv);
fs/xfs/scrub/readdir.c
257
xfs_trans_brelse(sc->tp, bp);
fs/xfs/scrub/readdir.c
268
struct xfs_scrub *sc,
fs/xfs/scrub/readdir.c
27
struct xfs_scrub *sc,
fs/xfs/scrub/readdir.c
276
.trans = sc->tp,
fs/xfs/scrub/readdir.c
289
return xchk_dir_walk_sf(sc, dp, dirent_fn, priv);
fs/xfs/scrub/readdir.c
291
return xchk_dir_walk_block(sc, dp, dirent_fn, priv);
fs/xfs/scrub/readdir.c
294
return xchk_dir_walk_leaf(sc, dp, dirent_fn, priv);
fs/xfs/scrub/readdir.c
308
struct xfs_scrub *sc,
fs/xfs/scrub/readdir.c
316
.trans = sc->tp,
fs/xfs/scrub/readdir.c
334
if (dp == sc->tempip)
fs/xfs/scrub/readdir.c
335
args.owner = sc->ip->i_ino;
fs/xfs/scrub/readdir.c
353
struct xfs_scrub *sc,
fs/xfs/scrub/readdir.c
356
if (!xchk_ilock_nowait(sc, XFS_IOLOCK_EXCL))
fs/xfs/scrub/readdir.c
362
xchk_ilock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/readdir.c
369
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/readdir.c
372
xchk_iunlock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/readdir.c
395
struct xfs_scrub *sc,
fs/xfs/scrub/readdir.c
402
ASSERT(sc->ilock_flags == 0);
fs/xfs/scrub/readdir.c
405
*lockmode = xchk_dir_trylock_both(sc, ip);
fs/xfs/scrub/readdir.c
409
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/readdir.c
415
if (sc->flags & XCHK_TRY_HARDER) {
fs/xfs/scrub/readdir.c
416
xchk_set_incomplete(sc);
fs/xfs/scrub/readdir.c
53
error = dirent_fn(sc, dp, dapos, &name, dp->i_ino, priv);
fs/xfs/scrub/readdir.c
65
error = dirent_fn(sc, dp, dapos, &name, ino, priv);
fs/xfs/scrub/readdir.c
79
error = dirent_fn(sc, dp, dapos, &name, ino, priv);
fs/xfs/scrub/readdir.c
92
struct xfs_scrub *sc,
fs/xfs/scrub/readdir.h
13
int xchk_dir_walk(struct xfs_scrub *sc, struct xfs_inode *dp,
fs/xfs/scrub/readdir.h
16
int xchk_dir_lookup(struct xfs_scrub *sc, struct xfs_inode *dp,
fs/xfs/scrub/readdir.h
19
int xchk_dir_trylock_for_pptrs(struct xfs_scrub *sc, struct xfs_inode *ip,
fs/xfs/scrub/readdir.h
9
typedef int (*xchk_dirent_fn)(struct xfs_scrub *sc, struct xfs_inode *dp,
fs/xfs/scrub/reap.c
1004
xfs_refcount_free_cow_extent(sc->tp, true, rtbno, *rglenp);
fs/xfs/scrub/reap.c
1005
error = xfs_free_extent_later(sc->tp, rtbno, *rglenp, NULL,
fs/xfs/scrub/reap.c
1026
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
1027
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/reap.c
1075
trace_xreap_rgcow_limits(sc->tp, 0, 0, step_size, per_intent,
fs/xfs/scrub/reap.c
1095
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
1096
xfs_rgblock_t rgbno = xfs_rtb_to_rgbno(sc->mp, rtbno);
fs/xfs/scrub/reap.c
1100
ASSERT(sc->ip != NULL);
fs/xfs/scrub/reap.c
1101
ASSERT(!sc->sr.rtg);
fs/xfs/scrub/reap.c
1107
sc->sr.rtg = xfs_rtgroup_get(sc->mp, xfs_rtb_to_rgno(sc->mp, rtbno));
fs/xfs/scrub/reap.c
1108
if (!sc->sr.rtg)
fs/xfs/scrub/reap.c
1111
xfs_rtgroup_lock(sc->sr.rtg, XREAP_RTGLOCK_ALL);
fs/xfs/scrub/reap.c
1127
error = xfs_defer_finish(&sc->tp);
fs/xfs/scrub/reap.c
1132
error = xfs_trans_roll_inode(&sc->tp, sc->ip);
fs/xfs/scrub/reap.c
1142
xfs_rtgroup_unlock(sc->sr.rtg, XREAP_RTGLOCK_ALL);
fs/xfs/scrub/reap.c
1143
xfs_rtgroup_put(sc->sr.rtg);
fs/xfs/scrub/reap.c
1144
sc->sr.rtg = NULL;
fs/xfs/scrub/reap.c
1154
struct xfs_scrub *sc,
fs/xfs/scrub/reap.c
1159
.sc = sc,
fs/xfs/scrub/reap.c
1165
ASSERT(xfs_has_rmapbt(sc->mp));
fs/xfs/scrub/reap.c
1166
ASSERT(sc->ip != NULL);
fs/xfs/scrub/reap.c
1175
return xrep_defer_finish(sc);
fs/xfs/scrub/reap.c
1187
struct xfs_scrub *sc,
fs/xfs/scrub/reap.c
1197
.sc = sc,
fs/xfs/scrub/reap.c
1203
ASSERT(xfs_has_rmapbt(sc->mp));
fs/xfs/scrub/reap.c
1204
ASSERT(sc->ip != NULL);
fs/xfs/scrub/reap.c
1205
ASSERT(xfs_is_metadir_inode(sc->ip));
fs/xfs/scrub/reap.c
1208
xfs_rmap_ino_bmbt_owner(&oinfo, sc->ip->i_ino, XFS_DATA_FORK);
fs/xfs/scrub/reap.c
1214
error = xrep_defer_finish(sc);
fs/xfs/scrub/reap.c
1219
return xrep_reset_metafile_resv(sc);
fs/xfs/scrub/reap.c
1238
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
1246
agbno = XFS_FSB_TO_AGBNO(sc->mp, imap->br_startblock);
fs/xfs/scrub/reap.c
1249
cur = xfs_rmapbt_init_cursor(sc->mp, sc->tp, sc->sa.agf_bp,
fs/xfs/scrub/reap.c
1250
sc->sa.pag);
fs/xfs/scrub/reap.c
1276
trace_xreap_bmapi_select(pag_group(sc->sa.pag), agbno, len,
fs/xfs/scrub/reap.c
1319
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
132
struct xfs_scrub *sc,
fs/xfs/scrub/reap.c
1320
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/reap.c
1321
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/reap.c
1335
agbno = bno = XFS_FSB_TO_AGBNO(sc->mp, imap->br_startblock);
fs/xfs/scrub/reap.c
1371
trace_xreap_bmapi_binval_scan(sc, imap, scan_blocks);
fs/xfs/scrub/reap.c
139
error = xrep_fix_freelist(sc, 0);
fs/xfs/scrub/reap.c
1390
xfs_trans_bjoin(sc->tp, bp);
fs/xfs/scrub/reap.c
1391
xfs_trans_binval(sc->tp, bp);
fs/xfs/scrub/reap.c
1413
trace_xreap_bmapi_binval(pag_group(sc->sa.pag), agbno,
fs/xfs/scrub/reap.c
1428
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
1440
trace_xreap_dispose_unmap_extent(pag_group(sc->sa.pag),
fs/xfs/scrub/reap.c
1441
XFS_FSB_TO_AGBNO(sc->mp, imap->br_startblock),
fs/xfs/scrub/reap.c
1449
xfs_bmap_unmap_extent(sc->tp, rs->ip, rs->whichfork, imap);
fs/xfs/scrub/reap.c
1450
xfs_trans_mod_dquot_byino(sc->tp, rs->ip, XFS_TRANS_DQ_BCOUNT,
fs/xfs/scrub/reap.c
1452
xfs_rmap_unmap_extent(sc->tp, rs->ip, rs->whichfork, imap);
fs/xfs/scrub/reap.c
1463
trace_xreap_dispose_free_extent(pag_group(sc->sa.pag),
fs/xfs/scrub/reap.c
1464
XFS_FSB_TO_AGBNO(sc->mp, imap->br_startblock),
fs/xfs/scrub/reap.c
148
error = xfs_rmap_alloc(sc->tp, sc->sa.agf_bp, sc->sa.pag, agbno, 1,
fs/xfs/scrub/reap.c
1482
xfs_bmap_unmap_extent(sc->tp, rs->ip, rs->whichfork, imap);
fs/xfs/scrub/reap.c
1483
xfs_trans_mod_dquot_byino(sc->tp, rs->ip, XFS_TRANS_DQ_BCOUNT,
fs/xfs/scrub/reap.c
1485
return xfs_free_extent_later(sc->tp, imap->br_startblock,
fs/xfs/scrub/reap.c
1493
struct xfs_scrub *sc)
fs/xfs/scrub/reap.c
1496
if (sc->sm->sm_type == XFS_SCRUB_TYPE_DIR)
fs/xfs/scrub/reap.c
1497
return sc->mp->m_dir_geo->fsbcount;
fs/xfs/scrub/reap.c
1506
struct xfs_scrub *sc)
fs/xfs/scrub/reap.c
1508
switch (sc->sm->sm_type) {
fs/xfs/scrub/reap.c
1510
return sc->mp->m_dir_geo->blksize;
fs/xfs/scrub/reap.c
1521
return sc->mp->m_sb.sb_blocksize;
fs/xfs/scrub/reap.c
1532
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
1533
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/reap.c
1537
xfs_buf_inval_log_space(xreap_bmapi_binval_mapcount(sc),
fs/xfs/scrub/reap.c
1538
xreap_bmapi_binval_blocksize(sc));
fs/xfs/scrub/reap.c
154
error = xfs_alloc_read_agfl(sc->sa.pag, sc->tp, &agfl_bp);
fs/xfs/scrub/reap.c
158
error = xfs_alloc_put_freelist(sc->sa.pag, sc->tp, sc->sa.agf_bp,
fs/xfs/scrub/reap.c
1585
trace_xreap_bmapi_limits(sc->tp, per_binval, rs->max_binval,
fs/xfs/scrub/reap.c
1598
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
1603
ASSERT(sc->sa.pag == NULL);
fs/xfs/scrub/reap.c
1605
trace_xreap_ifork_extent(sc, rs->ip, rs->whichfork, imap);
fs/xfs/scrub/reap.c
1607
agno = XFS_FSB_TO_AGNO(sc->mp, imap->br_startblock);
fs/xfs/scrub/reap.c
1608
sc->sa.pag = xfs_perag_get(sc->mp, agno);
fs/xfs/scrub/reap.c
1609
if (!sc->sa.pag)
fs/xfs/scrub/reap.c
1612
error = xfs_alloc_read_agf(sc->sa.pag, sc->tp, 0, &sc->sa.agf_bp);
fs/xfs/scrub/reap.c
162
xfs_extent_busy_insert(sc->tp, pag_group(sc->sa.pag), agbno, 1,
fs/xfs/scrub/reap.c
1629
xfs_trans_brelse(sc->tp, sc->sa.agf_bp);
fs/xfs/scrub/reap.c
1630
sc->sa.agf_bp = NULL;
fs/xfs/scrub/reap.c
1632
xfs_perag_put(sc->sa.pag);
fs/xfs/scrub/reap.c
1633
sc->sa.pag = NULL;
fs/xfs/scrub/reap.c
1644
struct xfs_scrub *sc,
fs/xfs/scrub/reap.c
1649
.sc = sc,
fs/xfs/scrub/reap.c
1657
ASSERT(xfs_has_rmapbt(sc->mp));
fs/xfs/scrub/reap.c
1658
ASSERT(ip == sc->ip || ip == sc->tempip);
fs/xfs/scrub/reap.c
1685
error = xfs_defer_finish(&sc->tp);
fs/xfs/scrub/reap.c
289
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
290
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/reap.c
291
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/reap.c
320
xfs_trans_bjoin(sc->tp, bp);
fs/xfs/scrub/reap.c
321
xfs_trans_binval(sc->tp, bp);
fs/xfs/scrub/reap.c
338
trace_xreap_agextent_binval(pag_group(sc->sa.pag), agbno, *aglenp);
fs/xfs/scrub/reap.c
355
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
365
cur = xfs_rmapbt_init_cursor(sc->mp, sc->tp, sc->sa.agf_bp,
fs/xfs/scrub/reap.c
366
sc->sa.pag);
fs/xfs/scrub/reap.c
397
trace_xreap_agextent_select(pag_group(sc->sa.pag), agbno, len,
fs/xfs/scrub/reap.c
415
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
421
fsbno = xfs_agbno_to_fsb(sc->sa.pag, agbno);
fs/xfs/scrub/reap.c
437
trace_xreap_dispose_unmap_extent(pag_group(sc->sa.pag), agbno,
fs/xfs/scrub/reap.c
446
xfs_refcount_free_cow_extent(sc->tp, false, fsbno,
fs/xfs/scrub/reap.c
453
xfs_rmap_free_extent(sc->tp, false, fsbno, *aglenp,
fs/xfs/scrub/reap.c
459
trace_xreap_dispose_free_extent(pag_group(sc->sa.pag), agbno, *aglenp);
fs/xfs/scrub/reap.c
483
xfs_refcount_free_cow_extent(sc->tp, false, fsbno, *aglenp);
fs/xfs/scrub/reap.c
484
error = xfs_free_extent_later(sc->tp, fsbno, *aglenp, NULL,
fs/xfs/scrub/reap.c
496
error = xreap_put_freelist(sc, agbno);
fs/xfs/scrub/reap.c
510
error = xfs_free_extent_later(sc->tp, fsbno, *aglenp, rs->oinfo,
fs/xfs/scrub/reap.c
517
xfs_defer_add_barrier(sc->tp);
fs/xfs/scrub/reap.c
530
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
531
unsigned int res = sc->tp->t_log_res - fixed_overhead;
fs/xfs/scrub/reap.c
534
if (sc->tp->t_log_res < (fixed_overhead + variable_overhead)) {
fs/xfs/scrub/reap.c
535
ASSERT(sc->tp->t_log_res >=
fs/xfs/scrub/reap.c
537
xfs_force_shutdown(sc->mp, SHUTDOWN_CORRUPT_INCORE);
fs/xfs/scrub/reap.c
556
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
557
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/reap.c
621
trace_xreap_agextent_limits(sc->tp, per_binval, rs->max_binval,
fs/xfs/scrub/reap.c
635
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
636
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/reap.c
699
trace_xreap_agcow_limits(sc->tp, per_binval, rs->max_binval, step_size,
fs/xfs/scrub/reap.c
714
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
719
ASSERT(sc->ip == NULL);
fs/xfs/scrub/reap.c
735
error = xrep_defer_finish(sc);
fs/xfs/scrub/reap.c
740
error = xrep_roll_ag_trans(sc);
fs/xfs/scrub/reap.c
755
struct xfs_scrub *sc,
fs/xfs/scrub/reap.c
761
.sc = sc,
fs/xfs/scrub/reap.c
767
ASSERT(xfs_has_rmapbt(sc->mp));
fs/xfs/scrub/reap.c
768
ASSERT(sc->ip == NULL);
fs/xfs/scrub/reap.c
776
return xrep_defer_finish(sc);
fs/xfs/scrub/reap.c
793
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
794
xfs_agnumber_t agno = XFS_FSB_TO_AGNO(sc->mp, fsbno);
fs/xfs/scrub/reap.c
795
xfs_agblock_t agbno = XFS_FSB_TO_AGBNO(sc->mp, fsbno);
fs/xfs/scrub/reap.c
800
ASSERT(sc->ip != NULL);
fs/xfs/scrub/reap.c
801
ASSERT(!sc->sa.pag);
fs/xfs/scrub/reap.c
807
sc->sa.pag = xfs_perag_get(sc->mp, agno);
fs/xfs/scrub/reap.c
808
if (!sc->sa.pag)
fs/xfs/scrub/reap.c
811
error = xfs_alloc_read_agf(sc->sa.pag, sc->tp, 0, &sc->sa.agf_bp);
fs/xfs/scrub/reap.c
833
error = xrep_defer_finish(sc);
fs/xfs/scrub/reap.c
843
xfs_trans_bhold(sc->tp, sc->sa.agf_bp);
fs/xfs/scrub/reap.c
844
error = xfs_trans_roll_inode(&sc->tp, sc->ip);
fs/xfs/scrub/reap.c
845
xfs_trans_bjoin(sc->tp, sc->sa.agf_bp);
fs/xfs/scrub/reap.c
855
xfs_trans_brelse(sc->tp, sc->sa.agf_bp);
fs/xfs/scrub/reap.c
856
sc->sa.agf_bp = NULL;
fs/xfs/scrub/reap.c
858
xfs_perag_put(sc->sa.pag);
fs/xfs/scrub/reap.c
859
sc->sa.pag = NULL;
fs/xfs/scrub/reap.c
869
struct xfs_scrub *sc,
fs/xfs/scrub/reap.c
874
.sc = sc,
fs/xfs/scrub/reap.c
880
ASSERT(xfs_has_rmapbt(sc->mp));
fs/xfs/scrub/reap.c
881
ASSERT(sc->ip != NULL);
fs/xfs/scrub/reap.c
892
return xrep_defer_finish(sc);
fs/xfs/scrub/reap.c
911
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
921
cur = xfs_rtrmapbt_init_cursor(sc->tp, sc->sr.rtg);
fs/xfs/scrub/reap.c
947
trace_xreap_agextent_select(rtg_group(sc->sr.rtg), rgbno, len,
fs/xfs/scrub/reap.c
965
struct xfs_scrub *sc = rs->sc;
fs/xfs/scrub/reap.c
98
struct xfs_scrub *sc;
fs/xfs/scrub/reap.c
980
rtbno = xfs_rgbno_to_rtb(sc->sr.rtg, rgbno);
fs/xfs/scrub/reap.c
987
trace_xreap_dispose_unmap_extent(rtg_group(sc->sr.rtg), rgbno,
fs/xfs/scrub/reap.c
990
xfs_refcount_free_cow_extent(sc->tp, true, rtbno, *rglenp);
fs/xfs/scrub/reap.c
995
trace_xreap_dispose_free_extent(rtg_group(sc->sr.rtg), rgbno, *rglenp);
fs/xfs/scrub/reap.h
12
int xrep_reap_agblocks(struct xfs_scrub *sc, struct xagb_bitmap *bitmap,
fs/xfs/scrub/reap.h
14
int xrep_reap_fsblocks(struct xfs_scrub *sc, struct xfsb_bitmap *bitmap,
fs/xfs/scrub/reap.h
16
int xrep_reap_ifork(struct xfs_scrub *sc, struct xfs_inode *ip, int whichfork);
fs/xfs/scrub/reap.h
17
int xrep_reap_metadir_fsblocks(struct xfs_scrub *sc,
fs/xfs/scrub/reap.h
21
int xrep_reap_rtblocks(struct xfs_scrub *sc, struct xrtb_bitmap *bitmap,
fs/xfs/scrub/refcount.c
120
if (xchk_should_terminate(refchk->sc, &error))
fs/xfs/scrub/refcount.c
128
xchk_btree_xref_set_corrupt(refchk->sc, cur, 0);
fs/xfs/scrub/refcount.c
285
struct xfs_scrub *sc,
fs/xfs/scrub/refcount.c
289
.sc = sc,
fs/xfs/scrub/refcount.c
29
struct xfs_scrub *sc)
fs/xfs/scrub/refcount.c
301
if (!sc->sa.rmap_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/refcount.c
31
if (xchk_need_intent_drain(sc))
fs/xfs/scrub/refcount.c
311
error = xfs_rmap_query_range(sc->sa.rmap_cur, &low, &high,
fs/xfs/scrub/refcount.c
313
if (!xchk_should_check_xref(sc, &error, &sc->sa.rmap_cur))
fs/xfs/scrub/refcount.c
318
trace_xchk_refcount_incorrect(sc->sa.pag, irec, refchk.seen);
fs/xfs/scrub/refcount.c
319
xchk_btree_xref_set_corrupt(sc, sc->sa.rmap_cur, 0);
fs/xfs/scrub/refcount.c
32
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
fs/xfs/scrub/refcount.c
332
struct xfs_scrub *sc,
fs/xfs/scrub/refcount.c
335
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/refcount.c
338
xchk_xref_is_used_space(sc, irec->rc_startblock, irec->rc_blockcount);
fs/xfs/scrub/refcount.c
339
xchk_xref_is_not_inode_chunk(sc, irec->rc_startblock,
fs/xfs/scrub/refcount.c
34
if (xchk_could_repair(sc)) {
fs/xfs/scrub/refcount.c
341
xchk_refcountbt_xref_rmap(sc, irec);
fs/xfs/scrub/refcount.c
37
error = xrep_setup_ag_refcountbt(sc);
fs/xfs/scrub/refcount.c
379
struct xfs_scrub *sc,
fs/xfs/scrub/refcount.c
388
if (bno <= rrc->next_unshared_agbno || !sc->sa.rmap_cur ||
fs/xfs/scrub/refcount.c
389
xchk_skip_xref(sc->sm))
fs/xfs/scrub/refcount.c
397
error = xfs_rmap_query_range(sc->sa.rmap_cur, &low, &high,
fs/xfs/scrub/refcount.c
400
xchk_btree_xref_set_corrupt(sc, sc->sa.rmap_cur, 0);
fs/xfs/scrub/refcount.c
402
xchk_should_check_xref(sc, &error, &sc->sa.rmap_cur);
fs/xfs/scrub/refcount.c
42
return xchk_setup_ag_btree(sc, false);
fs/xfs/scrub/refcount.c
436
if (bs->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/refcount.c
440
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/refcount.c
457
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/refcount.c
467
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/refcount.c
471
xchk_refcountbt_xref(bs->sc, &irec);
fs/xfs/scrub/refcount.c
479
xchk_refcountbt_xref_gaps(bs->sc, rrc, irec.rc_startblock);
fs/xfs/scrub/refcount.c
490
struct xfs_scrub *sc,
fs/xfs/scrub/refcount.c
497
if (!sc->sa.rmap_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/refcount.c
501
error = xfs_btree_count_blocks(sc->sa.refc_cur, &refcbt_blocks);
fs/xfs/scrub/refcount.c
502
if (!xchk_btree_process_error(sc, sc->sa.refc_cur, 0, &error))
fs/xfs/scrub/refcount.c
504
error = xchk_count_rmap_ownedby_ag(sc, sc->sa.rmap_cur,
fs/xfs/scrub/refcount.c
506
if (!xchk_should_check_xref(sc, &error, &sc->sa.rmap_cur))
fs/xfs/scrub/refcount.c
509
xchk_btree_xref_set_corrupt(sc, sc->sa.rmap_cur, 0);
fs/xfs/scrub/refcount.c
512
error = xchk_count_rmap_ownedby_ag(sc, sc->sa.rmap_cur,
fs/xfs/scrub/refcount.c
514
if (!xchk_should_check_xref(sc, &error, &sc->sa.rmap_cur))
fs/xfs/scrub/refcount.c
517
xchk_btree_xref_set_corrupt(sc, sc->sa.rmap_cur, 0);
fs/xfs/scrub/refcount.c
523
struct xfs_scrub *sc)
fs/xfs/scrub/refcount.c
532
error = xchk_btree(sc, sc->sa.refc_cur, xchk_refcountbt_rec,
fs/xfs/scrub/refcount.c
541
xchk_refcountbt_xref_gaps(sc, &rrc, sc->mp->m_sb.sb_agblocks);
fs/xfs/scrub/refcount.c
543
xchk_refcount_xref_rmap(sc, rrc.cow_blocks);
fs/xfs/scrub/refcount.c
551
struct xfs_scrub *sc,
fs/xfs/scrub/refcount.c
559
if (!sc->sa.refc_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/refcount.c
563
error = xfs_refcount_lookup_le(sc->sa.refc_cur, XFS_REFC_DOMAIN_COW,
fs/xfs/scrub/refcount.c
565
if (!xchk_should_check_xref(sc, &error, &sc->sa.refc_cur))
fs/xfs/scrub/refcount.c
568
xchk_btree_xref_set_corrupt(sc, sc->sa.refc_cur, 0);
fs/xfs/scrub/refcount.c
572
error = xfs_refcount_get_rec(sc->sa.refc_cur, &rc, &has_refcount);
fs/xfs/scrub/refcount.c
573
if (!xchk_should_check_xref(sc, &error, &sc->sa.refc_cur))
fs/xfs/scrub/refcount.c
576
xchk_btree_xref_set_corrupt(sc, sc->sa.refc_cur, 0);
fs/xfs/scrub/refcount.c
582
xchk_btree_xref_set_corrupt(sc, sc->sa.refc_cur, 0);
fs/xfs/scrub/refcount.c
586
xchk_btree_xref_set_corrupt(sc, sc->sa.refc_cur, 0);
fs/xfs/scrub/refcount.c
595
struct xfs_scrub *sc,
fs/xfs/scrub/refcount.c
602
if (!sc->sa.refc_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/refcount.c
605
error = xfs_refcount_has_records(sc->sa.refc_cur,
fs/xfs/scrub/refcount.c
607
if (!xchk_should_check_xref(sc, &error, &sc->sa.refc_cur))
fs/xfs/scrub/refcount.c
610
xchk_btree_xref_set_corrupt(sc, sc->sa.refc_cur, 0);
fs/xfs/scrub/refcount.c
616
struct xfs_scrub *sc,
fs/xfs/scrub/refcount.c
623
if (!sc->sa.refc_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/refcount.c
626
error = xfs_refcount_has_records(sc->sa.refc_cur, XFS_REFC_DOMAIN_COW,
fs/xfs/scrub/refcount.c
628
if (!xchk_should_check_xref(sc, &error, &sc->sa.refc_cur))
fs/xfs/scrub/refcount.c
631
xchk_btree_xref_set_corrupt(sc, sc->sa.refc_cur, 0);
fs/xfs/scrub/refcount.c
89
struct xfs_scrub *sc;
fs/xfs/scrub/refcount_repair.c
112
struct xfs_scrub *sc;
fs/xfs/scrub/refcount_repair.c
124
struct xfs_scrub *sc)
fs/xfs/scrub/refcount_repair.c
126
return xrep_setup_xfbtree(sc, "rmap record bag");
fs/xfs/scrub/refcount_repair.c
132
struct xfs_scrub *sc,
fs/xfs/scrub/refcount_repair.c
138
if (xfs_refcount_check_irec(sc->sa.pag, rec) != NULL)
fs/xfs/scrub/refcount_repair.c
142
error = xfs_alloc_has_records(sc->sa.bno_cur, rec->rc_startblock,
fs/xfs/scrub/refcount_repair.c
150
error = xfs_ialloc_has_inodes_at_extent(sc->sa.ino_cur,
fs/xfs/scrub/refcount_repair.c
174
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/refcount_repair.c
177
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/refcount_repair.c
182
error = xrep_refc_check_ext(rr->sc, &irec);
fs/xfs/scrub/refcount_repair.c
186
trace_xrep_refc_found(pag_group(sc->sa.pag), &irec);
fs/xfs/scrub/refcount_repair.c
233
struct xfs_btree_cur *cur = rr->sc->sa.rmap_cur;
fs/xfs/scrub/refcount_repair.c
247
if (xchk_should_terminate(rr->sc, &error))
fs/xfs/scrub/refcount_repair.c
337
if (xchk_should_terminate(rr->sc, &error))
fs/xfs/scrub/refcount_repair.c
375
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/refcount_repair.c
380
error = rcbag_add(rcstack, rr->sc->tp, rmap);
fs/xfs/scrub/refcount_repair.c
389
error = xfs_btree_decrement(sc->sa.rmap_cur, 0, &have_gt);
fs/xfs/scrub/refcount_repair.c
392
if (XFS_IS_CORRUPT(sc->mp, !have_gt)) {
fs/xfs/scrub/refcount_repair.c
393
xfs_btree_mark_sick(sc->sa.rmap_cur);
fs/xfs/scrub/refcount_repair.c
405
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/refcount_repair.c
414
xrep_ag_btcur_init(sc, &sc->sa);
fs/xfs/scrub/refcount_repair.c
421
error = rcbag_init(sc->mp, sc->xmbtp, &rcstack);
fs/xfs/scrub/refcount_repair.c
426
error = xfs_btree_goto_left_edge(sc->sa.rmap_cur);
fs/xfs/scrub/refcount_repair.c
431
while (xfs_btree_has_more_records(sc->sa.rmap_cur)) {
fs/xfs/scrub/refcount_repair.c
447
error = rcbag_next_edge(rcstack, sc->tp, &rmap, have, &nbno);
fs/xfs/scrub/refcount_repair.c
457
error = rcbag_remove_ending_at(rcstack, sc->tp, nbno);
fs/xfs/scrub/refcount_repair.c
493
error = rcbag_next_edge(rcstack, sc->tp, &rmap, have,
fs/xfs/scrub/refcount_repair.c
506
xchk_ag_btcur_free(&sc->sa);
fs/xfs/scrub/refcount_repair.c
555
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/refcount_repair.c
556
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/refcount_repair.c
572
return xrep_reinit_pagf(sc);
fs/xfs/scrub/refcount_repair.c
584
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/refcount_repair.c
586
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/refcount_repair.c
599
xrep_newbt_init_ag(&rr->new_btree, sc, &XFS_RMAP_OINFO_REFC,
fs/xfs/scrub/refcount_repair.c
600
xfs_agbno_to_fsb(pag, xfs_refc_block(sc->mp)),
fs/xfs/scrub/refcount_repair.c
606
refc_cur = xfs_refcountbt_init_cursor(sc->mp, NULL, NULL, pag);
fs/xfs/scrub/refcount_repair.c
615
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/refcount_repair.c
642
xfs_refcountbt_commit_staged_btree(refc_cur, sc->tp, sc->sa.agf_bp);
fs/xfs/scrub/refcount_repair.c
655
return xrep_roll_ag_trans(sc);
fs/xfs/scrub/refcount_repair.c
674
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/refcount_repair.c
675
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/refcount_repair.c
679
error = xrep_reap_agblocks(sc, &rr->old_refcountbt_blocks,
fs/xfs/scrub/refcount_repair.c
690
sc->flags |= XREP_RESET_PERAG_RESV;
fs/xfs/scrub/refcount_repair.c
697
struct xfs_scrub *sc)
fs/xfs/scrub/refcount_repair.c
700
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/refcount_repair.c
710
rr->sc = sc;
fs/xfs/scrub/repair.c
1003
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
1006
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/repair.c
1010
if (sc->sm->sm_type != XFS_SCRUB_TYPE_RTRMAPBT &&
fs/xfs/scrub/repair.c
1013
sr->rmap_cur = xfs_rtrmapbt_init_cursor(sc->tp, sr->rtg);
fs/xfs/scrub/repair.c
1015
if (sc->sm->sm_type != XFS_SCRUB_TYPE_RTREFCBT &&
fs/xfs/scrub/repair.c
1018
sr->refc_cur = xfs_rtrefcountbt_init_cursor(sc->tp, sr->rtg);
fs/xfs/scrub/repair.c
1027
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
1039
xrep_rtgroup_btcur_init(sc, sr);
fs/xfs/scrub/repair.c
1046
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
1050
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/repair.c
1057
if (!xfs_zone_rgbno_is_valid(sc->sr.rtg, rgbno + len - 1))
fs/xfs/scrub/repair.c
1065
error = xfs_rtalloc_extent_is_free(sc->sr.rtg, sc->tp, startrtx,
fs/xfs/scrub/repair.c
1079
struct xfs_scrub *sc)
fs/xfs/scrub/repair.c
1083
if (!(sc->flags & XREP_RESET_PERAG_RESV))
fs/xfs/scrub/repair.c
1086
ASSERT(sc->sa.pag != NULL);
fs/xfs/scrub/repair.c
1087
ASSERT(sc->ops->type == ST_PERAG);
fs/xfs/scrub/repair.c
1088
ASSERT(sc->tp);
fs/xfs/scrub/repair.c
1090
sc->flags &= ~XREP_RESET_PERAG_RESV;
fs/xfs/scrub/repair.c
1091
xfs_ag_resv_free(sc->sa.pag);
fs/xfs/scrub/repair.c
1092
error = xfs_ag_resv_init(sc->sa.pag, sc->tp);
fs/xfs/scrub/repair.c
1094
xfs_err(sc->mp,
fs/xfs/scrub/repair.c
1096
pag_agno(sc->sa.pag));
fs/xfs/scrub/repair.c
1106
struct xfs_scrub *sc)
fs/xfs/scrub/repair.c
1109
if (sc->sm->sm_flags & XFS_SCRUB_IFLAG_FORCE_REBUILD)
fs/xfs/scrub/repair.c
1113
if (XFS_TEST_ERROR(sc->mp, XFS_ERRTAG_FORCE_SCRUB_REPAIR))
fs/xfs/scrub/repair.c
1117
if (xchk_needs_repair(sc->sm))
fs/xfs/scrub/repair.c
1126
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
1138
sub = xchk_scrub_create_subord(sc, scrub_type);
fs/xfs/scrub/repair.c
1142
error = sub->sc.ops->scrub(&sub->sc);
fs/xfs/scrub/repair.c
1145
if (!xrep_will_attempt(&sub->sc))
fs/xfs/scrub/repair.c
1152
error = sub->sc.ops->repair(&sub->sc);
fs/xfs/scrub/repair.c
1161
error = xfs_defer_finish(&sub->sc.tp);
fs/xfs/scrub/repair.c
1164
error = xfs_trans_roll(&sub->sc.tp);
fs/xfs/scrub/repair.c
1172
sub->sc.sm->sm_flags &= ~XFS_SCRUB_FLAGS_OUT;
fs/xfs/scrub/repair.c
1173
error = sub->sc.ops->scrub(&sub->sc);
fs/xfs/scrub/repair.c
1178
if (xchk_needs_repair(sub->sc.sm)) {
fs/xfs/scrub/repair.c
1195
struct xfs_scrub *sc)
fs/xfs/scrub/repair.c
1201
error = xrep_metadata_inode_subtype(sc, XFS_SCRUB_TYPE_INODE);
fs/xfs/scrub/repair.c
1205
error = xrep_metadata_inode_subtype(sc, XFS_SCRUB_TYPE_BMBTD);
fs/xfs/scrub/repair.c
1215
if (xfs_inode_hasattr(sc->ip)) {
fs/xfs/scrub/repair.c
1216
error = xrep_metadata_inode_subtype(sc, XFS_SCRUB_TYPE_BMBTA);
fs/xfs/scrub/repair.c
1222
if (xfs_is_reflink_inode(sc->ip)) {
fs/xfs/scrub/repair.c
1224
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/repair.c
1225
error = xfs_reflink_clear_inode_flag(sc->ip, &sc->tp);
fs/xfs/scrub/repair.c
1234
if (xfs_inode_hasattr(sc->ip) && !xfs_has_metadir(sc->mp)) {
fs/xfs/scrub/repair.c
1237
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/repair.c
1239
error = xrep_xattr_reset_fork(sc);
fs/xfs/scrub/repair.c
1249
error = xfs_trans_roll(&sc->tp);
fs/xfs/scrub/repair.c
1266
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
1269
ASSERT(sc->tp == NULL);
fs/xfs/scrub/repair.c
1271
return xmbuf_alloc(sc->mp, descr, &sc->xmbtp);
fs/xfs/scrub/repair.c
1308
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
1323
if (!xfs_verify_agbext(sc->sa.pag, rec->rm_startblock,
fs/xfs/scrub/repair.c
1328
error = xfs_alloc_has_records(sc->sa.bno_cur, rec->rm_startblock,
fs/xfs/scrub/repair.c
1344
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
1348
new_blocks - sc->ip->i_nblocks;
fs/xfs/scrub/repair.c
1350
sc->ip->i_nblocks = new_blocks;
fs/xfs/scrub/repair.c
1352
xfs_trans_log_inode(sc->tp, sc->ip, XFS_ILOG_CORE);
fs/xfs/scrub/repair.c
1354
xfs_trans_mod_dquot_byino(sc->tp, sc->ip, XFS_TRANS_DQ_BCOUNT,
fs/xfs/scrub/repair.c
1361
struct xfs_scrub *sc)
fs/xfs/scrub/repair.c
1363
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/repair.c
1398
xfs_warn(sc->mp,
fs/xfs/scrub/repair.c
141
struct xfs_scrub *sc)
fs/xfs/scrub/repair.c
145
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/repair.c
157
struct xfs_scrub *sc)
fs/xfs/scrub/repair.c
170
if (sc->sa.agi_bp) {
fs/xfs/scrub/repair.c
171
xfs_ialloc_log_agi(sc->tp, sc->sa.agi_bp, XFS_AGI_MAGICNUM);
fs/xfs/scrub/repair.c
172
xfs_trans_bhold(sc->tp, sc->sa.agi_bp);
fs/xfs/scrub/repair.c
175
if (sc->sa.agf_bp) {
fs/xfs/scrub/repair.c
176
xfs_alloc_log_agf(sc->tp, sc->sa.agf_bp, XFS_AGF_MAGICNUM);
fs/xfs/scrub/repair.c
177
xfs_trans_bhold(sc->tp, sc->sa.agf_bp);
fs/xfs/scrub/repair.c
186
error = xfs_trans_roll(&sc->tp);
fs/xfs/scrub/repair.c
191
if (sc->sa.agi_bp)
fs/xfs/scrub/repair.c
192
xfs_trans_bjoin(sc->tp, sc->sa.agi_bp);
fs/xfs/scrub/repair.c
193
if (sc->sa.agf_bp)
fs/xfs/scrub/repair.c
194
xfs_trans_bjoin(sc->tp, sc->sa.agf_bp);
fs/xfs/scrub/repair.c
202
struct xfs_scrub *sc)
fs/xfs/scrub/repair.c
204
if (!sc->ip)
fs/xfs/scrub/repair.c
205
return xrep_roll_ag_trans(sc);
fs/xfs/scrub/repair.c
206
return xfs_trans_roll_inode(&sc->tp, sc->ip);
fs/xfs/scrub/repair.c
212
struct xfs_scrub *sc)
fs/xfs/scrub/repair.c
225
if (sc->sa.agi_bp) {
fs/xfs/scrub/repair.c
226
xfs_ialloc_log_agi(sc->tp, sc->sa.agi_bp, XFS_AGI_MAGICNUM);
fs/xfs/scrub/repair.c
227
xfs_trans_bhold(sc->tp, sc->sa.agi_bp);
fs/xfs/scrub/repair.c
230
if (sc->sa.agf_bp) {
fs/xfs/scrub/repair.c
231
xfs_alloc_log_agf(sc->tp, sc->sa.agf_bp, XFS_AGF_MAGICNUM);
fs/xfs/scrub/repair.c
232
xfs_trans_bhold(sc->tp, sc->sa.agf_bp);
fs/xfs/scrub/repair.c
242
error = xfs_defer_finish(&sc->tp);
fs/xfs/scrub/repair.c
251
if (sc->sa.agi_bp)
fs/xfs/scrub/repair.c
252
xfs_trans_bhold_release(sc->tp, sc->sa.agi_bp);
fs/xfs/scrub/repair.c
253
if (sc->sa.agf_bp)
fs/xfs/scrub/repair.c
254
xfs_trans_bhold_release(sc->tp, sc->sa.agf_bp);
fs/xfs/scrub/repair.c
282
struct xfs_scrub *sc)
fs/xfs/scrub/repair.c
284
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/repair.c
285
struct xfs_scrub_metadata *sm = sc->sm;
fs/xfs/scrub/repair.c
397
struct xfs_scrub *sc)
fs/xfs/scrub/repair.c
399
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/repair.c
400
struct xfs_scrub_metadata *sm = sc->sm;
fs/xfs/scrub/repair.c
453
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
458
args.mp = sc->mp;
fs/xfs/scrub/repair.c
459
args.tp = sc->tp;
fs/xfs/scrub/repair.c
460
args.agno = pag_agno(sc->sa.pag);
fs/xfs/scrub/repair.c
462
args.pag = sc->sa.pag;
fs/xfs/scrub/repair.c
495
struct xfs_scrub *sc;
fs/xfs/scrub/repair.c
522
struct xfs_mount *mp = ri->sc->mp;
fs/xfs/scrub/repair.c
529
daddr = xfs_agbno_to_daddr(ri->sc->sa.pag, agbno);
fs/xfs/scrub/repair.c
564
error = xfs_trans_read_buf(mp, ri->sc->tp, mp->m_ddev_targp, daddr,
fs/xfs/scrub/repair.c
63
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
658
trace_xrep_findroot_block(ri->sc->sa.pag, agbno,
fs/xfs/scrub/repair.c
661
xfs_trans_brelse(ri->sc->tp, bp);
fs/xfs/scrub/repair.c
69
trace_xrep_attempt(XFS_I(file_inode(sc->file)), sc->sm, error);
fs/xfs/scrub/repair.c
707
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
71
xchk_ag_btcur_free(&sc->sa);
fs/xfs/scrub/repair.c
712
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/repair.c
72
xchk_rtgroup_btcur_free(&sc->sr);
fs/xfs/scrub/repair.c
721
ri.sc = sc;
fs/xfs/scrub/repair.c
732
cur = xfs_rmapbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
fs/xfs/scrub/repair.c
743
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
747
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/repair.c
75
ASSERT(sc->ops->repair);
fs/xfs/scrub/repair.c
769
bp = xfs_trans_getsb(sc->tp);
fs/xfs/scrub/repair.c
771
xfs_trans_buf_set_type(sc->tp, bp, XFS_BLFT_SB_BUF);
fs/xfs/scrub/repair.c
772
xfs_trans_log_buf(sc->tp, bp, 0, sizeof(struct xfs_dsb) - 1);
fs/xfs/scrub/repair.c
78
error = sc->ops->repair(sc);
fs/xfs/scrub/repair.c
781
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
787
if (!(flag & sc->mp->m_qflags))
fs/xfs/scrub/repair.c
79
trace_xrep_done(XFS_I(file_inode(sc->file)), sc->sm, error);
fs/xfs/scrub/repair.c
790
xrep_update_qflags(sc, flag, 0);
fs/xfs/scrub/repair.c
805
struct xfs_scrub *sc)
fs/xfs/scrub/repair.c
809
ASSERT(sc->tp != NULL);
fs/xfs/scrub/repair.c
810
ASSERT(sc->ip != NULL);
fs/xfs/scrub/repair.c
812
error = xfs_qm_dqattach(sc->ip);
fs/xfs/scrub/repair.c
817
xfs_err_ratelimited(sc->mp,
fs/xfs/scrub/repair.c
819
(unsigned long long)sc->ip->i_ino, error);
fs/xfs/scrub/repair.c
820
if (XFS_IS_UQUOTA_ON(sc->mp) && !sc->ip->i_udquot)
fs/xfs/scrub/repair.c
821
xrep_force_quotacheck(sc, XFS_DQTYPE_USER);
fs/xfs/scrub/repair.c
822
if (XFS_IS_GQUOTA_ON(sc->mp) && !sc->ip->i_gdquot)
fs/xfs/scrub/repair.c
823
xrep_force_quotacheck(sc, XFS_DQTYPE_GROUP);
fs/xfs/scrub/repair.c
824
if (XFS_IS_PQUOTA_ON(sc->mp) && !sc->ip->i_pdquot)
fs/xfs/scrub/repair.c
825
xrep_force_quotacheck(sc, XFS_DQTYPE_PROJ);
fs/xfs/scrub/repair.c
845
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
852
inode_has_nrext64 = xfs_inode_has_large_extent_counts(sc->ip);
fs/xfs/scrub/repair.c
858
if (!xfs_has_large_extent_counts(sc->mp))
fs/xfs/scrub/repair.c
865
sc->ip->i_diflags2 |= XFS_DIFLAG2_NREXT64;
fs/xfs/scrub/repair.c
866
xfs_trans_log_inode(sc->tp, sc->ip, XFS_ILOG_CORE);
fs/xfs/scrub/repair.c
87
sc->sm->sm_flags &= ~XFS_SCRUB_FLAGS_OUT;
fs/xfs/scrub/repair.c
876
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
879
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/repair.c
88
sc->flags |= XREP_ALREADY_FIXED;
fs/xfs/scrub/repair.c
882
if (sc->sm->sm_type != XFS_SCRUB_TYPE_BNOBT &&
fs/xfs/scrub/repair.c
883
sc->sm->sm_type != XFS_SCRUB_TYPE_CNTBT) {
fs/xfs/scrub/repair.c
884
sa->bno_cur = xfs_bnobt_init_cursor(mp, sc->tp, sa->agf_bp,
fs/xfs/scrub/repair.c
885
sc->sa.pag);
fs/xfs/scrub/repair.c
886
sa->cnt_cur = xfs_cntbt_init_cursor(mp, sc->tp, sa->agf_bp,
fs/xfs/scrub/repair.c
887
sc->sa.pag);
fs/xfs/scrub/repair.c
891
if (sc->sm->sm_type != XFS_SCRUB_TYPE_INOBT &&
fs/xfs/scrub/repair.c
892
sc->sm->sm_type != XFS_SCRUB_TYPE_FINOBT) {
fs/xfs/scrub/repair.c
893
sa->ino_cur = xfs_inobt_init_cursor(sc->sa.pag, sc->tp,
fs/xfs/scrub/repair.c
896
sa->fino_cur = xfs_finobt_init_cursor(sc->sa.pag,
fs/xfs/scrub/repair.c
897
sc->tp, sa->agi_bp);
fs/xfs/scrub/repair.c
901
if (sc->sm->sm_type != XFS_SCRUB_TYPE_RMAPBT &&
fs/xfs/scrub/repair.c
903
sa->rmap_cur = xfs_rmapbt_init_cursor(mp, sc->tp, sa->agf_bp,
fs/xfs/scrub/repair.c
904
sc->sa.pag);
fs/xfs/scrub/repair.c
907
if (sc->sm->sm_type != XFS_SCRUB_TYPE_REFCNTBT &&
fs/xfs/scrub/repair.c
909
sa->refc_cur = xfs_refcountbt_init_cursor(mp, sc->tp,
fs/xfs/scrub/repair.c
910
sa->agf_bp, sc->sa.pag);
fs/xfs/scrub/repair.c
92
sc->flags |= XCHK_NEED_DRAIN;
fs/xfs/scrub/repair.c
920
struct xfs_scrub *sc)
fs/xfs/scrub/repair.c
922
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/repair.c
930
error = xfs_alloc_read_agf(pag, sc->tp, 0, &bp);
fs/xfs/scrub/repair.c
934
if (bp != sc->sa.agf_bp) {
fs/xfs/scrub/repair.c
935
ASSERT(bp == sc->sa.agf_bp);
fs/xfs/scrub/repair.c
949
struct xfs_scrub *sc)
fs/xfs/scrub/repair.c
951
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/repair.c
959
error = xfs_ialloc_read_agi(pag, sc->tp, 0, &bp);
fs/xfs/scrub/repair.c
963
if (bp != sc->sa.agi_bp) {
fs/xfs/scrub/repair.c
964
ASSERT(bp == sc->sa.agi_bp);
fs/xfs/scrub/repair.c
97
if (!(sc->flags & XCHK_TRY_HARDER)) {
fs/xfs/scrub/repair.c
977
struct xfs_scrub *sc,
fs/xfs/scrub/repair.c
98
sc->flags |= XCHK_TRY_HARDER;
fs/xfs/scrub/repair.c
985
error = xfs_ialloc_read_agi(pag, sc->tp, 0, &sa->agi_bp);
fs/xfs/scrub/repair.c
989
error = xfs_alloc_read_agf(pag, sc->tp, 0, &sa->agf_bp);
fs/xfs/scrub/repair.c
995
xrep_ag_btcur_init(sc, sa);
fs/xfs/scrub/repair.h
101
int xrep_setup_inode(struct xfs_scrub *sc, const struct xfs_imap *imap);
fs/xfs/scrub/repair.h
103
void xrep_ag_btcur_init(struct xfs_scrub *sc, struct xchk_ag *sa);
fs/xfs/scrub/repair.h
104
int xrep_ag_init(struct xfs_scrub *sc, struct xfs_perag *pag,
fs/xfs/scrub/repair.h
107
int xrep_rtgroup_init(struct xfs_scrub *sc, struct xfs_rtgroup *rtg,
fs/xfs/scrub/repair.h
109
void xrep_rtgroup_btcur_init(struct xfs_scrub *sc, struct xchk_rt *sr);
fs/xfs/scrub/repair.h
110
int xrep_require_rtext_inuse(struct xfs_scrub *sc, xfs_rgblock_t rgbno,
fs/xfs/scrub/repair.h
112
xfs_extlen_t xrep_calc_rtgroup_resblks(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
114
# define xrep_rtgroup_init(sc, rtg, sr, lockflags) (-ENOSYS)
fs/xfs/scrub/repair.h
115
# define xrep_calc_rtgroup_resblks(sc) (0)
fs/xfs/scrub/repair.h
118
int xrep_check_ino_btree_mapping(struct xfs_scrub *sc,
fs/xfs/scrub/repair.h
123
int xrep_revalidate_allocbt(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
124
int xrep_revalidate_iallocbt(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
128
int xrep_probe(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
129
int xrep_superblock(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
130
int xrep_agf(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
131
int xrep_agfl(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
132
int xrep_agi(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
133
int xrep_allocbt(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
134
int xrep_iallocbt(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
135
int xrep_rmapbt(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
136
int xrep_refcountbt(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
137
int xrep_inode(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
138
int xrep_bmap_data(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
139
int xrep_bmap_attr(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
14
static inline int xrep_notsupported(struct xfs_scrub *sc)
fs/xfs/scrub/repair.h
140
int xrep_bmap_cow(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
141
int xrep_nlinks(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
142
int xrep_fscounters(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
143
int xrep_xattr(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
144
int xrep_directory(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
145
int xrep_parent(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
146
int xrep_symlink(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
147
int xrep_dirtree(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
148
int xrep_metapath(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
151
int xrep_rtbitmap(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
152
int xrep_rtsummary(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
153
int xrep_rgsuperblock(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
154
int xrep_rtrmapbt(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
155
int xrep_rtrefcountbt(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
165
int xrep_quota(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
166
int xrep_quotacheck(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
172
int xrep_reinit_pagf(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
173
int xrep_reinit_pagi(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
176
void xrep_inode_set_nblocks(struct xfs_scrub *sc, int64_t new_blocks);
fs/xfs/scrub/repair.h
177
int xrep_reset_metafile_resv(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
181
#define xrep_ino_dqattach(sc) (0)
fs/xfs/scrub/repair.h
187
static inline bool xrep_will_attempt(const struct xfs_scrub *sc)
fs/xfs/scrub/repair.h
189
return (sc->sm->sm_flags & XFS_SCRUB_IFLAG_FORCE_REBUILD) ||
fs/xfs/scrub/repair.h
190
xchk_needs_repair(sc->sm);
fs/xfs/scrub/repair.h
195
struct xfs_scrub *sc,
fs/xfs/scrub/repair.h
205
struct xfs_scrub *sc)
fs/xfs/scrub/repair.h
214
struct xfs_scrub *sc)
fs/xfs/scrub/repair.h
216
if (!(sc->flags & XREP_RESET_PERAG_RESV))
fs/xfs/scrub/repair.h
226
struct xfs_scrub *sc)
fs/xfs/scrub/repair.h
23
int xrep_attempt(struct xfs_scrub *sc, struct xchk_stats_run *run);
fs/xfs/scrub/repair.h
24
bool xrep_will_attempt(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
242
#define xrep_setup_inode(sc, imap) ((void)0)
fs/xfs/scrub/repair.h
244
static inline int xrep_setup_symlink(struct xfs_scrub *sc, unsigned int *x)
fs/xfs/scrub/repair.h
26
int xrep_roll_ag_trans(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
27
int xrep_roll_trans(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
28
int xrep_defer_finish(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
31
xfs_extlen_t xrep_calc_ag_resblks(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
35
struct xfs_scrub *sc)
fs/xfs/scrub/repair.h
37
int error = xfs_trans_commit(sc->tp);
fs/xfs/scrub/repair.h
39
sc->tp = NULL;
fs/xfs/scrub/repair.h
49
int xrep_fix_freelist(struct xfs_scrub *sc, int alloc_flags);
fs/xfs/scrub/repair.h
66
int xrep_find_ag_btree_roots(struct xfs_scrub *sc, struct xfs_buf *agf_bp,
fs/xfs/scrub/repair.h
70
void xrep_update_qflags(struct xfs_scrub *sc, unsigned int clear_flags,
fs/xfs/scrub/repair.h
72
void xrep_force_quotacheck(struct xfs_scrub *sc, xfs_dqtype_t type);
fs/xfs/scrub/repair.h
73
int xrep_ino_dqattach(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
75
# define xrep_force_quotacheck(sc, type) ((void)0)
fs/xfs/scrub/repair.h
76
# define xrep_ino_dqattach(sc) (0)
fs/xfs/scrub/repair.h
79
int xrep_setup_xfbtree(struct xfs_scrub *sc, const char *descr);
fs/xfs/scrub/repair.h
81
int xrep_ino_ensure_extent_count(struct xfs_scrub *sc, int whichfork,
fs/xfs/scrub/repair.h
83
int xrep_reset_perag_resv(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
84
int xrep_bmap(struct xfs_scrub *sc, int whichfork, bool allow_unwritten);
fs/xfs/scrub/repair.h
85
int xrep_metadata_inode_forks(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
86
int xrep_setup_ag_rmapbt(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
87
int xrep_setup_ag_refcountbt(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
88
int xrep_setup_xattr(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
89
int xrep_setup_directory(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
90
int xrep_setup_parent(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
91
int xrep_setup_nlinks(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
92
int xrep_setup_symlink(struct xfs_scrub *sc, unsigned int *resblks);
fs/xfs/scrub/repair.h
93
int xrep_setup_dirtree(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
94
int xrep_setup_rtrmapbt(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
95
int xrep_setup_rtrefcountbt(struct xfs_scrub *sc);
fs/xfs/scrub/repair.h
98
int xrep_setup_ag_allocbt(struct xfs_scrub *sc);
fs/xfs/scrub/rgsuper.c
24
struct xfs_scrub *sc)
fs/xfs/scrub/rgsuper.c
26
return xchk_trans_alloc(sc, 0);
fs/xfs/scrub/rgsuper.c
32
struct xfs_scrub *sc)
fs/xfs/scrub/rgsuper.c
34
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rgsuper.c
37
xchk_xref_is_used_rt_space(sc, xfs_rgbno_to_rtb(sc->sr.rtg, 0), 1);
fs/xfs/scrub/rgsuper.c
38
xchk_xref_is_only_rt_owned_by(sc, 0, 1, &XFS_RMAP_OINFO_FS);
fs/xfs/scrub/rgsuper.c
43
struct xfs_scrub *sc)
fs/xfs/scrub/rgsuper.c
45
xfs_rgnumber_t rgno = sc->sm->sm_agno;
fs/xfs/scrub/rgsuper.c
62
error = xchk_rtgroup_init_existing(sc, rgno, &sc->sr);
fs/xfs/scrub/rgsuper.c
63
if (!xchk_xref_process_error(sc, 0, 0, &error))
fs/xfs/scrub/rgsuper.c
66
error = xchk_rtgroup_lock(sc, &sc->sr, XFS_RTGLOCK_BITMAP_SHARED);
fs/xfs/scrub/rgsuper.c
74
xchk_rgsuperblock_xref(sc);
fs/xfs/scrub/rgsuper.c
81
struct xfs_scrub *sc)
fs/xfs/scrub/rgsuper.c
83
ASSERT(rtg_rgno(sc->sr.rtg) == 0);
fs/xfs/scrub/rgsuper.c
85
xfs_log_sb(sc->tp);
fs/xfs/scrub/rmap.c
101
error = xfs_refcount_find_shared(sc->sa.refc_cur, irec->rm_startblock,
fs/xfs/scrub/rmap.c
103
if (!xchk_should_check_xref(sc, &error, &sc->sa.refc_cur))
fs/xfs/scrub/rmap.c
106
xchk_btree_xref_set_corrupt(sc, sc->sa.refc_cur, 0);
fs/xfs/scrub/rmap.c
112
struct xfs_scrub *sc,
fs/xfs/scrub/rmap.c
118
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rmap.c
121
xchk_xref_is_used_space(sc, agbno, len);
fs/xfs/scrub/rmap.c
123
xchk_xref_is_inode_chunk(sc, agbno, len);
fs/xfs/scrub/rmap.c
125
xchk_xref_is_not_inode_chunk(sc, agbno, len);
fs/xfs/scrub/rmap.c
127
xchk_xref_is_cow_staging(sc, irec->rm_startblock,
fs/xfs/scrub/rmap.c
130
xchk_rmapbt_xref_refc(sc, irec);
fs/xfs/scrub/rmap.c
149
struct xfs_scrub *sc = bs->sc;
fs/xfs/scrub/rmap.c
156
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_PREEN)
fs/xfs/scrub/rmap.c
172
xchk_btree_set_preen(sc, cur, level);
fs/xfs/scrub/rmap.c
178
xchk_btree_set_preen(sc, cur, level);
fs/xfs/scrub/rmap.c
187
struct xfs_scrub *sc,
fs/xfs/scrub/rmap.c
190
if (!xfs_has_reflink(sc->mp))
fs/xfs/scrub/rmap.c
209
if (bs->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rmap.c
222
if (!xchk_rmapbt_is_shareable(bs->sc, &cr->overlap_rec) ||
fs/xfs/scrub/rmap.c
223
!xchk_rmapbt_is_shareable(bs->sc, irec))
fs/xfs/scrub/rmap.c
224
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/rmap.c
271
if (bs->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rmap.c
275
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/rmap.c
287
struct xfs_scrub *sc = bs->sc;
fs/xfs/scrub/rmap.c
296
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rmap.c
335
xchk_btree_xref_set_corrupt(bs->sc,
fs/xfs/scrub/rmap.c
336
bs->sc->sa.rmap_cur, 0);
fs/xfs/scrub/rmap.c
344
xchk_btree_xref_set_corrupt(bs->sc, bs->sc->sa.rmap_cur, 0);
fs/xfs/scrub/rmap.c
35
struct xfs_scrub *sc)
fs/xfs/scrub/rmap.c
362
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/rmap.c
369
xchk_rmapbt_xref(bs->sc, &irec);
fs/xfs/scrub/rmap.c
37
if (xchk_need_intent_drain(sc))
fs/xfs/scrub/rmap.c
38
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
fs/xfs/scrub/rmap.c
397
struct xfs_scrub *sc,
fs/xfs/scrub/rmap.c
40
if (xchk_could_repair(sc)) {
fs/xfs/scrub/rmap.c
400
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rmap.c
402
struct xfs_agf *agf = sc->sa.agf_bp->b_addr;
fs/xfs/scrub/rmap.c
413
if (xfs_ag_contains_log(mp, pag_agno(sc->sa.pag))) {
fs/xfs/scrub/rmap.c
422
cur = sc->sa.bno_cur;
fs/xfs/scrub/rmap.c
424
cur = xfs_bnobt_init_cursor(sc->mp, sc->tp, sc->sa.agf_bp,
fs/xfs/scrub/rmap.c
425
sc->sa.pag);
fs/xfs/scrub/rmap.c
427
if (cur != sc->sa.bno_cur)
fs/xfs/scrub/rmap.c
43
error = xrep_setup_ag_rmapbt(sc);
fs/xfs/scrub/rmap.c
432
cur = sc->sa.cnt_cur;
fs/xfs/scrub/rmap.c
434
cur = xfs_cntbt_init_cursor(sc->mp, sc->tp, sc->sa.agf_bp,
fs/xfs/scrub/rmap.c
435
sc->sa.pag);
fs/xfs/scrub/rmap.c
437
if (cur != sc->sa.cnt_cur)
fs/xfs/scrub/rmap.c
442
error = xagb_bitmap_set_btblocks(&cr->ag_owned, sc->sa.rmap_cur);
fs/xfs/scrub/rmap.c
446
error = xfs_alloc_read_agfl(sc->sa.pag, sc->tp, &agfl_bp);
fs/xfs/scrub/rmap.c
450
error = xfs_agfl_walk(sc->mp, agf, agfl_bp, xchk_rmapbt_walk_agfl,
fs/xfs/scrub/rmap.c
452
xfs_trans_brelse(sc->tp, agfl_bp);
fs/xfs/scrub/rmap.c
457
cur = sc->sa.ino_cur;
fs/xfs/scrub/rmap.c
459
cur = xfs_inobt_init_cursor(sc->sa.pag, sc->tp, sc->sa.agi_bp);
fs/xfs/scrub/rmap.c
461
if (cur != sc->sa.ino_cur)
fs/xfs/scrub/rmap.c
466
if (xfs_has_finobt(sc->mp)) {
fs/xfs/scrub/rmap.c
467
cur = sc->sa.fino_cur;
fs/xfs/scrub/rmap.c
469
cur = xfs_finobt_init_cursor(sc->sa.pag, sc->tp,
fs/xfs/scrub/rmap.c
470
sc->sa.agi_bp);
fs/xfs/scrub/rmap.c
472
if (cur != sc->sa.fino_cur)
fs/xfs/scrub/rmap.c
479
if (xfs_has_reflink(sc->mp)) {
fs/xfs/scrub/rmap.c
48
return xchk_setup_ag_btree(sc, false);
fs/xfs/scrub/rmap.c
480
cur = sc->sa.refc_cur;
fs/xfs/scrub/rmap.c
482
cur = xfs_refcountbt_init_cursor(sc->mp, sc->tp,
fs/xfs/scrub/rmap.c
483
sc->sa.agf_bp, sc->sa.pag);
fs/xfs/scrub/rmap.c
485
if (cur != sc->sa.refc_cur)
fs/xfs/scrub/rmap.c
497
xchk_btree_xref_process_error(sc, sc->sa.rmap_cur,
fs/xfs/scrub/rmap.c
498
sc->sa.rmap_cur->bc_nlevels - 1, &error);
fs/xfs/scrub/rmap.c
510
struct xfs_scrub *sc,
fs/xfs/scrub/rmap.c
513
struct xfs_btree_cur *cur = sc->sa.rmap_cur;
fs/xfs/scrub/rmap.c
516
if (sc->sm->sm_flags & (XFS_SCRUB_OFLAG_CORRUPT |
fs/xfs/scrub/rmap.c
528
xchk_btree_xref_set_corrupt(sc, cur, level);
fs/xfs/scrub/rmap.c
531
xchk_btree_xref_set_corrupt(sc, cur, level);
fs/xfs/scrub/rmap.c
534
xchk_btree_xref_set_corrupt(sc, cur, level);
fs/xfs/scrub/rmap.c
537
xchk_btree_xref_set_corrupt(sc, cur, level);
fs/xfs/scrub/rmap.c
540
xchk_btree_xref_set_corrupt(sc, cur, level);
fs/xfs/scrub/rmap.c
546
struct xfs_scrub *sc)
fs/xfs/scrub/rmap.c
561
error = xchk_rmapbt_walk_ag_metadata(sc, cr);
fs/xfs/scrub/rmap.c
565
error = xchk_btree(sc, sc->sa.rmap_cur, xchk_rmapbt_rec,
fs/xfs/scrub/rmap.c
570
xchk_rmapbt_check_bitmaps(sc, cr);
fs/xfs/scrub/rmap.c
585
struct xfs_scrub *sc,
fs/xfs/scrub/rmap.c
593
if (!sc->sa.rmap_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/rmap.c
596
error = xfs_rmap_count_owners(sc->sa.rmap_cur, bno, len, oinfo, &res);
fs/xfs/scrub/rmap.c
597
if (!xchk_should_check_xref(sc, &error, &sc->sa.rmap_cur))
fs/xfs/scrub/rmap.c
600
xchk_btree_xref_set_corrupt(sc, sc->sa.rmap_cur, 0);
fs/xfs/scrub/rmap.c
602
xchk_btree_xref_set_corrupt(sc, sc->sa.rmap_cur, 0);
fs/xfs/scrub/rmap.c
604
xchk_btree_xref_set_corrupt(sc, sc->sa.rmap_cur, 0);
fs/xfs/scrub/rmap.c
610
struct xfs_scrub *sc,
fs/xfs/scrub/rmap.c
618
if (!sc->sa.rmap_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/rmap.c
621
error = xfs_rmap_count_owners(sc->sa.rmap_cur, bno, len, oinfo, &res);
fs/xfs/scrub/rmap.c
622
if (!xchk_should_check_xref(sc, &error, &sc->sa.rmap_cur))
fs/xfs/scrub/rmap.c
625
xchk_btree_xref_set_corrupt(sc, sc->sa.rmap_cur, 0);
fs/xfs/scrub/rmap.c
627
xchk_btree_xref_set_corrupt(sc, sc->sa.rmap_cur, 0);
fs/xfs/scrub/rmap.c
633
struct xfs_scrub *sc,
fs/xfs/scrub/rmap.c
640
if (!sc->sa.rmap_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/rmap.c
643
error = xfs_rmap_has_records(sc->sa.rmap_cur, bno, len, &outcome);
fs/xfs/scrub/rmap.c
644
if (!xchk_should_check_xref(sc, &error, &sc->sa.rmap_cur))
fs/xfs/scrub/rmap.c
647
xchk_btree_xref_set_corrupt(sc, sc->sa.rmap_cur, 0);
fs/xfs/scrub/rmap.c
81
struct xfs_scrub *sc,
fs/xfs/scrub/rmap.c
92
if (!sc->sa.refc_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/rmap_repair.c
1000
xfs_btree_del_cursor(sc->sa.bno_cur, error);
fs/xfs/scrub/rmap_repair.c
1001
sc->sa.bno_cur = NULL;
fs/xfs/scrub/rmap_repair.c
1043
.agno = pag_agno(rr->sc->sa.pag),
fs/xfs/scrub/rmap_repair.c
1045
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rmap_repair.c
1047
struct xfs_agf *agf = sc->sa.agf_bp->b_addr;
fs/xfs/scrub/rmap_repair.c
1079
sc->sa.bno_cur = xfs_bnobt_init_cursor(sc->mp, sc->tp, sc->sa.agf_bp,
fs/xfs/scrub/rmap_repair.c
1080
sc->sa.pag);
fs/xfs/scrub/rmap_repair.c
1081
error = xagb_bitmap_set_btblocks(freesp_blocks, sc->sa.bno_cur);
fs/xfs/scrub/rmap_repair.c
1082
xfs_btree_del_cursor(sc->sa.bno_cur, error);
fs/xfs/scrub/rmap_repair.c
1083
sc->sa.bno_cur = NULL;
fs/xfs/scrub/rmap_repair.c
1088
sc->sa.cnt_cur = xfs_cntbt_init_cursor(sc->mp, sc->tp, sc->sa.agf_bp,
fs/xfs/scrub/rmap_repair.c
1089
sc->sa.pag);
fs/xfs/scrub/rmap_repair.c
1090
error = xagb_bitmap_set_btblocks(freesp_blocks, sc->sa.cnt_cur);
fs/xfs/scrub/rmap_repair.c
1091
xfs_btree_del_cursor(sc->sa.cnt_cur, error);
fs/xfs/scrub/rmap_repair.c
1092
sc->sa.cnt_cur = NULL;
fs/xfs/scrub/rmap_repair.c
1107
error = xfs_alloc_read_agfl(sc->sa.pag, sc->tp, &agfl_bp);
fs/xfs/scrub/rmap_repair.c
1111
error = xfs_agfl_walk(sc->mp, agf, agfl_bp, xrep_rmap_walk_agfl, &ra);
fs/xfs/scrub/rmap_repair.c
1150
if (xchk_should_terminate(rr->sc, &error))
fs/xfs/scrub/rmap_repair.c
1169
xrep_ag_btcur_init(rr->sc, &rr->sc->sa);
fs/xfs/scrub/rmap_repair.c
1171
xchk_ag_btcur_free(&rr->sc->sa);
fs/xfs/scrub/rmap_repair.c
1185
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rmap_repair.c
1186
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/rmap_repair.c
1187
struct xfs_agf *agf = sc->sa.agf_bp->b_addr;
fs/xfs/scrub/rmap_repair.c
1196
xfs_alloc_log_agf(sc->tp, sc->sa.agf_bp, XFS_AGF_BTREEBLKS);
fs/xfs/scrub/rmap_repair.c
1212
return xrep_reinit_pagf(sc);
fs/xfs/scrub/rmap_repair.c
1266
struct xfs_scrub *sc,
fs/xfs/scrub/rmap_repair.c
1279
error = xrep_fix_freelist(sc, XFS_ALLOC_FLAG_NORMAP);
fs/xfs/scrub/rmap_repair.c
1335
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rmap_repair.c
1336
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/rmap_repair.c
1337
struct xfs_agf *agf = sc->sa.agf_bp->b_addr;
fs/xfs/scrub/rmap_repair.c
1356
xrep_newbt_init_ag(&rr->new_btree, sc, &XFS_RMAP_OINFO_SKIP_UPDATE,
fs/xfs/scrub/rmap_repair.c
1357
xfs_agbno_to_fsb(pag, XFS_RMAP_BLOCK(sc->mp)),
fs/xfs/scrub/rmap_repair.c
1362
rmap_cur = xfs_rmapbt_init_cursor(sc->mp, NULL, NULL, pag);
fs/xfs/scrub/rmap_repair.c
1377
rr->mcur = xfs_rmapbt_mem_cursor(rr->sc->sa.pag, NULL,
fs/xfs/scrub/rmap_repair.c
140
struct xfs_scrub *sc;
fs/xfs/scrub/rmap_repair.c
1409
xfs_rmapbt_commit_staged_btree(rmap_cur, sc->tp, sc->sa.agf_bp);
fs/xfs/scrub/rmap_repair.c
1438
return xrep_roll_ag_trans(sc);
fs/xfs/scrub/rmap_repair.c
1506
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rmap_repair.c
1507
struct xfs_agf *agf = sc->sa.agf_bp->b_addr;
fs/xfs/scrub/rmap_repair.c
1508
struct xfs_perag *pag = sc->sa.pag;
fs/xfs/scrub/rmap_repair.c
1516
mcur = xfs_rmapbt_mem_cursor(rr->sc->sa.pag, NULL, &rr->rmap_btree);
fs/xfs/scrub/rmap_repair.c
1533
sc->sa.bno_cur = xfs_bnobt_init_cursor(sc->mp, sc->tp, sc->sa.agf_bp,
fs/xfs/scrub/rmap_repair.c
1534
sc->sa.pag);
fs/xfs/scrub/rmap_repair.c
1535
error = xfs_alloc_query_all(sc->sa.bno_cur, xrep_rmap_find_freesp,
fs/xfs/scrub/rmap_repair.c
1537
xfs_btree_del_cursor(sc->sa.bno_cur, error);
fs/xfs/scrub/rmap_repair.c
1538
sc->sa.bno_cur = NULL;
fs/xfs/scrub/rmap_repair.c
1549
error = xrep_reap_agblocks(sc, &rfg.rmap_gaps,
fs/xfs/scrub/rmap_repair.c
1560
sc->flags |= XREP_RESET_PERAG_RESV;
fs/xfs/scrub/rmap_repair.c
1613
mp = rr->sc->mp;
fs/xfs/scrub/rmap_repair.c
1618
trace_xrep_rmap_live_update(pag_group(rr->sc->sa.pag), action, p);
fs/xfs/scrub/rmap_repair.c
1623
mcur = xfs_rmapbt_mem_cursor(rr->sc->sa.pag, tp, &rr->rmap_btree);
fs/xfs/scrub/rmap_repair.c
164
struct xfs_scrub *sc)
fs/xfs/scrub/rmap_repair.c
1652
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rmap_repair.c
1658
error = xfs_rmapbt_mem_init(sc->mp, &rr->rmap_btree, sc->xmbtp,
fs/xfs/scrub/rmap_repair.c
1659
pag_agno(sc->sa.pag));
fs/xfs/scrub/rmap_repair.c
1664
xchk_iscan_start(sc, 30000, 100, &rr->iscan);
fs/xfs/scrub/rmap_repair.c
1672
ASSERT(sc->flags & XCHK_FSGATES_RMAP);
fs/xfs/scrub/rmap_repair.c
1674
error = xfs_rmap_hook_add(pag_group(sc->sa.pag), &rr->rhook);
fs/xfs/scrub/rmap_repair.c
169
xchk_fsgates_enable(sc, XCHK_FSGATES_RMAP);
fs/xfs/scrub/rmap_repair.c
1692
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rmap_repair.c
1695
xfs_rmap_hook_del(pag_group(sc->sa.pag), &rr->rhook);
fs/xfs/scrub/rmap_repair.c
1704
struct xfs_scrub *sc)
fs/xfs/scrub/rmap_repair.c
1706
struct xrep_rmap *rr = sc->buf;
fs/xfs/scrub/rmap_repair.c
171
error = xrep_setup_xfbtree(sc, "reverse mapping records");
fs/xfs/scrub/rmap_repair.c
179
rr->sc = sc;
fs/xfs/scrub/rmap_repair.c
180
sc->buf = rr;
fs/xfs/scrub/rmap_repair.c
187
struct xfs_scrub *sc,
fs/xfs/scrub/rmap_repair.c
193
if (xfs_rmap_check_irec(sc->sa.pag, rec) != NULL)
fs/xfs/scrub/rmap_repair.c
197
error = xfs_alloc_has_records(sc->sa.bno_cur, rec->rm_startblock,
fs/xfs/scrub/rmap_repair.c
224
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rmap_repair.c
228
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/rmap_repair.c
234
trace_xrep_rmap_found(sc->sa.pag, &rmap);
fs/xfs/scrub/rmap_repair.c
237
mcur = xfs_rmapbt_mem_cursor(sc->sa.pag, sc->tp, &rr->rmap_btree);
fs/xfs/scrub/rmap_repair.c
243
error = xfbtree_trans_commit(&rr->rmap_btree, sc->tp);
fs/xfs/scrub/rmap_repair.c
251
xfbtree_trans_cancel(&rr->rmap_btree, sc->tp);
fs/xfs/scrub/rmap_repair.c
340
struct xfs_mount *mp = rf->rr->sc->mp;
fs/xfs/scrub/rmap_repair.c
347
pag_agno(rf->rr->sc->sa.pag))
fs/xfs/scrub/rmap_repair.c
394
if (XFS_FSB_TO_AGNO(cur->bc_mp, fsbno) != pag_agno(rf->rr->sc->sa.pag))
fs/xfs/scrub/rmap_repair.c
453
cur = xfs_bmbt_init_cursor(rr->sc->mp, rr->sc->tp, ip, rf->whichfork);
fs/xfs/scrub/rmap_repair.c
507
struct xfs_scrub *sc = rf->rr->sc;
fs/xfs/scrub/rmap_repair.c
528
while ((rtg = xfs_rtgroup_next(sc->mp, rtg))) {
fs/xfs/scrub/rmap_repair.c
547
cur = xfs_rtrmapbt_init_cursor(sc->tp, rtg);
fs/xfs/scrub/rmap_repair.c
550
cur = xfs_rtrefcountbt_init_cursor(sc->tp, rtg);
fs/xfs/scrub/rmap_repair.c
734
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rmap_repair.c
744
error = xfs_btree_query_all(sc->sa.ino_cur, xrep_rmap_walk_inobt, &ri);
fs/xfs/scrub/rmap_repair.c
753
struct xfs_agi *agi = sc->sa.agi_bp->b_addr;
fs/xfs/scrub/rmap_repair.c
762
if (xfs_has_finobt(sc->mp)) {
fs/xfs/scrub/rmap_repair.c
764
sc->sa.fino_cur);
fs/xfs/scrub/rmap_repair.c
817
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rmap_repair.c
820
if (!xfs_has_reflink(sc->mp))
fs/xfs/scrub/rmap_repair.c
827
error = xagb_bitmap_set_btblocks(&refcountbt_blocks, sc->sa.refc_cur);
fs/xfs/scrub/rmap_repair.c
832
error = xfs_refcount_query_range(sc->sa.refc_cur, &low, &high,
fs/xfs/scrub/rmap_repair.c
855
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rmap_repair.c
858
return xrep_rmap_stash(rr, XFS_SB_BLOCK(sc->mp),
fs/xfs/scrub/rmap_repair.c
859
XFS_AGFL_BLOCK(sc->mp) - XFS_SB_BLOCK(sc->mp) + 1,
fs/xfs/scrub/rmap_repair.c
868
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rmap_repair.c
870
if (!xfs_ag_contains_log(sc->mp, pag_agno(sc->sa.pag)))
fs/xfs/scrub/rmap_repair.c
874
XFS_FSB_TO_AGBNO(sc->mp, sc->mp->m_sb.sb_logstart),
fs/xfs/scrub/rmap_repair.c
875
sc->mp->m_sb.sb_logblocks, XFS_RMAP_OWN_LOG, 0, 0);
fs/xfs/scrub/rmap_repair.c
888
error = xrep_rmap_check_mapping(rr->sc, rec);
fs/xfs/scrub/rmap_repair.c
906
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rmap_repair.c
907
struct xchk_ag *sa = &sc->sa;
fs/xfs/scrub/rmap_repair.c
913
xrep_ag_btcur_init(sc, &sc->sa);
fs/xfs/scrub/rmap_repair.c
929
xchk_ag_btcur_free(&sc->sa);
fs/xfs/scrub/rmap_repair.c
950
xchk_trans_cancel(sc);
fs/xfs/scrub/rmap_repair.c
951
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/rmap_repair.c
956
xchk_irele(sc, ip);
fs/xfs/scrub/rmap_repair.c
960
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/rmap_repair.c
971
xchk_trans_cancel(sc);
fs/xfs/scrub/rmap_repair.c
972
error = xchk_setup_fs(sc);
fs/xfs/scrub/rmap_repair.c
975
error = xchk_perag_drain_and_lock(sc);
fs/xfs/scrub/rmap_repair.c
993
mcur = xfs_rmapbt_mem_cursor(rr->sc->sa.pag, NULL, &rr->rmap_btree);
fs/xfs/scrub/rmap_repair.c
994
sc->sa.bno_cur = xfs_bnobt_init_cursor(sc->mp, sc->tp, sc->sa.agf_bp,
fs/xfs/scrub/rmap_repair.c
995
sc->sa.pag);
fs/xfs/scrub/rtbitmap.c
100
struct xfs_scrub *sc = rtb->sc;
fs/xfs/scrub/rtbitmap.c
101
xfs_rgblock_t rgbno = xfs_rtb_to_rgbno(sc->mp, startblock);
fs/xfs/scrub/rtbitmap.c
103
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rtbitmap.c
105
if (!sc->sr.rmap_cur)
fs/xfs/scrub/rtbitmap.c
108
xchk_xref_has_no_rt_owner(sc, rgbno, blockcount);
fs/xfs/scrub/rtbitmap.c
109
xchk_xref_is_not_rt_shared(sc, rgbno, blockcount);
fs/xfs/scrub/rtbitmap.c
110
xchk_xref_is_not_rt_cow_staging(sc, rgbno, blockcount);
fs/xfs/scrub/rtbitmap.c
113
xchk_xref_has_rt_owner(sc, rtb->next_free_rgbno,
fs/xfs/scrub/rtbitmap.c
127
struct xfs_scrub *sc = rtb->sc;
fs/xfs/scrub/rtbitmap.c
135
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/rtbitmap.c
139
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rtbitmap.c
148
struct xfs_scrub *sc)
fs/xfs/scrub/rtbitmap.c
152
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtbitmap.c
153
struct xfs_inode *ip = sc->ip;
fs/xfs/scrub/rtbitmap.c
161
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, endoff);
fs/xfs/scrub/rtbitmap.c
168
if (xchk_should_terminate(sc, &error) ||
fs/xfs/scrub/rtbitmap.c
169
(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/rtbitmap.c
175
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, off, &error))
fs/xfs/scrub/rtbitmap.c
179
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, off);
fs/xfs/scrub/rtbitmap.c
192
struct xfs_scrub *sc)
fs/xfs/scrub/rtbitmap.c
194
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtbitmap.c
195
struct xfs_rtgroup *rtg = sc->sr.rtg;
fs/xfs/scrub/rtbitmap.c
197
struct xchk_rtbitmap *rtb = sc->buf;
fs/xfs/scrub/rtbitmap.c
203
xchk_ino_set_corrupt(sc, rbmip->i_ino);
fs/xfs/scrub/rtbitmap.c
209
xchk_ino_set_corrupt(sc, rbmip->i_ino);
fs/xfs/scrub/rtbitmap.c
218
xchk_ino_set_corrupt(sc, rbmip->i_ino);
fs/xfs/scrub/rtbitmap.c
222
xchk_ino_set_corrupt(sc, rbmip->i_ino);
fs/xfs/scrub/rtbitmap.c
228
xchk_ino_set_corrupt(sc, rbmip->i_ino);
fs/xfs/scrub/rtbitmap.c
238
xchk_ino_set_corrupt(sc, rbmip->i_ino);
fs/xfs/scrub/rtbitmap.c
243
error = xchk_metadata_inode_forks(sc);
fs/xfs/scrub/rtbitmap.c
244
if (error || (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/rtbitmap.c
247
error = xchk_rtbitmap_check_extents(sc);
fs/xfs/scrub/rtbitmap.c
248
if (error || (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/rtbitmap.c
252
error = xfs_rtalloc_query_all(rtg, sc->tp, xchk_rtbitmap_rec, rtb);
fs/xfs/scrub/rtbitmap.c
253
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, 0, &error))
fs/xfs/scrub/rtbitmap.c
263
xchk_xref_has_rt_owner(sc, rtb->next_free_rgbno,
fs/xfs/scrub/rtbitmap.c
271
struct xfs_scrub *sc,
fs/xfs/scrub/rtbitmap.c
275
struct xfs_rtgroup *rtg = sc->sr.rtg;
fs/xfs/scrub/rtbitmap.c
281
if (xchk_skip_xref(sc->sm))
fs/xfs/scrub/rtbitmap.c
284
if (xfs_has_zoned(sc->mp)) {
fs/xfs/scrub/rtbitmap.c
286
xfs_rtb_to_rgbno(sc->mp, rtbno) + len - 1))
fs/xfs/scrub/rtbitmap.c
287
xchk_ino_xref_set_corrupt(sc, rtg_rmap(rtg)->i_ino);
fs/xfs/scrub/rtbitmap.c
291
startext = xfs_rtb_to_rtx(sc->mp, rtbno);
fs/xfs/scrub/rtbitmap.c
292
endext = xfs_rtb_to_rtx(sc->mp, rtbno + len - 1);
fs/xfs/scrub/rtbitmap.c
293
error = xfs_rtalloc_extent_is_free(rtg, sc->tp, startext,
fs/xfs/scrub/rtbitmap.c
295
if (!xchk_should_check_xref(sc, &error, NULL))
fs/xfs/scrub/rtbitmap.c
298
xchk_ino_xref_set_corrupt(sc, rtg_bitmap(rtg)->i_ino);
fs/xfs/scrub/rtbitmap.c
35
struct xfs_scrub *sc)
fs/xfs/scrub/rtbitmap.c
37
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtbitmap.c
41
if (xchk_need_intent_drain(sc))
fs/xfs/scrub/rtbitmap.c
42
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
fs/xfs/scrub/rtbitmap.c
44
rtb = kzalloc_flex(*rtb, words, xchk_rtbitmap_wordcnt(sc),
fs/xfs/scrub/rtbitmap.c
48
sc->buf = rtb;
fs/xfs/scrub/rtbitmap.c
49
rtb->sc = sc;
fs/xfs/scrub/rtbitmap.c
51
error = xchk_rtgroup_init(sc, sc->sm->sm_agno, &sc->sr);
fs/xfs/scrub/rtbitmap.c
55
if (xchk_could_repair(sc)) {
fs/xfs/scrub/rtbitmap.c
56
error = xrep_setup_rtbitmap(sc, rtb);
fs/xfs/scrub/rtbitmap.c
61
error = xchk_trans_alloc(sc, rtb->resblks);
fs/xfs/scrub/rtbitmap.c
65
error = xchk_install_live_inode(sc, rtg_bitmap(sc->sr.rtg));
fs/xfs/scrub/rtbitmap.c
69
error = xchk_ino_dqattach(sc);
fs/xfs/scrub/rtbitmap.c
73
error = xchk_rtgroup_lock(sc, &sc->sr, XCHK_RTGLOCK_ALL);
fs/xfs/scrub/rtbitmap.h
24
struct xfs_scrub *sc;
fs/xfs/scrub/rtbitmap.h
54
int xrep_setup_rtbitmap(struct xfs_scrub *sc, struct xchk_rtbitmap *rtb);
fs/xfs/scrub/rtbitmap.h
66
struct xfs_scrub *sc)
fs/xfs/scrub/rtbitmap.h
68
if (xchk_could_repair(sc))
fs/xfs/scrub/rtbitmap.h
69
return sc->mp->m_sb.sb_blocksize >> XFS_WORDLOG;
fs/xfs/scrub/rtbitmap.h
73
# define xrep_setup_rtbitmap(sc, rtb) (0)
fs/xfs/scrub/rtbitmap.h
74
# define xchk_rtbitmap_wordcnt(sc) (0)
fs/xfs/scrub/rtbitmap_repair.c
106
ASSERT(xfs_has_rtgroups(rtb->sc->mp));
fs/xfs/scrub/rtbitmap_repair.c
108
error = xfile_load(rtb->sc->xfile, &urk,
fs/xfs/scrub/rtbitmap_repair.c
126
ASSERT(xfs_has_rtgroups(rtb->sc->mp));
fs/xfs/scrub/rtbitmap_repair.c
129
return xfile_store(rtb->sc->xfile, &urk,
fs/xfs/scrub/rtbitmap_repair.c
141
return xfile_store(rtb->sc->xfile, word, nr_words << XFS_WORDLOG,
fs/xfs/scrub/rtbitmap_repair.c
152
return xfile_load(rtb->sc->xfile, word, nr_words << XFS_WORDLOG,
fs/xfs/scrub/rtbitmap_repair.c
170
trace_xrep_rtbitmap_or(rtb->sc->mp, wordoff, mask, word);
fs/xfs/scrub/rtbitmap_repair.c
184
struct xfs_mount *mp = rtb->sc->mp;
fs/xfs/scrub/rtbitmap_repair.c
185
struct xchk_rt *sr = &rtb->sc->sr;
fs/xfs/scrub/rtbitmap_repair.c
306
if (xchk_should_terminate(rtb->sc, &error))
fs/xfs/scrub/rtbitmap_repair.c
328
struct xfs_scrub *sc = rtb->sc;
fs/xfs/scrub/rtbitmap_repair.c
329
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtbitmap_repair.c
330
struct xfs_rtgroup *rtg = sc->sr.rtg;
fs/xfs/scrub/rtbitmap_repair.c
337
xrep_rtgroup_btcur_init(sc, &sc->sr);
fs/xfs/scrub/rtbitmap_repair.c
338
error = xfs_rmap_query_all(sc->sr.rmap_cur, xrep_rtbitmap_walk_rtrmap,
fs/xfs/scrub/rtbitmap_repair.c
355
xchk_rtgroup_btcur_free(&sc->sr);
fs/xfs/scrub/rtbitmap_repair.c
361
struct xfs_scrub *sc,
fs/xfs/scrub/rtbitmap_repair.c
366
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtbitmap_repair.c
370
rtb->args.mp = sc->mp;
fs/xfs/scrub/rtbitmap_repair.c
371
rtb->args.tp = sc->tp;
fs/xfs/scrub/rtbitmap_repair.c
381
if (xfs_has_rtgroups(sc->mp)) {
fs/xfs/scrub/rtbitmap_repair.c
385
hdr->rt_owner = cpu_to_be64(sc->ip->i_ino);
fs/xfs/scrub/rtbitmap_repair.c
388
uuid_copy(&hdr->rt_uuid, &sc->mp->m_sb.sb_meta_uuid);
fs/xfs/scrub/rtbitmap_repair.c
395
xfs_trans_buf_set_type(sc->tp, bp, XFS_BLFT_RTBITMAP_BUF);
fs/xfs/scrub/rtbitmap_repair.c
406
struct xfs_scrub *sc,
fs/xfs/scrub/rtbitmap_repair.c
413
ASSERT(sc->ip != NULL);
fs/xfs/scrub/rtbitmap_repair.c
42
struct xfs_scrub *sc,
fs/xfs/scrub/rtbitmap_repair.c
422
error = xfs_bmapi_read(sc->ip, off, len - off, &map, &nmaps,
fs/xfs/scrub/rtbitmap_repair.c
45
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtbitmap_repair.c
456
error = xfs_bmapi_write(sc->tp, sc->ip, map.br_startoff,
fs/xfs/scrub/rtbitmap_repair.c
464
error = xrep_defer_finish(sc);
fs/xfs/scrub/rtbitmap_repair.c
477
struct xfs_scrub *sc,
fs/xfs/scrub/rtbitmap_repair.c
480
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtbitmap_repair.c
481
struct xfs_trans *tp = sc->tp;
fs/xfs/scrub/rtbitmap_repair.c
485
xfs_trans_mod_sb(sc->tp, XFS_TRANS_SB_REXTENTS,
fs/xfs/scrub/rtbitmap_repair.c
49
error = xrep_tempfile_create(sc, S_IFREG);
fs/xfs/scrub/rtbitmap_repair.c
497
sc->ip->i_disk_size = roundup_64(sc->ip->i_disk_size,
fs/xfs/scrub/rtbitmap_repair.c
500
if (sc->ip->i_disk_size < XFS_FSB_TO_B(mp, rtb->rbmblocks))
fs/xfs/scrub/rtbitmap_repair.c
501
sc->ip->i_disk_size = XFS_FSB_TO_B(mp, rtb->rbmblocks);
fs/xfs/scrub/rtbitmap_repair.c
503
xfs_trans_log_inode(sc->tp, sc->ip, XFS_ILOG_CORE);
fs/xfs/scrub/rtbitmap_repair.c
504
return xrep_roll_trans(sc);
fs/xfs/scrub/rtbitmap_repair.c
510
struct xfs_scrub *sc)
fs/xfs/scrub/rtbitmap_repair.c
512
struct xchk_rtbitmap *rtb = sc->buf;
fs/xfs/scrub/rtbitmap_repair.c
513
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtbitmap_repair.c
514
struct xfs_group *xg = rtg_group(sc->sr.rtg);
fs/xfs/scrub/rtbitmap_repair.c
520
if (!xfs_has_rtrmapbt(sc->mp))
fs/xfs/scrub/rtbitmap_repair.c
523
if (!xfs_has_exchange_range(sc->mp))
fs/xfs/scrub/rtbitmap_repair.c
539
error = xfs_trans_reserve_more(sc->tp, blocks, 0);
fs/xfs/scrub/rtbitmap_repair.c
547
error = xrep_metadata_inode_forks(sc);
fs/xfs/scrub/rtbitmap_repair.c
55
blocks * mp->m_sb.sb_blocksize, &sc->xfile);
fs/xfs/scrub/rtbitmap_repair.c
551
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/rtbitmap_repair.c
554
error = xrep_rtbitmap_data_mappings(sc, rtb->rbmblocks);
fs/xfs/scrub/rtbitmap_repair.c
562
error = xrep_rtbitmap_geometry(sc, rtb);
fs/xfs/scrub/rtbitmap_repair.c
571
error = xfs_extent_busy_flush(sc->tp, xg, busy_gen, 0);
fs/xfs/scrub/rtbitmap_repair.c
589
while (!xrep_tempfile_ilock_nowait(sc)) {
fs/xfs/scrub/rtbitmap_repair.c
590
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/rtbitmap_repair.c
599
xfs_trans_ijoin(sc->tp, sc->tempip, 0);
fs/xfs/scrub/rtbitmap_repair.c
600
error = xrep_tempfile_prealloc(sc, 0, rtb->rbmblocks);
fs/xfs/scrub/rtbitmap_repair.c
605
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/rtbitmap_repair.c
609
error = xrep_tempfile_copyin(sc, 0, rtb->rbmblocks,
fs/xfs/scrub/rtbitmap_repair.c
613
error = xrep_tempfile_set_isize(sc,
fs/xfs/scrub/rtbitmap_repair.c
614
XFS_FSB_TO_B(sc->mp, sc->mp->m_sb.sb_rbmblocks));
fs/xfs/scrub/rtbitmap_repair.c
622
error = xrep_tempexch_trans_reserve(sc, XFS_DATA_FORK, 0,
fs/xfs/scrub/rtbitmap_repair.c
627
error = xrep_tempexch_contents(sc, &rtb->tempexch);
fs/xfs/scrub/rtbitmap_repair.c
632
return xrep_reap_ifork(sc, sc->tempip, XFS_DATA_FORK);
fs/xfs/scrub/rtrefcount.c
103
struct xfs_scrub *sc;
fs/xfs/scrub/rtrefcount.c
134
if (xchk_should_terminate(refchk->sc, &error))
fs/xfs/scrub/rtrefcount.c
142
xchk_btree_xref_set_corrupt(refchk->sc, cur, 0);
fs/xfs/scrub/rtrefcount.c
299
struct xfs_scrub *sc,
fs/xfs/scrub/rtrefcount.c
303
.sc = sc,
fs/xfs/scrub/rtrefcount.c
31
struct xfs_scrub *sc)
fs/xfs/scrub/rtrefcount.c
315
if (!sc->sr.rmap_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/rtrefcount.c
325
error = xfs_rmap_query_range(sc->sr.rmap_cur, &low, &high,
fs/xfs/scrub/rtrefcount.c
327
if (!xchk_should_check_xref(sc, &error, &sc->sr.rmap_cur))
fs/xfs/scrub/rtrefcount.c
332
xchk_btree_xref_set_corrupt(sc, sc->sr.rmap_cur, 0);
fs/xfs/scrub/rtrefcount.c
344
struct xfs_scrub *sc,
fs/xfs/scrub/rtrefcount.c
347
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rtrefcount.c
35
if (xchk_need_intent_drain(sc))
fs/xfs/scrub/rtrefcount.c
350
xchk_xref_is_used_rt_space(sc,
fs/xfs/scrub/rtrefcount.c
351
xfs_rgbno_to_rtb(sc->sr.rtg, irec->rc_startblock),
fs/xfs/scrub/rtrefcount.c
353
xchk_rtrefcountbt_xref_rmap(sc, irec);
fs/xfs/scrub/rtrefcount.c
36
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
fs/xfs/scrub/rtrefcount.c
38
if (xchk_could_repair(sc)) {
fs/xfs/scrub/rtrefcount.c
39
error = xrep_setup_rtrefcountbt(sc);
fs/xfs/scrub/rtrefcount.c
399
if (bs->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rtrefcount.c
403
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/rtrefcount.c
429
struct xfs_scrub *sc,
fs/xfs/scrub/rtrefcount.c
438
if (bno <= rrc->next_unshared_rgbno || !sc->sr.rmap_cur ||
fs/xfs/scrub/rtrefcount.c
439
xchk_skip_xref(sc->sm))
fs/xfs/scrub/rtrefcount.c
44
error = xchk_rtgroup_init(sc, sc->sm->sm_agno, &sc->sr);
fs/xfs/scrub/rtrefcount.c
447
error = xfs_rmap_query_range(sc->sr.rmap_cur, &low, &high,
fs/xfs/scrub/rtrefcount.c
450
xchk_btree_xref_set_corrupt(sc, sc->sr.rmap_cur, 0);
fs/xfs/scrub/rtrefcount.c
452
xchk_should_check_xref(sc, &error, &sc->sr.rmap_cur);
fs/xfs/scrub/rtrefcount.c
469
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/rtrefcount.c
476
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/rtrefcount.c
479
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/rtrefcount.c
48
error = xchk_setup_rt(sc);
fs/xfs/scrub/rtrefcount.c
487
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/rtrefcount.c
491
xchk_rtrefcountbt_xref(bs->sc, &irec);
fs/xfs/scrub/rtrefcount.c
499
xchk_rtrefcountbt_xref_gaps(bs->sc, rrc, irec.rc_startblock);
fs/xfs/scrub/rtrefcount.c
510
struct xfs_scrub *sc,
fs/xfs/scrub/rtrefcount.c
518
if (!sc->sr.rmap_cur || !sc->sa.rmap_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/rtrefcount.c
52
error = xchk_install_live_inode(sc, rtg_refcount(sc->sr.rtg));
fs/xfs/scrub/rtrefcount.c
522
error = xfs_btree_count_blocks(sc->sr.refc_cur, &refcbt_blocks);
fs/xfs/scrub/rtrefcount.c
523
if (!xchk_btree_process_error(sc, sc->sr.refc_cur, 0, &error))
fs/xfs/scrub/rtrefcount.c
525
error = xchk_count_rmap_ownedby_ag(sc, sc->sa.rmap_cur, btree_oinfo,
fs/xfs/scrub/rtrefcount.c
527
if (!xchk_should_check_xref(sc, &error, &sc->sa.rmap_cur))
fs/xfs/scrub/rtrefcount.c
530
xchk_btree_xref_set_corrupt(sc, sc->sa.rmap_cur, 0);
fs/xfs/scrub/rtrefcount.c
533
error = xchk_count_rmap_ownedby_ag(sc, sc->sr.rmap_cur,
fs/xfs/scrub/rtrefcount.c
535
if (!xchk_should_check_xref(sc, &error, &sc->sr.rmap_cur))
fs/xfs/scrub/rtrefcount.c
538
xchk_btree_xref_set_corrupt(sc, sc->sr.rmap_cur, 0);
fs/xfs/scrub/rtrefcount.c
544
struct xfs_scrub *sc)
fs/xfs/scrub/rtrefcount.c
554
error = xchk_metadata_inode_forks(sc);
fs/xfs/scrub/rtrefcount.c
555
if (error || (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/rtrefcount.c
558
xfs_rmap_ino_bmbt_owner(&btree_oinfo, rtg_refcount(sc->sr.rtg)->i_ino,
fs/xfs/scrub/rtrefcount.c
56
return xchk_rtgroup_lock(sc, &sc->sr, XCHK_RTGLOCK_ALL);
fs/xfs/scrub/rtrefcount.c
560
error = xchk_btree(sc, sc->sr.refc_cur, xchk_rtrefcountbt_rec,
fs/xfs/scrub/rtrefcount.c
562
if (error || (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/rtrefcount.c
569
xchk_rtrefcountbt_xref_gaps(sc, &rrc, sc->mp->m_sb.sb_rblocks);
fs/xfs/scrub/rtrefcount.c
571
xchk_refcount_xref_rmap(sc, &btree_oinfo, rrc.cow_blocks);
fs/xfs/scrub/rtrefcount.c
579
struct xfs_scrub *sc,
fs/xfs/scrub/rtrefcount.c
587
if (!sc->sr.refc_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/rtrefcount.c
591
error = xfs_refcount_lookup_le(sc->sr.refc_cur, XFS_REFC_DOMAIN_COW,
fs/xfs/scrub/rtrefcount.c
593
if (!xchk_should_check_xref(sc, &error, &sc->sr.refc_cur))
fs/xfs/scrub/rtrefcount.c
596
xchk_btree_xref_set_corrupt(sc, sc->sr.refc_cur, 0);
fs/xfs/scrub/rtrefcount.c
600
error = xfs_refcount_get_rec(sc->sr.refc_cur, &rc, &has_refcount);
fs/xfs/scrub/rtrefcount.c
601
if (!xchk_should_check_xref(sc, &error, &sc->sr.refc_cur))
fs/xfs/scrub/rtrefcount.c
604
xchk_btree_xref_set_corrupt(sc, sc->sr.refc_cur, 0);
fs/xfs/scrub/rtrefcount.c
610
xchk_btree_xref_set_corrupt(sc, sc->sa.refc_cur, 0);
fs/xfs/scrub/rtrefcount.c
614
xchk_btree_xref_set_corrupt(sc, sc->sr.refc_cur, 0);
fs/xfs/scrub/rtrefcount.c
623
struct xfs_scrub *sc,
fs/xfs/scrub/rtrefcount.c
630
if (!sc->sr.refc_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/rtrefcount.c
633
error = xfs_refcount_has_records(sc->sr.refc_cur,
fs/xfs/scrub/rtrefcount.c
635
if (!xchk_should_check_xref(sc, &error, &sc->sr.refc_cur))
fs/xfs/scrub/rtrefcount.c
638
xchk_btree_xref_set_corrupt(sc, sc->sr.refc_cur, 0);
fs/xfs/scrub/rtrefcount.c
644
struct xfs_scrub *sc,
fs/xfs/scrub/rtrefcount.c
651
if (!sc->sr.refc_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/rtrefcount.c
654
error = xfs_refcount_has_records(sc->sr.refc_cur, XFS_REFC_DOMAIN_COW,
fs/xfs/scrub/rtrefcount.c
656
if (!xchk_should_check_xref(sc, &error, &sc->sr.refc_cur))
fs/xfs/scrub/rtrefcount.c
659
xchk_btree_xref_set_corrupt(sc, sc->sr.refc_cur, 0);
fs/xfs/scrub/rtrefcount_repair.c
117
struct xfs_scrub *sc;
fs/xfs/scrub/rtrefcount_repair.c
129
struct xfs_scrub *sc)
fs/xfs/scrub/rtrefcount_repair.c
131
return xrep_setup_xfbtree(sc, "realtime rmap record bag");
fs/xfs/scrub/rtrefcount_repair.c
137
struct xfs_scrub *sc,
fs/xfs/scrub/rtrefcount_repair.c
142
if (xfs_rtrefcount_check_irec(sc->sr.rtg, rec) != NULL)
fs/xfs/scrub/rtrefcount_repair.c
145
if (xfs_rgbno_to_rtxoff(sc->mp, rec->rc_startblock) != 0)
fs/xfs/scrub/rtrefcount_repair.c
149
if (xfs_rgbno_to_rtxoff(sc->mp, last) != sc->mp->m_sb.sb_rextsize - 1)
fs/xfs/scrub/rtrefcount_repair.c
153
return xrep_require_rtext_inuse(sc, rec->rc_startblock,
fs/xfs/scrub/rtrefcount_repair.c
174
if (xchk_should_terminate(rr->sc, &error))
fs/xfs/scrub/rtrefcount_repair.c
179
error = xrep_rtrefc_check_ext(rr->sc, &irec);
fs/xfs/scrub/rtrefcount_repair.c
183
trace_xrep_refc_found(rtg_group(rr->sc->sr.rtg), &irec);
fs/xfs/scrub/rtrefcount_repair.c
221
struct xfs_btree_cur *cur = rr->sc->sr.rmap_cur;
fs/xfs/scrub/rtrefcount_repair.c
235
if (xchk_should_terminate(rr->sc, &error))
fs/xfs/scrub/rtrefcount_repair.c
325
if (xchk_should_terminate(rr->sc, &error))
fs/xfs/scrub/rtrefcount_repair.c
359
if (xchk_should_terminate(rr->sc, &error))
fs/xfs/scrub/rtrefcount_repair.c
363
if (rec->rm_owner != rr->sc->ip->i_ino)
fs/xfs/scrub/rtrefcount_repair.c
366
error = xrep_check_ino_btree_mapping(rr->sc, rec);
fs/xfs/scrub/rtrefcount_repair.c
389
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rtrefcount_repair.c
394
error = rcbag_add(rcstack, rr->sc->tp, rmap);
fs/xfs/scrub/rtrefcount_repair.c
403
error = xfs_btree_decrement(sc->sr.rmap_cur, 0, &have_gt);
fs/xfs/scrub/rtrefcount_repair.c
406
if (XFS_IS_CORRUPT(sc->mp, !have_gt)) {
fs/xfs/scrub/rtrefcount_repair.c
407
xfs_btree_mark_sick(sc->sr.rmap_cur);
fs/xfs/scrub/rtrefcount_repair.c
420
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rtrefcount_repair.c
423
error = xrep_ag_init(sc, pag, &sc->sa);
fs/xfs/scrub/rtrefcount_repair.c
427
error = xfs_rmap_query_all(sc->sa.rmap_cur, xrep_rtrefc_walk_rmap, rr);
fs/xfs/scrub/rtrefcount_repair.c
428
xchk_ag_free(sc, &sc->sa);
fs/xfs/scrub/rtrefcount_repair.c
437
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rtrefcount_repair.c
448
while ((pag = xfs_perag_next(sc->mp, pag))) {
fs/xfs/scrub/rtrefcount_repair.c
456
xrep_rtgroup_btcur_init(sc, &sc->sr);
fs/xfs/scrub/rtrefcount_repair.c
463
error = rcbag_init(sc->mp, sc->xmbtp, &rcstack);
fs/xfs/scrub/rtrefcount_repair.c
468
error = xfs_btree_goto_left_edge(sc->sr.rmap_cur);
fs/xfs/scrub/rtrefcount_repair.c
473
while (xfs_btree_has_more_records(sc->sr.rmap_cur)) {
fs/xfs/scrub/rtrefcount_repair.c
489
error = rcbag_next_edge(rcstack, sc->tp, &rmap, have, &nbno);
fs/xfs/scrub/rtrefcount_repair.c
499
error = rcbag_remove_ending_at(rcstack, sc->tp, nbno);
fs/xfs/scrub/rtrefcount_repair.c
535
error = rcbag_next_edge(rcstack, sc->tp, &rmap, have,
fs/xfs/scrub/rtrefcount_repair.c
548
xchk_rtgroup_btcur_free(&sc->sr);
fs/xfs/scrub/rtrefcount_repair.c
612
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rtrefcount_repair.c
613
struct xfs_rtgroup *rtg = sc->sr.rtg;
fs/xfs/scrub/rtrefcount_repair.c
627
error = xrep_newbt_init_metadir_inode(&rr->new_btree, sc);
fs/xfs/scrub/rtrefcount_repair.c
645
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/rtrefcount_repair.c
655
error = xfs_trans_reserve_more_inode(sc->tp, rtg_refcount(rtg),
fs/xfs/scrub/rtrefcount_repair.c
678
xfs_rtrefcountbt_commit_staged_btree(refc_cur, sc->tp);
fs/xfs/scrub/rtrefcount_repair.c
679
xrep_inode_set_nblocks(rr->sc, rr->new_btree.ifake.if_blocks);
fs/xfs/scrub/rtrefcount_repair.c
687
return xrep_roll_trans(sc);
fs/xfs/scrub/rtrefcount_repair.c
697
struct xfs_scrub *sc)
fs/xfs/scrub/rtrefcount_repair.c
700
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtrefcount_repair.c
708
error = xrep_metadata_inode_forks(sc);
fs/xfs/scrub/rtrefcount_repair.c
715
rr->sc = sc;
fs/xfs/scrub/rtrefcount_repair.c
730
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/rtrefcount_repair.c
741
error = xrep_reap_metadir_fsblocks(rr->sc,
fs/xfs/scrub/rtrmap.c
102
if (bs->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rtrmap.c
115
if (!xchk_rtrmapbt_is_shareable(bs->sc, &cr->overlap_rec) ||
fs/xfs/scrub/rtrmap.c
116
!xchk_rtrmapbt_is_shareable(bs->sc, irec))
fs/xfs/scrub/rtrmap.c
117
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/rtrmap.c
159
if (bs->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rtrmap.c
163
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/rtrmap.c
171
struct xfs_scrub *sc,
fs/xfs/scrub/rtrmap.c
182
if (!sc->sr.refc_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/rtrmap.c
191
error = xfs_refcount_find_shared(sc->sr.refc_cur, irec->rm_startblock,
fs/xfs/scrub/rtrmap.c
193
if (!xchk_should_check_xref(sc, &error, &sc->sr.refc_cur))
fs/xfs/scrub/rtrmap.c
196
xchk_btree_xref_set_corrupt(sc, sc->sr.refc_cur, 0);
fs/xfs/scrub/rtrmap.c
202
struct xfs_scrub *sc,
fs/xfs/scrub/rtrmap.c
205
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rtrmap.c
208
xchk_xref_is_used_rt_space(sc,
fs/xfs/scrub/rtrmap.c
209
xfs_rgbno_to_rtb(sc->sr.rtg, irec->rm_startblock),
fs/xfs/scrub/rtrmap.c
212
xchk_xref_is_cow_staging(sc, irec->rm_startblock,
fs/xfs/scrub/rtrmap.c
215
xchk_rtrmapbt_xref_rtrefc(sc, irec);
fs/xfs/scrub/rtrmap.c
229
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
fs/xfs/scrub/rtrmap.c
233
if (bs->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rtrmap.c
238
xchk_rtrmapbt_xref(bs->sc, &irec);
fs/xfs/scrub/rtrmap.c
245
struct xfs_scrub *sc)
fs/xfs/scrub/rtrmap.c
247
struct xfs_inode *ip = rtg_rmap(sc->sr.rtg);
fs/xfs/scrub/rtrmap.c
252
error = xchk_metadata_inode_forks(sc);
fs/xfs/scrub/rtrmap.c
253
if (error || (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/rtrmap.c
257
return xchk_btree(sc, sc->sr.rmap_cur, xchk_rtrmapbt_rec, &oinfo, &cr);
fs/xfs/scrub/rtrmap.c
263
struct xfs_scrub *sc,
fs/xfs/scrub/rtrmap.c
270
if (!sc->sr.rmap_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/rtrmap.c
273
error = xfs_rmap_has_records(sc->sr.rmap_cur, bno, len, &outcome);
fs/xfs/scrub/rtrmap.c
274
if (!xchk_should_check_xref(sc, &error, &sc->sr.rmap_cur))
fs/xfs/scrub/rtrmap.c
277
xchk_btree_xref_set_corrupt(sc, sc->sr.rmap_cur, 0);
fs/xfs/scrub/rtrmap.c
283
struct xfs_scrub *sc,
fs/xfs/scrub/rtrmap.c
290
if (!sc->sr.rmap_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/rtrmap.c
293
error = xfs_rmap_has_records(sc->sr.rmap_cur, bno, len, &outcome);
fs/xfs/scrub/rtrmap.c
294
if (!xchk_should_check_xref(sc, &error, &sc->sr.rmap_cur))
fs/xfs/scrub/rtrmap.c
297
xchk_btree_xref_set_corrupt(sc, sc->sr.rmap_cur, 0);
fs/xfs/scrub/rtrmap.c
303
struct xfs_scrub *sc,
fs/xfs/scrub/rtrmap.c
311
if (!sc->sr.rmap_cur || xchk_skip_xref(sc->sm))
fs/xfs/scrub/rtrmap.c
314
error = xfs_rmap_count_owners(sc->sr.rmap_cur, bno, len, oinfo, &res);
fs/xfs/scrub/rtrmap.c
315
if (!xchk_should_check_xref(sc, &error, &sc->sr.rmap_cur))
fs/xfs/scrub/rtrmap.c
318
xchk_btree_xref_set_corrupt(sc, sc->sr.rmap_cur, 0);
fs/xfs/scrub/rtrmap.c
320
xchk_btree_xref_set_corrupt(sc, sc->sr.rmap_cur, 0);
fs/xfs/scrub/rtrmap.c
322
xchk_btree_xref_set_corrupt(sc, sc->sr.rmap_cur, 0);
fs/xfs/scrub/rtrmap.c
36
struct xfs_scrub *sc)
fs/xfs/scrub/rtrmap.c
40
if (xchk_need_intent_drain(sc))
fs/xfs/scrub/rtrmap.c
41
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
fs/xfs/scrub/rtrmap.c
43
if (xchk_could_repair(sc)) {
fs/xfs/scrub/rtrmap.c
44
error = xrep_setup_rtrmapbt(sc);
fs/xfs/scrub/rtrmap.c
49
error = xchk_rtgroup_init(sc, sc->sm->sm_agno, &sc->sr);
fs/xfs/scrub/rtrmap.c
53
error = xchk_setup_rt(sc);
fs/xfs/scrub/rtrmap.c
57
error = xchk_install_live_inode(sc, rtg_rmap(sc->sr.rtg));
fs/xfs/scrub/rtrmap.c
61
return xchk_rtgroup_lock(sc, &sc->sr, XCHK_RTGLOCK_ALL);
fs/xfs/scrub/rtrmap.c
83
struct xfs_scrub *sc,
fs/xfs/scrub/rtrmap.c
86
if (!xfs_has_rtreflink(sc->mp))
fs/xfs/scrub/rtrmap_repair.c
103
struct xfs_scrub *sc)
fs/xfs/scrub/rtrmap_repair.c
108
xchk_fsgates_enable(sc, XCHK_FSGATES_RMAP);
fs/xfs/scrub/rtrmap_repair.c
110
error = xrep_setup_xfbtree(sc, "realtime reverse mapping records");
fs/xfs/scrub/rtrmap_repair.c
118
rr->sc = sc;
fs/xfs/scrub/rtrmap_repair.c
119
sc->buf = rr;
fs/xfs/scrub/rtrmap_repair.c
126
struct xfs_scrub *sc,
fs/xfs/scrub/rtrmap_repair.c
129
if (xfs_rtrmap_check_irec(sc->sr.rtg, rec) != NULL)
fs/xfs/scrub/rtrmap_repair.c
133
return xrep_require_rtext_inuse(sc, rec->rm_startblock,
fs/xfs/scrub/rtrmap_repair.c
154
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rtrmap_repair.c
158
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/rtrmap_repair.c
164
trace_xrep_rtrmap_found(sc->mp, &rmap);
fs/xfs/scrub/rtrmap_repair.c
168
mcur = xfs_rtrmapbt_mem_cursor(sc->sr.rtg, sc->tp, &rr->rtrmap_btree);
fs/xfs/scrub/rtrmap_repair.c
174
error = xfbtree_trans_commit(&rr->rtrmap_btree, sc->tp);
fs/xfs/scrub/rtrmap_repair.c
182
xfbtree_trans_cancel(&rr->rtrmap_btree, sc->tp);
fs/xfs/scrub/rtrmap_repair.c
224
struct xfs_mount *mp = rf->rr->sc->mp;
fs/xfs/scrub/rtrmap_repair.c
230
rtg_rgno(rf->rr->sc->sr.rtg))
fs/xfs/scrub/rtrmap_repair.c
285
cur = xfs_bmbt_init_cursor(rr->sc->mp, rr->sc->tp, ip, XFS_DATA_FORK);
fs/xfs/scrub/rtrmap_repair.c
363
if (rr->sc->ip == ip)
fs/xfs/scrub/rtrmap_repair.c
391
if (xchk_should_terminate(rr->sc, &error))
fs/xfs/scrub/rtrmap_repair.c
395
if (rec->rm_owner != rr->sc->ip->i_ino)
fs/xfs/scrub/rtrmap_repair.c
398
error = xrep_check_ino_btree_mapping(rr->sc, rec);
fs/xfs/scrub/rtrmap_repair.c
413
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rtrmap_repair.c
416
error = xrep_ag_init(sc, pag, &sc->sa);
fs/xfs/scrub/rtrmap_repair.c
420
error = xfs_rmap_query_all(sc->sa.rmap_cur, xrep_rtrmap_walk_rmap, rr);
fs/xfs/scrub/rtrmap_repair.c
421
xchk_ag_free(sc, &sc->sa);
fs/xfs/scrub/rtrmap_repair.c
495
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rtrmap_repair.c
498
if (!xfs_has_rtreflink(sc->mp))
fs/xfs/scrub/rtrmap_repair.c
504
error = xfs_refcount_query_range(sc->sr.refc_cur, &low, &high,
fs/xfs/scrub/rtrmap_repair.c
529
error = xrep_rtrmap_check_mapping(rr->sc, rec);
fs/xfs/scrub/rtrmap_repair.c
542
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rtrmap_repair.c
549
if (xfs_has_rtsb(sc->mp) && rtg_rgno(rr->sc->sr.rtg) == 0) {
fs/xfs/scrub/rtrmap_repair.c
550
error = xrep_rtrmap_stash(rr, 0, sc->mp->m_sb.sb_rextsize,
fs/xfs/scrub/rtrmap_repair.c
557
xrep_rtgroup_btcur_init(sc, &sc->sr);
fs/xfs/scrub/rtrmap_repair.c
559
xchk_rtgroup_btcur_free(&sc->sr);
fs/xfs/scrub/rtrmap_repair.c
578
xchk_trans_cancel(sc);
fs/xfs/scrub/rtrmap_repair.c
579
xchk_rtgroup_unlock(&sc->sr);
fs/xfs/scrub/rtrmap_repair.c
580
xchk_trans_alloc_empty(sc);
fs/xfs/scrub/rtrmap_repair.c
584
xchk_irele(sc, ip);
fs/xfs/scrub/rtrmap_repair.c
588
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/rtrmap_repair.c
599
xchk_trans_cancel(sc);
fs/xfs/scrub/rtrmap_repair.c
600
error = xchk_setup_rt(sc);
fs/xfs/scrub/rtrmap_repair.c
603
error = xchk_rtgroup_lock(sc, &sc->sr, XCHK_RTGLOCK_ALL);
fs/xfs/scrub/rtrmap_repair.c
615
while ((pag = xfs_perag_next(sc->mp, pag))) {
fs/xfs/scrub/rtrmap_repair.c
630
mcur = xfs_rtrmapbt_mem_cursor(rr->sc->sr.rtg, NULL, &rr->rtrmap_btree);
fs/xfs/scrub/rtrmap_repair.c
709
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rtrmap_repair.c
710
struct xfs_rtgroup *rtg = sc->sr.rtg;
fs/xfs/scrub/rtrmap_repair.c
720
error = xrep_newbt_init_metadir_inode(&rr->new_btree, sc);
fs/xfs/scrub/rtrmap_repair.c
738
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/rtrmap_repair.c
748
error = xfs_trans_reserve_more_inode(sc->tp, rtg_rmap(rtg),
fs/xfs/scrub/rtrmap_repair.c
763
rr->mcur = xfs_rtrmapbt_mem_cursor(sc->sr.rtg, NULL, &rr->rtrmap_btree);
fs/xfs/scrub/rtrmap_repair.c
779
xfs_rtrmapbt_commit_staged_btree(rmap_cur, sc->tp);
fs/xfs/scrub/rtrmap_repair.c
780
xrep_inode_set_nblocks(rr->sc, rr->new_btree.ifake.if_blocks);
fs/xfs/scrub/rtrmap_repair.c
796
return xrep_roll_trans(sc);
fs/xfs/scrub/rtrmap_repair.c
82
struct xfs_scrub *sc;
fs/xfs/scrub/rtrmap_repair.c
847
mp = rr->sc->mp;
fs/xfs/scrub/rtrmap_repair.c
852
trace_xrep_rmap_live_update(rtg_group(rr->sc->sr.rtg), action, p);
fs/xfs/scrub/rtrmap_repair.c
857
mcur = xfs_rtrmapbt_mem_cursor(rr->sc->sr.rtg, tp, &rr->rtrmap_btree);
fs/xfs/scrub/rtrmap_repair.c
886
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rtrmap_repair.c
893
error = xfs_rtrmapbt_mem_init(sc->mp, &rr->rtrmap_btree, sc->xmbtp,
fs/xfs/scrub/rtrmap_repair.c
894
rtg_rgno(sc->sr.rtg));
fs/xfs/scrub/rtrmap_repair.c
899
xchk_iscan_start(sc, 30000, 100, &rr->iscan);
fs/xfs/scrub/rtrmap_repair.c
907
ASSERT(sc->flags & XCHK_FSGATES_RMAP);
fs/xfs/scrub/rtrmap_repair.c
909
error = xfs_rmap_hook_add(rtg_group(sc->sr.rtg), &rr->rhook);
fs/xfs/scrub/rtrmap_repair.c
928
struct xfs_scrub *sc = rr->sc;
fs/xfs/scrub/rtrmap_repair.c
931
xfs_rmap_hook_del(rtg_group(sc->sr.rtg), &rr->rhook);
fs/xfs/scrub/rtrmap_repair.c
941
struct xfs_scrub *sc)
fs/xfs/scrub/rtrmap_repair.c
943
struct xrep_rtrmap *rr = sc->buf;
fs/xfs/scrub/rtrmap_repair.c
947
error = xrep_metadata_inode_forks(sc);
fs/xfs/scrub/rtrmap_repair.c
960
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/rtrmap_repair.c
971
error = xrep_reap_metadir_fsblocks(rr->sc, &rr->old_rtrmapbt_blocks);
fs/xfs/scrub/rtsummary.c
116
struct xfs_scrub *sc,
fs/xfs/scrub/rtsummary.c
120
return xfile_load(sc->xfile, rawinfo,
fs/xfs/scrub/rtsummary.c
127
struct xfs_scrub *sc,
fs/xfs/scrub/rtsummary.c
131
return xfile_store(sc->xfile, &rawinfo,
fs/xfs/scrub/rtsummary.c
138
struct xfs_scrub *sc,
fs/xfs/scrub/rtsummary.c
143
return xfile_load(sc->xfile, rawinfo, nr_words << XFS_WORDLOG,
fs/xfs/scrub/rtsummary.c
170
struct xfs_scrub *sc = priv;
fs/xfs/scrub/rtsummary.c
180
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/rtsummary.c
192
xchk_ino_xref_set_corrupt(sc, rtg_bitmap(rtg)->i_ino);
fs/xfs/scrub/rtsummary.c
197
error = xfsum_load(sc, offs, &v);
fs/xfs/scrub/rtsummary.c
201
value = xchk_rtsum_inc(sc->mp, &v);
fs/xfs/scrub/rtsummary.c
205
return xfsum_store(sc, offs, v);
fs/xfs/scrub/rtsummary.c
211
struct xfs_scrub *sc)
fs/xfs/scrub/rtsummary.c
213
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtsummary.c
214
struct xfs_rtgroup *rtg = sc->sr.rtg;
fs/xfs/scrub/rtsummary.c
221
return xfs_rtalloc_query_all(rtg, sc->tp, xchk_rtsum_record_free, sc);
fs/xfs/scrub/rtsummary.c
227
struct xfs_scrub *sc)
fs/xfs/scrub/rtsummary.c
232
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtsummary.c
233
struct xfs_inode *ip = sc->ip;
fs/xfs/scrub/rtsummary.c
234
struct xchk_rtsummary *rts = sc->buf;
fs/xfs/scrub/rtsummary.c
241
rts->args.tp = sc->tp;
fs/xfs/scrub/rtsummary.c
242
rts->args.rtg = sc->sr.rtg;
fs/xfs/scrub/rtsummary.c
247
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, endoff);
fs/xfs/scrub/rtsummary.c
254
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/rtsummary.c
256
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
fs/xfs/scrub/rtsummary.c
262
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, off, &error))
fs/xfs/scrub/rtsummary.c
266
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, off);
fs/xfs/scrub/rtsummary.c
278
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, off, &error))
fs/xfs/scrub/rtsummary.c
282
error = xfsum_copyout(sc, sumoff, rts->words, mp->m_blockwsize);
fs/xfs/scrub/rtsummary.c
291
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, off);
fs/xfs/scrub/rtsummary.c
306
struct xfs_scrub *sc)
fs/xfs/scrub/rtsummary.c
308
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtsummary.c
309
struct xfs_rtgroup *rtg = sc->sr.rtg;
fs/xfs/scrub/rtsummary.c
312
struct xchk_rtsummary *rts = sc->buf;
fs/xfs/scrub/rtsummary.c
317
xchk_ino_set_corrupt(sc, rbmip->i_ino);
fs/xfs/scrub/rtsummary.c
323
xchk_ino_set_corrupt(sc, rsumip->i_ino);
fs/xfs/scrub/rtsummary.c
329
xchk_ino_set_corrupt(sc, rsumip->i_ino);
fs/xfs/scrub/rtsummary.c
335
xchk_ino_set_corrupt(sc, rsumip->i_ino);
fs/xfs/scrub/rtsummary.c
345
xchk_ino_set_corrupt(sc, rsumip->i_ino);
fs/xfs/scrub/rtsummary.c
350
error = xchk_metadata_inode_forks(sc);
fs/xfs/scrub/rtsummary.c
351
if (error || (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
fs/xfs/scrub/rtsummary.c
355
error = xchk_rtsum_compute(sc);
fs/xfs/scrub/rtsummary.c
361
xchk_ino_set_corrupt(sc, rbmip->i_ino);
fs/xfs/scrub/rtsummary.c
368
return xchk_rtsum_compare(sc);
fs/xfs/scrub/rtsummary.c
43
struct xfs_scrub *sc)
fs/xfs/scrub/rtsummary.c
45
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtsummary.c
49
if (xchk_need_intent_drain(sc))
fs/xfs/scrub/rtsummary.c
50
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
fs/xfs/scrub/rtsummary.c
55
sc->buf = rts;
fs/xfs/scrub/rtsummary.c
57
error = xchk_rtgroup_init(sc, sc->sm->sm_agno, &sc->sr);
fs/xfs/scrub/rtsummary.c
61
if (xchk_could_repair(sc)) {
fs/xfs/scrub/rtsummary.c
62
error = xrep_setup_rtsummary(sc, rts);
fs/xfs/scrub/rtsummary.c
72
XFS_FSB_TO_B(mp, mp->m_rsumblocks), &sc->xfile);
fs/xfs/scrub/rtsummary.c
76
error = xchk_trans_alloc(sc, rts->resblks);
fs/xfs/scrub/rtsummary.c
80
error = xchk_install_live_inode(sc, rtg_summary(sc->sr.rtg));
fs/xfs/scrub/rtsummary.c
84
error = xchk_ino_dqattach(sc);
fs/xfs/scrub/rtsummary.c
88
error = xchk_rtgroup_lock(sc, &sc->sr, XFS_RTGLOCK_BITMAP);
fs/xfs/scrub/rtsummary.h
28
int xfsum_copyout(struct xfs_scrub *sc, xfs_rtsumoff_t sumoff,
fs/xfs/scrub/rtsummary.h
32
int xrep_setup_rtsummary(struct xfs_scrub *sc, struct xchk_rtsummary *rts);
fs/xfs/scrub/rtsummary.h
34
# define xrep_setup_rtsummary(sc, rts) (0)
fs/xfs/scrub/rtsummary_repair.c
104
xfs_trans_buf_set_type(sc->tp, bp, XFS_BLFT_RTSUMMARY_BUF);
fs/xfs/scrub/rtsummary_repair.c
111
struct xfs_scrub *sc)
fs/xfs/scrub/rtsummary_repair.c
113
struct xchk_rtsummary *rts = sc->buf;
fs/xfs/scrub/rtsummary_repair.c
114
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtsummary_repair.c
129
error = xrep_metadata_inode_forks(sc);
fs/xfs/scrub/rtsummary_repair.c
138
while (!xrep_tempfile_ilock_nowait(sc)) {
fs/xfs/scrub/rtsummary_repair.c
139
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/rtsummary_repair.c
145
xfs_trans_ijoin(sc->tp, sc->ip, 0);
fs/xfs/scrub/rtsummary_repair.c
146
xfs_trans_ijoin(sc->tp, sc->tempip, 0);
fs/xfs/scrub/rtsummary_repair.c
147
error = xrep_tempfile_prealloc(sc, 0, rts->rsumblocks);
fs/xfs/scrub/rtsummary_repair.c
152
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/rtsummary_repair.c
156
error = xrep_tempfile_copyin(sc, 0, rts->rsumblocks,
fs/xfs/scrub/rtsummary_repair.c
160
error = xrep_tempfile_set_isize(sc, XFS_FSB_TO_B(mp, rts->rsumblocks));
fs/xfs/scrub/rtsummary_repair.c
168
error = xrep_tempexch_trans_reserve(sc, XFS_DATA_FORK, 0,
fs/xfs/scrub/rtsummary_repair.c
173
error = xrep_tempexch_contents(sc, &rts->tempexch);
fs/xfs/scrub/rtsummary_repair.c
178
if (sc->sr.rtg->rtg_rsum_cache)
fs/xfs/scrub/rtsummary_repair.c
179
memset(sc->sr.rtg->rtg_rsum_cache, 0xFF, mp->m_sb.sb_rbmblocks);
fs/xfs/scrub/rtsummary_repair.c
185
return xrep_reap_ifork(sc, sc->tempip, XFS_DATA_FORK);
fs/xfs/scrub/rtsummary_repair.c
35
struct xfs_scrub *sc,
fs/xfs/scrub/rtsummary_repair.c
38
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtsummary_repair.c
42
error = xrep_tempfile_create(sc, S_IFREG);
fs/xfs/scrub/rtsummary_repair.c
70
struct xfs_scrub *sc,
fs/xfs/scrub/rtsummary_repair.c
75
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/rtsummary_repair.c
80
rts->args.tp = sc->tp;
fs/xfs/scrub/rtsummary_repair.c
81
rts->args.rtg = sc->sr.rtg;
fs/xfs/scrub/rtsummary_repair.c
86
error = xfsum_copyout(sc, rts->prep_wordoff, ondisk, mp->m_blockwsize);
fs/xfs/scrub/rtsummary_repair.c
90
if (xfs_has_rtgroups(sc->mp)) {
fs/xfs/scrub/rtsummary_repair.c
94
hdr->rt_owner = cpu_to_be64(sc->ip->i_ino);
fs/xfs/scrub/rtsummary_repair.c
97
uuid_copy(&hdr->rt_uuid, &sc->mp->m_sb.sb_meta_uuid);
fs/xfs/scrub/scrub.c
145
struct xfs_scrub *sc)
fs/xfs/scrub/scrub.c
149
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/scrub.c
159
if (xchk_could_repair(sc)) {
fs/xfs/scrub/scrub.c
162
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT;
fs/xfs/scrub/scrub.c
171
struct xfs_scrub *sc)
fs/xfs/scrub/scrub.c
173
if (!(sc->flags & XCHK_FSGATES_ALL))
fs/xfs/scrub/scrub.c
176
trace_xchk_fsgates_disable(sc, sc->flags & XCHK_FSGATES_ALL);
fs/xfs/scrub/scrub.c
178
if (sc->flags & XCHK_FSGATES_DRAIN)
fs/xfs/scrub/scrub.c
181
if (sc->flags & XCHK_FSGATES_QUOTA)
fs/xfs/scrub/scrub.c
184
if (sc->flags & XCHK_FSGATES_DIRENTS)
fs/xfs/scrub/scrub.c
187
if (sc->flags & XCHK_FSGATES_RMAP)
fs/xfs/scrub/scrub.c
190
sc->flags &= ~XCHK_FSGATES_ALL;
fs/xfs/scrub/scrub.c
198
struct xfs_scrub *sc = sub->parent_sc;
fs/xfs/scrub/scrub.c
200
ASSERT(sc->ip == sub->sc.ip);
fs/xfs/scrub/scrub.c
201
ASSERT(sc->orphanage == sub->sc.orphanage);
fs/xfs/scrub/scrub.c
202
ASSERT(sc->tempip == sub->sc.tempip);
fs/xfs/scrub/scrub.c
204
sc->sm->sm_type = sub->old_smtype;
fs/xfs/scrub/scrub.c
205
sc->sm->sm_flags = sub->old_smflags |
fs/xfs/scrub/scrub.c
206
(sc->sm->sm_flags & XFS_SCRUB_FLAGS_OUT);
fs/xfs/scrub/scrub.c
207
sc->tp = sub->sc.tp;
fs/xfs/scrub/scrub.c
209
if (sub->sc.buf) {
fs/xfs/scrub/scrub.c
210
if (sub->sc.buf_cleanup)
fs/xfs/scrub/scrub.c
211
sub->sc.buf_cleanup(sub->sc.buf);
fs/xfs/scrub/scrub.c
212
kvfree(sub->sc.buf);
fs/xfs/scrub/scrub.c
214
if (sub->sc.xmbtp)
fs/xfs/scrub/scrub.c
215
xmbuf_free(sub->sc.xmbtp);
fs/xfs/scrub/scrub.c
216
if (sub->sc.xfile)
fs/xfs/scrub/scrub.c
217
xfile_destroy(sub->sc.xfile);
fs/xfs/scrub/scrub.c
219
sc->ilock_flags = sub->sc.ilock_flags;
fs/xfs/scrub/scrub.c
220
sc->orphanage_ilock_flags = sub->sc.orphanage_ilock_flags;
fs/xfs/scrub/scrub.c
221
sc->temp_ilock_flags = sub->sc.temp_ilock_flags;
fs/xfs/scrub/scrub.c
229
struct xfs_scrub *sc,
fs/xfs/scrub/scrub.c
232
xchk_ag_free(sc, &sc->sa);
fs/xfs/scrub/scrub.c
233
xchk_rtgroup_btcur_free(&sc->sr);
fs/xfs/scrub/scrub.c
235
if (sc->tp) {
fs/xfs/scrub/scrub.c
236
if (error == 0 && (sc->sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR))
fs/xfs/scrub/scrub.c
237
error = xfs_trans_commit(sc->tp);
fs/xfs/scrub/scrub.c
239
xfs_trans_cancel(sc->tp);
fs/xfs/scrub/scrub.c
240
sc->tp = NULL;
fs/xfs/scrub/scrub.c
242
if (sc->sr.rtg)
fs/xfs/scrub/scrub.c
243
xchk_rtgroup_free(sc, &sc->sr);
fs/xfs/scrub/scrub.c
244
if (sc->ip) {
fs/xfs/scrub/scrub.c
245
if (sc->ilock_flags)
fs/xfs/scrub/scrub.c
246
xchk_iunlock(sc, sc->ilock_flags);
fs/xfs/scrub/scrub.c
247
xchk_irele(sc, sc->ip);
fs/xfs/scrub/scrub.c
248
sc->ip = NULL;
fs/xfs/scrub/scrub.c
250
if (sc->flags & XCHK_HAVE_FREEZE_PROT) {
fs/xfs/scrub/scrub.c
251
sc->flags &= ~XCHK_HAVE_FREEZE_PROT;
fs/xfs/scrub/scrub.c
252
mnt_drop_write_file(sc->file);
fs/xfs/scrub/scrub.c
254
if (sc->xmbtp) {
fs/xfs/scrub/scrub.c
255
xmbuf_free(sc->xmbtp);
fs/xfs/scrub/scrub.c
256
sc->xmbtp = NULL;
fs/xfs/scrub/scrub.c
258
if (sc->xfile) {
fs/xfs/scrub/scrub.c
259
xfile_destroy(sc->xfile);
fs/xfs/scrub/scrub.c
260
sc->xfile = NULL;
fs/xfs/scrub/scrub.c
262
if (sc->buf) {
fs/xfs/scrub/scrub.c
263
if (sc->buf_cleanup)
fs/xfs/scrub/scrub.c
264
sc->buf_cleanup(sc->buf);
fs/xfs/scrub/scrub.c
265
kvfree(sc->buf);
fs/xfs/scrub/scrub.c
266
sc->buf_cleanup = NULL;
fs/xfs/scrub/scrub.c
267
sc->buf = NULL;
fs/xfs/scrub/scrub.c
270
xrep_tempfile_rele(sc);
fs/xfs/scrub/scrub.c
271
xrep_orphanage_rele(sc);
fs/xfs/scrub/scrub.c
272
xchk_fsgates_disable(sc);
fs/xfs/scrub/scrub.c
598
static inline void xchk_postmortem(struct xfs_scrub *sc)
fs/xfs/scrub/scrub.c
605
if ((sc->sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR) &&
fs/xfs/scrub/scrub.c
606
(sc->sm->sm_flags & (XFS_SCRUB_OFLAG_CORRUPT |
fs/xfs/scrub/scrub.c
608
xrep_failure(sc->mp);
fs/xfs/scrub/scrub.c
611
static inline void xchk_postmortem(struct xfs_scrub *sc)
fs/xfs/scrub/scrub.c
617
if (sc->sm->sm_flags & (XFS_SCRUB_OFLAG_CORRUPT |
fs/xfs/scrub/scrub.c
619
xfs_alert_ratelimited(sc->mp,
fs/xfs/scrub/scrub.c
630
struct xfs_scrub *sc,
fs/xfs/scrub/scrub.c
639
sub->old_smtype = sc->sm->sm_type;
fs/xfs/scrub/scrub.c
640
sub->old_smflags = sc->sm->sm_flags;
fs/xfs/scrub/scrub.c
641
sub->parent_sc = sc;
fs/xfs/scrub/scrub.c
642
memcpy(&sub->sc, sc, sizeof(struct xfs_scrub));
fs/xfs/scrub/scrub.c
643
sub->sc.ops = &meta_scrub_ops[subtype];
fs/xfs/scrub/scrub.c
644
sub->sc.sm->sm_type = subtype;
fs/xfs/scrub/scrub.c
645
sub->sc.sm->sm_flags &= ~XFS_SCRUB_FLAGS_OUT;
fs/xfs/scrub/scrub.c
646
sub->sc.buf = NULL;
fs/xfs/scrub/scrub.c
647
sub->sc.buf_cleanup = NULL;
fs/xfs/scrub/scrub.c
648
sub->sc.xfile = NULL;
fs/xfs/scrub/scrub.c
649
sub->sc.xmbtp = NULL;
fs/xfs/scrub/scrub.c
661
struct xfs_scrub *sc;
fs/xfs/scrub/scrub.c
683
sc = kzalloc_obj(struct xfs_scrub, XCHK_GFP_FLAGS);
fs/xfs/scrub/scrub.c
684
if (!sc) {
fs/xfs/scrub/scrub.c
689
sc->mp = mp;
fs/xfs/scrub/scrub.c
690
sc->file = file;
fs/xfs/scrub/scrub.c
691
sc->sm = sm;
fs/xfs/scrub/scrub.c
692
sc->ops = &meta_scrub_ops[sm->sm_type];
fs/xfs/scrub/scrub.c
693
sc->sick_mask = xchk_health_mask_for_scrub_type(sm->sm_type);
fs/xfs/scrub/scrub.c
694
sc->relax = INIT_XCHK_RELAX;
fs/xfs/scrub/scrub.c
701
error = mnt_want_write_file(sc->file);
fs/xfs/scrub/scrub.c
705
sc->flags |= XCHK_HAVE_FREEZE_PROT;
fs/xfs/scrub/scrub.c
709
error = sc->ops->setup(sc);
fs/xfs/scrub/scrub.c
710
if (error == -EDEADLOCK && !(sc->flags & XCHK_TRY_HARDER))
fs/xfs/scrub/scrub.c
712
if (error == -ECHRNG && !(sc->flags & XCHK_NEED_DRAIN))
fs/xfs/scrub/scrub.c
719
if ((sc->flags & XREP_ALREADY_FIXED) && sc->ops->repair_eval != NULL)
fs/xfs/scrub/scrub.c
720
error = sc->ops->repair_eval(sc);
fs/xfs/scrub/scrub.c
722
error = sc->ops->scrub(sc);
fs/xfs/scrub/scrub.c
724
if (error == -EDEADLOCK && !(sc->flags & XCHK_TRY_HARDER))
fs/xfs/scrub/scrub.c
726
if (error == -ECHRNG && !(sc->flags & XCHK_NEED_DRAIN))
fs/xfs/scrub/scrub.c
731
xchk_update_health(sc);
fs/xfs/scrub/scrub.c
733
if (xchk_could_repair(sc)) {
fs/xfs/scrub/scrub.c
738
if (!xrep_will_attempt(sc)) {
fs/xfs/scrub/scrub.c
739
sc->sm->sm_flags |= XFS_SCRUB_OFLAG_NO_REPAIR_NEEDED;
fs/xfs/scrub/scrub.c
747
error = xrep_attempt(sc, &run);
fs/xfs/scrub/scrub.c
754
error = xchk_teardown(sc, 0);
fs/xfs/scrub/scrub.c
764
xchk_postmortem(sc);
fs/xfs/scrub/scrub.c
766
error = xchk_teardown(sc, error);
fs/xfs/scrub/scrub.c
770
kfree(sc);
fs/xfs/scrub/scrub.c
779
error = xchk_teardown(sc, 0);
fs/xfs/scrub/scrub.c
782
sc->flags |= XCHK_NEED_DRAIN;
fs/xfs/scrub/scrub.c
791
error = xchk_teardown(sc, 0);
fs/xfs/scrub/scrub.c
794
sc->flags |= XCHK_TRY_HARDER;
fs/xfs/scrub/scrub.h
230
struct xfs_scrub sc;
fs/xfs/scrub/scrub.h
236
struct xfs_scrub_subord *xchk_scrub_create_subord(struct xfs_scrub *sc,
fs/xfs/scrub/scrub.h
247
struct xfs_scrub *sc,
fs/xfs/scrub/scrub.h
250
if (xchk_maybe_relax(&sc->relax)) {
fs/xfs/scrub/scrub.h
258
static inline int xchk_nothing(struct xfs_scrub *sc)
fs/xfs/scrub/scrub.h
264
int xchk_tester(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
265
int xchk_superblock(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
266
int xchk_agf(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
267
int xchk_agfl(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
268
int xchk_agi(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
269
int xchk_allocbt(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
270
int xchk_iallocbt(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
271
int xchk_rmapbt(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
272
int xchk_refcountbt(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
273
int xchk_inode(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
274
int xchk_bmap_data(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
275
int xchk_bmap_attr(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
276
int xchk_bmap_cow(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
277
int xchk_directory(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
278
int xchk_xattr(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
279
int xchk_symlink(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
280
int xchk_parent(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
281
int xchk_dirtree(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
282
int xchk_metapath(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
284
int xchk_rtbitmap(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
285
int xchk_rtsummary(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
286
int xchk_rgsuperblock(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
287
int xchk_rtrmapbt(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
288
int xchk_rtrefcountbt(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
297
int xchk_quota(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
298
int xchk_quotacheck(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
303
int xchk_fscounters(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
304
int xchk_nlinks(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
307
void xchk_xref_is_used_space(struct xfs_scrub *sc, xfs_agblock_t agbno,
fs/xfs/scrub/scrub.h
309
void xchk_xref_is_not_inode_chunk(struct xfs_scrub *sc, xfs_agblock_t agbno,
fs/xfs/scrub/scrub.h
311
void xchk_xref_is_inode_chunk(struct xfs_scrub *sc, xfs_agblock_t agbno,
fs/xfs/scrub/scrub.h
313
void xchk_xref_is_only_owned_by(struct xfs_scrub *sc, xfs_agblock_t agbno,
fs/xfs/scrub/scrub.h
315
void xchk_xref_is_not_owned_by(struct xfs_scrub *sc, xfs_agblock_t agbno,
fs/xfs/scrub/scrub.h
317
void xchk_xref_has_no_owner(struct xfs_scrub *sc, xfs_agblock_t agbno,
fs/xfs/scrub/scrub.h
319
void xchk_xref_is_cow_staging(struct xfs_scrub *sc, xfs_agblock_t bno,
fs/xfs/scrub/scrub.h
321
void xchk_xref_is_not_shared(struct xfs_scrub *sc, xfs_agblock_t bno,
fs/xfs/scrub/scrub.h
323
void xchk_xref_is_not_cow_staging(struct xfs_scrub *sc, xfs_agblock_t bno,
fs/xfs/scrub/scrub.h
326
void xchk_xref_is_used_rt_space(struct xfs_scrub *sc, xfs_rtblock_t rtbno,
fs/xfs/scrub/scrub.h
328
void xchk_xref_has_no_rt_owner(struct xfs_scrub *sc, xfs_rgblock_t rgbno,
fs/xfs/scrub/scrub.h
330
void xchk_xref_has_rt_owner(struct xfs_scrub *sc, xfs_rgblock_t rgbno,
fs/xfs/scrub/scrub.h
332
void xchk_xref_is_only_rt_owned_by(struct xfs_scrub *sc, xfs_rgblock_t rgbno,
fs/xfs/scrub/scrub.h
334
void xchk_xref_is_rt_cow_staging(struct xfs_scrub *sc, xfs_rgblock_t rgbno,
fs/xfs/scrub/scrub.h
336
void xchk_xref_is_not_rt_shared(struct xfs_scrub *sc, xfs_rgblock_t rgbno,
fs/xfs/scrub/scrub.h
338
void xchk_xref_is_not_rt_cow_staging(struct xfs_scrub *sc, xfs_rgblock_t rgbno,
fs/xfs/scrub/scrub.h
341
# define xchk_xref_is_used_rt_space(sc, rtbno, len) do { } while (0)
fs/xfs/scrub/scrub.h
342
# define xchk_xref_has_no_rt_owner(sc, rtbno, len) do { } while (0)
fs/xfs/scrub/scrub.h
343
# define xchk_xref_has_rt_owner(sc, rtbno, len) do { } while (0)
fs/xfs/scrub/scrub.h
344
# define xchk_xref_is_only_rt_owned_by(sc, bno, len, oinfo) do { } while (0)
fs/xfs/scrub/scrub.h
345
# define xchk_xref_is_rt_cow_staging(sc, bno, len) do { } while (0)
fs/xfs/scrub/scrub.h
346
# define xchk_xref_is_not_rt_shared(sc, bno, len) do { } while (0)
fs/xfs/scrub/scrub.h
347
# define xchk_xref_is_not_rt_cow_staging(sc, bno, len) do { } while (0)
fs/xfs/scrub/scrub.h
82
int (*setup)(struct xfs_scrub *sc);
fs/xfs/scrub/scrub.h
96
int (*repair_eval)(struct xfs_scrub *sc);
fs/xfs/scrub/symlink.c
26
struct xfs_scrub *sc)
fs/xfs/scrub/symlink.c
32
sc->buf = kvzalloc(XFS_SYMLINK_MAXLEN + 1, XCHK_GFP_FLAGS);
fs/xfs/scrub/symlink.c
33
if (!sc->buf)
fs/xfs/scrub/symlink.c
36
if (xchk_could_repair(sc)) {
fs/xfs/scrub/symlink.c
37
error = xrep_setup_symlink(sc, &resblks);
fs/xfs/scrub/symlink.c
42
return xchk_setup_inode_contents(sc, resblks);
fs/xfs/scrub/symlink.c
49
struct xfs_scrub *sc)
fs/xfs/scrub/symlink.c
51
struct xfs_inode *ip = sc->ip;
fs/xfs/scrub/symlink.c
59
if (xchk_file_looks_zapped(sc, XFS_SICK_INO_SYMLINK_ZAPPED)) {
fs/xfs/scrub/symlink.c
60
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/symlink.c
69
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/symlink.c
77
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/symlink.c
82
error = xfs_symlink_remote_read(sc->ip, sc->buf);
fs/xfs/scrub/symlink.c
83
if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, 0, &error))
fs/xfs/scrub/symlink.c
85
if (strnlen(sc->buf, XFS_SYMLINK_MAXLEN) < len)
fs/xfs/scrub/symlink.c
86
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
fs/xfs/scrub/symlink.c
89
xchk_mark_healthy_if_clean(sc, XFS_SICK_INO_SYMLINK_ZAPPED);
fs/xfs/scrub/symlink_repair.c
100
char *target_buf = sc->buf;
fs/xfs/scrub/symlink_repair.c
115
fsblocks = xfs_symlink_blocks(sc->mp, len);
fs/xfs/scrub/symlink_repair.c
123
d = XFS_FSB_TO_DADDR(sc->mp, mval[n].br_startblock);
fs/xfs/scrub/symlink_repair.c
126
error = xfs_trans_read_buf(sc->mp, sc->tp, sc->mp->m_ddev_targp,
fs/xfs/scrub/symlink_repair.c
127
d, XFS_FSB_TO_BB(sc->mp, mval[n].br_blockcount),
fs/xfs/scrub/symlink_repair.c
134
byte_cnt = XFS_FSB_TO_B(sc->mp, mval[n].br_blockcount);
fs/xfs/scrub/symlink_repair.c
135
byte_cnt = XFS_SYMLINK_BUF_SPACE(sc->mp, byte_cnt);
fs/xfs/scrub/symlink_repair.c
165
struct xfs_scrub *sc)
fs/xfs/scrub/symlink_repair.c
167
struct xfs_inode *ip = sc->ip;
fs/xfs/scrub/symlink_repair.c
168
char *target_buf = sc->buf;
fs/xfs/scrub/symlink_repair.c
183
if (xfs_inode_has_sickness(sc->ip, XFS_SICK_INO_SYMLINK_ZAPPED) &&
fs/xfs/scrub/symlink_repair.c
184
sc->ip->i_disk_size == 1 && old_target[0] == '?')
fs/xfs/scrub/symlink_repair.c
203
struct xfs_scrub *sc)
fs/xfs/scrub/symlink_repair.c
205
char *target_buf = sc->buf;
fs/xfs/scrub/symlink_repair.c
214
if (!(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)) {
fs/xfs/scrub/symlink_repair.c
215
if (sc->ip->i_df.if_format == XFS_DINODE_FMT_LOCAL)
fs/xfs/scrub/symlink_repair.c
216
buflen = xrep_symlink_salvage_inline(sc);
fs/xfs/scrub/symlink_repair.c
218
buflen = xrep_symlink_salvage_remote(sc);
fs/xfs/scrub/symlink_repair.c
228
if (strlen(target_buf) != sc->ip->i_disk_size)
fs/xfs/scrub/symlink_repair.c
237
xchk_mark_healthy_if_clean(sc, XFS_SICK_INO_SYMLINK_ZAPPED);
fs/xfs/scrub/symlink_repair.c
241
trace_xrep_symlink_salvage_target(sc->ip, target_buf,
fs/xfs/scrub/symlink_repair.c
254
struct xfs_scrub *sc = priv;
fs/xfs/scrub/symlink_repair.c
259
if (!xfs_has_crc(sc->mp))
fs/xfs/scrub/symlink_repair.c
262
dsl->sl_owner = cpu_to_be64(sc->ip->i_ino);
fs/xfs/scrub/symlink_repair.c
274
struct xfs_scrub *sc,
fs/xfs/scrub/symlink_repair.c
287
error = xfs_bmap_local_to_extents(sc->tp, sc->tempip, 1,
fs/xfs/scrub/symlink_repair.c
290
sc);
fs/xfs/scrub/symlink_repair.c
294
xfs_trans_log_inode(sc->tp, sc->ip, 0);
fs/xfs/scrub/symlink_repair.c
296
error = xfs_defer_finish(&sc->tp);
fs/xfs/scrub/symlink_repair.c
309
ifp = xfs_ifork_ptr(sc->ip, XFS_DATA_FORK);
fs/xfs/scrub/symlink_repair.c
317
xfs_trans_log_inode(sc->tp, sc->ip,
fs/xfs/scrub/symlink_repair.c
327
struct xfs_scrub *sc)
fs/xfs/scrub/symlink_repair.c
329
struct xrep_tempexch *tx = sc->buf;
fs/xfs/scrub/symlink_repair.c
333
ip_local = sc->ip->i_df.if_format == XFS_DINODE_FMT_LOCAL;
fs/xfs/scrub/symlink_repair.c
334
temp_local = sc->tempip->i_df.if_format == XFS_DINODE_FMT_LOCAL;
fs/xfs/scrub/symlink_repair.c
342
sc->tempip->i_disk_size <= xfs_inode_data_fork_size(sc->ip)) {
fs/xfs/scrub/symlink_repair.c
343
xrep_tempfile_copyout_local(sc, XFS_DATA_FORK);
fs/xfs/scrub/symlink_repair.c
348
error = xrep_symlink_swap_prep(sc, temp_local, ip_local);
fs/xfs/scrub/symlink_repair.c
352
return xrep_tempexch_contents(sc, tx);
fs/xfs/scrub/symlink_repair.c
362
struct xfs_scrub *sc)
fs/xfs/scrub/symlink_repair.c
364
struct xfs_ifork *ifp = xfs_ifork_ptr(sc->tempip, XFS_DATA_FORK);
fs/xfs/scrub/symlink_repair.c
369
error = xrep_reap_ifork(sc, sc->tempip, XFS_DATA_FORK);
fs/xfs/scrub/symlink_repair.c
374
trace_xrep_symlink_reset_fork(sc->tempip);
fs/xfs/scrub/symlink_repair.c
378
return xfs_symlink_write_target(sc->tp, sc->tempip, sc->tempip->i_ino,
fs/xfs/scrub/symlink_repair.c
388
struct xfs_scrub *sc)
fs/xfs/scrub/symlink_repair.c
391
char *target_buf = sc->buf;
fs/xfs/scrub/symlink_repair.c
403
trace_xrep_symlink_rebuild(sc->ip);
fs/xfs/scrub/symlink_repair.c
415
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/symlink_repair.c
416
xrep_tempfile_ilock(sc);
fs/xfs/scrub/symlink_repair.c
417
xfs_trans_ijoin(sc->tp, sc->tempip, 0);
fs/xfs/scrub/symlink_repair.c
424
fs_blocks = xfs_symlink_blocks(sc->mp, target_len);
fs/xfs/scrub/symlink_repair.c
425
resblks = xfs_symlink_space_res(sc->mp, target_len, fs_blocks);
fs/xfs/scrub/symlink_repair.c
426
error = xfs_trans_reserve_quota_nblks(sc->tp, sc->tempip, resblks, 0,
fs/xfs/scrub/symlink_repair.c
432
xfs_idestroy_fork(&sc->tempip->i_df);
fs/xfs/scrub/symlink_repair.c
433
sc->tempip->i_df.if_bytes = 0;
fs/xfs/scrub/symlink_repair.c
434
sc->tempip->i_df.if_format = XFS_DINODE_FMT_EXTENTS;
fs/xfs/scrub/symlink_repair.c
437
error = xfs_symlink_write_target(sc->tp, sc->tempip, sc->ip->i_ino,
fs/xfs/scrub/symlink_repair.c
448
error = xrep_trans_commit(sc);
fs/xfs/scrub/symlink_repair.c
453
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/symlink_repair.c
456
xrep_tempfile_iunlock(sc);
fs/xfs/scrub/symlink_repair.c
462
tx = sc->buf;
fs/xfs/scrub/symlink_repair.c
463
error = xrep_tempexch_trans_alloc(sc, XFS_DATA_FORK, tx);
fs/xfs/scrub/symlink_repair.c
472
error = xrep_symlink_swap(sc);
fs/xfs/scrub/symlink_repair.c
481
return xrep_symlink_reset_fork(sc);
fs/xfs/scrub/symlink_repair.c
487
struct xfs_scrub *sc)
fs/xfs/scrub/symlink_repair.c
492
if (!xfs_has_rmapbt(sc->mp))
fs/xfs/scrub/symlink_repair.c
495
if (!xfs_has_exchange_range(sc->mp))
fs/xfs/scrub/symlink_repair.c
498
ASSERT(sc->ilock_flags & XFS_ILOCK_EXCL);
fs/xfs/scrub/symlink_repair.c
500
error = xrep_symlink_salvage(sc);
fs/xfs/scrub/symlink_repair.c
505
error = xrep_symlink_rebuild(sc);
fs/xfs/scrub/symlink_repair.c
509
return xrep_trans_commit(sc);
fs/xfs/scrub/symlink_repair.c
56
struct xfs_scrub *sc,
fs/xfs/scrub/symlink_repair.c
59
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/symlink_repair.c
63
error = xrep_tempfile_create(sc, S_IFLNK);
fs/xfs/scrub/symlink_repair.c
80
blocks = xfs_symlink_blocks(sc->mp, XFS_SYMLINK_MAXLEN);
fs/xfs/scrub/symlink_repair.c
95
struct xfs_scrub *sc)
fs/xfs/scrub/symlink_repair.c
98
struct xfs_inode *ip = sc->ip;
fs/xfs/scrub/tempexch.h
14
int xrep_tempexch_trans_reserve(struct xfs_scrub *sc, int whichfork,
fs/xfs/scrub/tempexch.h
16
int xrep_tempexch_trans_alloc(struct xfs_scrub *sc, int whichfork,
fs/xfs/scrub/tempexch.h
19
int xrep_tempexch_contents(struct xfs_scrub *sc, struct xrep_tempexch *ti);
fs/xfs/scrub/tempfile.c
100
sc->tempip->i_diflags &= ~(XFS_DIFLAG_REALTIME | XFS_DIFLAG_RTINHERIT);
fs/xfs/scrub/tempfile.c
101
xfs_trans_log_inode(tp, sc->tempip, XFS_ILOG_CORE);
fs/xfs/scrub/tempfile.c
108
VFS_I(sc->tempip)->i_flags |= S_PRIVATE;
fs/xfs/scrub/tempfile.c
109
VFS_I(sc->tempip)->i_opflags &= ~IOP_XATTR;
fs/xfs/scrub/tempfile.c
112
error = xfs_dir_init(tp, sc->tempip, dp);
fs/xfs/scrub/tempfile.c
115
} else if (S_ISLNK(VFS_I(sc->tempip)->i_mode)) {
fs/xfs/scrub/tempfile.c
123
error = xfs_symlink_write_target(tp, sc->tempip,
fs/xfs/scrub/tempfile.c
124
sc->tempip->i_ino, ".", 1, 0, 0);
fs/xfs/scrub/tempfile.c
134
xfs_qm_vop_create_dqattach(tp, sc->tempip, udqp, gdqp, pdqp);
fs/xfs/scrub/tempfile.c
143
error = xfs_iunlink(tp, sc->tempip);
fs/xfs/scrub/tempfile.c
151
trace_xrep_tempfile_create(sc);
fs/xfs/scrub/tempfile.c
158
xfs_iunlock(sc->tempip, XFS_ILOCK_EXCL);
fs/xfs/scrub/tempfile.c
159
xfs_setup_iops(sc->tempip);
fs/xfs/scrub/tempfile.c
160
xfs_finish_inode_setup(sc->tempip);
fs/xfs/scrub/tempfile.c
162
sc->temp_ilock_flags = 0;
fs/xfs/scrub/tempfile.c
173
if (sc->tempip) {
fs/xfs/scrub/tempfile.c
174
xfs_iunlock(sc->tempip, XFS_ILOCK_EXCL);
fs/xfs/scrub/tempfile.c
175
xfs_finish_inode_setup(sc->tempip);
fs/xfs/scrub/tempfile.c
176
xchk_irele(sc, sc->tempip);
fs/xfs/scrub/tempfile.c
202
struct xfs_scrub *sc)
fs/xfs/scrub/tempfile.c
206
if (!sc->tempip)
fs/xfs/scrub/tempfile.c
209
ASSERT(sc->tp == NULL);
fs/xfs/scrub/tempfile.c
210
ASSERT(!xfs_is_metadir_inode(sc->tempip));
fs/xfs/scrub/tempfile.c
212
if (!sc->ip || !xfs_is_metadir_inode(sc->ip))
fs/xfs/scrub/tempfile.c
214
if (!S_ISDIR(VFS_I(sc->tempip)->i_mode) &&
fs/xfs/scrub/tempfile.c
215
!S_ISREG(VFS_I(sc->tempip)->i_mode))
fs/xfs/scrub/tempfile.c
218
xfs_ilock(sc->tempip, XFS_IOLOCK_EXCL);
fs/xfs/scrub/tempfile.c
219
sc->temp_ilock_flags |= XFS_IOLOCK_EXCL;
fs/xfs/scrub/tempfile.c
221
error = xchk_trans_alloc(sc, 0);
fs/xfs/scrub/tempfile.c
225
xrep_tempfile_ilock(sc);
fs/xfs/scrub/tempfile.c
226
xfs_trans_ijoin(sc->tp, sc->tempip, 0);
fs/xfs/scrub/tempfile.c
229
xfs_trans_mod_dquot_byino(sc->tp, sc->tempip, XFS_TRANS_DQ_ICOUNT, -1L);
fs/xfs/scrub/tempfile.c
230
xfs_metafile_set_iflag(sc->tp, sc->tempip, XFS_METAFILE_UNKNOWN);
fs/xfs/scrub/tempfile.c
232
error = xrep_trans_commit(sc);
fs/xfs/scrub/tempfile.c
236
xfs_iflags_set(sc->tempip, XFS_IRECOVERY);
fs/xfs/scrub/tempfile.c
237
xfs_qm_dqdetach(sc->tempip);
fs/xfs/scrub/tempfile.c
239
xrep_tempfile_iunlock(sc);
fs/xfs/scrub/tempfile.c
241
xrep_tempfile_iounlock(sc);
fs/xfs/scrub/tempfile.c
251
struct xfs_scrub *sc)
fs/xfs/scrub/tempfile.c
255
if (!sc->tempip || !xfs_is_metadir_inode(sc->tempip))
fs/xfs/scrub/tempfile.c
258
ASSERT(sc->tp == NULL);
fs/xfs/scrub/tempfile.c
260
xfs_iflags_clear(sc->tempip, XFS_IRECOVERY);
fs/xfs/scrub/tempfile.c
262
xfs_ilock(sc->tempip, XFS_IOLOCK_EXCL);
fs/xfs/scrub/tempfile.c
263
sc->temp_ilock_flags |= XFS_IOLOCK_EXCL;
fs/xfs/scrub/tempfile.c
265
error = xchk_trans_alloc(sc, 0);
fs/xfs/scrub/tempfile.c
269
xrep_tempfile_ilock(sc);
fs/xfs/scrub/tempfile.c
270
xfs_trans_ijoin(sc->tp, sc->tempip, 0);
fs/xfs/scrub/tempfile.c
272
xfs_metafile_clear_iflag(sc->tp, sc->tempip);
fs/xfs/scrub/tempfile.c
275
error = xfs_qm_dqattach_locked(sc->tempip, false);
fs/xfs/scrub/tempfile.c
279
xfs_trans_mod_dquot_byino(sc->tp, sc->tempip, XFS_TRANS_DQ_ICOUNT, 1L);
fs/xfs/scrub/tempfile.c
280
xfs_trans_mod_dquot_byino(sc->tp, sc->tempip, XFS_TRANS_DQ_BCOUNT,
fs/xfs/scrub/tempfile.c
281
sc->tempip->i_nblocks);
fs/xfs/scrub/tempfile.c
282
error = xrep_trans_commit(sc);
fs/xfs/scrub/tempfile.c
286
xchk_trans_cancel(sc);
fs/xfs/scrub/tempfile.c
288
xrep_tempfile_iunlock(sc);
fs/xfs/scrub/tempfile.c
290
xrep_tempfile_iounlock(sc);
fs/xfs/scrub/tempfile.c
297
struct xfs_scrub *sc)
fs/xfs/scrub/tempfile.c
299
if (xfs_ilock_nowait(sc->tempip, XFS_IOLOCK_EXCL)) {
fs/xfs/scrub/tempfile.c
300
sc->temp_ilock_flags |= XFS_IOLOCK_EXCL;
fs/xfs/scrub/tempfile.c
314
struct xfs_scrub *sc)
fs/xfs/scrub/tempfile.c
318
while (!xrep_tempfile_iolock_nowait(sc)) {
fs/xfs/scrub/tempfile.c
319
if (xchk_should_terminate(sc, &error))
fs/xfs/scrub/tempfile.c
330
struct xfs_scrub *sc)
fs/xfs/scrub/tempfile.c
332
xfs_iunlock(sc->tempip, XFS_IOLOCK_EXCL);
fs/xfs/scrub/tempfile.c
333
sc->temp_ilock_flags &= ~XFS_IOLOCK_EXCL;
fs/xfs/scrub/tempfile.c
339
struct xfs_scrub *sc)
fs/xfs/scrub/tempfile.c
341
sc->temp_ilock_flags |= XFS_ILOCK_EXCL;
fs/xfs/scrub/tempfile.c
342
xfs_ilock(sc->tempip, XFS_ILOCK_EXCL);
fs/xfs/scrub/tempfile.c
348
struct xfs_scrub *sc)
fs/xfs/scrub/tempfile.c
350
if (xfs_ilock_nowait(sc->tempip, XFS_ILOCK_EXCL)) {
fs/xfs/scrub/tempfile.c
351
sc->temp_ilock_flags |= XFS_ILOCK_EXCL;
fs/xfs/scrub/tempfile.c
361
struct xfs_scrub *sc)
fs/xfs/scrub/tempfile.c
363
xfs_iunlock(sc->tempip, XFS_ILOCK_EXCL);
fs/xfs/scrub/tempfile.c
364
sc->temp_ilock_flags &= ~XFS_ILOCK_EXCL;
fs/xfs/scrub/tempfile.c
373
struct xfs_scrub *sc)
fs/xfs/scrub/tempfile.c
375
xfs_lock_two_inodes(sc->ip, XFS_ILOCK_EXCL, sc->tempip, XFS_ILOCK_EXCL);
fs/xfs/scrub/tempfile.c
376
sc->ilock_flags |= XFS_ILOCK_EXCL;
fs/xfs/scrub/tempfile.c
377
sc->temp_ilock_flags |= XFS_ILOCK_EXCL;
fs/xfs/scrub/tempfile.c
383
struct xfs_scrub *sc)
fs/xfs/scrub/tempfile.c
385
xrep_tempfile_iunlock(sc);
fs/xfs/scrub/tempfile.c
386
xchk_iunlock(sc, XFS_ILOCK_EXCL);
fs/xfs/scrub/tempfile.c
392
struct xfs_scrub *sc)
fs/xfs/scrub/tempfile.c
394
if (!sc->tempip)
fs/xfs/scrub/tempfile.c
397
if (sc->temp_ilock_flags) {
fs/xfs/scrub/tempfile.c
398
xfs_iunlock(sc->tempip, sc->temp_ilock_flags);
fs/xfs/scrub/tempfile.c
399
sc->temp_ilock_flags = 0;
fs/xfs/scrub/tempfile.c
402
xrep_tempfile_remove_metadir(sc);
fs/xfs/scrub/tempfile.c
403
xchk_irele(sc, sc->tempip);
fs/xfs/scrub/tempfile.c
404
sc->tempip = NULL;
fs/xfs/scrub/tempfile.c
41
struct xfs_scrub *sc,
fs/xfs/scrub/tempfile.c
414
struct xfs_scrub *sc,
fs/xfs/scrub/tempfile.c
422
ASSERT(sc->tempip != NULL);
fs/xfs/scrub/tempfile.c
423
ASSERT(!XFS_NOT_DQATTACHED(sc->mp, sc->tempip));
fs/xfs/scrub/tempfile.c
432
error = xfs_bmapi_read(sc->tempip, off, end - off, &map, &nmaps,
fs/xfs/scrub/tempfile.c
45
.pip = sc->mp->m_rootip,
fs/xfs/scrub/tempfile.c
456
error = xfs_bmapi_write(sc->tp, sc->tempip, off, end - off,
fs/xfs/scrub/tempfile.c
464
trace_xrep_tempfile_prealloc(sc, XFS_DATA_FORK, &map);
fs/xfs/scrub/tempfile.c
467
error = xfs_defer_finish(&sc->tp);
fs/xfs/scrub/tempfile.c
481
struct xfs_scrub *sc,
fs/xfs/scrub/tempfile.c
488
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/tempfile.c
49
struct xfs_mount *mp = sc->mp;
fs/xfs/scrub/tempfile.c
495
ASSERT(S_ISREG(VFS_I(sc->tempip)->i_mode));
fs/xfs/scrub/tempfile.c
505
error = xfs_bmapi_read(sc->tempip, off, 1, &map, &nmaps, 0);
fs/xfs/scrub/tempfile.c
514
error = xfs_trans_get_buf(sc->tp, mp->m_ddev_targp,
fs/xfs/scrub/tempfile.c
520
trace_xrep_tempfile_copyin(sc, XFS_DATA_FORK, &map);
fs/xfs/scrub/tempfile.c
523
error = prep_fn(sc, bp, data);
fs/xfs/scrub/tempfile.c
525
xfs_trans_brelse(sc->tp, bp);
fs/xfs/scrub/tempfile.c
531
xfs_trans_brelse(sc->tp, bp);
fs/xfs/scrub/tempfile.c
568
struct xfs_scrub *sc,
fs/xfs/scrub/tempfile.c
571
if (sc->tempip->i_disk_size == isize)
fs/xfs/scrub/tempfile.c
574
sc->tempip->i_disk_size = isize;
fs/xfs/scrub/tempfile.c
575
i_size_write(VFS_I(sc->tempip), isize);
fs/xfs/scrub/tempfile.c
576
return xrep_tempfile_roll_trans(sc);
fs/xfs/scrub/tempfile.c
587
struct xfs_scrub *sc)
fs/xfs/scrub/tempfile.c
591
xfs_trans_log_inode(sc->tp, sc->tempip, XFS_ILOG_CORE);
fs/xfs/scrub/tempfile.c
592
error = xrep_roll_trans(sc);
fs/xfs/scrub/tempfile.c
596
xfs_trans_ijoin(sc->tp, sc->tempip, 0);
fs/xfs/scrub/tempfile.c
607
struct xfs_scrub *sc,
fs/xfs/scrub/tempfile.c
624
if (!xfs_ifork_ptr(sc->ip, whichfork) ||
fs/xfs/scrub/tempfile.c
625
!xfs_ifork_ptr(sc->tempip, whichfork)) {
fs/xfs/scrub/tempfile.c
626
ASSERT(xfs_ifork_ptr(sc->ip, whichfork) != NULL);
fs/xfs/scrub/tempfile.c
627
ASSERT(xfs_ifork_ptr(sc->tempip, whichfork) != NULL);
fs/xfs/scrub/tempfile.c
632
req->ip1 = sc->tempip;
fs/xfs/scrub/tempfile.c
633
req->ip2 = sc->ip;
fs/xfs/scrub/tempfile.c
658
struct xfs_scrub *sc,
fs/xfs/scrub/tempfile.c
66
ASSERT(sc->tp == NULL);
fs/xfs/scrub/tempfile.c
67
ASSERT(sc->tempip == NULL);
fs/xfs/scrub/tempfile.c
672
ifp = xfs_ifork_ptr(sc->ip, whichfork);
fs/xfs/scrub/tempfile.c
676
tifp = xfs_ifork_ptr(sc->tempip, whichfork);
fs/xfs/scrub/tempfile.c
694
req->ip1_bcount = sc->tempip->i_nblocks;
fs/xfs/scrub/tempfile.c
710
req->ip2_bcount = sc->ip->i_nblocks;
fs/xfs/scrub/tempfile.c
742
struct xfs_scrub *sc,
fs/xfs/scrub/tempfile.c
745
struct xfs_trans *tp = sc->tp;
fs/xfs/scrub/tempfile.c
800
struct xfs_scrub *sc,
fs/xfs/scrub/tempfile.c
808
ASSERT(sc->tp != NULL);
fs/xfs/scrub/tempfile.c
809
xfs_assert_ilocked(sc->ip, XFS_ILOCK_EXCL);
fs/xfs/scrub/tempfile.c
810
xfs_assert_ilocked(sc->tempip, XFS_ILOCK_EXCL);
fs/xfs/scrub/tempfile.c
812
error = xrep_tempexch_prep_request(sc, whichfork, off, len, tx);
fs/xfs/scrub/tempfile.c
820
error = xfs_trans_reserve_more(sc->tp, tx->req.resblks, 0);
fs/xfs/scrub/tempfile.c
824
return xrep_tempexch_reserve_quota(sc, tx);
fs/xfs/scrub/tempfile.c
840
struct xfs_scrub *sc,
fs/xfs/scrub/tempfile.c
847
ASSERT(sc->tp == NULL);
fs/xfs/scrub/tempfile.c
848
ASSERT(xfs_has_exchange_range(sc->mp));
fs/xfs/scrub/tempfile.c
850
error = xrep_tempexch_prep_request(sc, whichfork, 0, XFS_MAX_FILEOFF,
fs/xfs/scrub/tempfile.c
855
error = xrep_tempexch_estimate(sc, tx);
fs/xfs/scrub/tempfile.c
859
if (xfs_has_lazysbcount(sc->mp))
fs/xfs/scrub/tempfile.c
862
error = xfs_trans_alloc(sc->mp, &M_RES(sc->mp)->tr_itruncate,
fs/xfs/scrub/tempfile.c
863
tx->req.resblks, 0, flags, &sc->tp);
fs/xfs/scrub/tempfile.c
867
sc->temp_ilock_flags |= XFS_ILOCK_EXCL;
fs/xfs/scrub/tempfile.c
868
sc->ilock_flags |= XFS_ILOCK_EXCL;
fs/xfs/scrub/tempfile.c
869
xfs_exchrange_ilock(sc->tp, sc->ip, sc->tempip);
fs/xfs/scrub/tempfile.c
871
return xrep_tempexch_reserve_quota(sc, tx);
fs/xfs/scrub/tempfile.c
881
struct xfs_scrub *sc,
fs/xfs/scrub/tempfile.c
886
ASSERT(xfs_has_exchange_range(sc->mp));
fs/xfs/scrub/tempfile.c
888
xfs_exchange_mappings(sc->tp, &tx->req);
fs/xfs/scrub/tempfile.c
889
error = xfs_defer_finish(&sc->tp);
fs/xfs/scrub/tempfile.c
900
temp = i_size_read(VFS_I(sc->ip));
fs/xfs/scrub/tempfile.c
901
i_size_write(VFS_I(sc->ip), i_size_read(VFS_I(sc->tempip)));
fs/xfs/scrub/tempfile.c
902
i_size_write(VFS_I(sc->tempip), temp);
fs/xfs/scrub/tempfile.c
916
struct xfs_scrub *sc,
fs/xfs/scrub/tempfile.c
923
temp_ifp = xfs_ifork_ptr(sc->tempip, whichfork);
fs/xfs/scrub/tempfile.c
924
ifp = xfs_ifork_ptr(sc->ip, whichfork);
fs/xfs/scrub/tempfile.c
933
ASSERT(sc->tempip->i_disk_size <=
fs/xfs/scrub/tempfile.c
934
xfs_inode_data_fork_size(sc->ip));
fs/xfs/scrub/tempfile.c
937
ASSERT(sc->tempip->i_forkoff >= sc->ip->i_forkoff);
fs/xfs/scrub/tempfile.c
946
xfs_init_local_fork(sc->ip, whichfork, temp_ifp->if_data,
fs/xfs/scrub/tempfile.c
95
error = xfs_icreate(tp, ino, &args, &sc->tempip);
fs/xfs/scrub/tempfile.c
950
i_size_write(VFS_I(sc->ip), i_size_read(VFS_I(sc->tempip)));
fs/xfs/scrub/tempfile.c
951
sc->ip->i_disk_size = sc->tempip->i_disk_size;
fs/xfs/scrub/tempfile.c
955
xfs_trans_log_inode(sc->tp, sc->ip, ilog_flags);
fs/xfs/scrub/tempfile.h
10
int xrep_tempfile_create(struct xfs_scrub *sc, uint16_t mode);
fs/xfs/scrub/tempfile.h
11
void xrep_tempfile_rele(struct xfs_scrub *sc);
fs/xfs/scrub/tempfile.h
13
int xrep_tempfile_adjust_directory_tree(struct xfs_scrub *sc);
fs/xfs/scrub/tempfile.h
15
bool xrep_tempfile_iolock_nowait(struct xfs_scrub *sc);
fs/xfs/scrub/tempfile.h
16
int xrep_tempfile_iolock_polled(struct xfs_scrub *sc);
fs/xfs/scrub/tempfile.h
17
void xrep_tempfile_iounlock(struct xfs_scrub *sc);
fs/xfs/scrub/tempfile.h
19
void xrep_tempfile_ilock(struct xfs_scrub *sc);
fs/xfs/scrub/tempfile.h
20
bool xrep_tempfile_ilock_nowait(struct xfs_scrub *sc);
fs/xfs/scrub/tempfile.h
21
void xrep_tempfile_iunlock(struct xfs_scrub *sc);
fs/xfs/scrub/tempfile.h
22
void xrep_tempfile_iunlock_both(struct xfs_scrub *sc);
fs/xfs/scrub/tempfile.h
23
void xrep_tempfile_ilock_both(struct xfs_scrub *sc);
fs/xfs/scrub/tempfile.h
25
int xrep_tempfile_prealloc(struct xfs_scrub *sc, xfs_fileoff_t off,
fs/xfs/scrub/tempfile.h
30
typedef int (*xrep_tempfile_copyin_fn)(struct xfs_scrub *sc,
fs/xfs/scrub/tempfile.h
33
int xrep_tempfile_copyin(struct xfs_scrub *sc, xfs_fileoff_t off,
fs/xfs/scrub/tempfile.h
36
int xrep_tempfile_set_isize(struct xfs_scrub *sc, unsigned long long isize);
fs/xfs/scrub/tempfile.h
38
int xrep_tempfile_roll_trans(struct xfs_scrub *sc);
fs/xfs/scrub/tempfile.h
39
void xrep_tempfile_copyout_local(struct xfs_scrub *sc, int whichfork);
fs/xfs/scrub/tempfile.h
42
static inline void xrep_tempfile_iolock_both(struct xfs_scrub *sc)
fs/xfs/scrub/tempfile.h
44
xchk_ilock(sc, XFS_IOLOCK_EXCL);
fs/xfs/scrub/tempfile.h
47
# define xrep_tempfile_adjust_directory_tree(sc) (0)
fs/xfs/scrub/tempfile.h
48
# define xrep_tempfile_rele(sc)
fs/xfs/scrub/trace.h
1287
__entry->dev = iscan->sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
1316
__entry->dev = iscan->sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
1346
__entry->dev = iscan->sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
1405
__entry->dev = iscan->sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
1666
TP_PROTO(struct xfs_scrub *sc, struct xfs_inode *ip,
fs/xfs/scrub/trace.h
1669
TP_ARGS(sc, ip, path_nr, name, pptr),
fs/xfs/scrub/trace.h
1681
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
1702
TP_PROTO(struct xfs_scrub *sc, struct xfs_inode *ip, \
fs/xfs/scrub/trace.h
1705
TP_ARGS(sc, ip, path_nr, name, pptr))
fs/xfs/scrub/trace.h
1710
TP_PROTO(struct xfs_scrub *sc, struct xfs_inode *ip,
fs/xfs/scrub/trace.h
1714
TP_ARGS(sc, ip, path_nr, step_nr, name, pptr),
fs/xfs/scrub/trace.h
1727
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
1750
TP_PROTO(struct xfs_scrub *sc, struct xfs_inode *ip, \
fs/xfs/scrub/trace.h
1754
TP_ARGS(sc, ip, path_nr, step_nr, name, pptr))
fs/xfs/scrub/trace.h
1786
TP_PROTO(struct xfs_scrub *sc, unsigned long long path_nr,
fs/xfs/scrub/trace.h
1789
TP_ARGS(sc, path_nr, nr_steps, outcome),
fs/xfs/scrub/trace.h
1797
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
1810
TP_PROTO(struct xfs_scrub *sc, unsigned long long path_nr, \
fs/xfs/scrub/trace.h
1813
TP_ARGS(sc, path_nr, nr_steps, outcome))
fs/xfs/scrub/trace.h
1832
__entry->dev = dl->sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
1833
__entry->ino = dl->sc->ip->i_ino;
fs/xfs/scrub/trace.h
1859
TP_PROTO(struct xfs_scrub *sc, unsigned int path_nr,
fs/xfs/scrub/trace.h
1862
TP_ARGS(sc, path_nr, step_nr, dp, ip, xname),
fs/xfs/scrub/trace.h
1873
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
1892
TP_PROTO(struct xfs_scrub *sc, const struct xfs_inode *dp,
fs/xfs/scrub/trace.h
1895
TP_ARGS(sc, dp, action, ip, delta, xname),
fs/xfs/scrub/trace.h
1906
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
1924
TP_PROTO(struct xfs_scrub *sc, const char *path,
fs/xfs/scrub/trace.h
1926
TP_ARGS(sc, path, dp, ino),
fs/xfs/scrub/trace.h
1935
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
1936
__entry->scrub_ino = sc->ip ? sc->ip->i_ino : NULLFSINO;
fs/xfs/scrub/trace.h
1950
TP_PROTO(struct xfs_scrub *sc, const char *path, \
fs/xfs/scrub/trace.h
1952
TP_ARGS(sc, path, dp, ino))
fs/xfs/scrub/trace.h
198
TP_PROTO(struct xfs_scrub *sc, unsigned int fsgate_flags),
fs/xfs/scrub/trace.h
199
TP_ARGS(sc, fsgate_flags),
fs/xfs/scrub/trace.h
206
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
207
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
218
TP_PROTO(struct xfs_scrub *sc, unsigned int fsgates_flags), \
fs/xfs/scrub/trace.h
219
TP_ARGS(sc, fsgates_flags))
fs/xfs/scrub/trace.h
2429
TP_PROTO(struct xfs_scrub *sc, struct xfs_dinode *dip),
fs/xfs/scrub/trace.h
2430
TP_ARGS(sc, dip),
fs/xfs/scrub/trace.h
2452
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
2453
__entry->ino = sc->sm->sm_ino;
fs/xfs/scrub/trace.h
2494
TP_PROTO(struct xfs_scrub *sc, struct xfs_dinode *dip), \
fs/xfs/scrub/trace.h
2495
TP_ARGS(sc, dip))
fs/xfs/scrub/trace.h
2510
TP_PROTO(struct xfs_scrub *sc),
fs/xfs/scrub/trace.h
2511
TP_ARGS(sc),
fs/xfs/scrub/trace.h
2525
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
2526
__entry->ino = sc->sm->sm_ino;
fs/xfs/scrub/trace.h
2527
__entry->size = sc->ip->i_disk_size;
fs/xfs/scrub/trace.h
2528
__entry->nblocks = sc->ip->i_nblocks;
fs/xfs/scrub/trace.h
2529
__entry->flags = sc->ip->i_diflags;
fs/xfs/scrub/trace.h
2530
__entry->flags2 = sc->ip->i_diflags2;
fs/xfs/scrub/trace.h
2531
__entry->nextents = sc->ip->i_df.if_nextents;
fs/xfs/scrub/trace.h
2532
__entry->format = sc->ip->i_df.if_format;
fs/xfs/scrub/trace.h
2533
__entry->anextents = sc->ip->i_af.if_nextents;
fs/xfs/scrub/trace.h
2534
__entry->aformat = sc->ip->i_af.if_format;
fs/xfs/scrub/trace.h
2551
TP_PROTO(struct xfs_scrub *sc), \
fs/xfs/scrub/trace.h
2552
TP_ARGS(sc))
fs/xfs/scrub/trace.h
2562
TP_PROTO(struct xfs_scrub *sc, xfs_rfsblock_t data_blocks,
fs/xfs/scrub/trace.h
2566
TP_ARGS(sc, data_blocks, rt_blocks, attr_blocks, data_extents,
fs/xfs/scrub/trace.h
2579
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
2580
__entry->ino = sc->sm->sm_ino;
fs/xfs/scrub/trace.h
2600
TP_PROTO(struct xfs_scrub *sc, struct xfs_inode *dp,
fs/xfs/scrub/trace.h
2602
TP_ARGS(sc, dp, ftype),
fs/xfs/scrub/trace.h
2610
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
2611
__entry->ino = sc->sm->sm_ino;
fs/xfs/scrub/trace.h
2623
TP_PROTO(struct xfs_scrub *sc, struct xfs_inode *dp,
fs/xfs/scrub/trace.h
2625
TP_ARGS(sc, dp, ftype, found_ftype),
fs/xfs/scrub/trace.h
2634
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
2635
__entry->ino = sc->sm->sm_ino;
fs/xfs/scrub/trace.h
2806
TP_PROTO(struct xfs_scrub *sc),
fs/xfs/scrub/trace.h
2807
TP_ARGS(sc),
fs/xfs/scrub/trace.h
2819
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
2820
__entry->ino = sc->file ? XFS_I(file_inode(sc->file))->i_ino : 0;
fs/xfs/scrub/trace.h
2821
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
2822
__entry->agno = sc->sm->sm_agno;
fs/xfs/scrub/trace.h
2823
__entry->inum = sc->sm->sm_ino;
fs/xfs/scrub/trace.h
2824
__entry->gen = sc->sm->sm_gen;
fs/xfs/scrub/trace.h
2825
__entry->flags = sc->sm->sm_flags;
fs/xfs/scrub/trace.h
2826
__entry->temp_inum = sc->tempip->i_ino;
fs/xfs/scrub/trace.h
2839
TP_PROTO(struct xfs_scrub *sc, int whichfork,
fs/xfs/scrub/trace.h
2841
TP_ARGS(sc, whichfork, irec),
fs/xfs/scrub/trace.h
2852
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
2853
__entry->ino = sc->tempip->i_ino;
fs/xfs/scrub/trace.h
2871
TP_PROTO(struct xfs_scrub *sc, int whichfork, \
fs/xfs/scrub/trace.h
2873
TP_ARGS(sc, whichfork, irec))
fs/xfs/scrub/trace.h
2878
TP_PROTO(struct xfs_scrub *sc, struct xfs_inode *ip, int whichfork,
fs/xfs/scrub/trace.h
2880
TP_ARGS(sc, ip, whichfork, irec),
fs/xfs/scrub/trace.h
2892
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
2897
__entry->agno = XFS_FSB_TO_AGNO(sc->mp, irec->br_startblock);
fs/xfs/scrub/trace.h
2898
__entry->agbno = XFS_FSB_TO_AGBNO(sc->mp, irec->br_startblock);
fs/xfs/scrub/trace.h
2913
TP_PROTO(struct xfs_scrub *sc, const struct xfs_bmbt_irec *irec,
fs/xfs/scrub/trace.h
2915
TP_ARGS(sc, irec, scan_blocks),
fs/xfs/scrub/trace.h
2924
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
2926
__entry->agno = XFS_FSB_TO_AGNO(sc->mp, irec->br_startblock);
fs/xfs/scrub/trace.h
2927
__entry->agbno = XFS_FSB_TO_AGBNO(sc->mp, irec->br_startblock);
fs/xfs/scrub/trace.h
300
TP_PROTO(struct xfs_scrub *sc, xfs_agnumber_t agno,
fs/xfs/scrub/trace.h
302
TP_ARGS(sc, agno, bno, error, ret_ip),
fs/xfs/scrub/trace.h
312
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
313
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
329
TP_PROTO(struct xfs_scrub *sc, int whichfork,
fs/xfs/scrub/trace.h
331
TP_ARGS(sc, whichfork, offset, error, ret_ip),
fs/xfs/scrub/trace.h
342
__entry->dev = sc->ip->i_mount->m_super->s_dev;
fs/xfs/scrub/trace.h
343
__entry->ino = sc->ip->i_ino;
fs/xfs/scrub/trace.h
345
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
361
TP_PROTO(struct xfs_scrub *sc, xfs_daddr_t daddr, void *ret_ip),
fs/xfs/scrub/trace.h
362
TP_ARGS(sc, daddr, ret_ip),
fs/xfs/scrub/trace.h
371
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
372
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
373
__entry->agno = xfs_daddr_to_agno(sc->mp, daddr);
fs/xfs/scrub/trace.h
374
__entry->agbno = xfs_daddr_to_agbno(sc->mp, daddr);
fs/xfs/scrub/trace.h
387
TP_PROTO(struct xfs_scrub *sc, xfs_daddr_t daddr, \
fs/xfs/scrub/trace.h
389
TP_ARGS(sc, daddr, ret_ip))
fs/xfs/scrub/trace.h
396
TP_PROTO(struct xfs_scrub *sc, xfs_ino_t ino, void *ret_ip),
fs/xfs/scrub/trace.h
397
TP_ARGS(sc, ino, ret_ip),
fs/xfs/scrub/trace.h
405
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
407
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
419
TP_PROTO(struct xfs_scrub *sc, xfs_ino_t ino, \
fs/xfs/scrub/trace.h
421
TP_ARGS(sc, ino, ret_ip))
fs/xfs/scrub/trace.h
428
TP_PROTO(struct xfs_scrub *sc, int whichfork,
fs/xfs/scrub/trace.h
430
TP_ARGS(sc, whichfork, offset, ret_ip),
fs/xfs/scrub/trace.h
440
__entry->dev = sc->ip->i_mount->m_super->s_dev;
fs/xfs/scrub/trace.h
441
__entry->ino = sc->ip->i_ino;
fs/xfs/scrub/trace.h
443
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
458
TP_PROTO(struct xfs_scrub *sc, int whichfork, \
fs/xfs/scrub/trace.h
460
TP_ARGS(sc, whichfork, offset, ret_ip))
fs/xfs/scrub/trace.h
482
__entry->dev = cursor->sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
514
TP_PROTO(struct xfs_scrub *sc, xfs_dqtype_t dqtype, xfs_dqid_t id,
fs/xfs/scrub/trace.h
516
TP_ARGS(sc, dqtype, id, ret_ip),
fs/xfs/scrub/trace.h
524
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
538
TP_PROTO(struct xfs_scrub *sc, void *ret_ip),
fs/xfs/scrub/trace.h
539
TP_ARGS(sc, ret_ip),
fs/xfs/scrub/trace.h
546
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
547
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
557
TP_PROTO(struct xfs_scrub *sc, struct xfs_btree_cur *cur,
fs/xfs/scrub/trace.h
559
TP_ARGS(sc, cur, level, error, ret_ip),
fs/xfs/scrub/trace.h
574
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
575
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
597
TP_PROTO(struct xfs_scrub *sc, struct xfs_btree_cur *cur,
fs/xfs/scrub/trace.h
599
TP_ARGS(sc, cur, level, error, ret_ip),
fs/xfs/scrub/trace.h
615
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
618
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
642
TP_PROTO(struct xfs_scrub *sc, struct xfs_btree_cur *cur,
fs/xfs/scrub/trace.h
644
TP_ARGS(sc, cur, level, ret_ip),
fs/xfs/scrub/trace.h
657
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
658
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
678
TP_PROTO(struct xfs_scrub *sc, struct xfs_btree_cur *cur,
fs/xfs/scrub/trace.h
680
TP_ARGS(sc, cur, level, ret_ip),
fs/xfs/scrub/trace.h
695
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
696
__entry->ino = sc->ip->i_ino;
fs/xfs/scrub/trace.h
698
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
720
TP_PROTO(struct xfs_scrub *sc, struct xfs_btree_cur *cur,
fs/xfs/scrub/trace.h
722
TP_ARGS(sc, cur, level),
fs/xfs/scrub/trace.h
736
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
737
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
757
TP_PROTO(struct xfs_scrub *sc, struct xfs_btree_cur *cur, \
fs/xfs/scrub/trace.h
759
TP_ARGS(sc, cur, level))
fs/xfs/scrub/trace.h
765
TP_PROTO(struct xfs_scrub *sc, int error, void *ret_ip),
fs/xfs/scrub/trace.h
766
TP_ARGS(sc, error, ret_ip),
fs/xfs/scrub/trace.h
774
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
775
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
912
TP_PROTO(struct xfs_scrub *sc, int error),
fs/xfs/scrub/trace.h
913
TP_ARGS(sc, error),
fs/xfs/scrub/trace.h
920
__entry->dev = sc->mp->m_super->s_dev;
fs/xfs/scrub/trace.h
921
__entry->type = sc->sm->sm_type;
fs/xfs/scrub/trace.h
931
TP_PROTO(struct xfs_scrub *sc, int error), \
fs/xfs/scrub/trace.h
932
TP_ARGS(sc, error))
fs/xfs/xfs_buf.c
1637
struct shrink_control *sc)
fs/xfs/xfs_buf.c
1643
freed = list_lru_shrink_walk(&btp->bt_lru, sc,
fs/xfs/xfs_buf.c
1659
struct shrink_control *sc)
fs/xfs/xfs_buf.c
1662
return list_lru_shrink_count(&btp->bt_lru, sc);
fs/xfs/xfs_icache.c
2280
struct shrink_control *sc)
fs/xfs/xfs_icache.c
2301
struct shrink_control *sc)
fs/xfs/xfs_icache.c
2311
trace_xfs_inodegc_shrinker_scan(mp, sc, __return_address);
fs/xfs/xfs_qm.c
494
struct shrink_control *sc)
fs/xfs/xfs_qm.c
501
if ((sc->gfp_mask & (__GFP_FS|__GFP_DIRECT_RECLAIM)) != (__GFP_FS|__GFP_DIRECT_RECLAIM))
fs/xfs/xfs_qm.c
507
freed = list_lru_shrink_walk(&qi->qi_lru, sc,
fs/xfs/xfs_qm.c
528
struct shrink_control *sc)
fs/xfs/xfs_qm.c
532
return list_lru_shrink_count(&qi->qi_lru, sc);
fs/xfs/xfs_super.c
1240
struct shrink_control *sc)
fs/xfs/xfs_super.c
1251
struct shrink_control *sc)
fs/xfs/xfs_super.c
1253
return xfs_reclaim_inodes_nr(XFS_M(sb), sc->nr_to_scan);
fs/xfs/xfs_trace.h
570
TP_PROTO(struct xfs_mount *mp, struct shrink_control *sc,
fs/xfs/xfs_trace.h
572
TP_ARGS(mp, sc, caller_ip),
fs/xfs/xfs_trace.h
580
__entry->nr_to_scan = sc->nr_to_scan;
include/linux/bnge/hsi.h
8528
__le16 sc;
include/linux/bnxt/hsi.h
7791
__le16 sc;
include/linux/ceph/libceph.h
173
struct ceph_snap_context *sc);
include/linux/ceph/libceph.h
174
extern void ceph_put_snap_context(struct ceph_snap_context *sc);
include/linux/firewire.h
545
fw_iso_callback_t sc;
include/linux/firewire.h
581
union fw_iso_callback cb = { .sc = callback };
include/linux/firewire.h
591
union fw_iso_callback cb = { .sc = callback };
include/linux/fs/super_types.h
114
struct shrink_control *sc);
include/linux/fs/super_types.h
116
struct shrink_control *sc);
include/linux/list_lru.h
188
struct shrink_control *sc)
include/linux/list_lru.h
190
return list_lru_count_one(lru, sc->nid, sc->memcg);
include/linux/list_lru.h
262
return list_lru_walk_one(lru, sc->nid, sc->memcg, isolate, cb_arg,
include/linux/list_lru.h
263
&sc->nr_to_scan);
include/linux/list_lru.h
270
return list_lru_walk_one_irq(lru, sc->nid, sc->memcg, isolate, cb_arg,
include/linux/list_lru.h
271
&sc->nr_to_scan);
include/linux/shrinker.h
84
struct shrink_control *sc);
include/linux/shrinker.h
86
struct shrink_control *sc);
include/linux/usb.h
1092
#define USB_DEVICE_INFO(cl, sc, pr) \
include/linux/usb.h
1095
.bDeviceSubClass = (sc), \
include/linux/usb.h
1107
#define USB_INTERFACE_INFO(cl, sc, pr) \
include/linux/usb.h
1110
.bInterfaceSubClass = (sc), \
include/linux/usb.h
1127
#define USB_DEVICE_AND_INTERFACE_INFO(vend, prod, cl, sc, pr) \
include/linux/usb.h
1133
.bInterfaceSubClass = (sc), \
include/linux/usb.h
1149
#define USB_VENDOR_AND_INTERFACE_INFO(vend, cl, sc, pr) \
include/linux/usb.h
1154
.bInterfaceSubClass = (sc), \
include/media/drv-intf/msp3400.h
128
#define MSP_INPUT(sc, t, main_aux_src, sc_i2s_src) \
include/media/drv-intf/msp3400.h
129
(MSP_SCART_TO_DSP(sc) | \
include/media/drv-intf/msp3400.h
138
#define MSP_OUTPUT(sc) \
include/media/drv-intf/msp3400.h
139
(MSP_SC_TO_SCART1(sc) | \
include/media/drv-intf/msp3400.h
140
MSP_SC_TO_SCART2(sc))
include/net/macsec.h
138
struct macsec_rx_sc *sc;
include/net/mana/shm_channel.h
12
void mana_smc_init(struct shm_channel *sc, struct device *dev,
include/net/mana/shm_channel.h
15
int mana_smc_setup_hwc(struct shm_channel *sc, bool reset_vf, u64 eq_addr,
include/net/mana/shm_channel.h
19
int mana_smc_teardown_hwc(struct shm_channel *sc, bool reset_vf);
include/net/nfc/digital.h
72
u16 sc;
include/scsi/libiscsi.h
120
struct scsi_cmnd *sc; /* associated SCSI cmd*/
include/scsi/libiscsi.h
391
extern int iscsi_eh_abort(struct scsi_cmnd *sc);
include/scsi/libiscsi.h
392
extern int iscsi_eh_recover_target(struct scsi_cmnd *sc);
include/scsi/libiscsi.h
393
extern int iscsi_eh_session_reset(struct scsi_cmnd *sc);
include/scsi/libiscsi.h
394
extern int iscsi_eh_device_reset(struct scsi_cmnd *sc);
include/scsi/libiscsi.h
396
struct scsi_cmnd *sc);
include/scsi/libiscsi.h
397
extern enum scsi_timeout_action iscsi_eh_cmd_timed_out(struct scsi_cmnd *sc);
include/trace/events/rpcrdma.h
951
const struct rpcrdma_sendctx *sc = req->rl_sendctx;
include/trace/events/rpcrdma.h
953
__entry->cq_id = sc->sc_cid.ci_queue_id;
include/trace/events/rpcrdma.h
954
__entry->completion_id = sc->sc_cid.ci_completion_id;
include/trace/events/vmscan.h
210
TP_PROTO(struct shrinker *shr, struct shrink_control *sc,
include/trace/events/vmscan.h
215
TP_ARGS(shr, sc, nr_objects_to_shrink, cache_items, delta, total_scan,
include/trace/events/vmscan.h
233
__entry->nid = sc->nid;
include/trace/events/vmscan.h
235
__entry->gfp_flags = (__force unsigned long)sc->gfp_mask;
include/uapi/misc/fastrpc.h
79
__u32 sc;
include/uapi/scsi/scsi_bsg_ufs.h
165
struct utp_upiu_cmd sc;
io_uring/cancel.c
269
struct io_uring_sync_cancel_reg sc;
io_uring/cancel.c
274
if (copy_from_user(&sc, arg, sizeof(sc)))
io_uring/cancel.c
276
if (sc.flags & ~CANCEL_FLAGS)
io_uring/cancel.c
278
for (i = 0; i < ARRAY_SIZE(sc.pad); i++)
io_uring/cancel.c
279
if (sc.pad[i])
io_uring/cancel.c
281
for (i = 0; i < ARRAY_SIZE(sc.pad2); i++)
io_uring/cancel.c
282
if (sc.pad2[i])
io_uring/cancel.c
285
cd.data = sc.addr;
io_uring/cancel.c
286
cd.flags = sc.flags;
io_uring/cancel.c
287
cd.opcode = sc.opcode;
io_uring/cancel.c
292
file = fget(sc.fd);
io_uring/cancel.c
298
ret = __io_sync_cancel(current->io_uring, &cd, sc.fd);
io_uring/cancel.c
304
if (sc.timeout.tv_sec != -1UL || sc.timeout.tv_nsec != -1UL) {
io_uring/cancel.c
306
.tv_sec = sc.timeout.tv_sec,
io_uring/cancel.c
307
.tv_nsec = sc.timeout.tv_nsec
io_uring/cancel.c
322
ret = __io_sync_cancel(current->io_uring, &cd, sc.fd);
kernel/bpf/helpers.c
3589
char sc;
kernel/bpf/helpers.c
3597
__get_kernel_nofault(&sc, s__ign, char, err_out);
kernel/bpf/helpers.c
3598
if (sc == c)
kernel/bpf/helpers.c
3600
if (sc == '\0')
kernel/bpf/helpers.c
3643
char sc;
kernel/bpf/helpers.c
3651
__get_kernel_nofault(&sc, s__ign, char, err_out);
kernel/bpf/helpers.c
3652
if (sc == '\0' || sc == c)
kernel/bpf/helpers.c
3675
char sc;
kernel/bpf/helpers.c
3683
__get_kernel_nofault(&sc, s__ign, char, err_out);
kernel/bpf/helpers.c
3684
if (sc == c)
kernel/bpf/helpers.c
3686
if (sc == '\0')
kernel/rcu/tree_nocb.h
1178
lazy_rcu_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
kernel/rcu/tree_nocb.h
1203
lazy_rcu_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
kernel/rcu/tree_nocb.h
1250
sc->nr_to_scan -= _count;
kernel/rcu/tree_nocb.h
1252
if (sc->nr_to_scan <= 0)
lib/crypto/curve25519-hacl64.c
751
u64 *sc = buf + 5;
lib/crypto/curve25519-hacl64.c
753
fmul(sc, x, zmone);
lib/crypto/curve25519-hacl64.c
754
format_fcontract(scalar, sc);
lib/string.c
418
const char *sc;
lib/string.c
420
for (sc = s; *sc != '\0'; ++sc)
lib/string.c
422
return sc - s;
lib/string.c
430
const char *sc;
lib/string.c
432
for (sc = s; count-- && *sc != '\0'; ++sc)
lib/string.c
434
return sc - s;
lib/string.c
485
const char *sc;
lib/string.c
487
for (sc = cs; *sc != '\0'; ++sc) {
lib/string.c
488
if (strchr(ct, *sc))
lib/string.c
489
return (char *)sc;
mm/huge_memory.c
280
struct shrink_control *sc)
mm/huge_memory.c
287
struct shrink_control *sc)
mm/huge_memory.c
4368
struct shrink_control *sc)
mm/huge_memory.c
4370
struct pglist_data *pgdata = NODE_DATA(sc->nid);
mm/huge_memory.c
4374
if (sc->memcg)
mm/huge_memory.c
4375
ds_queue = &sc->memcg->deferred_split_queue;
mm/huge_memory.c
4408
struct shrink_control *sc)
mm/huge_memory.c
4419
ds_queue = split_queue_lock_irqsave(sc->nid, sc->memcg, &flags);
mm/huge_memory.c
4433
if (!--sc->nr_to_scan)
mm/huge_memory.c
4485
if (sc->nr_to_scan && !list_empty(&ds_queue->split_queue)) {
mm/huge_memory.c
72
struct shrink_control *sc);
mm/huge_memory.c
74
struct shrink_control *sc);
mm/memory-failure.c
1225
{ sc|dirty, sc|dirty, MF_MSG_DIRTY_SWAPCACHE, me_swapcache_dirty },
mm/memory-failure.c
1226
{ sc|dirty, sc, MF_MSG_CLEAN_SWAPCACHE, me_swapcache_clean },
mm/shmem.c
728
struct shrink_control *sc, unsigned long nr_to_free)
mm/shmem.c
734
unsigned long batch = sc ? sc->nr_to_scan : 128;
mm/shmem.c
835
struct shrink_control *sc)
mm/shmem.c
842
return shmem_unused_huge_shrink(sbinfo, sc, 0);
mm/shmem.c
846
struct shrink_control *sc)
mm/shmem.c
856
struct shrink_control *sc, unsigned long nr_to_free)
mm/shrinker.c
337
struct shrink_control *sc)
mm/shrinker.c
339
int nid = sc->nid;
mm/shrinker.c
344
if (sc->memcg &&
mm/shrinker.c
347
sc->memcg);
mm/shrinker.c
354
struct shrink_control *sc)
mm/shrinker.c
356
int nid = sc->nid;
mm/shrinker.c
361
if (sc->memcg &&
mm/shrinker.c
364
sc->memcg);
mm/shrinker.c
528
struct shrink_control sc = {
mm/shrinker.c
550
ret = do_shrink_slab(&sc, shrinker, priority);
mm/shrinker.c
569
ret = do_shrink_slab(&sc, shrinker, priority);
mm/shrinker.c
653
struct shrink_control sc = {
mm/shrinker.c
664
ret = do_shrink_slab(&sc, shrinker, priority);
mm/shrinker_debug.c
111
struct shrink_control sc = {
mm/shrinker_debug.c
145
sc.nid = nid;
mm/shrinker_debug.c
146
sc.memcg = memcg;
mm/shrinker_debug.c
147
sc.nr_to_scan = nr_to_scan;
mm/shrinker_debug.c
148
sc.nr_scanned = nr_to_scan;
mm/shrinker_debug.c
150
shrinker->scan_objects(shrinker, &sc);
mm/shrinker_debug.c
27
struct shrink_control sc = {
mm/shrinker_debug.c
33
nr = shrinker->count_objects(shrinker, &sc);
mm/slab_common.c
2126
kfree_rcu_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
mm/slab_common.c
2144
kfree_rcu_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
mm/slab_common.c
2156
sc->nr_to_scan -= count;
mm/slab_common.c
2159
if (sc->nr_to_scan <= 0)
mm/swap_cgroup.c
41
struct swap_cgroup *sc = &map[offset / ID_PER_SC];
mm/swap_cgroup.c
43
unsigned int new_ids, old_ids = atomic_read(&sc->ids);
mm/swap_cgroup.c
49
} while (!atomic_try_cmpxchg(&sc->ids, &old_ids, new_ids));
mm/vmalloc.c
5400
vmap_node_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
mm/vmalloc.c
5415
vmap_node_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
mm/vmscan.c
1084
struct pglist_data *pgdat, struct scan_control *sc,
mm/vmscan.c
1099
do_demote_pass = can_demote(pgdat->node_id, sc, memcg);
mm/vmscan.c
1137
sc->nr_scanned += nr_pages;
mm/vmscan.c
1142
if (!sc->may_unmap && folio_mapped(folio))
mm/vmscan.c
1223
} else if (writeback_throttling_sane(sc) ||
mm/vmscan.c
1225
!may_enter_fs(folio, sc->gfp_mask) ||
mm/vmscan.c
1257
references = folio_check_references(folio, sc);
mm/vmscan.c
1288
if (!(sc->gfp_mask & __GFP_IO))
mm/vmscan.c
1346
sc->nr_scanned -= (nr_pages - 1);
mm/vmscan.c
1414
if (!may_enter_fs(folio, sc->gfp_mask))
mm/vmscan.c
1416
if (!sc->may_writepage)
mm/vmscan.c
1435
sc->nr_scanned -= (nr_pages - 1);
mm/vmscan.c
1441
sc->nr_scanned -= (nr_pages - 1);
mm/vmscan.c
1491
if (!filemap_release_folio(folio, sc->gfp_mask))
mm/vmscan.c
1526
sc->target_mem_cgroup))
mm/vmscan.c
1551
sc->nr_scanned -= (nr_pages - 1);
mm/vmscan.c
1600
if (!sc->proactive) {
mm/vmscan.c
1623
struct scan_control sc = {
mm/vmscan.c
1651
nr_reclaimed = shrink_folio_list(&clean_folios, zone->zone_pgdat, &sc,
mm/vmscan.c
1712
unsigned long *nr_scanned, struct scan_control *sc,
mm/vmscan.c
1736
(folio_zonenum(folio) > sc->reclaim_idx)) {
mm/vmscan.c
1754
if (!sc->may_unmap && folio_mapped(folio))
mm/vmscan.c
1798
trace_mm_vmscan_lru_isolate(sc->reclaim_idx, sc->order, nr_to_scan,
mm/vmscan.c
1854
struct scan_control *sc)
mm/vmscan.c
1862
if (!writeback_throttling_sane(sc))
mm/vmscan.c
1878
if (gfp_has_io_fs(sc->gfp_mask))
mm/vmscan.c
1978
struct lruvec *lruvec, struct scan_control *sc,
mm/vmscan.c
1991
while (unlikely(too_many_isolated(pgdat, file, sc))) {
mm/vmscan.c
2009
&nr_scanned, sc, lru);
mm/vmscan.c
2012
item = PGSCAN_KSWAPD + reclaimer_offset(sc);
mm/vmscan.c
2013
if (!cgroup_reclaim(sc))
mm/vmscan.c
2023
nr_reclaimed = shrink_folio_list(&folio_list, pgdat, sc, &stat, false,
mm/vmscan.c
2029
mod_lruvec_state(lruvec, PGDEMOTE_KSWAPD + reclaimer_offset(sc),
mm/vmscan.c
2032
item = PGSTEAL_KSWAPD + reclaimer_offset(sc);
mm/vmscan.c
2033
if (!cgroup_reclaim(sc))
mm/vmscan.c
206
static bool cgroup_reclaim(struct scan_control *sc)
mm/vmscan.c
2063
if (!writeback_throttling_sane(sc))
mm/vmscan.c
2067
sc->nr.dirty += stat.nr_dirty;
mm/vmscan.c
2068
sc->nr.congested += stat.nr_congested;
mm/vmscan.c
2069
sc->nr.unqueued_dirty += stat.nr_unqueued_dirty;
mm/vmscan.c
2070
sc->nr.writeback += stat.nr_writeback;
mm/vmscan.c
2071
sc->nr.immediate += stat.nr_immediate;
mm/vmscan.c
2072
sc->nr.taken += nr_taken;
mm/vmscan.c
2074
sc->nr.file_taken += nr_taken;
mm/vmscan.c
2077
nr_scanned, nr_reclaimed, &stat, sc->priority, file);
mm/vmscan.c
208
return sc->target_mem_cgroup;
mm/vmscan.c
2100
struct scan_control *sc,
mm/vmscan.c
2119
&nr_scanned, sc, lru);
mm/vmscan.c
2123
if (!cgroup_reclaim(sc))
mm/vmscan.c
215
static bool root_reclaim(struct scan_control *sc)
mm/vmscan.c
2150
if (folio_referenced(folio, 0, sc->target_mem_cgroup,
mm/vmscan.c
217
return !sc->target_mem_cgroup || mem_cgroup_is_root(sc->target_mem_cgroup);
mm/vmscan.c
2188
nr_deactivate, nr_rotated, sc->priority, file);
mm/vmscan.c
2197
struct scan_control sc = {
mm/vmscan.c
2205
nr_reclaimed = shrink_folio_list(folio_list, pgdat, &sc, &stat, true, NULL);
mm/vmscan.c
2211
trace_mm_vmscan_reclaim_pages(pgdat->node_id, sc.nr_scanned, nr_reclaimed, &stat);
mm/vmscan.c
2250
struct lruvec *lruvec, struct scan_control *sc)
mm/vmscan.c
2253
if (sc->may_deactivate & (1 << is_file_lru(lru)))
mm/vmscan.c
2254
shrink_active_list(nr_to_scan, lruvec, sc, lru);
mm/vmscan.c
2256
sc->skipped_deactivate = 1;
mm/vmscan.c
2260
return shrink_inactive_list(nr_to_scan, lruvec, sc, lru);
mm/vmscan.c
2317
static void prepare_scan_control(pg_data_t *pgdat, struct scan_control *sc)
mm/vmscan.c
2325
target_lruvec = mem_cgroup_lruvec(sc->target_mem_cgroup, pgdat);
mm/vmscan.c
233
static bool writeback_throttling_sane(struct scan_control *sc)
mm/vmscan.c
2332
mem_cgroup_flush_stats_ratelimited(sc->target_mem_cgroup);
mm/vmscan.c
2338
sc->anon_cost = target_lruvec->anon_cost;
mm/vmscan.c
2339
sc->file_cost = target_lruvec->file_cost;
mm/vmscan.c
2346
if (!sc->force_deactivate) {
mm/vmscan.c
235
if (!cgroup_reclaim(sc))
mm/vmscan.c
2358
sc->may_deactivate |= DEACTIVATE_ANON;
mm/vmscan.c
2360
sc->may_deactivate &= ~DEACTIVATE_ANON;
mm/vmscan.c
2366
sc->may_deactivate |= DEACTIVATE_FILE;
mm/vmscan.c
2368
sc->may_deactivate &= ~DEACTIVATE_FILE;
mm/vmscan.c
2370
sc->may_deactivate = DEACTIVATE_ANON | DEACTIVATE_FILE;
mm/vmscan.c
2378
if (file >> sc->priority && !(sc->may_deactivate & DEACTIVATE_FILE) &&
mm/vmscan.c
2379
!sc->no_cache_trim_mode)
mm/vmscan.c
2380
sc->cache_trim_mode = 1;
mm/vmscan.c
2382
sc->cache_trim_mode = 0;
mm/vmscan.c
2393
if (!cgroup_reclaim(sc)) {
mm/vmscan.c
2414
sc->file_is_tiny =
mm/vmscan.c
2416
!(sc->may_deactivate & DEACTIVATE_ANON) &&
mm/vmscan.c
2417
anon >> sc->priority;
mm/vmscan.c
2421
static inline void calculate_pressure_balance(struct scan_control *sc,
mm/vmscan.c
244
static int sc_swappiness(struct scan_control *sc, struct mem_cgroup *memcg)
mm/vmscan.c
2442
total_cost = sc->anon_cost + sc->file_cost;
mm/vmscan.c
2443
anon_cost = total_cost + sc->anon_cost;
mm/vmscan.c
2444
file_cost = total_cost + sc->file_cost;
mm/vmscan.c
2459
struct scan_control *sc, unsigned long scan)
mm/vmscan.c
246
if (sc->proactive && sc->proactive_swappiness)
mm/vmscan.c
2463
mem_cgroup_protection(sc->target_mem_cgroup, memcg, &min, &low, &usage);
mm/vmscan.c
247
return *sc->proactive_swappiness;
mm/vmscan.c
2498
if (!sc->memcg_low_reclaim && low > min) {
mm/vmscan.c
2500
sc->memcg_low_skipped = 1;
mm/vmscan.c
251
static bool cgroup_reclaim(struct scan_control *sc)
mm/vmscan.c
2527
static void get_scan_count(struct lruvec *lruvec, struct scan_control *sc,
mm/vmscan.c
2532
int swappiness = sc_swappiness(sc, memcg);
mm/vmscan.c
2539
if (!sc->may_swap || !can_reclaim_anon_pages(memcg, pgdat->node_id, sc)) {
mm/vmscan.c
2551
if (cgroup_reclaim(sc) && !swappiness) {
mm/vmscan.c
2558
WARN_ON_ONCE(!sc->proactive);
mm/vmscan.c
256
static bool root_reclaim(struct scan_control *sc)
mm/vmscan.c
2568
if (!sc->priority && swappiness) {
mm/vmscan.c
2576
if (sc->file_is_tiny) {
mm/vmscan.c
2586
if (sc->cache_trim_mode) {
mm/vmscan.c
2592
calculate_pressure_balance(sc, swappiness, fraction, &denominator);
mm/vmscan.c
2600
lruvec_size = lruvec_lru_size(lruvec, lru, sc->reclaim_idx);
mm/vmscan.c
2601
scan = apply_proportional_protection(memcg, sc, lruvec_size);
mm/vmscan.c
2602
scan >>= sc->priority;
mm/vmscan.c
261
static bool writeback_throttling_sane(struct scan_control *sc)
mm/vmscan.c
2648
struct scan_control *sc)
mm/vmscan.c
2655
return can_demote(lruvec_pgdat(lruvec)->node_id, sc,
mm/vmscan.c
266
static int sc_swappiness(struct scan_control *sc, struct mem_cgroup *memcg)
mm/vmscan.c
2730
static int get_swappiness(struct lruvec *lruvec, struct scan_control *sc)
mm/vmscan.c
2735
if (!sc->may_swap)
mm/vmscan.c
2738
if (!can_demote(pgdat->node_id, sc, memcg) &&
mm/vmscan.c
2742
return sc_swappiness(sc, memcg);
mm/vmscan.c
307
static void flush_reclaim_state(struct scan_control *sc)
mm/vmscan.c
337
if (current->reclaim_state && root_reclaim(sc)) {
mm/vmscan.c
338
sc->nr_reclaimed += current->reclaim_state->reclaimed;
mm/vmscan.c
343
static bool can_demote(int nid, struct scan_control *sc,
mm/vmscan.c
351
if (sc && sc->no_demotion)
mm/vmscan.c
365
struct scan_control *sc)
mm/vmscan.c
385
return can_demote(nid, sc, memcg);
mm/vmscan.c
4079
static void set_initial_priority(struct pglist_data *pgdat, struct scan_control *sc)
mm/vmscan.c
4084
if (sc->priority != DEF_PRIORITY || sc->nr_to_reclaim < MIN_LRU_BATCH)
mm/vmscan.c
4092
if (can_reclaim_anon_pages(NULL, pgdat->node_id, sc))
mm/vmscan.c
4096
priority = fls_long(reclaimable) - 1 - fls_long(sc->nr_to_reclaim - 1);
mm/vmscan.c
4102
sc->priority = clamp(priority, DEF_PRIORITY / 2, DEF_PRIORITY);
mm/vmscan.c
4105
static bool lruvec_is_sizable(struct lruvec *lruvec, struct scan_control *sc)
mm/vmscan.c
4109
int swappiness = get_swappiness(lruvec, sc);
mm/vmscan.c
4127
return mem_cgroup_online(memcg) ? (total >> sc->priority) : total;
mm/vmscan.c
4130
static bool lruvec_is_reclaimable(struct lruvec *lruvec, struct scan_control *sc,
mm/vmscan.c
4135
int swappiness = get_swappiness(lruvec, sc);
mm/vmscan.c
4142
if (!lruvec_is_sizable(lruvec, sc))
mm/vmscan.c
4154
static void lru_gen_age_node(struct pglist_data *pgdat, struct scan_control *sc)
mm/vmscan.c
4162
set_initial_priority(pgdat, sc);
mm/vmscan.c
4171
reclaimable = lruvec_is_reclaimable(lruvec, sc, min_ttl);
mm/vmscan.c
4181
.gfp_mask = sc->gfp_mask,
mm/vmscan.c
4435
static bool sort_folio(struct lruvec *lruvec, struct folio *folio, struct scan_control *sc,
mm/vmscan.c
4483
if (zone > sc->reclaim_idx) {
mm/vmscan.c
4492
sc->nr.file_taken += delta;
mm/vmscan.c
4494
sc->nr.unqueued_dirty += delta;
mm/vmscan.c
4507
static bool isolate_folio(struct lruvec *lruvec, struct folio *folio, struct scan_control *sc)
mm/vmscan.c
4512
if (!(sc->gfp_mask & __GFP_IO) &&
mm/vmscan.c
4541
struct scan_control *sc, int type, int tier,
mm/vmscan.c
4566
int zone = (sc->reclaim_idx + i) % MAX_NR_ZONES;
mm/vmscan.c
4580
if (sort_folio(lruvec, folio, sc, tier))
mm/vmscan.c
4582
else if (isolate_folio(lruvec, folio, sc)) {
mm/vmscan.c
4604
item = PGSCAN_KSWAPD + reclaimer_offset(sc);
mm/vmscan.c
4605
if (!cgroup_reclaim(sc)) {
mm/vmscan.c
4612
trace_mm_vmscan_lru_isolate(sc->reclaim_idx, sc->order, scan_batch,
mm/vmscan.c
4616
sc->nr.file_taken += isolated;
mm/vmscan.c
466
static int reclaimer_offset(struct scan_control *sc)
mm/vmscan.c
4664
struct scan_control *sc, int swappiness,
mm/vmscan.c
4676
scanned = scan_folios(nr_to_scan, lruvec, sc, type, tier, list);
mm/vmscan.c
4687
struct scan_control *sc, int swappiness)
mm/vmscan.c
4706
scanned = isolate_folios(nr_to_scan, lruvec, sc, swappiness, &type, &list);
mm/vmscan.c
4718
reclaimed = shrink_folio_list(&list, pgdat, sc, &stat, false, memcg);
mm/vmscan.c
4719
sc->nr.unqueued_dirty += stat.nr_unqueued_dirty;
mm/vmscan.c
4720
sc->nr_reclaimed += reclaimed;
mm/vmscan.c
4722
scanned, reclaimed, &stat, sc->priority,
mm/vmscan.c
4756
mod_lruvec_state(lruvec, PGDEMOTE_KSWAPD + reclaimer_offset(sc),
mm/vmscan.c
4759
item = PGSTEAL_KSWAPD + reclaimer_offset(sc);
mm/vmscan.c
476
if (sc->proactive)
mm/vmscan.c
4760
if (!cgroup_reclaim(sc))
mm/vmscan.c
4811
static long get_nr_to_scan(struct lruvec *lruvec, struct scan_control *sc, int swappiness)
mm/vmscan.c
4818
if (mem_cgroup_below_min(sc->target_mem_cgroup, memcg))
mm/vmscan.c
4827
nr_to_scan = apply_proportional_protection(memcg, sc, nr_to_scan);
mm/vmscan.c
4830
if (!success || sc->priority == DEF_PRIORITY)
mm/vmscan.c
4831
return nr_to_scan >> sc->priority;
mm/vmscan.c
4837
static bool should_abort_scan(struct lruvec *lruvec, struct scan_control *sc)
mm/vmscan.c
4843
if (!root_reclaim(sc))
mm/vmscan.c
4846
if (sc->nr_reclaimed >= max(sc->nr_to_reclaim, compact_gap(sc->order)))
mm/vmscan.c
4850
if (!current_is_kswapd() || sc->order)
mm/vmscan.c
4856
for (i = 0; i <= sc->reclaim_idx; i++) {
mm/vmscan.c
4860
if (managed_zone(zone) && !zone_watermark_ok(zone, 0, size, sc->reclaim_idx, 0))
mm/vmscan.c
4868
static bool try_to_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
mm/vmscan.c
4872
int swappiness = get_swappiness(lruvec, sc);
mm/vmscan.c
4877
nr_to_scan = get_nr_to_scan(lruvec, sc, swappiness);
mm/vmscan.c
4881
delta = evict_folios(nr_to_scan, lruvec, sc, swappiness);
mm/vmscan.c
4889
if (should_abort_scan(lruvec, sc))
mm/vmscan.c
4899
if (sc->nr.unqueued_dirty && sc->nr.unqueued_dirty == sc->nr.file_taken)
mm/vmscan.c
4906
static int shrink_one(struct lruvec *lruvec, struct scan_control *sc)
mm/vmscan.c
4909
unsigned long scanned = sc->nr_scanned;
mm/vmscan.c
4910
unsigned long reclaimed = sc->nr_reclaimed;
mm/vmscan.c
4926
success = try_to_shrink_lruvec(lruvec, sc);
mm/vmscan.c
4928
shrink_slab(sc->gfp_mask, pgdat->node_id, memcg, sc->priority);
mm/vmscan.c
4930
if (!sc->proactive)
mm/vmscan.c
4931
vmpressure(sc->gfp_mask, memcg, false, sc->nr_scanned - scanned,
mm/vmscan.c
4932
sc->nr_reclaimed - reclaimed);
mm/vmscan.c
4934
flush_reclaim_state(sc);
mm/vmscan.c
4939
if (!success && lruvec_is_sizable(lruvec, sc))
mm/vmscan.c
4947
static void shrink_many(struct pglist_data *pgdat, struct scan_control *sc)
mm/vmscan.c
4989
op = shrink_one(lruvec, sc);
mm/vmscan.c
4993
if (should_abort_scan(lruvec, sc))
mm/vmscan.c
5017
static void lru_gen_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
mm/vmscan.c
5021
VM_WARN_ON_ONCE(root_reclaim(sc));
mm/vmscan.c
5022
VM_WARN_ON_ONCE(!sc->may_writepage || !sc->may_unmap);
mm/vmscan.c
5028
set_mm_walk(NULL, sc->proactive);
mm/vmscan.c
5030
if (try_to_shrink_lruvec(lruvec, sc))
mm/vmscan.c
5038
static void lru_gen_shrink_node(struct pglist_data *pgdat, struct scan_control *sc)
mm/vmscan.c
5041
unsigned long reclaimed = sc->nr_reclaimed;
mm/vmscan.c
5043
VM_WARN_ON_ONCE(!root_reclaim(sc));
mm/vmscan.c
5050
if (!sc->may_writepage || !sc->may_unmap)
mm/vmscan.c
5057
set_mm_walk(pgdat, sc->proactive);
mm/vmscan.c
5059
set_initial_priority(pgdat, sc);
mm/vmscan.c
5062
sc->nr_reclaimed = 0;
mm/vmscan.c
5065
shrink_one(&pgdat->__lruvec, sc);
mm/vmscan.c
5067
shrink_many(pgdat, sc);
mm/vmscan.c
5070
sc->nr_reclaimed += reclaimed;
mm/vmscan.c
5076
if (sc->nr_reclaimed > reclaimed)
mm/vmscan.c
5077
kswapd_try_clear_hopeless(pgdat, sc->order, sc->reclaim_idx);
mm/vmscan.c
5483
static int run_eviction(struct lruvec *lruvec, unsigned long seq, struct scan_control *sc,
mm/vmscan.c
5491
sc->nr_reclaimed = 0;
mm/vmscan.c
5499
if (sc->nr_reclaimed >= nr_to_reclaim)
mm/vmscan.c
5502
if (!evict_folios(nr_to_reclaim - sc->nr_reclaimed, lruvec, sc,
mm/vmscan.c
5513
struct scan_control *sc, int swappiness, unsigned long opt)
mm/vmscan.c
5531
sc->target_mem_cgroup = memcg;
mm/vmscan.c
5535
swappiness = get_swappiness(lruvec, sc);
mm/vmscan.c
5544
err = run_eviction(lruvec, seq, sc, swappiness, opt);
mm/vmscan.c
5562
struct scan_control sc = {
mm/vmscan.c
5580
set_task_reclaim_state(current, &sc.reclaim_state);
mm/vmscan.c
5623
err = run_cmd(cmd, memcg_id, nid, seq, &sc, swappiness, opt);
mm/vmscan.c
5755
static void lru_gen_age_node(struct pglist_data *pgdat, struct scan_control *sc)
mm/vmscan.c
5760
static void lru_gen_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
mm/vmscan.c
5765
static void lru_gen_shrink_node(struct pglist_data *pgdat, struct scan_control *sc)
mm/vmscan.c
5772
static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
mm/vmscan.c
5779
unsigned long nr_to_reclaim = sc->nr_to_reclaim;
mm/vmscan.c
5783
if (lru_gen_enabled() && !root_reclaim(sc)) {
mm/vmscan.c
5784
lru_gen_shrink_lruvec(lruvec, sc);
mm/vmscan.c
5788
get_scan_count(lruvec, sc, nr);
mm/vmscan.c
5804
proportional_reclaim = (!cgroup_reclaim(sc) && !current_is_kswapd() &&
mm/vmscan.c
5805
sc->priority == DEF_PRIORITY);
mm/vmscan.c
5819
lruvec, sc);
mm/vmscan.c
5878
sc->nr_reclaimed += nr_reclaimed;
mm/vmscan.c
5884
if (can_age_anon_pages(lruvec, sc) &&
mm/vmscan.c
5887
sc, LRU_ACTIVE_ANON);
mm/vmscan.c
5891
static bool in_reclaim_compaction(struct scan_control *sc)
mm/vmscan.c
5893
if (gfp_compaction_allowed(sc->gfp_mask) && sc->order &&
mm/vmscan.c
5894
(sc->order > PAGE_ALLOC_COSTLY_ORDER ||
mm/vmscan.c
5895
sc->priority < DEF_PRIORITY - 2))
mm/vmscan.c
5910
struct scan_control *sc)
mm/vmscan.c
5918
if (!in_reclaim_compaction(sc))
mm/vmscan.c
5935
for_each_managed_zone_pgdat(zone, pgdat, z, sc->reclaim_idx) {
mm/vmscan.c
5939
if (zone_watermark_ok(zone, sc->order, watermark,
mm/vmscan.c
5940
sc->reclaim_idx, 0))
mm/vmscan.c
5943
if (compaction_suitable(zone, sc->order, watermark,
mm/vmscan.c
5944
sc->reclaim_idx))
mm/vmscan.c
5952
pages_for_compaction = compact_gap(sc->order);
mm/vmscan.c
5954
if (can_reclaim_anon_pages(NULL, pgdat->node_id, sc))
mm/vmscan.c
5960
static void shrink_node_memcgs(pg_data_t *pgdat, struct scan_control *sc)
mm/vmscan.c
5962
struct mem_cgroup *target_memcg = sc->target_mem_cgroup;
mm/vmscan.c
5978
if (current_is_kswapd() || sc->memcg_full_walk)
mm/vmscan.c
6010
if (!sc->memcg_low_reclaim) {
mm/vmscan.c
6011
sc->memcg_low_skipped = 1;
mm/vmscan.c
6017
reclaimed = sc->nr_reclaimed;
mm/vmscan.c
6018
scanned = sc->nr_scanned;
mm/vmscan.c
6020
shrink_lruvec(lruvec, sc);
mm/vmscan.c
6022
shrink_slab(sc->gfp_mask, pgdat->node_id, memcg,
mm/vmscan.c
6023
sc->priority);
mm/vmscan.c
6026
if (!sc->proactive)
mm/vmscan.c
6027
vmpressure(sc->gfp_mask, memcg, false,
mm/vmscan.c
6028
sc->nr_scanned - scanned,
mm/vmscan.c
6029
sc->nr_reclaimed - reclaimed);
mm/vmscan.c
6032
if (partial && sc->nr_reclaimed >= sc->nr_to_reclaim) {
mm/vmscan.c
6039
static void shrink_node(pg_data_t *pgdat, struct scan_control *sc)
mm/vmscan.c
6045
if (lru_gen_enabled() && root_reclaim(sc)) {
mm/vmscan.c
6046
memset(&sc->nr, 0, sizeof(sc->nr));
mm/vmscan.c
6047
lru_gen_shrink_node(pgdat, sc);
mm/vmscan.c
6051
target_lruvec = mem_cgroup_lruvec(sc->target_mem_cgroup, pgdat);
mm/vmscan.c
6054
memset(&sc->nr, 0, sizeof(sc->nr));
mm/vmscan.c
6056
nr_reclaimed = sc->nr_reclaimed;
mm/vmscan.c
6057
nr_scanned = sc->nr_scanned;
mm/vmscan.c
6059
prepare_scan_control(pgdat, sc);
mm/vmscan.c
6061
shrink_node_memcgs(pgdat, sc);
mm/vmscan.c
6063
flush_reclaim_state(sc);
mm/vmscan.c
6065
nr_node_reclaimed = sc->nr_reclaimed - nr_reclaimed;
mm/vmscan.c
6068
if (!sc->proactive)
mm/vmscan.c
6069
vmpressure(sc->gfp_mask, sc->target_mem_cgroup, true,
mm/vmscan.c
6070
sc->nr_scanned - nr_scanned, nr_node_reclaimed);
mm/vmscan.c
6093
if (sc->nr.writeback && sc->nr.writeback == sc->nr.taken)
mm/vmscan.c
6103
if (sc->nr.immediate)
mm/vmscan.c
6114
if (sc->nr.dirty && sc->nr.dirty == sc->nr.congested) {
mm/vmscan.c
6115
if (cgroup_reclaim(sc) && writeback_throttling_sane(sc))
mm/vmscan.c
6129
!sc->hibernation_mode &&
mm/vmscan.c
6134
if (should_continue_reclaim(pgdat, nr_node_reclaimed, sc))
mm/vmscan.c
6144
kswapd_try_clear_hopeless(pgdat, sc->order, sc->reclaim_idx);
mm/vmscan.c
6145
else if (sc->cache_trim_mode)
mm/vmscan.c
6146
sc->cache_trim_mode_failed = 1;
mm/vmscan.c
6154
static inline bool compaction_ready(struct zone *zone, struct scan_control *sc)
mm/vmscan.c
6158
if (!gfp_compaction_allowed(sc->gfp_mask))
mm/vmscan.c
6162
if (zone_watermark_ok(zone, sc->order, min_wmark_pages(zone),
mm/vmscan.c
6163
sc->reclaim_idx, 0))
mm/vmscan.c
6177
if (compaction_suitable(zone, sc->order, watermark, sc->reclaim_idx))
mm/vmscan.c
6183
static void consider_reclaim_throttle(pg_data_t *pgdat, struct scan_control *sc)
mm/vmscan.c
6189
if (sc->nr_reclaimed > (sc->nr_scanned >> 3)) {
mm/vmscan.c
6205
if (current_is_kswapd() || cgroup_reclaim(sc))
mm/vmscan.c
6209
if (sc->priority == 1 && !sc->nr_reclaimed)
mm/vmscan.c
6221
static void shrink_zones(struct zonelist *zonelist, struct scan_control *sc)
mm/vmscan.c
6236
orig_mask = sc->gfp_mask;
mm/vmscan.c
6238
sc->gfp_mask |= __GFP_HIGHMEM;
mm/vmscan.c
6239
sc->reclaim_idx = gfp_zone(sc->gfp_mask);
mm/vmscan.c
6243
sc->reclaim_idx, sc->nodemask) {
mm/vmscan.c
6248
if (!cgroup_reclaim(sc)) {
mm/vmscan.c
6263
sc->order > PAGE_ALLOC_COSTLY_ORDER &&
mm/vmscan.c
6264
compaction_ready(zone, sc)) {
mm/vmscan.c
6265
sc->compaction_ready = true;
mm/vmscan.c
6286
sc->order, sc->gfp_mask,
mm/vmscan.c
6288
sc->nr_reclaimed += nr_soft_reclaimed;
mm/vmscan.c
6289
sc->nr_scanned += nr_soft_scanned;
mm/vmscan.c
6300
shrink_node(zone->zone_pgdat, sc);
mm/vmscan.c
6304
consider_reclaim_throttle(first_pgdat, sc);
mm/vmscan.c
6310
sc->gfp_mask = orig_mask;
mm/vmscan.c
6345
struct scan_control *sc)
mm/vmscan.c
6347
int initial_priority = sc->priority;
mm/vmscan.c
6354
if (!cgroup_reclaim(sc))
mm/vmscan.c
6355
__count_zid_vm_events(ALLOCSTALL, sc->reclaim_idx, 1);
mm/vmscan.c
6358
if (!sc->proactive)
mm/vmscan.c
6359
vmpressure_prio(sc->gfp_mask, sc->target_mem_cgroup,
mm/vmscan.c
6360
sc->priority);
mm/vmscan.c
6361
sc->nr_scanned = 0;
mm/vmscan.c
6362
shrink_zones(zonelist, sc);
mm/vmscan.c
6364
if (sc->nr_reclaimed >= sc->nr_to_reclaim)
mm/vmscan.c
6367
if (sc->compaction_ready)
mm/vmscan.c
6369
} while (--sc->priority >= 0);
mm/vmscan.c
6372
for_each_zone_zonelist_nodemask(zone, z, zonelist, sc->reclaim_idx,
mm/vmscan.c
6373
sc->nodemask) {
mm/vmscan.c
6378
snapshot_refaults(sc->target_mem_cgroup, zone->zone_pgdat);
mm/vmscan.c
6380
if (cgroup_reclaim(sc)) {
mm/vmscan.c
6383
lruvec = mem_cgroup_lruvec(sc->target_mem_cgroup,
mm/vmscan.c
6391
if (sc->nr_reclaimed)
mm/vmscan.c
6392
return sc->nr_reclaimed;
mm/vmscan.c
6395
if (sc->compaction_ready)
mm/vmscan.c
6407
if (!sc->memcg_full_walk) {
mm/vmscan.c
6408
sc->priority = initial_priority;
mm/vmscan.c
6409
sc->memcg_full_walk = 1;
mm/vmscan.c
6422
if (sc->skipped_deactivate) {
mm/vmscan.c
6423
sc->priority = initial_priority;
mm/vmscan.c
6424
sc->force_deactivate = 1;
mm/vmscan.c
6425
sc->skipped_deactivate = 0;
mm/vmscan.c
6430
if (sc->memcg_low_skipped) {
mm/vmscan.c
6431
sc->priority = initial_priority;
mm/vmscan.c
6432
sc->force_deactivate = 0;
mm/vmscan.c
6433
sc->memcg_low_reclaim = 1;
mm/vmscan.c
6434
sc->memcg_low_skipped = 0;
mm/vmscan.c
6570
struct scan_control sc = {
mm/vmscan.c
6595
if (throttle_direct_reclaim(sc.gfp_mask, zonelist, nodemask))
mm/vmscan.c
6598
set_task_reclaim_state(current, &sc.reclaim_state);
mm/vmscan.c
6599
trace_mm_vmscan_direct_reclaim_begin(order, sc.gfp_mask);
mm/vmscan.c
6601
nr_reclaimed = do_try_to_free_pages(zonelist, &sc);
mm/vmscan.c
6618
struct scan_control sc = {
mm/vmscan.c
6629
sc.gfp_mask = (gfp_mask & GFP_RECLAIM_MASK) |
mm/vmscan.c
6632
trace_mm_vmscan_memcg_softlimit_reclaim_begin(sc.order,
mm/vmscan.c
6633
sc.gfp_mask);
mm/vmscan.c
6642
shrink_lruvec(lruvec, &sc);
mm/vmscan.c
6644
trace_mm_vmscan_memcg_softlimit_reclaim_end(sc.nr_reclaimed);
mm/vmscan.c
6646
*nr_scanned = sc.nr_scanned;
mm/vmscan.c
6648
return sc.nr_reclaimed;
mm/vmscan.c
6659
struct scan_control sc = {
mm/vmscan.c
6677
struct zonelist *zonelist = node_zonelist(numa_node_id(), sc.gfp_mask);
mm/vmscan.c
6679
set_task_reclaim_state(current, &sc.reclaim_state);
mm/vmscan.c
6680
trace_mm_vmscan_memcg_reclaim_begin(0, sc.gfp_mask);
mm/vmscan.c
6683
nr_reclaimed = do_try_to_free_pages(zonelist, &sc);
mm/vmscan.c
6702
static void kswapd_age_node(struct pglist_data *pgdat, struct scan_control *sc)
mm/vmscan.c
6708
lru_gen_age_node(pgdat, sc);
mm/vmscan.c
6713
if (!can_age_anon_pages(lruvec, sc))
mm/vmscan.c
6723
sc, LRU_ACTIVE_ANON);
mm/vmscan.c
6878
struct scan_control *sc)
mm/vmscan.c
6882
unsigned long nr_reclaimed = sc->nr_reclaimed;
mm/vmscan.c
6885
sc->nr_to_reclaim = 0;
mm/vmscan.c
6886
for_each_managed_zone_pgdat(zone, pgdat, z, sc->reclaim_idx) {
mm/vmscan.c
6887
sc->nr_to_reclaim += max(high_wmark_pages(zone), SWAP_CLUSTER_MAX);
mm/vmscan.c
6894
shrink_node(pgdat, sc);
mm/vmscan.c
6903
if (sc->order && sc->nr_reclaimed >= compact_gap(sc->order))
mm/vmscan.c
6904
sc->order = 0;
mm/vmscan.c
6907
return max(sc->nr_scanned, sc->nr_reclaimed - nr_reclaimed) >= sc->nr_to_reclaim;
mm/vmscan.c
6960
struct scan_control sc = {
mm/vmscan.c
6966
set_task_reclaim_state(current, &sc.reclaim_state);
mm/vmscan.c
6986
sc.priority = DEF_PRIORITY;
mm/vmscan.c
6988
unsigned long nr_reclaimed = sc.nr_reclaimed;
mm/vmscan.c
6994
sc.reclaim_idx = highest_zoneidx;
mm/vmscan.c
7012
sc.reclaim_idx = i;
mm/vmscan.c
7024
balanced = pgdat_balanced(pgdat, sc.order, highest_zoneidx);
mm/vmscan.c
7039
if (nr_boost_reclaim && sc.priority == DEF_PRIORITY - 2)
mm/vmscan.c
7048
sc.may_writepage = !nr_boost_reclaim;
mm/vmscan.c
7049
sc.may_swap = !nr_boost_reclaim;
mm/vmscan.c
7056
kswapd_age_node(pgdat, &sc);
mm/vmscan.c
7059
sc.nr_scanned = 0;
mm/vmscan.c
7061
nr_soft_reclaimed = memcg1_soft_limit_reclaim(pgdat, sc.order,
mm/vmscan.c
7062
sc.gfp_mask, &nr_soft_scanned);
mm/vmscan.c
7063
sc.nr_reclaimed += nr_soft_reclaimed;
mm/vmscan.c
7070
if (kswapd_shrink_node(pgdat, &sc))
mm/vmscan.c
7093
nr_reclaimed = sc.nr_reclaimed - nr_reclaimed;
mm/vmscan.c
7105
sc.priority--;
mm/vmscan.c
7106
} while (sc.priority >= 1);
mm/vmscan.c
7112
if (!sc.nr_reclaimed && sc.priority < 1 &&
mm/vmscan.c
7113
!sc.no_cache_trim_mode && sc.cache_trim_mode_failed) {
mm/vmscan.c
7114
sc.no_cache_trim_mode = 1;
mm/vmscan.c
7123
if (!sc.nr_reclaimed && !boosted) {
mm/vmscan.c
7165
return sc.order;
mm/vmscan.c
7443
struct scan_control sc = {
mm/vmscan.c
7453
struct zonelist *zonelist = node_zonelist(numa_node_id(), sc.gfp_mask);
mm/vmscan.c
7457
fs_reclaim_acquire(sc.gfp_mask);
mm/vmscan.c
7459
set_task_reclaim_state(current, &sc.reclaim_state);
mm/vmscan.c
7461
nr_reclaimed = do_try_to_free_pages(zonelist, &sc);
mm/vmscan.c
7465
fs_reclaim_release(sc.gfp_mask);
mm/vmscan.c
7624
struct scan_control *sc)
mm/vmscan.c
7630
trace_mm_vmscan_node_reclaim_begin(pgdat->node_id, sc->order,
mm/vmscan.c
7631
sc->gfp_mask);
mm/vmscan.c
7636
fs_reclaim_acquire(sc->gfp_mask);
mm/vmscan.c
7641
set_task_reclaim_state(p, &sc->reclaim_state);
mm/vmscan.c
7650
shrink_node(pgdat, sc);
mm/vmscan.c
7651
} while (sc->nr_reclaimed < nr_pages && --sc->priority >= 0);
mm/vmscan.c
7656
fs_reclaim_release(sc->gfp_mask);
mm/vmscan.c
7660
trace_mm_vmscan_node_reclaim_end(sc->nr_reclaimed);
mm/vmscan.c
7662
return sc->nr_reclaimed;
mm/vmscan.c
7670
struct scan_control sc = {
mm/vmscan.c
7714
ret = __node_reclaim(pgdat, gfp_mask, nr_pages, &sc) >= nr_pages;
mm/vmscan.c
7729
struct scan_control *sc)
mm/vmscan.c
7813
struct scan_control sc = {
mm/vmscan.c
7830
batch_size, &sc);
mm/vmscan.c
884
struct scan_control *sc)
mm/vmscan.c
889
referenced_ptes = folio_referenced(folio, 1, sc->target_mem_cgroup,
mm/workingset.c
641
struct shrink_control *sc)
mm/workingset.c
647
nodes = list_lru_shrink_count(&shadow_nodes, sc);
mm/workingset.c
674
if (sc->memcg) {
mm/workingset.c
678
mem_cgroup_flush_stats_ratelimited(sc->memcg);
mm/workingset.c
679
lruvec = mem_cgroup_lruvec(sc->memcg, NODE_DATA(sc->nid));
mm/workingset.c
689
pages = node_present_pages(sc->nid);
mm/workingset.c
768
struct shrink_control *sc)
mm/workingset.c
771
return list_lru_shrink_walk_irq(&shadow_nodes, sc, shadow_lru_isolate,
mm/zsmalloc.c
1973
struct shrink_control *sc)
mm/zsmalloc.c
1989
struct shrink_control *sc)
mm/zswap.c
1182
struct shrink_control *sc)
mm/zswap.c
1188
!mem_cgroup_zswap_writeback_enabled(sc->memcg)) {
mm/zswap.c
1189
sc->nr_scanned = 0;
mm/zswap.c
1193
shrink_ret = list_lru_shrink_walk(&zswap_list_lru, sc, &shrink_memcg_cb,
mm/zswap.c
1203
struct shrink_control *sc)
mm/zswap.c
1205
struct mem_cgroup *memcg = sc->memcg;
mm/zswap.c
1206
struct lruvec *lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(sc->nid));
mm/zswap.c
1220
if (!gfp_has_io_fs(sc->gfp_mask))
mm/zswap.c
1243
nr_freeable = list_lru_shrink_count(&zswap_list_lru, sc);
net/ceph/auth_x.c
745
struct ceph_x_server_challenge *sc = buf;
net/ceph/auth_x.c
747
if (len != sizeof(*sc))
net/ceph/auth_x.c
749
xi->server_challenge = le64_to_cpu(sc->server_challenge);
net/ceph/snapshot.c
46
struct ceph_snap_context *ceph_get_snap_context(struct ceph_snap_context *sc)
net/ceph/snapshot.c
48
if (sc)
net/ceph/snapshot.c
49
refcount_inc(&sc->nref);
net/ceph/snapshot.c
50
return sc;
net/ceph/snapshot.c
54
void ceph_put_snap_context(struct ceph_snap_context *sc)
net/ceph/snapshot.c
56
if (!sc)
net/ceph/snapshot.c
58
if (refcount_dec_and_test(&sc->nref)) {
net/ceph/snapshot.c
60
kfree(sc);
net/ieee802154/header_ops.c
245
static int ieee802154_hdr_sechdr_len(u8 sc)
net/ieee802154/header_ops.c
247
return ieee802154_sechdr_lengths[IEEE802154_SCF_KEY_ID_MODE(sc)];
net/ipv6/ioam6.c
161
struct ioam6_schema *sc;
net/ipv6/ioam6.c
179
sc = rcu_dereference_protected(ns->schema,
net/ipv6/ioam6.c
187
if (sc)
net/ipv6/ioam6.c
188
rcu_assign_pointer(sc->ns, NULL);
net/ipv6/ioam6.c
204
struct ioam6_schema *sc;
net/ipv6/ioam6.c
226
sc = rcu_dereference(ns->schema);
net/ipv6/ioam6.c
227
if (sc && nla_put_u32(skb, IOAM6_ATTR_SC_ID, sc->id)) {
net/ipv6/ioam6.c
28
static void ioam6_sc_release(struct ioam6_schema *sc)
net/ipv6/ioam6.c
30
kfree_rcu(sc, rcu);
net/ipv6/ioam6.c
312
struct ioam6_schema *sc;
net/ipv6/ioam6.c
323
sc = rhashtable_lookup_fast(&nsdata->schemas, &id, rht_sc_params);
net/ipv6/ioam6.c
324
if (sc) {
net/ipv6/ioam6.c
332
sc = kzalloc(sizeof(*sc) + len_aligned, GFP_KERNEL);
net/ipv6/ioam6.c
333
if (!sc) {
net/ipv6/ioam6.c
338
sc->id = id;
net/ipv6/ioam6.c
339
sc->len = len_aligned;
net/ipv6/ioam6.c
340
sc->hdr = cpu_to_be32(sc->id | ((u8)(sc->len / 4) << 24));
net/ipv6/ioam6.c
341
nla_memcpy(sc->data, info->attrs[IOAM6_ATTR_SC_DATA], len);
net/ipv6/ioam6.c
343
err = rhashtable_lookup_insert_fast(&nsdata->schemas, &sc->head,
net/ipv6/ioam6.c
352
kfree(sc);
net/ipv6/ioam6.c
360
struct ioam6_schema *sc;
net/ipv6/ioam6.c
372
sc = rhashtable_lookup_fast(&nsdata->schemas, &id, rht_sc_params);
net/ipv6/ioam6.c
373
if (!sc) {
net/ipv6/ioam6.c
378
ns = rcu_dereference_protected(sc->ns, lockdep_is_held(&nsdata->lock));
net/ipv6/ioam6.c
380
err = rhashtable_remove_fast(&nsdata->schemas, &sc->head,
net/ipv6/ioam6.c
388
ioam6_sc_release(sc);
net/ipv6/ioam6.c
395
static int __ioam6_genl_dumpsc_element(struct ioam6_schema *sc,
net/ipv6/ioam6.c
406
if (nla_put_u32(skb, IOAM6_ATTR_SC_ID, sc->id) ||
net/ipv6/ioam6.c
407
nla_put(skb, IOAM6_ATTR_SC_DATA, sc->len, sc->data))
net/ipv6/ioam6.c
412
ns = rcu_dereference(sc->ns);
net/ipv6/ioam6.c
43
struct ioam6_schema *sc = (struct ioam6_schema *)ptr;
net/ipv6/ioam6.c
45
if (sc)
net/ipv6/ioam6.c
459
struct ioam6_schema *sc;
net/ipv6/ioam6.c
46
ioam6_sc_release(sc);
net/ipv6/ioam6.c
466
sc = rhashtable_walk_next(iter);
net/ipv6/ioam6.c
468
if (IS_ERR(sc)) {
net/ipv6/ioam6.c
469
if (PTR_ERR(sc) == -EAGAIN)
net/ipv6/ioam6.c
471
err = PTR_ERR(sc);
net/ipv6/ioam6.c
473
} else if (!sc) {
net/ipv6/ioam6.c
477
err = __ioam6_genl_dumpsc_element(sc,
net/ipv6/ioam6.c
497
struct ioam6_schema *sc, *sc_ref;
net/ipv6/ioam6.c
520
sc = NULL;
net/ipv6/ioam6.c
523
sc = rhashtable_lookup_fast(&nsdata->schemas, &sc_id,
net/ipv6/ioam6.c
525
if (!sc) {
net/ipv6/ioam6.c
535
rcu_assign_pointer(ns->schema, sc);
net/ipv6/ioam6.c
537
if (sc) {
net/ipv6/ioam6.c
538
ns_ref = rcu_dereference_protected(sc->ns,
net/ipv6/ioam6.c
542
rcu_assign_pointer(sc->ns, ns);
net/ipv6/ioam6.c
58
const struct ioam6_schema *sc = obj;
net/ipv6/ioam6.c
60
return (sc->id != *(u32 *)arg->key);
net/ipv6/ioam6.c
710
struct ioam6_schema *sc,
net/ipv6/ioam6.c
924
if (!sc) {
net/ipv6/ioam6.c
927
*(__be32 *)data = sc->hdr;
net/ipv6/ioam6.c
930
memcpy(data, sc->data, sc->len);
net/ipv6/ioam6.c
941
struct ioam6_schema *sc;
net/ipv6/ioam6.c
953
sc = rcu_dereference(ns->schema);
net/ipv6/ioam6.c
957
if (sc)
net/ipv6/ioam6.c
958
sclen += sc->len / 4;
net/ipv6/ioam6.c
969
__ioam6_fill_trace_data(skb, ns, trace, sc, sclen, is_input);
net/mac80211/rx.c
1452
u16 sc;
net/mac80211/rx.c
1497
sc = le16_to_cpu(hdr->seq_ctrl);
net/mac80211/rx.c
1498
if (sc & IEEE80211_SCTL_FRAG) {
net/mac80211/rx.c
2351
u16 sc;
net/mac80211/rx.c
2364
sc = le16_to_cpu(hdr->seq_ctrl);
net/mac80211/rx.c
2365
frag = sc & IEEE80211_SCTL_FRAG;
net/mac80211/rx.c
2387
seq = (sc & IEEE80211_SCTL_SEQ) >> 4;
net/netfilter/ipvs/ip_vs_sync.c
788
ip_vs_conn_fill_param_sync(struct netns_ipvs *ipvs, int af, union ip_vs_sync_conn *sc,
net/netfilter/ipvs/ip_vs_sync.c
795
ip_vs_conn_fill_param(ipvs, af, sc->v6.protocol,
net/netfilter/ipvs/ip_vs_sync.c
796
(const union nf_inet_addr *)&sc->v6.caddr,
net/netfilter/ipvs/ip_vs_sync.c
797
sc->v6.cport,
net/netfilter/ipvs/ip_vs_sync.c
798
(const union nf_inet_addr *)&sc->v6.vaddr,
net/netfilter/ipvs/ip_vs_sync.c
799
sc->v6.vport, p);
net/netfilter/ipvs/ip_vs_sync.c
802
ip_vs_conn_fill_param(ipvs, af, sc->v4.protocol,
net/netfilter/ipvs/ip_vs_sync.c
803
(const union nf_inet_addr *)&sc->v4.caddr,
net/netfilter/ipvs/ip_vs_sync.c
804
sc->v4.cport,
net/netfilter/ipvs/ip_vs_sync.c
805
(const union nf_inet_addr *)&sc->v4.vaddr,
net/netfilter/ipvs/ip_vs_sync.c
806
sc->v4.vport, p);
net/nfc/digital_core.c
293
params->sc = DIGITAL_SENSF_FELICA_SC;
net/sched/sch_hfsc.c
1270
hfsc_dump_sc(struct sk_buff *skb, int attr, struct internal_sc *sc)
net/sched/sch_hfsc.c
1274
tsc.m1 = sm2m(sc->sm1);
net/sched/sch_hfsc.c
1275
tsc.d = dx2d(sc->dx);
net/sched/sch_hfsc.c
1276
tsc.m2 = sm2m(sc->sm2);
net/sched/sch_hfsc.c
481
sc2isc(struct tc_service_curve *sc, struct internal_sc *isc)
net/sched/sch_hfsc.c
483
isc->sm1 = m2sm(sc->m1);
net/sched/sch_hfsc.c
484
isc->ism1 = m2ism(sc->m1);
net/sched/sch_hfsc.c
485
isc->dx = d2dx(sc->d);
net/sched/sch_hfsc.c
487
isc->sm2 = m2sm(sc->m2);
net/sched/sch_hfsc.c
488
isc->ism2 = m2ism(sc->m2);
net/sunrpc/auth.c
475
rpcauth_cache_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
net/sunrpc/auth.c
478
if ((sc->gfp_mask & GFP_KERNEL) != GFP_KERNEL)
net/sunrpc/auth.c
485
return rpcauth_cache_do_shrink(sc->nr_to_scan);
net/sunrpc/auth.c
489
rpcauth_cache_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
net/sunrpc/xprtrdma/rpc_rdma.c
534
void rpcrdma_sendctx_unmap(struct rpcrdma_sendctx *sc)
net/sunrpc/xprtrdma/rpc_rdma.c
536
struct rpcrdma_regbuf *rb = sc->sc_req->rl_sendbuf;
net/sunrpc/xprtrdma/rpc_rdma.c
539
if (!sc->sc_unmap_count)
net/sunrpc/xprtrdma/rpc_rdma.c
546
for (sge = &sc->sc_sges[2]; sc->sc_unmap_count;
net/sunrpc/xprtrdma/rpc_rdma.c
547
++sge, --sc->sc_unmap_count)
net/sunrpc/xprtrdma/rpc_rdma.c
551
kref_put(&sc->sc_req->rl_kref, rpcrdma_sendctx_done);
net/sunrpc/xprtrdma/rpc_rdma.c
559
struct rpcrdma_sendctx *sc = req->rl_sendctx;
net/sunrpc/xprtrdma/rpc_rdma.c
561
struct ib_sge *sge = &sc->sc_sges[req->rl_wr.num_sge++];
net/sunrpc/xprtrdma/rpc_rdma.c
577
struct rpcrdma_sendctx *sc = req->rl_sendctx;
net/sunrpc/xprtrdma/rpc_rdma.c
578
struct ib_sge *sge = &sc->sc_sges[req->rl_wr.num_sge++];
net/sunrpc/xprtrdma/rpc_rdma.c
599
struct rpcrdma_sendctx *sc = req->rl_sendctx;
net/sunrpc/xprtrdma/rpc_rdma.c
609
sge = &sc->sc_sges[req->rl_wr.num_sge++];
net/sunrpc/xprtrdma/rpc_rdma.c
619
sc->sc_unmap_count++;
net/sunrpc/xprtrdma/rpc_rdma.c
640
struct rpcrdma_sendctx *sc = req->rl_sendctx;
net/sunrpc/xprtrdma/rpc_rdma.c
641
struct ib_sge *sge = &sc->sc_sges[req->rl_wr.num_sge++];
net/sunrpc/xprtrdma/rpc_rdma.c
652
++sc->sc_unmap_count;
net/sunrpc/xprtrdma/verbs.c
145
struct rpcrdma_sendctx *sc =
net/sunrpc/xprtrdma/verbs.c
150
trace_xprtrdma_wc_send(wc, &sc->sc_cid);
net/sunrpc/xprtrdma/verbs.c
151
rpcrdma_sendctx_put_locked(r_xprt, sc);
net/sunrpc/xprtrdma/verbs.c
616
struct rpcrdma_sendctx *sc;
net/sunrpc/xprtrdma/verbs.c
618
sc = kzalloc_flex(*sc, sc_sges, ep->re_attr.cap.max_send_sge,
net/sunrpc/xprtrdma/verbs.c
620
if (!sc)
net/sunrpc/xprtrdma/verbs.c
623
sc->sc_cqe.done = rpcrdma_wc_send;
net/sunrpc/xprtrdma/verbs.c
624
sc->sc_cid.ci_queue_id = ep->re_attr.send_cq->res.id;
net/sunrpc/xprtrdma/verbs.c
625
sc->sc_cid.ci_completion_id =
net/sunrpc/xprtrdma/verbs.c
627
return sc;
net/sunrpc/xprtrdma/verbs.c
633
struct rpcrdma_sendctx *sc;
net/sunrpc/xprtrdma/verbs.c
642
buf->rb_sc_ctxs = kzalloc_objs(sc, i, XPRTRDMA_GFP_FLAGS);
net/sunrpc/xprtrdma/verbs.c
648
sc = rpcrdma_sendctx_create(r_xprt->rx_ep);
net/sunrpc/xprtrdma/verbs.c
649
if (!sc)
net/sunrpc/xprtrdma/verbs.c
652
buf->rb_sc_ctxs[i] = sc;
net/sunrpc/xprtrdma/verbs.c
686
struct rpcrdma_sendctx *sc;
net/sunrpc/xprtrdma/verbs.c
69
struct rpcrdma_sendctx *sc);
net/sunrpc/xprtrdma/verbs.c
695
sc = buf->rb_sc_ctxs[next_head];
net/sunrpc/xprtrdma/verbs.c
702
return sc;
net/sunrpc/xprtrdma/verbs.c
725
struct rpcrdma_sendctx *sc)
net/sunrpc/xprtrdma/verbs.c
740
} while (buf->rb_sc_ctxs[next_tail] != sc);
net/sunrpc/xprtrdma/xprt_rdma.h
566
void rpcrdma_sendctx_unmap(struct rpcrdma_sendctx *sc);
net/tipc/addr.h
120
static inline int tipc_scope2node(struct net *net, int sc)
net/tipc/addr.h
122
return sc != TIPC_NODE_SCOPE ? 0 : tipc_own_addr(net);
net/tipc/name_table.c
1031
struct tipc_service *sc,
net/tipc/name_table.c
1038
for (n = rb_first(&sc->ranges); n; n = rb_next(n)) {
net/tipc/name_table.c
1042
err = __tipc_nl_add_nametable_publ(msg, sc, sr, last_key);
net/tipc/name_table.c
110
#define service_range_foreach_match(sr, sc, start, end) \
net/tipc/name_table.c
111
for (sr = service_range_match_first((sc)->ranges.rb_node, \
net/tipc/name_table.c
282
static struct service_range *tipc_service_find_range(struct tipc_service *sc,
net/tipc/name_table.c
287
service_range_foreach_match(sr, sc, ua->sr.lower, ua->sr.upper) {
net/tipc/name_table.c
296
static struct service_range *tipc_service_create_range(struct tipc_service *sc,
net/tipc/name_table.c
304
n = &sc->ranges.rb_node;
net/tipc/name_table.c
326
rb_insert_augmented(&sr->tree_node, &sc->ranges, &sr_callbacks);
net/tipc/name_table.c
331
struct tipc_service *sc,
net/tipc/name_table.c
342
spin_lock_bh(&sc->lock);
net/tipc/name_table.c
343
sr = tipc_service_create_range(sc, p);
net/tipc/name_table.c
363
p->id = sc->publ_cnt++;
net/tipc/name_table.c
366
list_for_each_entry_safe(sub, tmp, &sc->subscriptions, service_list) {
net/tipc/name_table.c
374
spin_unlock_bh(&sc->lock);
net/tipc/name_table.c
483
struct tipc_service *sc;
net/tipc/name_table.c
490
sc = tipc_service_find(net, ua);
net/tipc/name_table.c
491
if (!sc)
net/tipc/name_table.c
492
sc = tipc_service_create(net, ua);
net/tipc/name_table.c
493
if (sc && tipc_service_insert_publ(net, sc, p))
net/tipc/name_table.c
507
struct tipc_service *sc;
net/tipc/name_table.c
510
sc = tipc_service_find(net, ua);
net/tipc/name_table.c
511
if (!sc)
net/tipc/name_table.c
514
spin_lock_bh(&sc->lock);
net/tipc/name_table.c
515
sr = tipc_service_find_range(sc, ua);
net/tipc/name_table.c
524
list_for_each_entry_safe(sub, tmp, &sc->subscriptions, service_list) {
net/tipc/name_table.c
530
rb_erase_augmented(&sr->tree_node, &sc->ranges, &sr_callbacks);
net/tipc/name_table.c
535
if (RB_EMPTY_ROOT(&sc->ranges) && list_empty(&sc->subscriptions)) {
net/tipc/name_table.c
536
hlist_del_init_rcu(&sc->service_list);
net/tipc/name_table.c
537
kfree_rcu(sc, rcu);
net/tipc/name_table.c
540
spin_unlock_bh(&sc->lock);
net/tipc/name_table.c
580
struct tipc_service *sc;
net/tipc/name_table.c
589
sc = tipc_service_find(net, ua);
net/tipc/name_table.c
590
if (unlikely(!sc))
net/tipc/name_table.c
593
spin_lock_bh(&sc->lock);
net/tipc/name_table.c
594
service_range_foreach_match(r, sc, inst, inst) {
net/tipc/name_table.c
618
spin_unlock_bh(&sc->lock);
net/tipc/name_table.c
637
struct tipc_service *sc;
net/tipc/name_table.c
642
sc = tipc_service_find(net, ua);
net/tipc/name_table.c
643
if (unlikely(!sc))
net/tipc/name_table.c
646
spin_lock_bh(&sc->lock);
net/tipc/name_table.c
649
sr = service_range_match_first(sc->ranges.rb_node, inst, inst);
net/tipc/name_table.c
666
spin_unlock_bh(&sc->lock);
net/tipc/name_table.c
681
struct tipc_service *sc;
net/tipc/name_table.c
686
sc = tipc_service_find(net, ua);
net/tipc/name_table.c
687
if (!sc)
net/tipc/name_table.c
690
spin_lock_bh(&sc->lock);
net/tipc/name_table.c
691
service_range_foreach_match(sr, sc, ua->sr.lower, ua->sr.upper) {
net/tipc/name_table.c
697
spin_unlock_bh(&sc->lock);
net/tipc/name_table.c
711
struct tipc_service *sc;
net/tipc/name_table.c
715
sc = tipc_service_find(net, ua);
net/tipc/name_table.c
716
if (!sc)
net/tipc/name_table.c
719
spin_lock_bh(&sc->lock);
net/tipc/name_table.c
720
service_range_foreach_match(sr, sc, ua->sr.lower, ua->sr.upper) {
net/tipc/name_table.c
725
spin_unlock_bh(&sc->lock);
net/tipc/name_table.c
736
struct tipc_service *sc;
net/tipc/name_table.c
741
sc = tipc_service_find(net, ua);
net/tipc/name_table.c
742
if (!sc)
net/tipc/name_table.c
745
spin_lock_bh(&sc->lock);
net/tipc/name_table.c
746
for (n = rb_first(&sc->ranges); n; n = rb_next(n)) {
net/tipc/name_table.c
755
spin_unlock_bh(&sc->lock);
net/tipc/name_table.c
833
struct tipc_service *sc;
net/tipc/name_table.c
840
sc = tipc_service_find(sub->net, &ua);
net/tipc/name_table.c
841
if (!sc)
net/tipc/name_table.c
842
sc = tipc_service_create(sub->net, &ua);
net/tipc/name_table.c
843
if (sc) {
net/tipc/name_table.c
844
spin_lock_bh(&sc->lock);
net/tipc/name_table.c
845
tipc_service_subscribe(sc, sub);
net/tipc/name_table.c
846
spin_unlock_bh(&sc->lock);
net/tipc/name_table.c
863
struct tipc_service *sc;
net/tipc/name_table.c
869
sc = tipc_service_find(sub->net, &ua);
net/tipc/name_table.c
870
if (!sc)
net/tipc/name_table.c
873
spin_lock_bh(&sc->lock);
net/tipc/name_table.c
878
if (RB_EMPTY_ROOT(&sc->ranges) && list_empty(&sc->subscriptions)) {
net/tipc/name_table.c
879
hlist_del_init_rcu(&sc->service_list);
net/tipc/name_table.c
880
kfree_rcu(sc, rcu);
net/tipc/name_table.c
882
spin_unlock_bh(&sc->lock);
net/tipc/name_table.c
913
static void tipc_service_delete(struct net *net, struct tipc_service *sc)
net/tipc/name_table.c
918
spin_lock_bh(&sc->lock);
net/tipc/name_table.c
919
rbtree_postorder_for_each_entry_safe(sr, tmpr, &sc->ranges, tree_node) {
net/tipc/name_table.c
924
rb_erase_augmented(&sr->tree_node, &sc->ranges, &sr_callbacks);
net/tipc/name_table.c
927
hlist_del_init_rcu(&sc->service_list);
net/tipc/name_table.c
928
spin_unlock_bh(&sc->lock);
net/tipc/name_table.c
929
kfree_rcu(sc, rcu);
sound/firewire/amdtp-stream.c
1310
s->context->callback.sc = irq_target_callback;
sound/firewire/amdtp-stream.c
1312
s->context->callback.sc = process_rx_packets;
sound/firewire/amdtp-stream.c
1438
context->callback.sc = process_tx_packets;
sound/firewire/amdtp-stream.c
1527
s->context->callback.sc = process_tx_packets_intermediately;
sound/firewire/amdtp-stream.c
1624
s->context->callback.sc = irq_target_callback_intermediately;
sound/firewire/amdtp-stream.c
1626
s->context->callback.sc = process_rx_packets_intermediately;
sound/firewire/amdtp-stream.c
1643
context->callback.sc = drop_tx_packets_initially;
sound/firewire/amdtp-stream.c
1646
context->callback.sc = irq_target_callback_skip;
sound/firewire/amdtp-stream.c
1648
context->callback.sc = skip_rx_packets;
sound/firewire/amdtp-stream.c
1651
context->callback.sc(context, tstamp, header_length, header, s);
sound/pci/lola/lola_clock.c
182
struct lola_sample_clock *sc;
sound/pci/lola/lola_clock.c
183
sc = &chip->clock.sample_clock[idx_list];
sound/pci/lola/lola_clock.c
184
sc->type = type;
sound/pci/lola/lola_clock.c
185
sc->format = format;
sound/pci/lola/lola_clock.c
186
sc->freq = freq;
sound/soc/img/img-i2s-in.c
395
struct snd_pcm_hw_params *params, struct dma_slave_config *sc)
sound/soc/img/img-i2s-in.c
404
ret = snd_hwparams_to_dma_slave_config(st, params, sc);
sound/soc/img/img-i2s-in.c
408
sc->src_addr = dma_data->addr;
sound/soc/img/img-i2s-in.c
409
sc->src_addr_width = dma_data->addr_width;
sound/soc/img/img-i2s-in.c
410
sc->src_maxburst = 4 * i2s_channels;
sound/soc/img/img-i2s-out.c
401
struct snd_pcm_hw_params *params, struct dma_slave_config *sc)
sound/soc/img/img-i2s-out.c
410
ret = snd_hwparams_to_dma_slave_config(st, params, sc);
sound/soc/img/img-i2s-out.c
414
sc->dst_addr = dma_data->addr;
sound/soc/img/img-i2s-out.c
415
sc->dst_addr_width = dma_data->addr_width;
sound/soc/img/img-i2s-out.c
416
sc->dst_maxburst = 4 * i2s_channels;
tools/arch/x86/intel_sdsi/intel_sdsi.c
179
struct state_certificate sc;
tools/arch/x86/intel_sdsi/intel_sdsi.c
430
struct state_certificate *sc;
tools/arch/x86/intel_sdsi/intel_sdsi.c
467
sc = (struct state_certificate *)buf;
tools/arch/x86/intel_sdsi/intel_sdsi.c
473
printf("Content Type: %s\n", content_type(sc->content_type));
tools/arch/x86/intel_sdsi/intel_sdsi.c
474
printf("Region Revision ID: %d\n", sc->region_rev_id);
tools/arch/x86/intel_sdsi/intel_sdsi.c
475
printf("Header Size: %d\n", sc->header_size * 4);
tools/arch/x86/intel_sdsi/intel_sdsi.c
476
printf("Total Size: %d\n", sc->total_size);
tools/arch/x86/intel_sdsi/intel_sdsi.c
477
printf("OEM Key Size: %d\n", sc->key_size * 4);
tools/arch/x86/intel_sdsi/intel_sdsi.c
478
printf("Number of Licenses: %d\n", sc->num_licenses);
tools/arch/x86/intel_sdsi/intel_sdsi.c
481
lki = (void *)sc + sizeof(*sc) + (4 * sc->num_licenses);
tools/arch/x86/intel_sdsi/intel_sdsi.c
490
while (count++ < sc->num_licenses) {
tools/arch/x86/intel_sdsi/intel_sdsi.c
495
(void *)(sc) + // start of the state certificate
tools/arch/x86/intel_sdsi/intel_sdsi.c
496
sizeof(*sc) + // size of the state certificate
tools/arch/x86/intel_sdsi/intel_sdsi.c
497
(4 * sc->num_licenses) + // total size of the blob size blocks
tools/mm/page_owner_sort.c
212
for (int i = 0; i < sc.size; ++i)
tools/mm/page_owner_sort.c
214
cmp = sc.signs[i] * sc.cmps[i](p1, p2);
tools/mm/page_owner_sort.c
489
if (sc.cmps[0] != compare_ts) {
tools/mm/page_owner_sort.c
534
if (sc.size == 0)
tools/mm/page_owner_sort.c
541
if (sc.signs == NULL || sc.size < 1)
tools/mm/page_owner_sort.c
542
sc.signs = calloc(1, sizeof(int));
tools/mm/page_owner_sort.c
543
sc.signs[0] = sign;
tools/mm/page_owner_sort.c
544
if (sc.cmps == NULL || sc.size < 1)
tools/mm/page_owner_sort.c
545
sc.cmps = calloc(1, sizeof(int *));
tools/mm/page_owner_sort.c
546
sc.cmps[0] = cmp;
tools/mm/page_owner_sort.c
547
sc.size = 1;
tools/mm/page_owner_sort.c
554
if (sc.size != 0) { /* reset sort_condition */
tools/mm/page_owner_sort.c
555
free(sc.signs);
tools/mm/page_owner_sort.c
556
free(sc.cmps);
tools/mm/page_owner_sort.c
562
sc.signs = calloc(size, sizeof(int));
tools/mm/page_owner_sort.c
563
sc.cmps = calloc(size, sizeof(int *));
tools/mm/page_owner_sort.c
567
sc.signs[i] = SORT_ASC;
tools/mm/page_owner_sort.c
570
sc.signs[i] = SORT_DESC;
tools/mm/page_owner_sort.c
577
sc.cmps[i] = compare_pid;
tools/mm/page_owner_sort.c
579
sc.cmps[i] = compare_tgid;
tools/mm/page_owner_sort.c
581
sc.cmps[i] = compare_comm;
tools/mm/page_owner_sort.c
583
sc.cmps[i] = compare_stacktrace;
tools/mm/page_owner_sort.c
585
sc.cmps[i] = compare_ts;
tools/mm/page_owner_sort.c
587
sc.cmps[i] = compare_txt;
tools/mm/page_owner_sort.c
589
sc.cmps[i] = compare_allocator;
tools/mm/page_owner_sort.c
592
sc.size = 0;
tools/mm/page_owner_sort.c
596
sc.size = size;
tools/mm/page_owner_sort.c
91
static struct sort_condition sc;
tools/perf/builtin-trace.c
2028
static int syscall__alloc_arg_fmts(struct syscall *sc, int nr_args)
tools/perf/builtin-trace.c
2032
if (nr_args == RAW_SYSCALL_ARGS_NUM && sc->fmt && sc->fmt->nr_args != 0)
tools/perf/builtin-trace.c
2033
nr_args = sc->fmt->nr_args;
tools/perf/builtin-trace.c
2035
sc->arg_fmt = calloc(nr_args, sizeof(*sc->arg_fmt));
tools/perf/builtin-trace.c
2036
if (sc->arg_fmt == NULL)
tools/perf/builtin-trace.c
2040
if (sc->fmt)
tools/perf/builtin-trace.c
2041
sc->arg_fmt[idx] = sc->fmt->arg[idx];
tools/perf/builtin-trace.c
2044
sc->nr_args = nr_args;
tools/perf/builtin-trace.c
2146
static int syscall__set_arg_fmts(struct syscall *sc)
tools/perf/builtin-trace.c
2148
struct tep_format_field *last_field = syscall_arg_fmt__init_array(sc->arg_fmt, sc->args,
tools/perf/builtin-trace.c
2149
&sc->use_btf);
tools/perf/builtin-trace.c
2152
sc->args_size = last_field->offset + last_field->size;
tools/perf/builtin-trace.c
2157
static int syscall__read_info(struct syscall *sc, struct trace *trace)
tools/perf/builtin-trace.c
2164
if (sc->nonexistent)
tools/perf/builtin-trace.c
2167
if (sc->name) {
tools/perf/builtin-trace.c
2172
name = syscalltbl__name(sc->e_machine, sc->id);
tools/perf/builtin-trace.c
2174
sc->nonexistent = true;
tools/perf/builtin-trace.c
2178
sc->name = name;
tools/perf/builtin-trace.c
2179
sc->fmt = syscall_fmt__find(sc->name);
tools/perf/builtin-trace.c
2181
snprintf(tp_name, sizeof(tp_name), "sys_enter_%s", sc->name);
tools/perf/builtin-trace.c
2182
sc->tp_format = trace_event__tp_format("syscalls", tp_name);
tools/perf/builtin-trace.c
2184
if (IS_ERR(sc->tp_format) && sc->fmt && sc->fmt->alias) {
tools/perf/builtin-trace.c
2185
snprintf(tp_name, sizeof(tp_name), "sys_enter_%s", sc->fmt->alias);
tools/perf/builtin-trace.c
2186
sc->tp_format = trace_event__tp_format("syscalls", tp_name);
tools/perf/builtin-trace.c
2193
if (IS_ERR(sc->tp_format)) {
tools/perf/builtin-trace.c
2194
sc->nonexistent = true;
tools/perf/builtin-trace.c
2195
err = PTR_ERR(sc->tp_format);
tools/perf/builtin-trace.c
2196
sc->tp_format = NULL;
tools/perf/builtin-trace.c
2204
if (syscall__alloc_arg_fmts(sc, sc->tp_format->format.nr_fields - 1))
tools/perf/builtin-trace.c
2207
sc->args = sc->tp_format->format.fields;
tools/perf/builtin-trace.c
2213
if (sc->args && (!strcmp(sc->args->name, "__syscall_nr") || !strcmp(sc->args->name, "nr"))) {
tools/perf/builtin-trace.c
2214
sc->args = sc->args->next;
tools/perf/builtin-trace.c
2215
--sc->nr_args;
tools/perf/builtin-trace.c
2218
field = sc->args;
tools/perf/builtin-trace.c
2221
--sc->nr_args;
tools/perf/builtin-trace.c
2225
sc->is_exit = !strcmp(name, "exit_group") || !strcmp(name, "exit");
tools/perf/builtin-trace.c
2226
sc->is_open = !strcmp(name, "open") || !strcmp(name, "openat");
tools/perf/builtin-trace.c
2228
err = syscall__set_arg_fmts(sc);
tools/perf/builtin-trace.c
2231
if (sc->use_btf)
tools/perf/builtin-trace.c
2278
const char *sc = pos->s;
tools/perf/builtin-trace.c
2283
int id = syscalltbl__id(EM_HOST, sc), match_next = -1;
tools/perf/builtin-trace.c
2286
id = syscalltbl__strglobmatch_first(EM_HOST, sc, &match_next);
tools/perf/builtin-trace.c
2297
pr_debug("%s", sc);
tools/perf/builtin-trace.c
2306
id = syscalltbl__strglobmatch_next(EM_HOST, sc, &match_next);
tools/perf/builtin-trace.c
2371
static size_t syscall__scnprintf_name(struct syscall *sc, char *bf, size_t size,
tools/perf/builtin-trace.c
2374
if (sc->arg_fmt && sc->arg_fmt[arg->idx].name)
tools/perf/builtin-trace.c
2375
return scnprintf(bf, size, "%s: ", sc->arg_fmt[arg->idx].name);
tools/perf/builtin-trace.c
2405
static size_t syscall__scnprintf_args(struct syscall *sc, char *bf, size_t size,
tools/perf/builtin-trace.c
2434
if (sc->args != NULL) {
tools/perf/builtin-trace.c
2437
for (field = sc->args; field;
tools/perf/builtin-trace.c
2442
arg.fmt = &sc->arg_fmt[arg.idx];
tools/perf/builtin-trace.c
2448
val = syscall_arg_fmt__mask_val(&sc->arg_fmt[arg.idx], &arg, val);
tools/perf/builtin-trace.c
2458
!(sc->arg_fmt && sc->arg_fmt[arg.idx].show_zero) &&
tools/perf/builtin-trace.c
2459
!(sc->arg_fmt && sc->arg_fmt[arg.idx].strtoul == STUL_BTF_TYPE))
tools/perf/builtin-trace.c
2467
default_scnprintf = sc->arg_fmt[arg.idx].scnprintf;
tools/perf/builtin-trace.c
2478
printed += syscall_arg_fmt__scnprintf_val(&sc->arg_fmt[arg.idx],
tools/perf/builtin-trace.c
2481
} else if (IS_ERR(sc->tp_format)) {
tools/perf/builtin-trace.c
2487
while (arg.idx < sc->nr_args) {
tools/perf/builtin-trace.c
2493
printed += syscall__scnprintf_name(sc, bf + printed, size - printed, &arg);
tools/perf/builtin-trace.c
2494
printed += syscall_arg_fmt__scnprintf_val(&sc->arg_fmt[arg.idx], bf + printed, size - printed, &arg, val);
tools/perf/builtin-trace.c
2506
struct syscall *sc = zalloc(sizeof(*sc));
tools/perf/builtin-trace.c
2508
if (!sc)
tools/perf/builtin-trace.c
2511
sc->e_machine = e_machine;
tools/perf/builtin-trace.c
2512
sc->id = id;
tools/perf/builtin-trace.c
2513
return sc;
tools/perf/builtin-trace.c
2516
static void syscall__delete(struct syscall *sc)
tools/perf/builtin-trace.c
2518
if (!sc)
tools/perf/builtin-trace.c
2521
free(sc->arg_fmt);
tools/perf/builtin-trace.c
2522
free(sc);
tools/perf/builtin-trace.c
2552
struct syscall *sc, **tmp;
tools/perf/builtin-trace.c
2564
sc = syscall__new(e_machine, id);
tools/perf/builtin-trace.c
2565
if (!sc)
tools/perf/builtin-trace.c
2571
syscall__delete(sc);
tools/perf/builtin-trace.c
2576
trace->syscalls.table[trace->syscalls.table_size++] = sc;
tools/perf/builtin-trace.c
2579
return sc;
tools/perf/builtin-trace.c
2589
struct syscall *sc;
tools/perf/builtin-trace.c
2614
sc = trace__find_syscall(trace, e_machine, id);
tools/perf/builtin-trace.c
2615
if (sc)
tools/perf/builtin-trace.c
2616
err = syscall__read_info(sc, trace);
tools/perf/builtin-trace.c
2621
if (sc && sc->name)
tools/perf/builtin-trace.c
2622
fprintf(trace->output, " (%s)", sc->name);
tools/perf/builtin-trace.c
2625
return err ? NULL : sc;
tools/perf/builtin-trace.c
2738
static void *syscall__augmented_args(struct syscall *sc, struct perf_sample *sample, int *augmented_args_size, int raw_augmented_args_size)
tools/perf/builtin-trace.c
2754
int args_size = raw_augmented_args_size ?: sc->args_size;
tools/perf/builtin-trace.c
2788
struct syscall *sc;
tools/perf/builtin-trace.c
2793
sc = trace__syscall_info(trace, evsel, e_machine, id);
tools/perf/builtin-trace.c
2794
if (sc == NULL)
tools/perf/builtin-trace.c
2823
augmented_args = syscall__augmented_args(sc, sample, &augmented_args_size, trace->raw_augmented_syscalls_args_size);
tools/perf/builtin-trace.c
2826
printed += scnprintf(msg + printed, trace__entry_str_size - printed, "%s(", sc->name);
tools/perf/builtin-trace.c
2828
printed += syscall__scnprintf_args(sc, msg + printed, trace__entry_str_size - printed,
tools/perf/builtin-trace.c
2831
if (sc->is_exit) {
tools/perf/builtin-trace.c
2863
struct syscall *sc;
tools/perf/builtin-trace.c
2872
sc = trace__syscall_info(trace, evsel, e_machine, id);
tools/perf/builtin-trace.c
2873
if (sc == NULL)
tools/perf/builtin-trace.c
2884
augmented_args = syscall__augmented_args(sc, sample, &augmented_args_size, trace->raw_augmented_syscalls_args_size);
tools/perf/builtin-trace.c
2885
printed += syscall__scnprintf_args(sc, msg, sizeof(msg), args, augmented_args, augmented_args_size, trace, thread);
tools/perf/builtin-trace.c
2933
struct syscall *sc;
tools/perf/builtin-trace.c
2938
sc = trace__syscall_info(trace, evsel, e_machine, id);
tools/perf/builtin-trace.c
2939
if (sc == NULL)
tools/perf/builtin-trace.c
2952
if (!trace->fd_path_disabled && sc->is_open && ret >= 0 && ttrace->filename.pending_open) {
tools/perf/builtin-trace.c
2988
printed += fprintf(trace->output, "]: %s()", sc->name);
tools/perf/builtin-trace.c
3000
if (sc->fmt == NULL) {
tools/perf/builtin-trace.c
3014
} else if (ret == 0 && sc->fmt->timeout)
tools/perf/builtin-trace.c
3026
} else if (sc->fmt->hexret)
tools/perf/builtin-trace.c
3028
else if (sc->fmt->errpid) {
tools/perf/builtin-trace.c
3291
struct syscall *sc = trace__syscall_info(trace, evsel, e_machine, id);
tools/perf/builtin-trace.c
3293
if (sc) {
tools/perf/builtin-trace.c
3294
fprintf(trace->output, "%s(", sc->name);
tools/perf/builtin-trace.c
344
struct syscall_tp sc;
tools/perf/builtin-trace.c
370
return &et->sc;
tools/perf/builtin-trace.c
3750
struct syscall *sc,
tools/perf/builtin-trace.c
3757
scnprintf(default_prog_name, sizeof(default_prog_name), "tp/syscalls/sys_%s_%s", type, sc->name);
tools/perf/builtin-trace.c
3761
if (sc->fmt && sc->fmt->alias) {
tools/perf/builtin-trace.c
3762
scnprintf(default_prog_name, sizeof(default_prog_name), "tp/syscalls/sys_%s_%s", type, sc->fmt->alias);
tools/perf/builtin-trace.c
3778
prog_name, type, sc->name);
tools/perf/builtin-trace.c
3785
struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, id);
tools/perf/builtin-trace.c
3787
if (sc == NULL)
tools/perf/builtin-trace.c
3790
sc->bpf_prog.sys_enter = trace__find_syscall_bpf_prog(trace, sc, sc->fmt ? sc->fmt->bpf_prog_name.sys_enter : NULL, "enter");
tools/perf/builtin-trace.c
3791
sc->bpf_prog.sys_exit = trace__find_syscall_bpf_prog(trace, sc, sc->fmt ? sc->fmt->bpf_prog_name.sys_exit : NULL, "exit");
tools/perf/builtin-trace.c
3796
struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, id);
tools/perf/builtin-trace.c
3797
return sc ? bpf_program__fd(sc->bpf_prog.sys_enter) : bpf_program__fd(unaugmented_prog);
tools/perf/builtin-trace.c
3802
struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, id);
tools/perf/builtin-trace.c
3803
return sc ? bpf_program__fd(sc->bpf_prog.sys_exit) : bpf_program__fd(unaugmented_prog);
tools/perf/builtin-trace.c
3809
struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, key);
tools/perf/builtin-trace.c
3815
if (sc == NULL)
tools/perf/builtin-trace.c
3822
for (i = 0, field = sc->args; field; ++i, field = field->next) {
tools/perf/builtin-trace.c
3824
if (!sc->arg_fmt[i].from_user)
tools/perf/builtin-trace.c
3844
if (syscall_arg_fmt__cache_btf_struct(&sc->arg_fmt[i], trace->btf, name))
tools/perf/builtin-trace.c
3847
bt = sc->arg_fmt[i].type;
tools/perf/builtin-trace.c
3871
for (j = 0, field_tmp = sc->args; field_tmp; ++j, field_tmp = field_tmp->next) {
tools/perf/builtin-trace.c
3892
struct syscall *sc)
tools/perf/builtin-trace.c
3898
for (field = sc->args; field; field = field->next) {
tools/perf/builtin-trace.c
3906
for (int i = 0, num_idx = syscalltbl__num_idx(sc->e_machine); i < num_idx; ++i) {
tools/perf/builtin-trace.c
3907
int id = syscalltbl__id_at_idx(sc->e_machine, i);
tools/perf/builtin-trace.c
3908
struct syscall *pair = trace__syscall_info(trace, NULL, sc->e_machine, id);
tools/perf/builtin-trace.c
3912
if (pair == NULL || pair->id == sc->id ||
tools/perf/builtin-trace.c
3916
for (field = sc->args, candidate_field = pair->args;
tools/perf/builtin-trace.c
3984
sc->name);
tools/perf/builtin-trace.c
4064
struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, key);
tools/perf/builtin-trace.c
4068
if (sc == NULL || sc->bpf_prog.sys_enter == NULL)
tools/perf/builtin-trace.c
4075
if (sc->bpf_prog.sys_enter != unaugmented_prog)
tools/perf/builtin-trace.c
4082
pair_prog = trace__find_usable_bpf_prog_entry(trace, sc);
tools/perf/builtin-trace.c
4086
sc->bpf_prog.sys_enter = pair_prog;
tools/perf/builtin-trace.c
4092
prog_fd = bpf_program__fd(sc->bpf_prog.sys_enter);
tools/perf/builtin-trace.c
435
({ struct syscall_tp *sc = __evsel__syscall_tp(evsel);\
tools/perf/builtin-trace.c
436
evsel__init_tp_uint_field(evsel, &sc->name, #name); })
tools/perf/builtin-trace.c
449
({ struct syscall_tp *sc = __evsel__syscall_tp(evsel);\
tools/perf/builtin-trace.c
450
evsel__init_tp_ptr_field(evsel, &sc->name, #name); })
tools/perf/builtin-trace.c
460
struct syscall_tp *sc = evsel__syscall_tp(evsel);
tools/perf/builtin-trace.c
462
if (sc != NULL) {
tools/perf/builtin-trace.c
463
if (evsel__init_tp_uint_field(evsel, &sc->id, "__syscall_nr") &&
tools/perf/builtin-trace.c
464
evsel__init_tp_uint_field(evsel, &sc->id, "nr"))
tools/perf/builtin-trace.c
475
struct syscall_tp *sc = evsel__syscall_tp(evsel);
tools/perf/builtin-trace.c
477
if (sc != NULL) {
tools/perf/builtin-trace.c
482
__tp_field__init_uint(&sc->id, syscall_id->size, syscall_id->offset, evsel->needs_swap))
tools/perf/builtin-trace.c
4849
struct syscall *sc;
tools/perf/builtin-trace.c
4876
sc = trace__syscall_info(trace, /*evsel=*/NULL, e_machine, entry->syscall);
tools/perf/builtin-trace.c
4877
if (!sc)
tools/perf/builtin-trace.c
4880
printed += fprintf(fp, " %-15s", sc->name);
tools/perf/builtin-trace.c
493
struct syscall_tp *sc = __evsel__syscall_tp(evsel);
tools/perf/builtin-trace.c
495
return __tp_field__init_ptr(&sc->args, sc->id.offset + sizeof(u64));
tools/perf/builtin-trace.c
500
struct syscall_tp *sc = __evsel__syscall_tp(evsel);
tools/perf/builtin-trace.c
502
return __tp_field__init_uint(&sc->ret, sizeof(u64), sc->id.offset + sizeof(u64), evsel->needs_swap);
tools/perf/builtin-trace.c
5140
struct syscall_tp *sc = __evsel__syscall_tp(evsel);
tools/perf/builtin-trace.c
5142
if (__tp_field__init_ptr(&sc->args, sc->id.offset + sizeof(u64)))
tools/perf/builtin-trace.c
5148
struct syscall_tp *sc = __evsel__syscall_tp(evsel);
tools/perf/builtin-trace.c
5150
if (__tp_field__init_uint(&sc->ret, sizeof(u64),
tools/perf/builtin-trace.c
5151
sc->id.offset + sizeof(u64),
tools/perf/builtin-trace.c
5679
struct syscall_tp *sc;
tools/perf/builtin-trace.c
5683
sc = __evsel__syscall_tp(evsel);
tools/perf/builtin-trace.c
5704
trace.raw_augmented_syscalls_args_size = (6 + 1) * sizeof(long) + sc->id.offset;
tools/perf/util/stat-display.c
693
double sc = evsel->scale;
tools/perf/util/stat-display.c
698
fmt = floor(sc) != sc ? "%'*.2f " : "%'*.0f ";
tools/perf/util/stat-display.c
700
fmt = floor(sc) != sc ? "%*.2f " : "%*.0f ";
tools/perf/util/stat-display.c
717
double sc = evsel->scale;
tools/perf/util/stat-display.c
719
const char *fmt = floor(sc) != sc ? "%.2f%s" : "%.0f%s";
tools/perf/util/stat.c
708
struct perf_stat_config sc = {};
tools/perf/util/stat.c
711
perf_event__read_stat_config(&sc, &event->stat_config);
tools/perf/util/stat.c
714
ret += fprintf(fp, "... aggr_mode %d\n", sc.aggr_mode);
tools/perf/util/stat.c
715
ret += fprintf(fp, "... scale %d\n", sc.scale);
tools/perf/util/stat.c
716
ret += fprintf(fp, "... interval %u\n", sc.interval);
tools/testing/selftests/bpf/bpf_arena_strsearch.h
10
for (sc = s; *sc != '\0'; ++sc)
tools/testing/selftests/bpf/bpf_arena_strsearch.h
12
return sc - s;
tools/testing/selftests/bpf/bpf_arena_strsearch.h
8
const char __arena *sc;
tools/testing/selftests/bpf/test_maps.c
1003
sc = send(sfd[2], buf, 20, 0);
tools/testing/selftests/bpf/test_maps.c
1004
if (sc < 0) {
tools/testing/selftests/bpf/test_maps.c
664
int one = 1, s, sc, rc;
tools/testing/selftests/bpf/test_maps.c
969
sc = send(sfd[2], buf, 20, 0);
tools/testing/selftests/bpf/test_maps.c
970
if (sc < 0) {
tools/testing/selftests/bpf/test_sockmap.c
1020
sc = send(i, buf, rc, 0);
tools/testing/selftests/bpf/test_sockmap.c
1021
if (sc < 0) {
tools/testing/selftests/bpf/test_sockmap.c
1023
return sc;
tools/testing/selftests/bpf/test_sockmap.c
969
int sc;
tools/testing/selftests/bpf/test_sockmap.c
975
sc = send(c1, buf, sizeof(buf), 0);
tools/testing/selftests/bpf/test_sockmap.c
976
if (sc < 0) {
tools/testing/selftests/bpf/test_sockmap.c
978
return sc;
tools/testing/selftests/kvm/lib/string_override.c
43
const char *sc;
tools/testing/selftests/kvm/lib/string_override.c
45
for (sc = s; count-- && *sc != '\0'; ++sc)
tools/testing/selftests/kvm/lib/string_override.c
47
return sc - s;
tools/testing/selftests/net/tcp_port_share.c
116
int sc;
tools/testing/selftests/net/tcp_port_share.c
124
sc = open("/proc/sys/net/ipv4/ip_local_port_range", O_WRONLY);
tools/testing/selftests/net/tcp_port_share.c
125
ASSERT_GE(sc, 0);
tools/testing/selftests/net/tcp_port_share.c
126
ASSERT_GT(dprintf(sc, "%hu %hu\n", SRC_PORT, SRC_PORT), 0);
tools/testing/selftests/net/tcp_port_share.c
127
ASSERT_EQ(close(sc), 0);
tools/testing/selftests/powerpc/stringloops/string.c
16
const char *sc;
tools/testing/selftests/powerpc/stringloops/string.c
18
for (sc = s; *sc != '\0'; ++sc)
tools/testing/selftests/powerpc/stringloops/string.c
20
return sc - s;
tools/testing/selftests/signal/sas.c
103
setcontext(&sc);
tools/testing/selftests/signal/sas.c
35
static ucontext_t uc, sc;
tools/testing/selftests/signal/sas.c
72
swapcontext(&sc, &uc);