sdata 69 arch/powerpc/platforms/powernv/opal-sensor.c u32 sdata; sdata 71 arch/powerpc/platforms/powernv/opal-sensor.c ret = opal_get_sensor_data(sensor_hndl, &sdata); sdata 73 arch/powerpc/platforms/powernv/opal-sensor.c *sensor_data = sdata; sdata 713 arch/x86/kernel/e820.c struct setup_data *sdata; sdata 715 arch/x86/kernel/e820.c sdata = early_memremap(phys_addr, data_len); sdata 716 arch/x86/kernel/e820.c entries = sdata->len / sizeof(*extmap); sdata 717 arch/x86/kernel/e820.c extmap = (struct boot_e820_entry *)(sdata->data); sdata 725 arch/x86/kernel/e820.c early_memunmap(sdata, data_len); sdata 238 drivers/dma/s3c24xx-dma.c struct soc_data *sdata; sdata 271 drivers/dma/s3c24xx-dma.c if (s3cdma->sdata->has_reqsel) sdata 321 drivers/dma/s3c24xx-dma.c if (s3cdma->sdata->has_clocks) { sdata 343 drivers/dma/s3c24xx-dma.c if (s3cdma->sdata->has_clocks) sdata 466 drivers/dma/s3c24xx-dma.c if (s3cdma->sdata->has_reqsel) { sdata 479 drivers/dma/s3c24xx-dma.c if (s3cdma->sdata->has_reqsel) sdata 1189 drivers/dma/s3c24xx-dma.c struct soc_data *sdata; sdata 1206 drivers/dma/s3c24xx-dma.c sdata = s3c24xx_dma_get_soc_data(pdev); sdata 1207 drivers/dma/s3c24xx-dma.c if (!sdata) sdata 1216 drivers/dma/s3c24xx-dma.c s3cdma->sdata = sdata; sdata 1236 drivers/dma/s3c24xx-dma.c phy->base = s3cdma->base + (i * sdata->stride); sdata 1251 drivers/dma/s3c24xx-dma.c if (sdata->has_clocks) { sdata 1254 drivers/dma/s3c24xx-dma.c if (IS_ERR(phy->clk) && sdata->has_clocks) { sdata 1355 drivers/dma/s3c24xx-dma.c if (sdata->has_clocks) sdata 1381 drivers/dma/s3c24xx-dma.c struct soc_data *sdata = s3c24xx_dma_get_soc_data(pdev); sdata 1392 drivers/dma/s3c24xx-dma.c if (sdata->has_clocks) sdata 35 drivers/gpio/gpio-vf610.c const struct fsl_gpio_soc_data *sdata; sdata 90 drivers/gpio/gpio-vf610.c if (port->sdata && port->sdata->have_paddr) { sdata 114 drivers/gpio/gpio-vf610.c if (port->sdata && port->sdata->have_paddr) { sdata 129 drivers/gpio/gpio-vf610.c if (port->sdata && port->sdata->have_paddr) sdata 255 drivers/gpio/gpio-vf610.c port->sdata = of_device_get_match_data(dev); sdata 1516 drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c u16 mdata, sdata; sdata 1529 drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c sdata = bmp_sdr_seq_table(bios); sdata 1531 drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c sdata = bmp_ddr_seq_table(bios); sdata 1537 drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c for (; (addr = nvbios_rd32(bios, sdata)) != 0xffffffff; sdata += 4) { sdata 100 drivers/hwmon/ibmpowernv.c struct sensor_data *sdata = container_of(devattr, struct sensor_data, sdata 105 drivers/hwmon/ibmpowernv.c if (sdata->sgrp_data && !sdata->sgrp_data->enable) sdata 108 drivers/hwmon/ibmpowernv.c ret = opal_get_sensor_data_u64(sdata->id, &x); sdata 114 drivers/hwmon/ibmpowernv.c if (sdata->type == TEMP) sdata 117 drivers/hwmon/ibmpowernv.c else if (sdata->type == POWER_INPUT) sdata 126 drivers/hwmon/ibmpowernv.c struct sensor_data *sdata = container_of(devattr, struct sensor_data, sdata 129 drivers/hwmon/ibmpowernv.c return sprintf(buf, "%u\n", sdata->sgrp_data->enable); sdata 136 drivers/hwmon/ibmpowernv.c struct sensor_data *sdata = container_of(devattr, struct sensor_data, sdata 138 drivers/hwmon/ibmpowernv.c struct sensor_group_data *sgrp_data = sdata->sgrp_data; sdata 166 drivers/hwmon/ibmpowernv.c struct sensor_data *sdata = container_of(devattr, struct sensor_data, sdata 169 drivers/hwmon/ibmpowernv.c return sprintf(buf, "%s\n", sdata->label); sdata 184 drivers/hwmon/ibmpowernv.c struct sensor_data *sdata, const char *label) sdata 189 drivers/hwmon/ibmpowernv.c n = snprintf(sdata->label, sizeof(sdata->label), "%s", label); sdata 202 drivers/hwmon/ibmpowernv.c n += snprintf(sdata->label + n, sdata 203 drivers/hwmon/ibmpowernv.c sizeof(sdata->label) - n, " %d", sdata 206 drivers/hwmon/ibmpowernv.c n += snprintf(sdata->label + n, sdata 207 drivers/hwmon/ibmpowernv.c sizeof(sdata->label) - n, " phy%d", id); sdata 214 drivers/hwmon/ibmpowernv.c n += snprintf(sdata->label + n, sizeof(sdata->label) - n, sdata 317 drivers/hwmon/ibmpowernv.c static u32 get_sensor_hwmon_index(struct sensor_data *sdata, sdata 325 drivers/hwmon/ibmpowernv.c if (sdata->opal_index != INVALID_INDEX) { sdata 327 drivers/hwmon/ibmpowernv.c if (sdata_table[i].opal_index == sdata->opal_index && sdata 328 drivers/hwmon/ibmpowernv.c sdata_table[i].type == sdata->type) sdata 331 drivers/hwmon/ibmpowernv.c return ++sensor_groups[sdata->type].hwmon_index; sdata 483 drivers/hwmon/ibmpowernv.c static void create_hwmon_attr(struct sensor_data *sdata, const char *attr_name, sdata 491 drivers/hwmon/ibmpowernv.c snprintf(sdata->name, MAX_ATTR_LEN, "%s%d_%s", sdata 492 drivers/hwmon/ibmpowernv.c sensor_groups[sdata->type].name, sdata->hwmon_index, sdata 495 drivers/hwmon/ibmpowernv.c sysfs_attr_init(&sdata->dev_attr.attr); sdata 496 drivers/hwmon/ibmpowernv.c sdata->dev_attr.attr.name = sdata->name; sdata 497 drivers/hwmon/ibmpowernv.c sdata->dev_attr.show = show; sdata 499 drivers/hwmon/ibmpowernv.c sdata->dev_attr.store = store; sdata 500 drivers/hwmon/ibmpowernv.c sdata->dev_attr.attr.mode = 0664; sdata 502 drivers/hwmon/ibmpowernv.c sdata->dev_attr.attr.mode = 0444; sdata 506 drivers/hwmon/ibmpowernv.c static void populate_sensor(struct sensor_data *sdata, int od, int hd, int sid, sdata 517 drivers/hwmon/ibmpowernv.c sdata->id = sid; sdata 518 drivers/hwmon/ibmpowernv.c sdata->type = type; sdata 519 drivers/hwmon/ibmpowernv.c sdata->opal_index = od; sdata 520 drivers/hwmon/ibmpowernv.c sdata->hwmon_index = hd; sdata 521 drivers/hwmon/ibmpowernv.c create_hwmon_attr(sdata, attr_name, show, store); sdata 522 drivers/hwmon/ibmpowernv.c pgroup->attrs[sensor_groups[type].attr_count++] = &sdata->dev_attr.attr; sdata 523 drivers/hwmon/ibmpowernv.c sdata->sgrp_data = sgrp_data; sdata 557 drivers/hwmon/ibmpowernv.c struct sensor_data *sdata; sdata 561 drivers/hwmon/ibmpowernv.c sdata = devm_kcalloc(&pdev->dev, sdata 562 drivers/hwmon/ibmpowernv.c pdata->sensors_count, sizeof(*sdata), sdata 564 drivers/hwmon/ibmpowernv.c if (!sdata) sdata 592 drivers/hwmon/ibmpowernv.c sdata[count].id = sensor_id; sdata 593 drivers/hwmon/ibmpowernv.c sdata[count].type = type; sdata 607 drivers/hwmon/ibmpowernv.c hw_id = get_sensor_hwmon_index(&sdata[count], sdata, count); sdata 609 drivers/hwmon/ibmpowernv.c populate_sensor(&sdata[count], opal_index, hw_id, sensor_id, sdata 622 drivers/hwmon/ibmpowernv.c make_sensor_label(np, &sdata[count], label); sdata 623 drivers/hwmon/ibmpowernv.c populate_sensor(&sdata[count], opal_index, hw_id, sdata 631 drivers/hwmon/ibmpowernv.c populate_sensor(&sdata[count], opal_index, hw_id, sdata 640 drivers/hwmon/ibmpowernv.c populate_sensor(&sdata[count], opal_index, hw_id, sdata 650 drivers/hwmon/ibmpowernv.c populate_sensor(&sdata[count], opal_index, hw_id, sdata 27 drivers/iio/common/st_sensors/st_sensors_buffer.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 28 drivers/iio/common/st_sensors/st_sensors_buffer.c unsigned int num_data_channels = sdata->num_data_channels; sdata 40 drivers/iio/common/st_sensors/st_sensors_buffer.c if (regmap_bulk_read(sdata->regmap, channel->address, sdata 56 drivers/iio/common/st_sensors/st_sensors_buffer.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 66 drivers/iio/common/st_sensors/st_sensors_buffer.c timestamp = sdata->hw_timestamp; sdata 70 drivers/iio/common/st_sensors/st_sensors_buffer.c len = st_sensors_get_buffer_element(indio_dev, sdata->buffer_data); sdata 74 drivers/iio/common/st_sensors/st_sensors_buffer.c iio_push_to_buffers_with_timestamp(indio_dev, sdata->buffer_data, sdata 32 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 34 drivers/iio/common/st_sensors/st_sensors_core.c return regmap_update_bits(sdata->regmap, sdata 42 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 46 drivers/iio/common/st_sensors/st_sensors_core.c return regmap_write(sdata->regmap, reg, writeval); sdata 48 drivers/iio/common/st_sensors/st_sensors_core.c err = regmap_read(sdata->regmap, reg, readval); sdata 81 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 83 drivers/iio/common/st_sensors/st_sensors_core.c if (!sdata->sensor_settings->odr.mask) sdata 86 drivers/iio/common/st_sensors/st_sensors_core.c err = st_sensors_match_odr(sdata->sensor_settings, odr, &odr_out); sdata 90 drivers/iio/common/st_sensors/st_sensors_core.c if ((sdata->sensor_settings->odr.addr == sdata 91 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->pw.addr) && sdata 92 drivers/iio/common/st_sensors/st_sensors_core.c (sdata->sensor_settings->odr.mask == sdata 93 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->pw.mask)) { sdata 94 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->enabled == true) { sdata 96 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->odr.addr, sdata 97 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->odr.mask, sdata 104 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->odr.addr, sdata 105 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->odr.mask, sdata 109 drivers/iio/common/st_sensors/st_sensors_core.c sdata->odr = odr_out.hz; sdata 138 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 140 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->sensor_settings->fs.addr == 0) sdata 143 drivers/iio/common/st_sensors/st_sensors_core.c err = st_sensors_match_fs(sdata->sensor_settings, fs, &i); sdata 148 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->fs.addr, sdata 149 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->fs.mask, sdata 150 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->fs.fs_avl[i].value); sdata 154 drivers/iio/common/st_sensors/st_sensors_core.c sdata->current_fullscale = (struct st_sensor_fullscale_avl *) sdata 155 drivers/iio/common/st_sensors/st_sensors_core.c &sdata->sensor_settings->fs.fs_avl[i]; sdata 169 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 172 drivers/iio/common/st_sensors/st_sensors_core.c tmp_value = sdata->sensor_settings->pw.value_on; sdata 173 drivers/iio/common/st_sensors/st_sensors_core.c if ((sdata->sensor_settings->odr.addr == sdata 174 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->pw.addr) && sdata 175 drivers/iio/common/st_sensors/st_sensors_core.c (sdata->sensor_settings->odr.mask == sdata 176 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->pw.mask)) { sdata 177 drivers/iio/common/st_sensors/st_sensors_core.c err = st_sensors_match_odr(sdata->sensor_settings, sdata 178 drivers/iio/common/st_sensors/st_sensors_core.c sdata->odr, &odr_out); sdata 185 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->pw.addr, sdata 186 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->pw.mask, tmp_value); sdata 190 drivers/iio/common/st_sensors/st_sensors_core.c sdata->enabled = true; sdata 193 drivers/iio/common/st_sensors/st_sensors_core.c sdata->odr = odr_out.hz; sdata 196 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->pw.addr, sdata 197 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->pw.mask, sdata 198 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->pw.value_off); sdata 202 drivers/iio/common/st_sensors/st_sensors_core.c sdata->enabled = false; sdata 212 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 215 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->sensor_settings->enable_axis.addr) sdata 217 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->enable_axis.addr, sdata 218 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->enable_axis.mask, sdata 275 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 278 drivers/iio/common/st_sensors/st_sensors_core.c if (!sdata->sensor_settings->drdy_irq.int1.addr && sdata 279 drivers/iio/common/st_sensors/st_sensors_core.c !sdata->sensor_settings->drdy_irq.int2.addr) { sdata 290 drivers/iio/common/st_sensors/st_sensors_core.c if (!sdata->sensor_settings->drdy_irq.int1.mask) { sdata 295 drivers/iio/common/st_sensors/st_sensors_core.c sdata->drdy_int_pin = 1; sdata 298 drivers/iio/common/st_sensors/st_sensors_core.c if (!sdata->sensor_settings->drdy_irq.int2.mask) { sdata 303 drivers/iio/common/st_sensors/st_sensors_core.c sdata->drdy_int_pin = 2; sdata 311 drivers/iio/common/st_sensors/st_sensors_core.c if (!sdata->sensor_settings->drdy_irq.int1.addr_od && sdata 312 drivers/iio/common/st_sensors/st_sensors_core.c !sdata->sensor_settings->drdy_irq.int2.addr_od) sdata 316 drivers/iio/common/st_sensors/st_sensors_core.c sdata->int_pin_open_drain = true; sdata 383 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 407 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->current_fullscale) { sdata 409 drivers/iio/common/st_sensors/st_sensors_core.c sdata->current_fullscale->num); sdata 415 drivers/iio/common/st_sensors/st_sensors_core.c err = st_sensors_set_odr(indio_dev, sdata->odr); sdata 420 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->sensor_settings->bdu.addr) { sdata 422 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->bdu.addr, sdata 423 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->bdu.mask, true); sdata 429 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->sensor_settings->das.addr) { sdata 431 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->das.addr, sdata 432 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->das.mask, 1); sdata 437 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->int_pin_open_drain) { sdata 440 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->drdy_int_pin == 1) { sdata 441 drivers/iio/common/st_sensors/st_sensors_core.c addr = sdata->sensor_settings->drdy_irq.int1.addr_od; sdata 442 drivers/iio/common/st_sensors/st_sensors_core.c mask = sdata->sensor_settings->drdy_irq.int1.mask_od; sdata 444 drivers/iio/common/st_sensors/st_sensors_core.c addr = sdata->sensor_settings->drdy_irq.int2.addr_od; sdata 445 drivers/iio/common/st_sensors/st_sensors_core.c mask = sdata->sensor_settings->drdy_irq.int2.mask_od; sdata 450 drivers/iio/common/st_sensors/st_sensors_core.c sdata->drdy_int_pin); sdata 467 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 469 drivers/iio/common/st_sensors/st_sensors_core.c if (!sdata->sensor_settings->drdy_irq.int1.addr && sdata 470 drivers/iio/common/st_sensors/st_sensors_core.c !sdata->sensor_settings->drdy_irq.int2.addr) { sdata 477 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->sensor_settings->drdy_irq.stat_drdy.addr) sdata 478 drivers/iio/common/st_sensors/st_sensors_core.c sdata->hw_irq_trigger = enable; sdata 483 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->sensor_settings->drdy_irq.ig1.en_addr > 0) { sdata 485 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->drdy_irq.ig1.en_addr, sdata 486 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->drdy_irq.ig1.en_mask, sdata 492 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->drdy_int_pin == 1) { sdata 493 drivers/iio/common/st_sensors/st_sensors_core.c drdy_addr = sdata->sensor_settings->drdy_irq.int1.addr; sdata 494 drivers/iio/common/st_sensors/st_sensors_core.c drdy_mask = sdata->sensor_settings->drdy_irq.int1.mask; sdata 496 drivers/iio/common/st_sensors/st_sensors_core.c drdy_addr = sdata->sensor_settings->drdy_irq.int2.addr; sdata 497 drivers/iio/common/st_sensors/st_sensors_core.c drdy_mask = sdata->sensor_settings->drdy_irq.int2.mask; sdata 501 drivers/iio/common/st_sensors/st_sensors_core.c sdata->hw_irq_trigger = enable; sdata 515 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 518 drivers/iio/common/st_sensors/st_sensors_core.c if ((sdata->sensor_settings->fs.fs_avl[i].gain == scale) && sdata 519 drivers/iio/common/st_sensors/st_sensors_core.c (sdata->sensor_settings->fs.fs_avl[i].gain != 0)) { sdata 528 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->fs.fs_avl[i].num); sdata 540 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 549 drivers/iio/common/st_sensors/st_sensors_core.c err = regmap_bulk_read(sdata->regmap, ch->address, sdata 571 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 582 drivers/iio/common/st_sensors/st_sensors_core.c msleep((sdata->sensor_settings->bootime * 1000) / sdata->odr); sdata 634 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 637 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->sensor_settings->wai_addr) { sdata 638 drivers/iio/common/st_sensors/st_sensors_core.c err = regmap_read(sdata->regmap, sdata 639 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->wai_addr, &wai); sdata 646 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->sensor_settings->wai != wai) { sdata 663 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 667 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->sensor_settings->odr.odr_avl[i].hz == 0) sdata 671 drivers/iio/common/st_sensors/st_sensors_core.c sdata->sensor_settings->odr.odr_avl[i].hz); sdata 685 drivers/iio/common/st_sensors/st_sensors_core.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 689 drivers/iio/common/st_sensors/st_sensors_core.c if (sdata->sensor_settings->fs.fs_avl[i].num == 0) sdata 692 drivers/iio/common/st_sensors/st_sensors_core.c q = sdata->sensor_settings->fs.fs_avl[i].gain / 1000000; sdata 693 drivers/iio/common/st_sensors/st_sensors_core.c r = sdata->sensor_settings->fs.fs_avl[i].gain % 1000000; sdata 44 drivers/iio/common/st_sensors/st_sensors_i2c.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 47 drivers/iio/common/st_sensors/st_sensors_i2c.c if (sdata->sensor_settings->multi_read_bit) sdata 52 drivers/iio/common/st_sensors/st_sensors_i2c.c sdata->regmap = devm_regmap_init_i2c(client, config); sdata 53 drivers/iio/common/st_sensors/st_sensors_i2c.c if (IS_ERR(sdata->regmap)) { sdata 55 drivers/iio/common/st_sensors/st_sensors_i2c.c (int)PTR_ERR(sdata->regmap)); sdata 56 drivers/iio/common/st_sensors/st_sensors_i2c.c return PTR_ERR(sdata->regmap); sdata 64 drivers/iio/common/st_sensors/st_sensors_i2c.c sdata->dev = &client->dev; sdata 65 drivers/iio/common/st_sensors/st_sensors_i2c.c sdata->irq = client->irq; sdata 84 drivers/iio/common/st_sensors/st_sensors_spi.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 90 drivers/iio/common/st_sensors/st_sensors_spi.c sdata->sensor_settings); sdata 95 drivers/iio/common/st_sensors/st_sensors_spi.c if (sdata->sensor_settings->multi_read_bit) sdata 100 drivers/iio/common/st_sensors/st_sensors_spi.c sdata->regmap = devm_regmap_init_spi(spi, config); sdata 101 drivers/iio/common/st_sensors/st_sensors_spi.c if (IS_ERR(sdata->regmap)) { sdata 103 drivers/iio/common/st_sensors/st_sensors_spi.c (int)PTR_ERR(sdata->regmap)); sdata 104 drivers/iio/common/st_sensors/st_sensors_spi.c return PTR_ERR(sdata->regmap); sdata 112 drivers/iio/common/st_sensors/st_sensors_spi.c sdata->dev = &spi->dev; sdata 113 drivers/iio/common/st_sensors/st_sensors_spi.c sdata->irq = spi->irq; sdata 28 drivers/iio/common/st_sensors/st_sensors_trigger.c struct st_sensor_data *sdata) sdata 33 drivers/iio/common/st_sensors/st_sensors_trigger.c if (!sdata->sensor_settings->drdy_irq.stat_drdy.addr) sdata 40 drivers/iio/common/st_sensors/st_sensors_trigger.c ret = regmap_read(sdata->regmap, sdata 41 drivers/iio/common/st_sensors/st_sensors_trigger.c sdata->sensor_settings->drdy_irq.stat_drdy.addr, sdata 44 drivers/iio/common/st_sensors/st_sensors_trigger.c dev_err(sdata->dev, sdata 49 drivers/iio/common/st_sensors/st_sensors_trigger.c if (status & sdata->sensor_settings->drdy_irq.stat_drdy.mask) sdata 64 drivers/iio/common/st_sensors/st_sensors_trigger.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 67 drivers/iio/common/st_sensors/st_sensors_trigger.c sdata->hw_timestamp = iio_get_time_ns(indio_dev); sdata 80 drivers/iio/common/st_sensors/st_sensors_trigger.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 89 drivers/iio/common/st_sensors/st_sensors_trigger.c if (sdata->hw_irq_trigger && sdata 90 drivers/iio/common/st_sensors/st_sensors_trigger.c st_sensors_new_samples_available(indio_dev, sdata)) { sdata 93 drivers/iio/common/st_sensors/st_sensors_trigger.c dev_dbg(sdata->dev, "spurious IRQ\n"); sdata 102 drivers/iio/common/st_sensors/st_sensors_trigger.c if (!sdata->edge_irq) sdata 111 drivers/iio/common/st_sensors/st_sensors_trigger.c while (sdata->hw_irq_trigger && sdata 112 drivers/iio/common/st_sensors/st_sensors_trigger.c st_sensors_new_samples_available(indio_dev, sdata)) { sdata 113 drivers/iio/common/st_sensors/st_sensors_trigger.c dev_dbg(sdata->dev, "more samples came in during polling\n"); sdata 114 drivers/iio/common/st_sensors/st_sensors_trigger.c sdata->hw_timestamp = iio_get_time_ns(indio_dev); sdata 124 drivers/iio/common/st_sensors/st_sensors_trigger.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 128 drivers/iio/common/st_sensors/st_sensors_trigger.c sdata->trig = iio_trigger_alloc("%s-trigger", indio_dev->name); sdata 129 drivers/iio/common/st_sensors/st_sensors_trigger.c if (sdata->trig == NULL) { sdata 134 drivers/iio/common/st_sensors/st_sensors_trigger.c iio_trigger_set_drvdata(sdata->trig, indio_dev); sdata 135 drivers/iio/common/st_sensors/st_sensors_trigger.c sdata->trig->ops = trigger_ops; sdata 136 drivers/iio/common/st_sensors/st_sensors_trigger.c sdata->trig->dev.parent = sdata->dev; sdata 138 drivers/iio/common/st_sensors/st_sensors_trigger.c irq_trig = irqd_get_trigger_type(irq_get_irq_data(sdata->irq)); sdata 146 drivers/iio/common/st_sensors/st_sensors_trigger.c if (!sdata->sensor_settings->drdy_irq.addr_ihl) { sdata 158 drivers/iio/common/st_sensors/st_sensors_trigger.c sdata->sensor_settings->drdy_irq.addr_ihl, sdata 159 drivers/iio/common/st_sensors/st_sensors_trigger.c sdata->sensor_settings->drdy_irq.mask_ihl, 1); sdata 186 drivers/iio/common/st_sensors/st_sensors_trigger.c sdata->edge_irq = true; sdata 204 drivers/iio/common/st_sensors/st_sensors_trigger.c if (sdata->int_pin_open_drain && sdata 205 drivers/iio/common/st_sensors/st_sensors_trigger.c sdata->sensor_settings->drdy_irq.stat_drdy.addr) sdata 208 drivers/iio/common/st_sensors/st_sensors_trigger.c err = request_threaded_irq(sdata->irq, sdata 212 drivers/iio/common/st_sensors/st_sensors_trigger.c sdata->trig->name, sdata 213 drivers/iio/common/st_sensors/st_sensors_trigger.c sdata->trig); sdata 219 drivers/iio/common/st_sensors/st_sensors_trigger.c err = iio_trigger_register(sdata->trig); sdata 224 drivers/iio/common/st_sensors/st_sensors_trigger.c indio_dev->trig = iio_trigger_get(sdata->trig); sdata 229 drivers/iio/common/st_sensors/st_sensors_trigger.c free_irq(sdata->irq, sdata->trig); sdata 231 drivers/iio/common/st_sensors/st_sensors_trigger.c iio_trigger_free(sdata->trig); sdata 238 drivers/iio/common/st_sensors/st_sensors_trigger.c struct st_sensor_data *sdata = iio_priv(indio_dev); sdata 240 drivers/iio/common/st_sensors/st_sensors_trigger.c iio_trigger_unregister(sdata->trig); sdata 241 drivers/iio/common/st_sensors/st_sensors_trigger.c free_irq(sdata->irq, sdata->trig); sdata 242 drivers/iio/common/st_sensors/st_sensors_trigger.c iio_trigger_free(sdata->trig); sdata 3133 drivers/infiniband/hw/hfi1/rc.c u64 sdata; sdata 3166 drivers/infiniband/hw/hfi1/rc.c sdata = get_ib_ateth_swap(ateth); sdata 3168 drivers/infiniband/hw/hfi1/rc.c (u64)atomic64_add_return(sdata, maddr) - sdata : sdata 3171 drivers/infiniband/hw/hfi1/rc.c sdata); sdata 2009 drivers/infiniband/hw/qib/qib_rc.c u64 sdata; sdata 2041 drivers/infiniband/hw/qib/qib_rc.c sdata = get_ib_ateth_swap(ateth); sdata 2043 drivers/infiniband/hw/qib/qib_rc.c (u64) atomic64_add_return(sdata, maddr) - sdata : sdata 2046 drivers/infiniband/hw/qib/qib_rc.c sdata); sdata 2973 drivers/infiniband/sw/rdmavt/qp.c u64 sdata; sdata 3143 drivers/infiniband/sw/rdmavt/qp.c sdata = wqe->atomic_wr.compare_add; sdata 3146 drivers/infiniband/sw/rdmavt/qp.c (u64)atomic64_add_return(sdata, maddr) - sdata : sdata 3148 drivers/infiniband/sw/rdmavt/qp.c sdata, wqe->atomic_wr.swap); sdata 117 drivers/input/touchscreen/s6sy761.c static int s6sy761_read_events(struct s6sy761_data *sdata, u16 n_events) sdata 122 drivers/input/touchscreen/s6sy761.c .addr = sdata->client->addr, sdata 127 drivers/input/touchscreen/s6sy761.c .addr = sdata->client->addr, sdata 130 drivers/input/touchscreen/s6sy761.c .buf = sdata->data + S6SY761_EVENT_SIZE, sdata 135 drivers/input/touchscreen/s6sy761.c ret = i2c_transfer(sdata->client->adapter, msgs, ARRAY_SIZE(msgs)); sdata 142 drivers/input/touchscreen/s6sy761.c static void s6sy761_report_coordinates(struct s6sy761_data *sdata, sdata 151 drivers/input/touchscreen/s6sy761.c input_mt_slot(sdata->input, tid); sdata 153 drivers/input/touchscreen/s6sy761.c input_mt_report_slot_state(sdata->input, MT_TOOL_FINGER, true); sdata 154 drivers/input/touchscreen/s6sy761.c input_report_abs(sdata->input, ABS_MT_POSITION_X, x); sdata 155 drivers/input/touchscreen/s6sy761.c input_report_abs(sdata->input, ABS_MT_POSITION_Y, y); sdata 156 drivers/input/touchscreen/s6sy761.c input_report_abs(sdata->input, ABS_MT_TOUCH_MAJOR, major); sdata 157 drivers/input/touchscreen/s6sy761.c input_report_abs(sdata->input, ABS_MT_TOUCH_MINOR, minor); sdata 158 drivers/input/touchscreen/s6sy761.c input_report_abs(sdata->input, ABS_MT_PRESSURE, z); sdata 160 drivers/input/touchscreen/s6sy761.c input_sync(sdata->input); sdata 163 drivers/input/touchscreen/s6sy761.c static void s6sy761_report_release(struct s6sy761_data *sdata, sdata 166 drivers/input/touchscreen/s6sy761.c input_mt_slot(sdata->input, tid); sdata 167 drivers/input/touchscreen/s6sy761.c input_mt_report_slot_state(sdata->input, MT_TOOL_FINGER, false); sdata 169 drivers/input/touchscreen/s6sy761.c input_sync(sdata->input); sdata 172 drivers/input/touchscreen/s6sy761.c static void s6sy761_handle_coordinates(struct s6sy761_data *sdata, u8 *event) sdata 188 drivers/input/touchscreen/s6sy761.c s6sy761_report_release(sdata, event, tid); sdata 192 drivers/input/touchscreen/s6sy761.c s6sy761_report_coordinates(sdata, event, tid); sdata 197 drivers/input/touchscreen/s6sy761.c static void s6sy761_handle_events(struct s6sy761_data *sdata, u8 n_events) sdata 202 drivers/input/touchscreen/s6sy761.c u8 *event = &sdata->data[i * S6SY761_EVENT_SIZE]; sdata 211 drivers/input/touchscreen/s6sy761.c s6sy761_handle_coordinates(sdata, event); sdata 225 drivers/input/touchscreen/s6sy761.c struct s6sy761_data *sdata = dev; sdata 229 drivers/input/touchscreen/s6sy761.c ret = i2c_smbus_read_i2c_block_data(sdata->client, sdata 232 drivers/input/touchscreen/s6sy761.c sdata->data); sdata 234 drivers/input/touchscreen/s6sy761.c dev_err(&sdata->client->dev, "failed to read events\n"); sdata 238 drivers/input/touchscreen/s6sy761.c if (!sdata->data[0]) sdata 241 drivers/input/touchscreen/s6sy761.c n_events = sdata->data[7] & S6SY761_MASK_LEFT_EVENTS; sdata 246 drivers/input/touchscreen/s6sy761.c ret = s6sy761_read_events(sdata, n_events); sdata 248 drivers/input/touchscreen/s6sy761.c dev_err(&sdata->client->dev, "failed to read events\n"); sdata 253 drivers/input/touchscreen/s6sy761.c s6sy761_handle_events(sdata, n_events + 1); sdata 260 drivers/input/touchscreen/s6sy761.c struct s6sy761_data *sdata = input_get_drvdata(dev); sdata 262 drivers/input/touchscreen/s6sy761.c return i2c_smbus_write_byte(sdata->client, S6SY761_SENSE_ON); sdata 267 drivers/input/touchscreen/s6sy761.c struct s6sy761_data *sdata = input_get_drvdata(dev); sdata 270 drivers/input/touchscreen/s6sy761.c ret = i2c_smbus_write_byte(sdata->client, S6SY761_SENSE_OFF); sdata 272 drivers/input/touchscreen/s6sy761.c dev_err(&sdata->client->dev, "failed to turn off sensing\n"); sdata 278 drivers/input/touchscreen/s6sy761.c struct s6sy761_data *sdata = dev_get_drvdata(dev); sdata 280 drivers/input/touchscreen/s6sy761.c return sprintf(buf, "%#x\n", sdata->devid); sdata 294 drivers/input/touchscreen/s6sy761.c static int s6sy761_power_on(struct s6sy761_data *sdata) sdata 300 drivers/input/touchscreen/s6sy761.c ret = regulator_bulk_enable(ARRAY_SIZE(sdata->regulators), sdata 301 drivers/input/touchscreen/s6sy761.c sdata->regulators); sdata 308 drivers/input/touchscreen/s6sy761.c ret = i2c_smbus_read_i2c_block_data(sdata->client, sdata 323 drivers/input/touchscreen/s6sy761.c ret = i2c_smbus_read_byte_data(sdata->client, S6SY761_BOOT_STATUS); sdata 332 drivers/input/touchscreen/s6sy761.c ret = i2c_smbus_write_word_data(sdata->client, sdata 341 drivers/input/touchscreen/s6sy761.c static int s6sy761_hw_init(struct s6sy761_data *sdata, sdata 347 drivers/input/touchscreen/s6sy761.c ret = s6sy761_power_on(sdata); sdata 351 drivers/input/touchscreen/s6sy761.c ret = i2c_smbus_read_i2c_block_data(sdata->client, sdata 358 drivers/input/touchscreen/s6sy761.c sdata->devid = get_unaligned_be16(buffer + 1); sdata 360 drivers/input/touchscreen/s6sy761.c ret = i2c_smbus_read_i2c_block_data(sdata->client, sdata 371 drivers/input/touchscreen/s6sy761.c sdata->tx_channel = max_t(u8, buffer[8], 1); sdata 373 drivers/input/touchscreen/s6sy761.c ret = i2c_smbus_read_byte_data(sdata->client, sdata 385 drivers/input/touchscreen/s6sy761.c struct s6sy761_data *sdata = data; sdata 387 drivers/input/touchscreen/s6sy761.c disable_irq(sdata->client->irq); sdata 388 drivers/input/touchscreen/s6sy761.c regulator_bulk_disable(ARRAY_SIZE(sdata->regulators), sdata 389 drivers/input/touchscreen/s6sy761.c sdata->regulators); sdata 395 drivers/input/touchscreen/s6sy761.c struct s6sy761_data *sdata; sdata 404 drivers/input/touchscreen/s6sy761.c sdata = devm_kzalloc(&client->dev, sizeof(*sdata), GFP_KERNEL); sdata 405 drivers/input/touchscreen/s6sy761.c if (!sdata) sdata 408 drivers/input/touchscreen/s6sy761.c i2c_set_clientdata(client, sdata); sdata 409 drivers/input/touchscreen/s6sy761.c sdata->client = client; sdata 411 drivers/input/touchscreen/s6sy761.c sdata->regulators[S6SY761_REGULATOR_VDD].supply = "vdd"; sdata 412 drivers/input/touchscreen/s6sy761.c sdata->regulators[S6SY761_REGULATOR_AVDD].supply = "avdd"; sdata 414 drivers/input/touchscreen/s6sy761.c ARRAY_SIZE(sdata->regulators), sdata 415 drivers/input/touchscreen/s6sy761.c sdata->regulators); sdata 419 drivers/input/touchscreen/s6sy761.c err = devm_add_action_or_reset(&client->dev, s6sy761_power_off, sdata); sdata 423 drivers/input/touchscreen/s6sy761.c err = s6sy761_hw_init(sdata, &max_x, &max_y); sdata 427 drivers/input/touchscreen/s6sy761.c sdata->input = devm_input_allocate_device(&client->dev); sdata 428 drivers/input/touchscreen/s6sy761.c if (!sdata->input) sdata 431 drivers/input/touchscreen/s6sy761.c sdata->input->name = S6SY761_DEV_NAME; sdata 432 drivers/input/touchscreen/s6sy761.c sdata->input->id.bustype = BUS_I2C; sdata 433 drivers/input/touchscreen/s6sy761.c sdata->input->open = s6sy761_input_open; sdata 434 drivers/input/touchscreen/s6sy761.c sdata->input->close = s6sy761_input_close; sdata 436 drivers/input/touchscreen/s6sy761.c input_set_abs_params(sdata->input, ABS_MT_POSITION_X, 0, max_x, 0, 0); sdata 437 drivers/input/touchscreen/s6sy761.c input_set_abs_params(sdata->input, ABS_MT_POSITION_Y, 0, max_y, 0, 0); sdata 438 drivers/input/touchscreen/s6sy761.c input_set_abs_params(sdata->input, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); sdata 439 drivers/input/touchscreen/s6sy761.c input_set_abs_params(sdata->input, ABS_MT_TOUCH_MINOR, 0, 255, 0, 0); sdata 440 drivers/input/touchscreen/s6sy761.c input_set_abs_params(sdata->input, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); sdata 441 drivers/input/touchscreen/s6sy761.c input_set_abs_params(sdata->input, ABS_MT_TOUCH_MINOR, 0, 255, 0, 0); sdata 442 drivers/input/touchscreen/s6sy761.c input_set_abs_params(sdata->input, ABS_MT_PRESSURE, 0, 255, 0, 0); sdata 444 drivers/input/touchscreen/s6sy761.c touchscreen_parse_properties(sdata->input, true, &sdata->prop); sdata 446 drivers/input/touchscreen/s6sy761.c if (!input_abs_get_max(sdata->input, ABS_X) || sdata 447 drivers/input/touchscreen/s6sy761.c !input_abs_get_max(sdata->input, ABS_Y)) { sdata 451 drivers/input/touchscreen/s6sy761.c err = input_mt_init_slots(sdata->input, sdata->tx_channel, sdata 456 drivers/input/touchscreen/s6sy761.c input_set_drvdata(sdata->input, sdata); sdata 458 drivers/input/touchscreen/s6sy761.c err = input_register_device(sdata->input); sdata 465 drivers/input/touchscreen/s6sy761.c "s6sy761_irq", sdata); sdata 487 drivers/input/touchscreen/s6sy761.c struct s6sy761_data *sdata = dev_get_drvdata(dev); sdata 489 drivers/input/touchscreen/s6sy761.c return i2c_smbus_write_byte_data(sdata->client, sdata 495 drivers/input/touchscreen/s6sy761.c struct s6sy761_data *sdata = dev_get_drvdata(dev); sdata 497 drivers/input/touchscreen/s6sy761.c return i2c_smbus_write_byte_data(sdata->client, sdata 503 drivers/input/touchscreen/s6sy761.c struct s6sy761_data *sdata = dev_get_drvdata(dev); sdata 505 drivers/input/touchscreen/s6sy761.c s6sy761_power_off(sdata); sdata 512 drivers/input/touchscreen/s6sy761.c struct s6sy761_data *sdata = dev_get_drvdata(dev); sdata 514 drivers/input/touchscreen/s6sy761.c enable_irq(sdata->client->irq); sdata 516 drivers/input/touchscreen/s6sy761.c return s6sy761_power_on(sdata); sdata 112 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = container_of(led_cdev, sdata 116 drivers/input/touchscreen/stmfts.c if (value != sdata->led_status && sdata->ledvdd) { sdata 118 drivers/input/touchscreen/stmfts.c regulator_disable(sdata->ledvdd); sdata 120 drivers/input/touchscreen/stmfts.c err = regulator_enable(sdata->ledvdd); sdata 122 drivers/input/touchscreen/stmfts.c dev_warn(&sdata->client->dev, sdata 128 drivers/input/touchscreen/stmfts.c sdata->led_status = value; sdata 136 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = container_of(led_cdev, sdata 139 drivers/input/touchscreen/stmfts.c return !!regulator_is_enabled(sdata->ledvdd); sdata 146 drivers/input/touchscreen/stmfts.c static int stmfts_read_events(struct stmfts_data *sdata) sdata 151 drivers/input/touchscreen/stmfts.c .addr = sdata->client->addr, sdata 156 drivers/input/touchscreen/stmfts.c .addr = sdata->client->addr, sdata 159 drivers/input/touchscreen/stmfts.c .buf = sdata->data, sdata 164 drivers/input/touchscreen/stmfts.c ret = i2c_transfer(sdata->client->adapter, msgs, ARRAY_SIZE(msgs)); sdata 171 drivers/input/touchscreen/stmfts.c static void stmfts_report_contact_event(struct stmfts_data *sdata, sdata 182 drivers/input/touchscreen/stmfts.c input_mt_slot(sdata->input, slot_id); sdata 184 drivers/input/touchscreen/stmfts.c input_mt_report_slot_state(sdata->input, MT_TOOL_FINGER, true); sdata 185 drivers/input/touchscreen/stmfts.c input_report_abs(sdata->input, ABS_MT_POSITION_X, x); sdata 186 drivers/input/touchscreen/stmfts.c input_report_abs(sdata->input, ABS_MT_POSITION_Y, y); sdata 187 drivers/input/touchscreen/stmfts.c input_report_abs(sdata->input, ABS_MT_TOUCH_MAJOR, maj); sdata 188 drivers/input/touchscreen/stmfts.c input_report_abs(sdata->input, ABS_MT_TOUCH_MINOR, min); sdata 189 drivers/input/touchscreen/stmfts.c input_report_abs(sdata->input, ABS_MT_PRESSURE, area); sdata 190 drivers/input/touchscreen/stmfts.c input_report_abs(sdata->input, ABS_MT_ORIENTATION, orientation); sdata 192 drivers/input/touchscreen/stmfts.c input_sync(sdata->input); sdata 195 drivers/input/touchscreen/stmfts.c static void stmfts_report_contact_release(struct stmfts_data *sdata, sdata 200 drivers/input/touchscreen/stmfts.c input_mt_slot(sdata->input, slot_id); sdata 201 drivers/input/touchscreen/stmfts.c input_mt_report_slot_state(sdata->input, MT_TOOL_FINGER, false); sdata 203 drivers/input/touchscreen/stmfts.c input_sync(sdata->input); sdata 206 drivers/input/touchscreen/stmfts.c static void stmfts_report_hover_event(struct stmfts_data *sdata, sdata 213 drivers/input/touchscreen/stmfts.c input_report_abs(sdata->input, ABS_X, x); sdata 214 drivers/input/touchscreen/stmfts.c input_report_abs(sdata->input, ABS_Y, y); sdata 215 drivers/input/touchscreen/stmfts.c input_report_abs(sdata->input, ABS_DISTANCE, z); sdata 217 drivers/input/touchscreen/stmfts.c input_sync(sdata->input); sdata 220 drivers/input/touchscreen/stmfts.c static void stmfts_report_key_event(struct stmfts_data *sdata, const u8 event[]) sdata 224 drivers/input/touchscreen/stmfts.c input_report_key(sdata->input, KEY_BACK, 0); sdata 225 drivers/input/touchscreen/stmfts.c input_report_key(sdata->input, KEY_MENU, 0); sdata 229 drivers/input/touchscreen/stmfts.c input_report_key(sdata->input, KEY_BACK, 1); sdata 233 drivers/input/touchscreen/stmfts.c input_report_key(sdata->input, KEY_MENU, 1); sdata 237 drivers/input/touchscreen/stmfts.c dev_warn(&sdata->client->dev, sdata 242 drivers/input/touchscreen/stmfts.c input_sync(sdata->input); sdata 245 drivers/input/touchscreen/stmfts.c static void stmfts_parse_events(struct stmfts_data *sdata) sdata 250 drivers/input/touchscreen/stmfts.c u8 *event = &sdata->data[i * STMFTS_EVENT_SIZE]; sdata 257 drivers/input/touchscreen/stmfts.c complete(&sdata->cmd_done); sdata 269 drivers/input/touchscreen/stmfts.c stmfts_report_contact_event(sdata, event); sdata 273 drivers/input/touchscreen/stmfts.c stmfts_report_contact_release(sdata, event); sdata 279 drivers/input/touchscreen/stmfts.c stmfts_report_hover_event(sdata, event); sdata 283 drivers/input/touchscreen/stmfts.c stmfts_report_key_event(sdata, event); sdata 287 drivers/input/touchscreen/stmfts.c dev_warn(&sdata->client->dev, sdata 294 drivers/input/touchscreen/stmfts.c dev_err(&sdata->client->dev, sdata 302 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = dev; sdata 305 drivers/input/touchscreen/stmfts.c mutex_lock(&sdata->mutex); sdata 307 drivers/input/touchscreen/stmfts.c err = stmfts_read_events(sdata); sdata 309 drivers/input/touchscreen/stmfts.c dev_err(&sdata->client->dev, sdata 312 drivers/input/touchscreen/stmfts.c stmfts_parse_events(sdata); sdata 314 drivers/input/touchscreen/stmfts.c mutex_unlock(&sdata->mutex); sdata 318 drivers/input/touchscreen/stmfts.c static int stmfts_command(struct stmfts_data *sdata, const u8 cmd) sdata 322 drivers/input/touchscreen/stmfts.c reinit_completion(&sdata->cmd_done); sdata 324 drivers/input/touchscreen/stmfts.c err = i2c_smbus_write_byte(sdata->client, cmd); sdata 328 drivers/input/touchscreen/stmfts.c if (!wait_for_completion_timeout(&sdata->cmd_done, sdata 337 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = input_get_drvdata(dev); sdata 340 drivers/input/touchscreen/stmfts.c err = pm_runtime_get_sync(&sdata->client->dev); sdata 344 drivers/input/touchscreen/stmfts.c err = i2c_smbus_write_byte(sdata->client, STMFTS_MS_MT_SENSE_ON); sdata 348 drivers/input/touchscreen/stmfts.c mutex_lock(&sdata->mutex); sdata 349 drivers/input/touchscreen/stmfts.c sdata->running = true; sdata 351 drivers/input/touchscreen/stmfts.c if (sdata->hover_enabled) { sdata 352 drivers/input/touchscreen/stmfts.c err = i2c_smbus_write_byte(sdata->client, sdata 355 drivers/input/touchscreen/stmfts.c dev_warn(&sdata->client->dev, sdata 358 drivers/input/touchscreen/stmfts.c mutex_unlock(&sdata->mutex); sdata 360 drivers/input/touchscreen/stmfts.c if (sdata->use_key) { sdata 361 drivers/input/touchscreen/stmfts.c err = i2c_smbus_write_byte(sdata->client, sdata 365 drivers/input/touchscreen/stmfts.c dev_warn(&sdata->client->dev, sdata 374 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = input_get_drvdata(dev); sdata 377 drivers/input/touchscreen/stmfts.c err = i2c_smbus_write_byte(sdata->client, STMFTS_MS_MT_SENSE_OFF); sdata 379 drivers/input/touchscreen/stmfts.c dev_warn(&sdata->client->dev, sdata 382 drivers/input/touchscreen/stmfts.c mutex_lock(&sdata->mutex); sdata 384 drivers/input/touchscreen/stmfts.c sdata->running = false; sdata 386 drivers/input/touchscreen/stmfts.c if (sdata->hover_enabled) { sdata 387 drivers/input/touchscreen/stmfts.c err = i2c_smbus_write_byte(sdata->client, sdata 390 drivers/input/touchscreen/stmfts.c dev_warn(&sdata->client->dev, sdata 393 drivers/input/touchscreen/stmfts.c mutex_unlock(&sdata->mutex); sdata 395 drivers/input/touchscreen/stmfts.c if (sdata->use_key) { sdata 396 drivers/input/touchscreen/stmfts.c err = i2c_smbus_write_byte(sdata->client, sdata 399 drivers/input/touchscreen/stmfts.c dev_warn(&sdata->client->dev, sdata 403 drivers/input/touchscreen/stmfts.c pm_runtime_put_sync(&sdata->client->dev); sdata 409 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = dev_get_drvdata(dev); sdata 411 drivers/input/touchscreen/stmfts.c return sprintf(buf, "%#x\n", sdata->chip_id); sdata 417 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = dev_get_drvdata(dev); sdata 419 drivers/input/touchscreen/stmfts.c return sprintf(buf, "%u\n", sdata->chip_ver); sdata 425 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = dev_get_drvdata(dev); sdata 427 drivers/input/touchscreen/stmfts.c return sprintf(buf, "%u\n", sdata->fw_ver); sdata 433 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = dev_get_drvdata(dev); sdata 435 drivers/input/touchscreen/stmfts.c return sprintf(buf, "%#x\n", sdata->config_id); sdata 441 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = dev_get_drvdata(dev); sdata 443 drivers/input/touchscreen/stmfts.c return sprintf(buf, "%u\n", sdata->config_ver); sdata 449 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = dev_get_drvdata(dev); sdata 453 drivers/input/touchscreen/stmfts.c err = i2c_smbus_read_i2c_block_data(sdata->client, STMFTS_READ_STATUS, sdata 464 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = dev_get_drvdata(dev); sdata 466 drivers/input/touchscreen/stmfts.c return sprintf(buf, "%u\n", sdata->hover_enabled); sdata 473 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = dev_get_drvdata(dev); sdata 480 drivers/input/touchscreen/stmfts.c mutex_lock(&sdata->mutex); sdata 482 drivers/input/touchscreen/stmfts.c if (value & sdata->hover_enabled) sdata 485 drivers/input/touchscreen/stmfts.c if (sdata->running) sdata 486 drivers/input/touchscreen/stmfts.c err = i2c_smbus_write_byte(sdata->client, sdata 491 drivers/input/touchscreen/stmfts.c sdata->hover_enabled = !!value; sdata 494 drivers/input/touchscreen/stmfts.c mutex_unlock(&sdata->mutex); sdata 523 drivers/input/touchscreen/stmfts.c static int stmfts_power_on(struct stmfts_data *sdata) sdata 528 drivers/input/touchscreen/stmfts.c err = regulator_bulk_enable(ARRAY_SIZE(sdata->regulators), sdata 529 drivers/input/touchscreen/stmfts.c sdata->regulators); sdata 539 drivers/input/touchscreen/stmfts.c err = i2c_smbus_read_i2c_block_data(sdata->client, STMFTS_READ_INFO, sdata 546 drivers/input/touchscreen/stmfts.c sdata->chip_id = be16_to_cpup((__be16 *)®[6]); sdata 547 drivers/input/touchscreen/stmfts.c sdata->chip_ver = reg[0]; sdata 548 drivers/input/touchscreen/stmfts.c sdata->fw_ver = be16_to_cpup((__be16 *)®[2]); sdata 549 drivers/input/touchscreen/stmfts.c sdata->config_id = reg[4]; sdata 550 drivers/input/touchscreen/stmfts.c sdata->config_ver = reg[5]; sdata 552 drivers/input/touchscreen/stmfts.c enable_irq(sdata->client->irq); sdata 556 drivers/input/touchscreen/stmfts.c err = stmfts_command(sdata, STMFTS_SYSTEM_RESET); sdata 560 drivers/input/touchscreen/stmfts.c err = stmfts_command(sdata, STMFTS_SLEEP_OUT); sdata 565 drivers/input/touchscreen/stmfts.c err = stmfts_command(sdata, STMFTS_MS_CX_TUNING); sdata 567 drivers/input/touchscreen/stmfts.c dev_warn(&sdata->client->dev, sdata 571 drivers/input/touchscreen/stmfts.c err = stmfts_command(sdata, STMFTS_SS_CX_TUNING); sdata 573 drivers/input/touchscreen/stmfts.c dev_warn(&sdata->client->dev, sdata 576 drivers/input/touchscreen/stmfts.c err = stmfts_command(sdata, STMFTS_FULL_FORCE_CALIBRATION); sdata 584 drivers/input/touchscreen/stmfts.c (void) i2c_smbus_write_byte(sdata->client, STMFTS_SLEEP_IN); sdata 591 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = data; sdata 593 drivers/input/touchscreen/stmfts.c disable_irq(sdata->client->irq); sdata 594 drivers/input/touchscreen/stmfts.c regulator_bulk_disable(ARRAY_SIZE(sdata->regulators), sdata 595 drivers/input/touchscreen/stmfts.c sdata->regulators); sdata 601 drivers/input/touchscreen/stmfts.c static int stmfts_enable_led(struct stmfts_data *sdata) sdata 606 drivers/input/touchscreen/stmfts.c sdata->ledvdd = devm_regulator_get(&sdata->client->dev, "ledvdd"); sdata 607 drivers/input/touchscreen/stmfts.c if (IS_ERR(sdata->ledvdd)) sdata 608 drivers/input/touchscreen/stmfts.c return PTR_ERR(sdata->ledvdd); sdata 610 drivers/input/touchscreen/stmfts.c sdata->led_cdev.name = STMFTS_DEV_NAME; sdata 611 drivers/input/touchscreen/stmfts.c sdata->led_cdev.max_brightness = LED_ON; sdata 612 drivers/input/touchscreen/stmfts.c sdata->led_cdev.brightness = LED_OFF; sdata 613 drivers/input/touchscreen/stmfts.c sdata->led_cdev.brightness_set_blocking = stmfts_brightness_set; sdata 614 drivers/input/touchscreen/stmfts.c sdata->led_cdev.brightness_get = stmfts_brightness_get; sdata 616 drivers/input/touchscreen/stmfts.c err = devm_led_classdev_register(&sdata->client->dev, &sdata->led_cdev); sdata 618 drivers/input/touchscreen/stmfts.c devm_regulator_put(sdata->ledvdd); sdata 629 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata; sdata 636 drivers/input/touchscreen/stmfts.c sdata = devm_kzalloc(&client->dev, sizeof(*sdata), GFP_KERNEL); sdata 637 drivers/input/touchscreen/stmfts.c if (!sdata) sdata 640 drivers/input/touchscreen/stmfts.c i2c_set_clientdata(client, sdata); sdata 642 drivers/input/touchscreen/stmfts.c sdata->client = client; sdata 643 drivers/input/touchscreen/stmfts.c mutex_init(&sdata->mutex); sdata 644 drivers/input/touchscreen/stmfts.c init_completion(&sdata->cmd_done); sdata 646 drivers/input/touchscreen/stmfts.c sdata->regulators[STMFTS_REGULATOR_VDD].supply = "vdd"; sdata 647 drivers/input/touchscreen/stmfts.c sdata->regulators[STMFTS_REGULATOR_AVDD].supply = "avdd"; sdata 649 drivers/input/touchscreen/stmfts.c ARRAY_SIZE(sdata->regulators), sdata 650 drivers/input/touchscreen/stmfts.c sdata->regulators); sdata 654 drivers/input/touchscreen/stmfts.c sdata->input = devm_input_allocate_device(&client->dev); sdata 655 drivers/input/touchscreen/stmfts.c if (!sdata->input) sdata 658 drivers/input/touchscreen/stmfts.c sdata->input->name = STMFTS_DEV_NAME; sdata 659 drivers/input/touchscreen/stmfts.c sdata->input->id.bustype = BUS_I2C; sdata 660 drivers/input/touchscreen/stmfts.c sdata->input->open = stmfts_input_open; sdata 661 drivers/input/touchscreen/stmfts.c sdata->input->close = stmfts_input_close; sdata 663 drivers/input/touchscreen/stmfts.c input_set_capability(sdata->input, EV_ABS, ABS_MT_POSITION_X); sdata 664 drivers/input/touchscreen/stmfts.c input_set_capability(sdata->input, EV_ABS, ABS_MT_POSITION_Y); sdata 665 drivers/input/touchscreen/stmfts.c touchscreen_parse_properties(sdata->input, true, &sdata->prop); sdata 667 drivers/input/touchscreen/stmfts.c input_set_abs_params(sdata->input, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); sdata 668 drivers/input/touchscreen/stmfts.c input_set_abs_params(sdata->input, ABS_MT_TOUCH_MINOR, 0, 255, 0, 0); sdata 669 drivers/input/touchscreen/stmfts.c input_set_abs_params(sdata->input, ABS_MT_ORIENTATION, 0, 255, 0, 0); sdata 670 drivers/input/touchscreen/stmfts.c input_set_abs_params(sdata->input, ABS_MT_PRESSURE, 0, 255, 0, 0); sdata 671 drivers/input/touchscreen/stmfts.c input_set_abs_params(sdata->input, ABS_DISTANCE, 0, 255, 0, 0); sdata 673 drivers/input/touchscreen/stmfts.c sdata->use_key = device_property_read_bool(&client->dev, sdata 675 drivers/input/touchscreen/stmfts.c if (sdata->use_key) { sdata 676 drivers/input/touchscreen/stmfts.c input_set_capability(sdata->input, EV_KEY, KEY_MENU); sdata 677 drivers/input/touchscreen/stmfts.c input_set_capability(sdata->input, EV_KEY, KEY_BACK); sdata 680 drivers/input/touchscreen/stmfts.c err = input_mt_init_slots(sdata->input, sdata 685 drivers/input/touchscreen/stmfts.c input_set_drvdata(sdata->input, sdata); sdata 698 drivers/input/touchscreen/stmfts.c "stmfts_irq", sdata); sdata 704 drivers/input/touchscreen/stmfts.c err = stmfts_power_on(sdata); sdata 708 drivers/input/touchscreen/stmfts.c err = devm_add_action_or_reset(&client->dev, stmfts_power_off, sdata); sdata 712 drivers/input/touchscreen/stmfts.c err = input_register_device(sdata->input); sdata 716 drivers/input/touchscreen/stmfts.c if (sdata->use_key) { sdata 717 drivers/input/touchscreen/stmfts.c err = stmfts_enable_led(sdata); sdata 726 drivers/input/touchscreen/stmfts.c sdata->ledvdd = NULL; sdata 749 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = dev_get_drvdata(dev); sdata 752 drivers/input/touchscreen/stmfts.c ret = i2c_smbus_write_byte(sdata->client, STMFTS_SLEEP_IN); sdata 761 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = dev_get_drvdata(dev); sdata 764 drivers/input/touchscreen/stmfts.c ret = i2c_smbus_write_byte(sdata->client, STMFTS_SLEEP_OUT); sdata 773 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = dev_get_drvdata(dev); sdata 775 drivers/input/touchscreen/stmfts.c stmfts_power_off(sdata); sdata 782 drivers/input/touchscreen/stmfts.c struct stmfts_data *sdata = dev_get_drvdata(dev); sdata 784 drivers/input/touchscreen/stmfts.c return stmfts_power_on(sdata); sdata 49 drivers/media/pci/cx18/cx18-vbi.c struct v4l2_sliced_vbi_data *sdata = cx->vbi.sliced_data + i; sdata 52 drivers/media/pci/cx18/cx18-vbi.c if (sdata->id == 0) sdata 55 drivers/media/pci/cx18/cx18-vbi.c l = sdata->line - 6; sdata 56 drivers/media/pci/cx18/cx18-vbi.c f = sdata->field; sdata 63 drivers/media/pci/cx18/cx18-vbi.c dst[sd + 12 + line * 43] = cx18_service2vbi(sdata->id); sdata 64 drivers/media/pci/cx18/cx18-vbi.c memcpy(dst + sd + 12 + line * 43 + 1, sdata->data, 42); sdata 1253 drivers/platform/x86/samsung-laptop.c struct sabi_data *sdata = &samsung->debug.data; sdata 1258 drivers/platform/x86/samsung-laptop.c sdata->d0, sdata->d1, sdata->d2, sdata->d3); sdata 1260 drivers/platform/x86/samsung-laptop.c ret = sabi_command(samsung, samsung->debug.command, sdata, sdata); sdata 1269 drivers/platform/x86/samsung-laptop.c sdata->d0, sdata->d1, sdata->d2, sdata->d3); sdata 646 drivers/s390/cio/device_pgid.c struct stlck_data *sdata = data; sdata 648 drivers/s390/cio/device_pgid.c sdata->rc = rc; sdata 649 drivers/s390/cio/device_pgid.c complete(&sdata->done); sdata 2233 drivers/scsi/gdth.c cmdp->u.raw64.sdata = (u64)-1; sdata 2242 drivers/scsi/gdth.c cmdp->u.raw.sdata = 0xffffffff; sdata 2260 drivers/scsi/gdth.c cmdp->u.raw64.sdata,cmdp->u.raw64.sg_ranz, sdata 2268 drivers/scsi/gdth.c cmdp->u.raw.sdata,cmdp->u.raw.sg_ranz, sdata 3602 drivers/scsi/gdth.c gen->command.u.raw64.sdata = (u64)-1; sdata 3608 drivers/scsi/gdth.c gen->command.u.raw64.sdata = paddr; sdata 3615 drivers/scsi/gdth.c gen->command.u.raw.sdata = 0xffffffff; sdata 3621 drivers/scsi/gdth.c gen->command.u.raw.sdata = paddr; sdata 87 drivers/scsi/gdth_ioctl.h u32 sdata; /* dest. addr. (if s/g: -1) */ sdata 106 drivers/scsi/gdth_ioctl.h u64 sdata; /* dest. addr. (if s/g: -1) */ sdata 37 drivers/thermal/st/st_thermal_memmap.c static irqreturn_t st_mmap_thermal_trip_handler(int irq, void *sdata) sdata 39 drivers/thermal/st/st_thermal_memmap.c struct st_thermal_sensor *sensor = sdata; sdata 106 drivers/thermal/st/stm_thermal.c static irqreturn_t stm_thermal_alarm_irq(int irq, void *sdata) sdata 108 drivers/thermal/st/stm_thermal.c struct stm_thermal_sensor *sensor = sdata; sdata 116 drivers/thermal/st/stm_thermal.c static irqreturn_t stm_thermal_alarm_irq_thread(int irq, void *sdata) sdata 119 drivers/thermal/st/stm_thermal.c struct stm_thermal_sensor *sensor = sdata; sdata 2376 drivers/tty/serial/fsl_lpuart.c const struct lpuart_soc_data *sdata = of_id->data; sdata 2391 drivers/tty/serial/fsl_lpuart.c sport->port.membase += sdata->reg_off; sdata 2395 drivers/tty/serial/fsl_lpuart.c sport->devtype = sdata->devtype; sdata 2400 drivers/tty/serial/fsl_lpuart.c sport->port.iotype = sdata->iotype; sdata 120 fs/udf/partition.c struct udf_sparing_data *sdata; sdata 123 fs/udf/partition.c sdata = &map->s_type_specific.s_sparing; sdata 124 fs/udf/partition.c packet = (block + offset) & ~(sdata->s_packet_len - 1); sdata 127 fs/udf/partition.c if (sdata->s_spar_map[i] != NULL) { sdata 129 fs/udf/partition.c sdata->s_spar_map[i]->b_data; sdata 143 fs/udf/partition.c (sdata->s_packet_len - 1)); sdata 154 fs/udf/partition.c struct udf_sparing_data *sdata; sdata 169 fs/udf/partition.c sdata = &map->s_type_specific.s_sparing; sdata 171 fs/udf/partition.c ~(sdata->s_packet_len - 1); sdata 174 fs/udf/partition.c if (sdata->s_spar_map[j] != NULL) { sdata 176 fs/udf/partition.c sdata->s_spar_map[j]->b_data; sdata 194 fs/udf/partition.c bh = sdata->s_spar_map[j]; sdata 213 fs/udf/partition.c (sdata->s_packet_len - 1)); sdata 221 fs/udf/partition.c (sdata->s_packet_len - 1)); sdata 236 fs/udf/partition.c bh = sdata->s_spar_map[j]; sdata 259 fs/udf/partition.c (sdata->s_packet_len - 1)); sdata 1337 fs/udf/super.c struct udf_sparing_data *sdata = &map->s_type_specific.s_sparing; sdata 1342 fs/udf/super.c sdata->s_packet_len = le16_to_cpu(spm->packetLength); sdata 1343 fs/udf/super.c if (!is_power_of_2(sdata->s_packet_len)) { sdata 1346 fs/udf/super.c (unsigned)sdata->s_packet_len); sdata 1372 fs/udf/super.c sdata->s_spar_map[i] = bh; sdata 72 include/asm-generic/vmlinux.lds.h #define SDATA_MAIN .sdata .sdata.[0-9a-zA-Z_]* sdata 79 include/asm-generic/vmlinux.lds.h #define SDATA_MAIN .sdata sdata 550 include/net/9p/9p.h u8 *sdata; sdata 164 include/trace/events/9p.h memcpy(__entry->line, pdu->sdata, P9_PROTO_DUMP_SZ); sdata 229 net/9p/client.c fc->sdata = kmem_cache_alloc(c->fcall_cache, GFP_NOFS); sdata 232 net/9p/client.c fc->sdata = kmalloc(alloc_msize, GFP_NOFS); sdata 235 net/9p/client.c if (!fc->sdata) sdata 246 net/9p/client.c if (unlikely(!fc->sdata)) sdata 250 net/9p/client.c kmem_cache_free(fc->cache, fc->sdata); sdata 252 net/9p/client.c kfree(fc->sdata); sdata 600 net/9p/client.c ename = &req->rc.sdata[req->rc.offset]; sdata 49 net/9p/protocol.c memcpy(data, &pdu->sdata[pdu->offset], len); sdata 57 net/9p/protocol.c memcpy(&pdu->sdata[pdu->size], data, len); sdata 67 net/9p/protocol.c if (!copy_from_iter_full(&pdu->sdata[pdu->size], len, &i)) sdata 223 net/9p/protocol.c *data = &pdu->sdata[pdu->offset]; sdata 552 net/9p/protocol.c fake_pdu.sdata = buf; sdata 603 net/9p/protocol.c fake_pdu.sdata = buf; sdata 288 net/9p/trans_fd.c if (!m->rc.sdata) { sdata 289 net/9p/trans_fd.c m->rc.sdata = m->tmp_buf; sdata 298 net/9p/trans_fd.c err = p9_fd_read(m->client, m->rc.sdata + m->rc.offset, sdata 342 net/9p/trans_fd.c if (!m->rreq->rc.sdata) { sdata 350 net/9p/trans_fd.c m->rc.sdata = m->rreq->rc.sdata; sdata 351 net/9p/trans_fd.c memcpy(m->rc.sdata, m->tmp_buf, m->rc.capacity); sdata 374 net/9p/trans_fd.c m->rc.sdata = NULL; sdata 464 net/9p/trans_fd.c m->wbuf = req->tc.sdata; sdata 318 net/9p/trans_rdma.c if (unlikely(req->rc.sdata)) { sdata 324 net/9p/trans_rdma.c req->rc.sdata = c->rc.sdata; sdata 390 net/9p/trans_rdma.c c->rc.sdata, client->msize, sdata 434 net/9p/trans_rdma.c req->rc.sdata = NULL; sdata 448 net/9p/trans_rdma.c rpl_context->rc.sdata = req->rc.sdata; sdata 468 net/9p/trans_rdma.c req->rc.sdata = NULL; sdata 480 net/9p/trans_rdma.c c->req->tc.sdata, c->req->tc.size, sdata 268 net/9p/trans_virtio.c VIRTQUEUE_NUM, req->tc.sdata, req->tc.size); sdata 273 net/9p/trans_virtio.c VIRTQUEUE_NUM, req->rc.sdata, req->rc.capacity); sdata 414 net/9p/trans_virtio.c memcpy(&req->tc.sdata[req->tc.size - 4], &v, 4); sdata 422 net/9p/trans_virtio.c memcpy(&req->tc.sdata[0], &sz, sizeof(sz)); sdata 433 net/9p/trans_virtio.c memcpy(&req->tc.sdata[req->tc.size - 4], &v, 4); sdata 445 net/9p/trans_virtio.c VIRTQUEUE_NUM, req->tc.sdata, req->tc.size); sdata 464 net/9p/trans_virtio.c VIRTQUEUE_NUM, req->rc.sdata, in_hdr_len); sdata 179 net/9p/trans_xen.c xen_9pfs_write_packet(ring->data.out, p9_req->tc.sdata, size, sdata 238 net/9p/trans_xen.c xen_9pfs_read_packet(req->rc.sdata, ring->data.in, h.size, sdata 183 net/bluetooth/hidp/core.c signed char *sdata = skb->data + 1; sdata 216 net/bluetooth/hidp/core.c input_report_key(dev, BTN_LEFT, sdata[0] & 0x01); sdata 217 net/bluetooth/hidp/core.c input_report_key(dev, BTN_RIGHT, sdata[0] & 0x02); sdata 218 net/bluetooth/hidp/core.c input_report_key(dev, BTN_MIDDLE, sdata[0] & 0x04); sdata 219 net/bluetooth/hidp/core.c input_report_key(dev, BTN_SIDE, sdata[0] & 0x08); sdata 220 net/bluetooth/hidp/core.c input_report_key(dev, BTN_EXTRA, sdata[0] & 0x10); sdata 222 net/bluetooth/hidp/core.c input_report_rel(dev, REL_X, sdata[1]); sdata 223 net/bluetooth/hidp/core.c input_report_rel(dev, REL_Y, sdata[2]); sdata 226 net/bluetooth/hidp/core.c input_report_rel(dev, REL_WHEEL, sdata[3]); sdata 76 net/core/bpf_sk_storage.c struct bpf_sk_storage_data sdata ____cacheline_aligned; sdata 79 net/core/bpf_sk_storage.c #define SELEM(_SDATA) container_of((_SDATA), struct bpf_sk_storage_elem, sdata) sdata 80 net/core/bpf_sk_storage.c #define SDATA(_SELEM) (&(_SELEM)->sdata) sdata 265 net/core/bpf_sk_storage.c struct bpf_sk_storage_data *sdata; sdata 269 net/core/bpf_sk_storage.c sdata = rcu_dereference(sk_storage->cache[smap->cache_idx]); sdata 270 net/core/bpf_sk_storage.c if (sdata && rcu_access_pointer(sdata->smap) == smap) sdata 271 net/core/bpf_sk_storage.c return sdata; sdata 281 net/core/bpf_sk_storage.c sdata = SDATA(selem); sdata 291 net/core/bpf_sk_storage.c sdata); sdata 295 net/core/bpf_sk_storage.c return sdata; sdata 503 net/core/bpf_sk_storage.c struct bpf_sk_storage_data *sdata; sdata 505 net/core/bpf_sk_storage.c sdata = sk_storage_lookup(sk, map, false); sdata 506 net/core/bpf_sk_storage.c if (!sdata) sdata 509 net/core/bpf_sk_storage.c selem_unlink(SELEM(sdata)); sdata 703 net/core/bpf_sk_storage.c struct bpf_sk_storage_data *sdata; sdata 710 net/core/bpf_sk_storage.c sdata = sk_storage_lookup(sock->sk, map, true); sdata 712 net/core/bpf_sk_storage.c return sdata ? sdata->data : NULL; sdata 721 net/core/bpf_sk_storage.c struct bpf_sk_storage_data *sdata; sdata 728 net/core/bpf_sk_storage.c sdata = sk_storage_update(sock->sk, map, value, map_flags); sdata 730 net/core/bpf_sk_storage.c return PTR_ERR_OR_ZERO(sdata); sdata 844 net/core/bpf_sk_storage.c struct bpf_sk_storage_data *sdata; sdata 849 net/core/bpf_sk_storage.c sdata = sk_storage_lookup(sk, map, true); sdata 850 net/core/bpf_sk_storage.c if (sdata) sdata 851 net/core/bpf_sk_storage.c return (unsigned long)sdata->data; sdata 860 net/core/bpf_sk_storage.c sdata = sk_storage_update(sk, map, value, BPF_NOEXIST); sdata 865 net/core/bpf_sk_storage.c return IS_ERR(sdata) ? sdata 866 net/core/bpf_sk_storage.c (unsigned long)NULL : (unsigned long)sdata->data; sdata 86 net/ipv6/seg6.c struct seg6_pernet_data *sdata; sdata 94 net/ipv6/seg6.c sdata = seg6_pernet(net); sdata 111 net/ipv6/seg6.c mutex_lock(&sdata->lock); sdata 152 net/ipv6/seg6.c mutex_unlock(&sdata->lock); sdata 169 net/ipv6/seg6.c struct seg6_pernet_data *sdata; sdata 171 net/ipv6/seg6.c sdata = seg6_pernet(net); sdata 181 net/ipv6/seg6.c mutex_lock(&sdata->lock); sdata 183 net/ipv6/seg6.c t_old = sdata->tun_src; sdata 184 net/ipv6/seg6.c rcu_assign_pointer(sdata->tun_src, t_new); sdata 186 net/ipv6/seg6.c mutex_unlock(&sdata->lock); sdata 266 net/ipv6/seg6.c struct seg6_pernet_data *sdata; sdata 269 net/ipv6/seg6.c sdata = seg6_pernet(net); sdata 280 net/ipv6/seg6.c rhashtable_walk_enter(&sdata->hmac_infos, iter); sdata 353 net/ipv6/seg6.c struct seg6_pernet_data *sdata; sdata 355 net/ipv6/seg6.c sdata = kzalloc(sizeof(*sdata), GFP_KERNEL); sdata 356 net/ipv6/seg6.c if (!sdata) sdata 359 net/ipv6/seg6.c mutex_init(&sdata->lock); sdata 361 net/ipv6/seg6.c sdata->tun_src = kzalloc(sizeof(*sdata->tun_src), GFP_KERNEL); sdata 362 net/ipv6/seg6.c if (!sdata->tun_src) { sdata 363 net/ipv6/seg6.c kfree(sdata); sdata 367 net/ipv6/seg6.c net->ipv6.seg6_data = sdata; sdata 378 net/ipv6/seg6.c struct seg6_pernet_data *sdata = seg6_pernet(net); sdata 384 net/ipv6/seg6.c kfree(sdata->tun_src); sdata 385 net/ipv6/seg6.c kfree(sdata); sdata 284 net/ipv6/seg6_hmac.c struct seg6_pernet_data *sdata = seg6_pernet(net); sdata 287 net/ipv6/seg6_hmac.c hinfo = rhashtable_lookup_fast(&sdata->hmac_infos, &key, rht_params); sdata 295 net/ipv6/seg6_hmac.c struct seg6_pernet_data *sdata = seg6_pernet(net); sdata 298 net/ipv6/seg6_hmac.c err = rhashtable_lookup_insert_fast(&sdata->hmac_infos, &hinfo->node, sdata 307 net/ipv6/seg6_hmac.c struct seg6_pernet_data *sdata = seg6_pernet(net); sdata 311 net/ipv6/seg6_hmac.c hinfo = rhashtable_lookup_fast(&sdata->hmac_infos, &key, rht_params); sdata 315 net/ipv6/seg6_hmac.c err = rhashtable_remove_fast(&sdata->hmac_infos, &hinfo->node, sdata 408 net/ipv6/seg6_hmac.c struct seg6_pernet_data *sdata = seg6_pernet(net); sdata 410 net/ipv6/seg6_hmac.c rhashtable_init(&sdata->hmac_infos, &rht_params); sdata 441 net/ipv6/seg6_hmac.c struct seg6_pernet_data *sdata = seg6_pernet(net); sdata 443 net/ipv6/seg6_hmac.c rhashtable_free_and_destroy(&sdata->hmac_infos, seg6_free_hi, NULL); sdata 72 net/ipv6/seg6_iptunnel.c struct seg6_pernet_data *sdata = seg6_pernet(net); sdata 77 net/ipv6/seg6_iptunnel.c tun_src = rcu_dereference(sdata->tun_src); sdata 83 net/mac80211/agg-rx.c ht_dbg(sta->sdata, sdata 89 net/mac80211/agg-rx.c if (drv_ampdu_action(local, sta->sdata, ¶ms)) sdata 90 net/mac80211/agg-rx.c sdata_info(sta->sdata, sdata 96 net/mac80211/agg-rx.c ieee80211_send_delba(sta->sdata, sta->sta.addr, sdata 128 net/mac80211/agg-rx.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 133 net/mac80211/agg-rx.c sta = sta_info_get_bss(sdata, addr); sdata 165 net/mac80211/agg-rx.c ht_dbg(sta->sdata, "RX session timer expired on %pM tid %d\n", sdata 181 net/mac80211/agg-rx.c static void ieee80211_add_addbaext(struct ieee80211_sub_if_data *sdata, sdata 191 net/mac80211/agg-rx.c sband = ieee80211_get_sband(sdata); sdata 194 net/mac80211/agg-rx.c he_cap = ieee80211_get_he_iftype_cap(sband, sdata->vif.type); sdata 219 net/mac80211/agg-rx.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 220 net/mac80211/agg-rx.c struct ieee80211_local *local = sdata->local; sdata 235 net/mac80211/agg-rx.c memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); sdata 236 net/mac80211/agg-rx.c if (sdata->vif.type == NL80211_IFTYPE_AP || sdata 237 net/mac80211/agg-rx.c sdata->vif.type == NL80211_IFTYPE_AP_VLAN || sdata 238 net/mac80211/agg-rx.c sdata->vif.type == NL80211_IFTYPE_MESH_POINT) sdata 239 net/mac80211/agg-rx.c memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); sdata 240 net/mac80211/agg-rx.c else if (sdata->vif.type == NL80211_IFTYPE_STATION) sdata 241 net/mac80211/agg-rx.c memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); sdata 242 net/mac80211/agg-rx.c else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) sdata 243 net/mac80211/agg-rx.c memcpy(mgmt->bssid, sdata->u.ibss.bssid, ETH_ALEN); sdata 263 net/mac80211/agg-rx.c ieee80211_add_addbaext(sdata, skb, addbaext); sdata 265 net/mac80211/agg-rx.c ieee80211_tx_skb(sdata, skb); sdata 274 net/mac80211/agg-rx.c struct ieee80211_local *local = sta->sdata->local; sdata 289 net/mac80211/agg-rx.c ht_dbg(sta->sdata, sdata 296 net/mac80211/agg-rx.c ht_dbg(sta->sdata, sdata 304 net/mac80211/agg-rx.c ht_dbg(sta->sdata, sdata 323 net/mac80211/agg-rx.c ht_dbg_ratelimited(sta->sdata, sdata 337 net/mac80211/agg-rx.c ht_dbg(sta->sdata, "AddBA Req buf_size=%d for %pM\n", sdata 347 net/mac80211/agg-rx.c ht_dbg_ratelimited(sta->sdata, sdata 365 net/mac80211/agg-rx.c ht_dbg_ratelimited(sta->sdata, sdata 376 net/mac80211/agg-rx.c ret = drv_ampdu_action(local, sta->sdata, ¶ms); sdata 377 net/mac80211/agg-rx.c ht_dbg(sta->sdata, sdata 415 net/mac80211/agg-rx.c ret = drv_ampdu_action(local, sta->sdata, ¶ms); sdata 416 net/mac80211/agg-rx.c ht_dbg(sta->sdata, "Rx A-MPDU request on %pM tid %d result %d\n", sdata 512 net/mac80211/agg-rx.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 513 net/mac80211/agg-rx.c struct ieee80211_local *local = sdata->local; sdata 517 net/mac80211/agg-rx.c sta = sta_info_get_bss(sdata, addr); sdata 531 net/mac80211/agg-rx.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 532 net/mac80211/agg-rx.c struct ieee80211_local *local = sdata->local; sdata 536 net/mac80211/agg-rx.c sta = sta_info_get_bss(sdata, addr); sdata 61 net/mac80211/agg-tx.c static void ieee80211_send_addba_request(struct ieee80211_sub_if_data *sdata, sdata 66 net/mac80211/agg-tx.c struct ieee80211_local *local = sdata->local; sdata 79 net/mac80211/agg-tx.c memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); sdata 80 net/mac80211/agg-tx.c if (sdata->vif.type == NL80211_IFTYPE_AP || sdata 81 net/mac80211/agg-tx.c sdata->vif.type == NL80211_IFTYPE_AP_VLAN || sdata 82 net/mac80211/agg-tx.c sdata->vif.type == NL80211_IFTYPE_MESH_POINT) sdata 83 net/mac80211/agg-tx.c memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); sdata 84 net/mac80211/agg-tx.c else if (sdata->vif.type == NL80211_IFTYPE_STATION) sdata 85 net/mac80211/agg-tx.c memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); sdata 86 net/mac80211/agg-tx.c else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) sdata 87 net/mac80211/agg-tx.c memcpy(mgmt->bssid, sdata->u.ibss.bssid, ETH_ALEN); sdata 109 net/mac80211/agg-tx.c ieee80211_tx_skb(sdata, skb); sdata 114 net/mac80211/agg-tx.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 115 net/mac80211/agg-tx.c struct ieee80211_local *local = sdata->local; sdata 129 net/mac80211/agg-tx.c memcpy(bar->ta, sdata->vif.addr, ETH_ALEN); sdata 138 net/mac80211/agg-tx.c ieee80211_tx_skb_tid(sdata, skb, tid); sdata 162 net/mac80211/agg-tx.c ieee80211_stop_queue_agg(struct ieee80211_sub_if_data *sdata, int tid) sdata 164 net/mac80211/agg-tx.c int queue = sdata->vif.hw_queue[ieee80211_ac_from_tid(tid)]; sdata 168 net/mac80211/agg-tx.c if (atomic_inc_return(&sdata->local->agg_queue_stop[queue]) == 1) sdata 170 net/mac80211/agg-tx.c &sdata->local->hw, queue, sdata 177 net/mac80211/agg-tx.c ieee80211_wake_queue_agg(struct ieee80211_sub_if_data *sdata, int tid) sdata 179 net/mac80211/agg-tx.c int queue = sdata->vif.hw_queue[ieee80211_ac_from_tid(tid)]; sdata 181 net/mac80211/agg-tx.c if (atomic_dec_return(&sdata->local->agg_queue_stop[queue]) == 0) sdata 183 net/mac80211/agg-tx.c &sdata->local->hw, queue, sdata 193 net/mac80211/agg-tx.c struct ieee80211_sub_if_data *sdata; sdata 201 net/mac80211/agg-tx.c sdata = vif_to_sdata(txq->vif); sdata 202 net/mac80211/agg-tx.c fq = &sdata->local->fq; sdata 229 net/mac80211/agg-tx.c schedule_and_wake_txq(sta->sdata->local, txqi); sdata 239 net/mac80211/agg-tx.c ieee80211_agg_splice_packets(struct ieee80211_sub_if_data *sdata, sdata 242 net/mac80211/agg-tx.c struct ieee80211_local *local = sdata->local; sdata 243 net/mac80211/agg-tx.c int queue = sdata->vif.hw_queue[ieee80211_ac_from_tid(tid)]; sdata 246 net/mac80211/agg-tx.c ieee80211_stop_queue_agg(sdata, tid); sdata 263 net/mac80211/agg-tx.c ieee80211_agg_splice_finish(struct ieee80211_sub_if_data *sdata, u16 tid) sdata 265 net/mac80211/agg-tx.c ieee80211_wake_queue_agg(sdata, tid); sdata 287 net/mac80211/agg-tx.c ieee80211_agg_splice_packets(sta->sdata, tid_tx, tid); sdata 292 net/mac80211/agg-tx.c ieee80211_agg_splice_finish(sta->sdata, tid); sdata 351 net/mac80211/agg-tx.c ret = drv_ampdu_action(local, sta->sdata, ¶ms); sdata 370 net/mac80211/agg-tx.c ht_dbg(sta->sdata, "Tx BA session stop requested for %pM tid %u\n", sdata 403 net/mac80211/agg-tx.c ret = drv_ampdu_action(local, sta->sdata, ¶ms); sdata 439 net/mac80211/agg-tx.c ht_dbg(sta->sdata, sdata 445 net/mac80211/agg-tx.c ht_dbg(sta->sdata, "addBA response timer expired on %pM tid %d\n", sdata 455 net/mac80211/agg-tx.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 487 net/mac80211/agg-tx.c ret = drv_ampdu_action(local, sdata, ¶ms); sdata 489 net/mac80211/agg-tx.c ht_dbg(sdata, sdata 493 net/mac80211/agg-tx.c ieee80211_agg_splice_packets(sdata, tid_tx, tid); sdata 495 net/mac80211/agg-tx.c ieee80211_agg_splice_finish(sdata, tid); sdata 506 net/mac80211/agg-tx.c ht_dbg(sdata, "activated addBA response timer on %pM tid %d\n", sdata 527 net/mac80211/agg-tx.c ieee80211_send_addba_request(sdata, sta->sta.addr, tid, sdata 553 net/mac80211/agg-tx.c ht_dbg(sta->sdata, "tx session timer expired on %pM tid %d\n", sdata 563 net/mac80211/agg-tx.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 564 net/mac80211/agg-tx.c struct ieee80211_local *local = sdata->local; sdata 588 net/mac80211/agg-tx.c ht_dbg(sdata, "Open BA session requested for %pM tid %u\n", sdata 591 net/mac80211/agg-tx.c if (sdata->vif.type != NL80211_IFTYPE_STATION && sdata 592 net/mac80211/agg-tx.c sdata->vif.type != NL80211_IFTYPE_MESH_POINT && sdata 593 net/mac80211/agg-tx.c sdata->vif.type != NL80211_IFTYPE_AP_VLAN && sdata 594 net/mac80211/agg-tx.c sdata->vif.type != NL80211_IFTYPE_AP && sdata 595 net/mac80211/agg-tx.c sdata->vif.type != NL80211_IFTYPE_ADHOC) sdata 599 net/mac80211/agg-tx.c ht_dbg(sdata, sdata 617 net/mac80211/agg-tx.c if (sta->sdata->vif.type == NL80211_IFTYPE_ADHOC && sdata 619 net/mac80211/agg-tx.c ht_dbg(sdata, sdata 641 net/mac80211/agg-tx.c ht_dbg(sdata, sdata 651 net/mac80211/agg-tx.c ht_dbg(sdata, sdata 716 net/mac80211/agg-tx.c ht_dbg(sta->sdata, "Aggregation is on for %pM tid %d\n", sdata 719 net/mac80211/agg-tx.c drv_ampdu_action(local, sta->sdata, ¶ms); sdata 727 net/mac80211/agg-tx.c ieee80211_agg_splice_packets(sta->sdata, tid_tx, tid); sdata 734 net/mac80211/agg-tx.c ieee80211_agg_splice_finish(sta->sdata, tid); sdata 744 net/mac80211/agg-tx.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 745 net/mac80211/agg-tx.c struct ieee80211_local *local = sdata->local; sdata 755 net/mac80211/agg-tx.c ieee80211_lookup_tid_tx(struct ieee80211_sub_if_data *sdata, sdata 761 net/mac80211/agg-tx.c ht_dbg(sdata, "Bad TID value: tid = %d (>= %d)\n", sdata 766 net/mac80211/agg-tx.c *sta = sta_info_get_bss(sdata, ra); sdata 768 net/mac80211/agg-tx.c ht_dbg(sdata, "Could not find station: %pM\n", ra); sdata 775 net/mac80211/agg-tx.c ht_dbg(sdata, "addBA was not requested!\n"); sdata 783 net/mac80211/agg-tx.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 784 net/mac80211/agg-tx.c struct ieee80211_local *local = sdata->local; sdata 788 net/mac80211/agg-tx.c trace_api_start_tx_ba_cb(sdata, ra, tid); sdata 791 net/mac80211/agg-tx.c tid_tx = ieee80211_lookup_tid_tx(sdata, ra, tid, &sta); sdata 819 net/mac80211/agg-tx.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 820 net/mac80211/agg-tx.c struct ieee80211_local *local = sdata->local; sdata 861 net/mac80211/agg-tx.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 864 net/mac80211/agg-tx.c ht_dbg(sdata, "Stopping Tx BA session for %pM tid %d\n", sdata 870 net/mac80211/agg-tx.c ht_dbg(sdata, sdata 885 net/mac80211/agg-tx.c ieee80211_send_delba(sdata, sta->sta.addr, tid, sdata 892 net/mac80211/agg-tx.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 893 net/mac80211/agg-tx.c struct ieee80211_local *local = sdata->local; sdata 897 net/mac80211/agg-tx.c trace_api_stop_tx_ba_cb(sdata, ra, tid); sdata 900 net/mac80211/agg-tx.c tid_tx = ieee80211_lookup_tid_tx(sdata, ra, tid, &sta); sdata 939 net/mac80211/agg-tx.c ht_dbg(sta->sdata, "wrong addBA response token, %pM tid %d\n", sdata 946 net/mac80211/agg-tx.c ht_dbg(sta->sdata, "switched off addBA timer for %pM tid %d\n", sdata 956 net/mac80211/agg-tx.c ht_dbg(sta->sdata, sdata 27 net/mac80211/cfg.c static void ieee80211_set_mu_mimo_follow(struct ieee80211_sub_if_data *sdata, sdata 38 net/mac80211/cfg.c memcpy(sdata->vif.bss_conf.mu_group.membership, sdata 40 net/mac80211/cfg.c memcpy(sdata->vif.bss_conf.mu_group.position, sdata 43 net/mac80211/cfg.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_MU_GROUPS); sdata 53 net/mac80211/cfg.c ether_addr_copy(sdata->u.mntr.mu_follow_addr, sdata 57 net/mac80211/cfg.c sdata->vif.mu_mimo_owner = mu_mimo_groups || mu_mimo_follow; sdata 60 net/mac80211/cfg.c static int ieee80211_set_mon_options(struct ieee80211_sub_if_data *sdata, sdata 63 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 67 net/mac80211/cfg.c if (params->flags && ieee80211_sdata_running(sdata)) { sdata 79 net/mac80211/cfg.c if ((params->flags & mask) != (sdata->u.mntr.flags & mask)) sdata 96 net/mac80211/cfg.c if (ieee80211_sdata_running(sdata)) { sdata 97 net/mac80211/cfg.c ieee80211_adjust_monitor_flags(sdata, -1); sdata 98 net/mac80211/cfg.c sdata->u.mntr.flags = params->flags; sdata 99 net/mac80211/cfg.c ieee80211_adjust_monitor_flags(sdata, 1); sdata 108 net/mac80211/cfg.c sdata->u.mntr.flags = params->flags; sdata 123 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 130 net/mac80211/cfg.c sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 133 net/mac80211/cfg.c err = ieee80211_set_mon_options(sdata, params); sdata 135 net/mac80211/cfg.c ieee80211_if_remove(sdata); sdata 155 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 158 net/mac80211/cfg.c ret = ieee80211_if_change_type(sdata, type); sdata 163 net/mac80211/cfg.c RCU_INIT_POINTER(sdata->u.vlan.sta, NULL); sdata 164 net/mac80211/cfg.c ieee80211_check_fast_rx_iface(sdata); sdata 166 net/mac80211/cfg.c sdata->u.mgd.use_4addr = params->use_4addr; sdata 169 net/mac80211/cfg.c if (sdata->vif.type == NL80211_IFTYPE_MONITOR) { sdata 170 net/mac80211/cfg.c ret = ieee80211_set_mon_options(sdata, params); sdata 181 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 184 net/mac80211/cfg.c mutex_lock(&sdata->local->chanctx_mtx); sdata 185 net/mac80211/cfg.c ret = ieee80211_check_combinations(sdata, NULL, 0, 0); sdata 186 net/mac80211/cfg.c mutex_unlock(&sdata->local->chanctx_mtx); sdata 203 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 206 net/mac80211/cfg.c mutex_lock(&sdata->local->chanctx_mtx); sdata 207 net/mac80211/cfg.c ret = ieee80211_check_combinations(sdata, NULL, 0, 0); sdata 208 net/mac80211/cfg.c mutex_unlock(&sdata->local->chanctx_mtx); sdata 216 net/mac80211/cfg.c ret = drv_start_nan(sdata->local, sdata, conf); sdata 218 net/mac80211/cfg.c ieee80211_sdata_stop(sdata); sdata 220 net/mac80211/cfg.c sdata->u.nan.conf = *conf; sdata 228 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 230 net/mac80211/cfg.c drv_stop_nan(sdata->local, sdata); sdata 231 net/mac80211/cfg.c ieee80211_sdata_stop(sdata); sdata 239 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 243 net/mac80211/cfg.c if (sdata->vif.type != NL80211_IFTYPE_NAN) sdata 246 net/mac80211/cfg.c if (!ieee80211_sdata_running(sdata)) sdata 249 net/mac80211/cfg.c new_conf = sdata->u.nan.conf; sdata 257 net/mac80211/cfg.c ret = drv_nan_change_conf(sdata->local, sdata, &new_conf, changes); sdata 259 net/mac80211/cfg.c sdata->u.nan.conf = new_conf; sdata 268 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 271 net/mac80211/cfg.c if (sdata->vif.type != NL80211_IFTYPE_NAN) sdata 274 net/mac80211/cfg.c if (!ieee80211_sdata_running(sdata)) sdata 277 net/mac80211/cfg.c spin_lock_bh(&sdata->u.nan.func_lock); sdata 279 net/mac80211/cfg.c ret = idr_alloc(&sdata->u.nan.function_inst_ids, sdata 280 net/mac80211/cfg.c nan_func, 1, sdata->local->hw.max_nan_de_entries + 1, sdata 282 net/mac80211/cfg.c spin_unlock_bh(&sdata->u.nan.func_lock); sdata 291 net/mac80211/cfg.c ret = drv_add_nan_func(sdata->local, sdata, nan_func); sdata 293 net/mac80211/cfg.c spin_lock_bh(&sdata->u.nan.func_lock); sdata 294 net/mac80211/cfg.c idr_remove(&sdata->u.nan.function_inst_ids, sdata 296 net/mac80211/cfg.c spin_unlock_bh(&sdata->u.nan.func_lock); sdata 303 net/mac80211/cfg.c ieee80211_find_nan_func_by_cookie(struct ieee80211_sub_if_data *sdata, sdata 309 net/mac80211/cfg.c lockdep_assert_held(&sdata->u.nan.func_lock); sdata 311 net/mac80211/cfg.c idr_for_each_entry(&sdata->u.nan.function_inst_ids, func, id) { sdata 322 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 326 net/mac80211/cfg.c if (sdata->vif.type != NL80211_IFTYPE_NAN || sdata 327 net/mac80211/cfg.c !ieee80211_sdata_running(sdata)) sdata 330 net/mac80211/cfg.c spin_lock_bh(&sdata->u.nan.func_lock); sdata 332 net/mac80211/cfg.c func = ieee80211_find_nan_func_by_cookie(sdata, cookie); sdata 336 net/mac80211/cfg.c spin_unlock_bh(&sdata->u.nan.func_lock); sdata 339 net/mac80211/cfg.c drv_del_nan_func(sdata->local, sdata, instance_id); sdata 346 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 348 net/mac80211/cfg.c sdata->noack_map = noack_map; sdata 350 net/mac80211/cfg.c ieee80211_check_fast_xmit_iface(sdata); sdata 355 net/mac80211/cfg.c static int ieee80211_set_tx(struct ieee80211_sub_if_data *sdata, sdata 358 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 367 net/mac80211/cfg.c sta = sta_info_get_bss(sdata, mac_addr); sdata 389 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 390 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 396 net/mac80211/cfg.c if (!ieee80211_sdata_running(sdata)) sdata 400 net/mac80211/cfg.c return ieee80211_set_tx(sdata, mac_addr, key_idx); sdata 419 net/mac80211/cfg.c cs = ieee80211_cs_get(local, params->cipher, sdata->vif.type); sdata 438 net/mac80211/cfg.c sta = sta_info_get_bss(sdata, mac_addr); sdata 456 net/mac80211/cfg.c switch (sdata->vif.type) { sdata 458 net/mac80211/cfg.c if (sdata->u.mgd.mfp != IEEE80211_MFP_DISABLED) sdata 472 net/mac80211/cfg.c if (sdata->u.mesh.security != IEEE80211_MESH_SEC_NONE) sdata 493 net/mac80211/cfg.c err = ieee80211_key_link(key, sdata, sta); sdata 504 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 505 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 516 net/mac80211/cfg.c sta = sta_info_get_bss(sdata, mac_addr); sdata 525 net/mac80211/cfg.c key = key_mtx_dereference(local, sdata->keys[key_idx]); sdata 532 net/mac80211/cfg.c ieee80211_key_free(key, sdata->vif.type == NL80211_IFTYPE_STATION); sdata 548 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 559 net/mac80211/cfg.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 564 net/mac80211/cfg.c sta = sta_info_get_bss(sdata, mac_addr); sdata 574 net/mac80211/cfg.c key = rcu_dereference(sdata->keys[key_idx]); sdata 591 net/mac80211/cfg.c drv_get_key_seq(sdata->local, key, &kseq); sdata 624 net/mac80211/cfg.c drv_get_key_seq(sdata->local, key, &kseq); sdata 643 net/mac80211/cfg.c drv_get_key_seq(sdata->local, key, &kseq); sdata 665 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 667 net/mac80211/cfg.c ieee80211_set_default_key(sdata, key_idx, uni, multi); sdata 676 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 678 net/mac80211/cfg.c ieee80211_set_default_mgmt_key(sdata, key_idx); sdata 697 net/mac80211/cfg.c int shift = ieee80211_vif_get_shift(&sta->sdata->vif); sdata 700 net/mac80211/cfg.c sband = ieee80211_get_sband(sta->sdata); sdata 721 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 722 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 728 net/mac80211/cfg.c sta = sta_info_get_by_idx(sdata, idx); sdata 751 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 752 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 758 net/mac80211/cfg.c sta = sta_info_get_bss(sdata, mac); sdata 773 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 781 net/mac80211/cfg.c sdata = rtnl_dereference(local->monitor_sdata); sdata 782 net/mac80211/cfg.c if (sdata) { sdata 783 net/mac80211/cfg.c ieee80211_vif_release_channel(sdata); sdata 784 net/mac80211/cfg.c ret = ieee80211_vif_use_channel(sdata, chandef, sdata 799 net/mac80211/cfg.c static int ieee80211_set_probe_resp(struct ieee80211_sub_if_data *sdata, sdata 808 net/mac80211/cfg.c old = sdata_dereference(sdata->u.ap.probe_resp, sdata); sdata 822 net/mac80211/cfg.c rcu_assign_pointer(sdata->u.ap.probe_resp, new); sdata 830 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata, sdata 842 net/mac80211/cfg.c bss_conf = &sdata->vif.bss_conf; sdata 871 net/mac80211/cfg.c static int ieee80211_assign_beacon(struct ieee80211_sub_if_data *sdata, sdata 880 net/mac80211/cfg.c old = sdata_dereference(sdata->u.ap.beacon, sdata); sdata 937 net/mac80211/cfg.c err = ieee80211_set_probe_resp(sdata, params->probe_resp, sdata 947 net/mac80211/cfg.c sdata->vif.bss_conf.ftm_responder = params->ftm_responder; sdata 948 net/mac80211/cfg.c err = ieee80211_set_ftm_responder_params(sdata, sdata 962 net/mac80211/cfg.c rcu_assign_pointer(sdata->u.ap.beacon, new); sdata 973 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 974 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 988 net/mac80211/cfg.c old = sdata_dereference(sdata->u.ap.beacon, sdata); sdata 994 net/mac80211/cfg.c sdata->smps_mode = IEEE80211_SMPS_OFF; sdata 997 net/mac80211/cfg.c sdata->smps_mode = IEEE80211_SMPS_STATIC; sdata 1000 net/mac80211/cfg.c sdata->smps_mode = IEEE80211_SMPS_DYNAMIC; sdata 1005 net/mac80211/cfg.c sdata->u.ap.req_smps = sdata->smps_mode; sdata 1007 net/mac80211/cfg.c sdata->needed_rx_chains = sdata->local->rx_chains; sdata 1009 net/mac80211/cfg.c prev_beacon_int = sdata->vif.bss_conf.beacon_int; sdata 1010 net/mac80211/cfg.c sdata->vif.bss_conf.beacon_int = params->beacon_interval; sdata 1013 net/mac80211/cfg.c sdata->vif.bss_conf.he_support = true; sdata 1016 net/mac80211/cfg.c err = ieee80211_vif_use_channel(sdata, ¶ms->chandef, sdata 1019 net/mac80211/cfg.c ieee80211_vif_copy_chanctx_to_vlans(sdata, false); sdata 1022 net/mac80211/cfg.c sdata->vif.bss_conf.beacon_int = prev_beacon_int; sdata 1030 net/mac80211/cfg.c sdata->control_port_protocol = params->crypto.control_port_ethertype; sdata 1031 net/mac80211/cfg.c sdata->control_port_no_encrypt = params->crypto.control_port_no_encrypt; sdata 1032 net/mac80211/cfg.c sdata->control_port_over_nl80211 = sdata 1034 net/mac80211/cfg.c sdata->encrypt_headroom = ieee80211_cs_headroom(sdata->local, sdata 1036 net/mac80211/cfg.c sdata->vif.type); sdata 1038 net/mac80211/cfg.c list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) { sdata 1046 net/mac80211/cfg.c ieee80211_cs_headroom(sdata->local, sdata 1051 net/mac80211/cfg.c sdata->vif.bss_conf.dtim_period = params->dtim_period; sdata 1052 net/mac80211/cfg.c sdata->vif.bss_conf.enable_beacon = true; sdata 1053 net/mac80211/cfg.c sdata->vif.bss_conf.allow_p2p_go_ps = sdata->vif.p2p; sdata 1054 net/mac80211/cfg.c sdata->vif.bss_conf.twt_responder = params->twt_responder; sdata 1055 net/mac80211/cfg.c memcpy(&sdata->vif.bss_conf.he_obss_pd, ¶ms->he_obss_pd, sdata 1058 net/mac80211/cfg.c sdata->vif.bss_conf.ssid_len = params->ssid_len; sdata 1060 net/mac80211/cfg.c memcpy(sdata->vif.bss_conf.ssid, params->ssid, sdata 1062 net/mac80211/cfg.c sdata->vif.bss_conf.hidden_ssid = sdata 1065 net/mac80211/cfg.c memset(&sdata->vif.bss_conf.p2p_noa_attr, 0, sdata 1066 net/mac80211/cfg.c sizeof(sdata->vif.bss_conf.p2p_noa_attr)); sdata 1067 net/mac80211/cfg.c sdata->vif.bss_conf.p2p_noa_attr.oppps_ctwindow = sdata 1070 net/mac80211/cfg.c sdata->vif.bss_conf.p2p_noa_attr.oppps_ctwindow |= sdata 1073 net/mac80211/cfg.c err = ieee80211_assign_beacon(sdata, ¶ms->beacon, NULL); sdata 1075 net/mac80211/cfg.c ieee80211_vif_release_channel(sdata); sdata 1080 net/mac80211/cfg.c err = drv_start_ap(sdata->local, sdata); sdata 1082 net/mac80211/cfg.c old = sdata_dereference(sdata->u.ap.beacon, sdata); sdata 1086 net/mac80211/cfg.c RCU_INIT_POINTER(sdata->u.ap.beacon, NULL); sdata 1087 net/mac80211/cfg.c ieee80211_vif_release_channel(sdata); sdata 1091 net/mac80211/cfg.c ieee80211_recalc_dtim(local, sdata); sdata 1092 net/mac80211/cfg.c ieee80211_bss_info_change_notify(sdata, changed); sdata 1095 net/mac80211/cfg.c list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) sdata 1104 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 1108 net/mac80211/cfg.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1109 net/mac80211/cfg.c sdata_assert_lock(sdata); sdata 1114 net/mac80211/cfg.c if (sdata->vif.csa_active) sdata 1117 net/mac80211/cfg.c old = sdata_dereference(sdata->u.ap.beacon, sdata); sdata 1121 net/mac80211/cfg.c err = ieee80211_assign_beacon(sdata, params, NULL); sdata 1124 net/mac80211/cfg.c ieee80211_bss_info_change_notify(sdata, err); sdata 1130 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1132 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 1137 net/mac80211/cfg.c sdata_assert_lock(sdata); sdata 1139 net/mac80211/cfg.c old_beacon = sdata_dereference(sdata->u.ap.beacon, sdata); sdata 1142 net/mac80211/cfg.c old_probe_resp = sdata_dereference(sdata->u.ap.probe_resp, sdata); sdata 1146 net/mac80211/cfg.c sdata->vif.csa_active = false; sdata 1147 net/mac80211/cfg.c if (sdata->csa_block_tx) { sdata 1148 net/mac80211/cfg.c ieee80211_wake_vif_queues(local, sdata, sdata 1150 net/mac80211/cfg.c sdata->csa_block_tx = false; sdata 1155 net/mac80211/cfg.c kfree(sdata->u.ap.next_beacon); sdata 1156 net/mac80211/cfg.c sdata->u.ap.next_beacon = NULL; sdata 1159 net/mac80211/cfg.c list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) sdata 1164 net/mac80211/cfg.c RCU_INIT_POINTER(sdata->u.ap.beacon, NULL); sdata 1165 net/mac80211/cfg.c RCU_INIT_POINTER(sdata->u.ap.probe_resp, NULL); sdata 1169 net/mac80211/cfg.c sdata->u.ap.driver_smps_mode = IEEE80211_SMPS_OFF; sdata 1171 net/mac80211/cfg.c kfree(sdata->vif.bss_conf.ftmr_params); sdata 1172 net/mac80211/cfg.c sdata->vif.bss_conf.ftmr_params = NULL; sdata 1174 net/mac80211/cfg.c __sta_info_flush(sdata, true); sdata 1175 net/mac80211/cfg.c ieee80211_free_keys(sdata, true); sdata 1177 net/mac80211/cfg.c sdata->vif.bss_conf.enable_beacon = false; sdata 1178 net/mac80211/cfg.c sdata->vif.bss_conf.ssid_len = 0; sdata 1179 net/mac80211/cfg.c clear_bit(SDATA_STATE_OFFCHANNEL_BEACON_STOPPED, &sdata->state); sdata 1180 net/mac80211/cfg.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON_ENABLED); sdata 1182 net/mac80211/cfg.c if (sdata->wdev.cac_started) { sdata 1183 net/mac80211/cfg.c chandef = sdata->vif.bss_conf.chandef; sdata 1184 net/mac80211/cfg.c cancel_delayed_work_sync(&sdata->dfs_cac_timer_work); sdata 1185 net/mac80211/cfg.c cfg80211_cac_event(sdata->dev, &chandef, sdata 1190 net/mac80211/cfg.c drv_stop_ap(sdata->local, sdata); sdata 1193 net/mac80211/cfg.c local->total_ps_buffered -= skb_queue_len(&sdata->u.ap.ps.bc_buf); sdata 1194 net/mac80211/cfg.c ieee80211_purge_tx_queue(&local->hw, &sdata->u.ap.ps.bc_buf); sdata 1197 net/mac80211/cfg.c ieee80211_vif_copy_chanctx_to_vlans(sdata, true); sdata 1198 net/mac80211/cfg.c ieee80211_vif_release_channel(sdata); sdata 1269 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 1276 net/mac80211/cfg.c changed = mesh_plink_inc_estab_count(sdata); sdata 1282 net/mac80211/cfg.c sdata->u.mesh.mshcfg.power_mode); sdata 1296 net/mac80211/cfg.c changed = mesh_plink_dec_estab_count(sdata); sdata 1325 net/mac80211/cfg.c ieee80211_mbss_info_change_notify(sdata, changed); sdata 1335 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 1338 net/mac80211/cfg.c sband = ieee80211_get_sband(sdata); sdata 1345 net/mac80211/cfg.c if (ieee80211_vif_is_mesh(&sdata->vif)) { sdata 1406 net/mac80211/cfg.c !sdata->u.mgd.tdls_chan_switch_prohibited && sdata 1412 net/mac80211/cfg.c !sdata->u.mgd.tdls_wider_bw_prohibited && sdata 1473 net/mac80211/cfg.c ret = drv_sta_set_txpwr(local, sdata, sta); sdata 1479 net/mac80211/cfg.c ieee80211_parse_bitrates(&sdata->vif.bss_conf.chandef, sdata 1486 net/mac80211/cfg.c ieee80211_ht_cap_ie_to_sta_ht_cap(sdata, sband, sdata 1491 net/mac80211/cfg.c ieee80211_vht_cap_ie_to_sta_vht_cap(sdata, sband, sdata 1495 net/mac80211/cfg.c ieee80211_he_cap_ie_to_sta_he_cap(sdata, sband, sdata 1503 net/mac80211/cfg.c __ieee80211_vht_handle_opmode(sdata, sta, params->opmode_notif, sdata 1510 net/mac80211/cfg.c if (ieee80211_vif_is_mesh(&sdata->vif)) sdata 1533 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 1537 net/mac80211/cfg.c sdata = IEEE80211_DEV_TO_SUB_IF(params->vlan); sdata 1539 net/mac80211/cfg.c if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN && sdata 1540 net/mac80211/cfg.c sdata->vif.type != NL80211_IFTYPE_AP) sdata 1543 net/mac80211/cfg.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1545 net/mac80211/cfg.c if (ether_addr_equal(mac, sdata->vif.addr)) sdata 1552 net/mac80211/cfg.c sdata->vif.type == NL80211_IFTYPE_STATION && sdata 1553 net/mac80211/cfg.c !sdata->u.mgd.associated) sdata 1556 net/mac80211/cfg.c sta = sta_info_alloc(sdata, mac, GFP_KERNEL); sdata 1592 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 1594 net/mac80211/cfg.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1597 net/mac80211/cfg.c return sta_info_destroy_addr_bss(sdata, params->mac); sdata 1599 net/mac80211/cfg.c sta_info_flush(sdata); sdata 1607 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1616 net/mac80211/cfg.c sta = sta_info_get_bss(sdata, mac); sdata 1622 net/mac80211/cfg.c switch (sdata->vif.type) { sdata 1624 net/mac80211/cfg.c if (sdata->u.mesh.user_mpm) sdata 1658 net/mac80211/cfg.c if (params->vlan && params->vlan != sta->sdata->dev) { sdata 1671 net/mac80211/cfg.c if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && sdata 1672 net/mac80211/cfg.c sta->sdata->u.vlan.sta) sdata 1673 net/mac80211/cfg.c RCU_INIT_POINTER(sta->sdata->u.vlan.sta, NULL); sdata 1676 net/mac80211/cfg.c ieee80211_vif_dec_num_mcast(sta->sdata); sdata 1678 net/mac80211/cfg.c sta->sdata = vlansdata; sdata 1682 net/mac80211/cfg.c ieee80211_vif_inc_num_mcast(sta->sdata); sdata 1683 net/mac80211/cfg.c cfg80211_send_layer2_update(sta->sdata->dev, sdata 1694 net/mac80211/cfg.c if ((sdata->vif.type == NL80211_IFTYPE_AP || sdata 1695 net/mac80211/cfg.c sdata->vif.type == NL80211_IFTYPE_AP_VLAN) && sdata 1696 net/mac80211/cfg.c sta->known_smps_mode != sta->sdata->bss->req_smps && sdata 1699 net/mac80211/cfg.c ht_dbg(sta->sdata, sdata 1702 net/mac80211/cfg.c ieee80211_send_smps_action(sta->sdata, sdata 1703 net/mac80211/cfg.c sta->sdata->bss->req_smps, sdata 1705 net/mac80211/cfg.c sta->sdata->vif.bss_conf.bssid); sdata 1708 net/mac80211/cfg.c if (sdata->vif.type == NL80211_IFTYPE_STATION && sdata 1711 net/mac80211/cfg.c ieee80211_recalc_ps_vif(sdata); sdata 1724 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 1728 net/mac80211/cfg.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1731 net/mac80211/cfg.c sta = sta_info_get(sdata, next_hop); sdata 1737 net/mac80211/cfg.c mpath = mesh_path_add(sdata, dst); sdata 1752 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1755 net/mac80211/cfg.c return mesh_path_del(sdata, dst); sdata 1757 net/mac80211/cfg.c mesh_path_flush_by_iface(sdata); sdata 1764 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 1768 net/mac80211/cfg.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1772 net/mac80211/cfg.c sta = sta_info_get(sdata, next_hop); sdata 1778 net/mac80211/cfg.c mpath = mesh_path_lookup(sdata, dst); sdata 1802 net/mac80211/cfg.c pinfo->generation = mpath->sdata->u.mesh.mesh_paths_generation; sdata 1840 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 1843 net/mac80211/cfg.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1846 net/mac80211/cfg.c mpath = mesh_path_lookup(sdata, dst); sdata 1861 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 1864 net/mac80211/cfg.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1867 net/mac80211/cfg.c mpath = mesh_path_lookup_by_idx(sdata, idx); sdata 1884 net/mac80211/cfg.c pinfo->generation = mpath->sdata->u.mesh.mpp_paths_generation; sdata 1891 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 1894 net/mac80211/cfg.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1897 net/mac80211/cfg.c mpath = mpp_path_lookup(sdata, dst); sdata 1912 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 1915 net/mac80211/cfg.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1918 net/mac80211/cfg.c mpath = mpp_path_lookup_by_idx(sdata, idx); sdata 1933 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 1934 net/mac80211/cfg.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1936 net/mac80211/cfg.c memcpy(conf, &(sdata->u.mesh.mshcfg), sizeof(struct mesh_config)); sdata 1950 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = container_of(ifmsh, sdata 1983 net/mac80211/cfg.c memcpy(sdata->vif.bss_conf.mcast_rate, setup->mcast_rate, sdata 1985 net/mac80211/cfg.c sdata->vif.bss_conf.basic_rates = setup->basic_rates; sdata 1987 net/mac80211/cfg.c sdata->vif.bss_conf.beacon_int = setup->beacon_interval; sdata 1988 net/mac80211/cfg.c sdata->vif.bss_conf.dtim_period = setup->dtim_period; sdata 1998 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 2001 net/mac80211/cfg.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2002 net/mac80211/cfg.c ifmsh = &sdata->u.mesh; sdata 2005 net/mac80211/cfg.c conf = &(sdata->u.mesh.mshcfg); sdata 2073 net/mac80211/cfg.c if (!ieee80211_hw_check(&sdata->local->hw, SIGNAL_DBM)) sdata 2079 net/mac80211/cfg.c sdata->vif.bss_conf.ht_operation_mode = nconf->ht_opmode; sdata 2080 net/mac80211/cfg.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_HT); sdata 2093 net/mac80211/cfg.c ieee80211_mps_local_status_update(sdata); sdata 2103 net/mac80211/cfg.c ieee80211_mbss_info_change_notify(sdata, BSS_CHANGED_BEACON); sdata 2111 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2112 net/mac80211/cfg.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 2120 net/mac80211/cfg.c sdata->control_port_over_nl80211 = setup->control_port_over_nl80211; sdata 2123 net/mac80211/cfg.c sdata->smps_mode = IEEE80211_SMPS_OFF; sdata 2124 net/mac80211/cfg.c sdata->needed_rx_chains = sdata->local->rx_chains; sdata 2126 net/mac80211/cfg.c mutex_lock(&sdata->local->mtx); sdata 2127 net/mac80211/cfg.c err = ieee80211_vif_use_channel(sdata, &setup->chandef, sdata 2129 net/mac80211/cfg.c mutex_unlock(&sdata->local->mtx); sdata 2133 net/mac80211/cfg.c return ieee80211_start_mesh(sdata); sdata 2138 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2140 net/mac80211/cfg.c ieee80211_stop_mesh(sdata); sdata 2141 net/mac80211/cfg.c mutex_lock(&sdata->local->mtx); sdata 2142 net/mac80211/cfg.c ieee80211_vif_release_channel(sdata); sdata 2143 net/mac80211/cfg.c mutex_unlock(&sdata->local->mtx); sdata 2153 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2157 net/mac80211/cfg.c if (!sdata_dereference(sdata->u.ap.beacon, sdata)) sdata 2160 net/mac80211/cfg.c sband = ieee80211_get_sband(sdata); sdata 2165 net/mac80211/cfg.c sdata->vif.bss_conf.use_cts_prot = params->use_cts_prot; sdata 2169 net/mac80211/cfg.c sdata->vif.bss_conf.use_short_preamble = sdata 2174 net/mac80211/cfg.c if (!sdata->vif.bss_conf.use_short_slot && sdata 2176 net/mac80211/cfg.c sdata->vif.bss_conf.use_short_slot = true; sdata 2181 net/mac80211/cfg.c sdata->vif.bss_conf.use_short_slot = sdata 2187 net/mac80211/cfg.c ieee80211_parse_bitrates(&sdata->vif.bss_conf.chandef, sdata 2191 net/mac80211/cfg.c &sdata->vif.bss_conf.basic_rates); sdata 2193 net/mac80211/cfg.c ieee80211_check_rate_mask(sdata); sdata 2198 net/mac80211/cfg.c sdata->flags |= IEEE80211_SDATA_DONT_BRIDGE_PACKETS; sdata 2200 net/mac80211/cfg.c sdata->flags &= ~IEEE80211_SDATA_DONT_BRIDGE_PACKETS; sdata 2201 net/mac80211/cfg.c ieee80211_check_fast_rx_iface(sdata); sdata 2205 net/mac80211/cfg.c sdata->vif.bss_conf.ht_operation_mode = sdata 2211 net/mac80211/cfg.c sdata->vif.bss_conf.p2p_noa_attr.oppps_ctwindow &= sdata 2213 net/mac80211/cfg.c sdata->vif.bss_conf.p2p_noa_attr.oppps_ctwindow |= sdata 2219 net/mac80211/cfg.c sdata->vif.bss_conf.p2p_noa_attr.oppps_ctwindow |= sdata 2223 net/mac80211/cfg.c sdata->vif.bss_conf.p2p_noa_attr.oppps_ctwindow &= sdata 2228 net/mac80211/cfg.c ieee80211_bss_info_change_notify(sdata, changed); sdata 2238 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2259 net/mac80211/cfg.c ieee80211_regulatory_limit_wmm_params(sdata, &p, params->ac); sdata 2261 net/mac80211/cfg.c sdata->tx_conf[params->ac] = p; sdata 2262 net/mac80211/cfg.c if (drv_conf_tx(local, sdata, params->ac, &p)) { sdata 2269 net/mac80211/cfg.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_QOS); sdata 2293 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 2295 net/mac80211/cfg.c sdata = IEEE80211_WDEV_TO_SUB_IF(req->wdev); sdata 2297 net/mac80211/cfg.c switch (ieee80211_vif_type_p2p(&sdata->vif)) { sdata 2305 net/mac80211/cfg.c if (sdata->local->ops->hw_scan) sdata 2321 net/mac80211/cfg.c if (sdata->u.ap.beacon && sdata 2331 net/mac80211/cfg.c return ieee80211_request_scan(sdata, req); sdata 2344 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2346 net/mac80211/cfg.c if (!sdata->local->ops->sched_scan_start) sdata 2349 net/mac80211/cfg.c return ieee80211_request_sched_scan_start(sdata, req); sdata 2413 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2415 net/mac80211/cfg.c memcpy(sdata->vif.bss_conf.mcast_rate, rate, sdata 2418 net/mac80211/cfg.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_MCAST_RATE); sdata 2485 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 2491 net/mac80211/cfg.c sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 2493 net/mac80211/cfg.c if (sdata->vif.type == NL80211_IFTYPE_MONITOR) { sdata 2494 net/mac80211/cfg.c sdata = rtnl_dereference(local->monitor_sdata); sdata 2495 net/mac80211/cfg.c if (!sdata) sdata 2501 net/mac80211/cfg.c sdata->user_power_level = IEEE80211_UNSET_POWER_LEVEL; sdata 2508 net/mac80211/cfg.c sdata->user_power_level = MBM_TO_DBM(mbm); sdata 2512 net/mac80211/cfg.c if (txp_type != sdata->vif.bss_conf.txpower_type) { sdata 2514 net/mac80211/cfg.c sdata->vif.bss_conf.txpower_type = txp_type; sdata 2517 net/mac80211/cfg.c ieee80211_recalc_txpower(sdata, update_txp_type); sdata 2536 net/mac80211/cfg.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 2537 net/mac80211/cfg.c if (sdata->vif.type == NL80211_IFTYPE_MONITOR) { sdata 2541 net/mac80211/cfg.c sdata->user_power_level = local->user_power_level; sdata 2542 net/mac80211/cfg.c if (txp_type != sdata->vif.bss_conf.txpower_type) sdata 2544 net/mac80211/cfg.c sdata->vif.bss_conf.txpower_type = txp_type; sdata 2546 net/mac80211/cfg.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 2547 net/mac80211/cfg.c if (sdata->vif.type == NL80211_IFTYPE_MONITOR) sdata 2549 net/mac80211/cfg.c ieee80211_recalc_txpower(sdata, update_txp_type); sdata 2554 net/mac80211/cfg.c sdata = rtnl_dereference(local->monitor_sdata); sdata 2555 net/mac80211/cfg.c if (sdata) { sdata 2556 net/mac80211/cfg.c sdata->user_power_level = local->user_power_level; sdata 2557 net/mac80211/cfg.c if (txp_type != sdata->vif.bss_conf.txpower_type) sdata 2559 net/mac80211/cfg.c sdata->vif.bss_conf.txpower_type = txp_type; sdata 2561 net/mac80211/cfg.c ieee80211_recalc_txpower(sdata, update_txp_type); sdata 2573 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 2576 net/mac80211/cfg.c return drv_get_txpower(local, sdata, dbm); sdata 2581 net/mac80211/cfg.c *dbm = sdata->vif.bss_conf.txpower; sdata 2589 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2591 net/mac80211/cfg.c memcpy(&sdata->u.wds.remote_addr, addr, ETH_ALEN); sdata 2615 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 2617 net/mac80211/cfg.c sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 2618 net/mac80211/cfg.c if (sdata->flags & IEEE80211_SDATA_IN_DRIVER) sdata 2619 net/mac80211/cfg.c vif = &sdata->vif; sdata 2639 net/mac80211/cfg.c int __ieee80211_request_smps_ap(struct ieee80211_sub_if_data *sdata, sdata 2645 net/mac80211/cfg.c if (WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_AP)) sdata 2648 net/mac80211/cfg.c if (sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT) sdata 2651 net/mac80211/cfg.c old_req = sdata->u.ap.req_smps; sdata 2652 net/mac80211/cfg.c sdata->u.ap.req_smps = smps_mode; sdata 2659 net/mac80211/cfg.c ht_dbg(sdata, sdata 2661 net/mac80211/cfg.c smps_mode, atomic_read(&sdata->u.ap.num_mcast_sta)); sdata 2663 net/mac80211/cfg.c mutex_lock(&sdata->local->sta_mtx); sdata 2664 net/mac80211/cfg.c list_for_each_entry(sta, &sdata->local->sta_list, list) { sdata 2669 net/mac80211/cfg.c if (sta->sdata->bss != &sdata->u.ap) sdata 2683 net/mac80211/cfg.c ht_dbg(sdata, "Won't send SMPS to sleeping STA %pM\n", sdata 2695 net/mac80211/cfg.c ht_dbg(sdata, "Sending SMPS to %pM\n", sta->sta.addr); sdata 2696 net/mac80211/cfg.c ieee80211_send_smps_action(sdata, smps_mode, sta->sta.addr, sdata 2697 net/mac80211/cfg.c sdata->vif.bss_conf.bssid); sdata 2699 net/mac80211/cfg.c mutex_unlock(&sdata->local->sta_mtx); sdata 2701 net/mac80211/cfg.c sdata->smps_mode = smps_mode; sdata 2702 net/mac80211/cfg.c ieee80211_queue_work(&sdata->local->hw, &sdata->recalc_smps); sdata 2707 net/mac80211/cfg.c int __ieee80211_request_smps_mgd(struct ieee80211_sub_if_data *sdata, sdata 2716 net/mac80211/cfg.c lockdep_assert_held(&sdata->wdev.mtx); sdata 2718 net/mac80211/cfg.c if (WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_STATION)) sdata 2721 net/mac80211/cfg.c old_req = sdata->u.mgd.req_smps; sdata 2722 net/mac80211/cfg.c sdata->u.mgd.req_smps = smps_mode; sdata 2733 net/mac80211/cfg.c if (!sdata->u.mgd.associated || sdata 2734 net/mac80211/cfg.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT) sdata 2737 net/mac80211/cfg.c ap = sdata->u.mgd.associated->bssid; sdata 2740 net/mac80211/cfg.c list_for_each_entry_rcu(sta, &sdata->local->sta_list, list) { sdata 2741 net/mac80211/cfg.c if (!sta->sta.tdls || sta->sdata != sdata || !sta->uploaded || sdata 2751 net/mac80211/cfg.c if (tdls_peer_found || !sdata->u.mgd.powersave) sdata 2758 net/mac80211/cfg.c err = ieee80211_send_smps_action(sdata, smps_mode, sdata 2761 net/mac80211/cfg.c sdata->u.mgd.req_smps = old_req; sdata 2763 net/mac80211/cfg.c ieee80211_teardown_tdls_peers(sdata); sdata 2771 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2774 net/mac80211/cfg.c if (sdata->vif.type != NL80211_IFTYPE_STATION) sdata 2780 net/mac80211/cfg.c if (enabled == sdata->u.mgd.powersave && sdata 2784 net/mac80211/cfg.c sdata->u.mgd.powersave = enabled; sdata 2788 net/mac80211/cfg.c sdata_lock(sdata); sdata 2789 net/mac80211/cfg.c __ieee80211_request_smps_mgd(sdata, sdata->u.mgd.req_smps); sdata 2790 net/mac80211/cfg.c sdata_unlock(sdata); sdata 2796 net/mac80211/cfg.c ieee80211_recalc_ps_vif(sdata); sdata 2797 net/mac80211/cfg.c ieee80211_check_fast_rx_iface(sdata); sdata 2806 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2807 net/mac80211/cfg.c struct ieee80211_vif *vif = &sdata->vif; sdata 2814 net/mac80211/cfg.c if (sdata->vif.driver_flags & IEEE80211_VIF_BEACON_FILTER && sdata 2815 net/mac80211/cfg.c !(sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_CQM_RSSI)) sdata 2822 net/mac80211/cfg.c sdata->u.mgd.last_cqm_event_signal = 0; sdata 2825 net/mac80211/cfg.c if (sdata->u.mgd.associated && sdata 2826 net/mac80211/cfg.c sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_CQM_RSSI) sdata 2827 net/mac80211/cfg.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_CQM); sdata 2836 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2837 net/mac80211/cfg.c struct ieee80211_vif *vif = &sdata->vif; sdata 2840 net/mac80211/cfg.c if (sdata->vif.driver_flags & IEEE80211_VIF_BEACON_FILTER) sdata 2847 net/mac80211/cfg.c sdata->u.mgd.last_cqm_event_signal = 0; sdata 2850 net/mac80211/cfg.c if (sdata->u.mgd.associated && sdata 2851 net/mac80211/cfg.c sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_CQM_RSSI) sdata 2852 net/mac80211/cfg.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_CQM); sdata 2862 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2866 net/mac80211/cfg.c if (!ieee80211_sdata_running(sdata)) sdata 2875 net/mac80211/cfg.c if (rcu_access_pointer(sdata->vif.chanctx_conf) && sdata 2876 net/mac80211/cfg.c sdata->vif.bss_conf.chandef.chan) { sdata 2877 net/mac80211/cfg.c u32 basic_rates = sdata->vif.bss_conf.basic_rates; sdata 2878 net/mac80211/cfg.c enum nl80211_band band = sdata->vif.bss_conf.chandef.chan->band; sdata 2885 net/mac80211/cfg.c ret = drv_set_bitrate_mask(local, sdata, mask); sdata 2894 net/mac80211/cfg.c sdata->rc_rateidx_mask[i] = mask->control[i].legacy; sdata 2895 net/mac80211/cfg.c memcpy(sdata->rc_rateidx_mcs_mask[i], mask->control[i].ht_mcs, sdata 2897 net/mac80211/cfg.c memcpy(sdata->rc_rateidx_vht_mcs_mask[i], sdata 2901 net/mac80211/cfg.c sdata->rc_has_mcs_mask[i] = false; sdata 2902 net/mac80211/cfg.c sdata->rc_has_vht_mcs_mask[i] = false; sdata 2907 net/mac80211/cfg.c if (~sdata->rc_rateidx_mcs_mask[i][j]) { sdata 2908 net/mac80211/cfg.c sdata->rc_has_mcs_mask[i] = true; sdata 2914 net/mac80211/cfg.c if (~sdata->rc_rateidx_vht_mcs_mask[i][j]) { sdata 2915 net/mac80211/cfg.c sdata->rc_has_vht_mcs_mask[i] = true; sdata 2929 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2930 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 2940 net/mac80211/cfg.c sdata->smps_mode = IEEE80211_SMPS_OFF; sdata 2941 net/mac80211/cfg.c sdata->needed_rx_chains = local->rx_chains; sdata 2943 net/mac80211/cfg.c err = ieee80211_vif_use_channel(sdata, chandef, sdata 2948 net/mac80211/cfg.c ieee80211_queue_delayed_work(&sdata->local->hw, sdata 2949 net/mac80211/cfg.c &sdata->dfs_cac_timer_work, sdata 2960 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2961 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 2964 net/mac80211/cfg.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 2969 net/mac80211/cfg.c cancel_delayed_work(&sdata->dfs_cac_timer_work); sdata 2971 net/mac80211/cfg.c if (sdata->wdev.cac_started) { sdata 2972 net/mac80211/cfg.c ieee80211_vif_release_channel(sdata); sdata 2973 net/mac80211/cfg.c sdata->wdev.cac_started = false; sdata 3052 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 3054 net/mac80211/cfg.c ieee80211_queue_work(&sdata->local->hw, sdata 3055 net/mac80211/cfg.c &sdata->csa_finalize_work); sdata 3059 net/mac80211/cfg.c static int ieee80211_set_after_csa_beacon(struct ieee80211_sub_if_data *sdata, sdata 3064 net/mac80211/cfg.c switch (sdata->vif.type) { sdata 3066 net/mac80211/cfg.c err = ieee80211_assign_beacon(sdata, sdata->u.ap.next_beacon, sdata 3068 net/mac80211/cfg.c kfree(sdata->u.ap.next_beacon); sdata 3069 net/mac80211/cfg.c sdata->u.ap.next_beacon = NULL; sdata 3076 net/mac80211/cfg.c err = ieee80211_ibss_finish_csa(sdata); sdata 3083 net/mac80211/cfg.c err = ieee80211_mesh_finish_csa(sdata); sdata 3097 net/mac80211/cfg.c static int __ieee80211_csa_finalize(struct ieee80211_sub_if_data *sdata) sdata 3099 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 3103 net/mac80211/cfg.c sdata_assert_lock(sdata); sdata 3114 net/mac80211/cfg.c if (sdata->reserved_chanctx) { sdata 3120 net/mac80211/cfg.c if (sdata->reserved_ready) sdata 3123 net/mac80211/cfg.c return ieee80211_vif_use_reserved_context(sdata); sdata 3126 net/mac80211/cfg.c if (!cfg80211_chandef_identical(&sdata->vif.bss_conf.chandef, sdata 3127 net/mac80211/cfg.c &sdata->csa_chandef)) sdata 3130 net/mac80211/cfg.c sdata->vif.csa_active = false; sdata 3132 net/mac80211/cfg.c err = ieee80211_set_after_csa_beacon(sdata, &changed); sdata 3136 net/mac80211/cfg.c ieee80211_bss_info_change_notify(sdata, changed); sdata 3138 net/mac80211/cfg.c if (sdata->csa_block_tx) { sdata 3139 net/mac80211/cfg.c ieee80211_wake_vif_queues(local, sdata, sdata 3141 net/mac80211/cfg.c sdata->csa_block_tx = false; sdata 3144 net/mac80211/cfg.c err = drv_post_channel_switch(sdata); sdata 3148 net/mac80211/cfg.c cfg80211_ch_switch_notify(sdata->dev, &sdata->csa_chandef); sdata 3153 net/mac80211/cfg.c static void ieee80211_csa_finalize(struct ieee80211_sub_if_data *sdata) sdata 3155 net/mac80211/cfg.c if (__ieee80211_csa_finalize(sdata)) { sdata 3156 net/mac80211/cfg.c sdata_info(sdata, "failed to finalize CSA, disconnecting\n"); sdata 3157 net/mac80211/cfg.c cfg80211_stop_iface(sdata->local->hw.wiphy, &sdata->wdev, sdata 3164 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = sdata 3167 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 3169 net/mac80211/cfg.c sdata_lock(sdata); sdata 3174 net/mac80211/cfg.c if (!sdata->vif.csa_active) sdata 3177 net/mac80211/cfg.c if (!ieee80211_sdata_running(sdata)) sdata 3180 net/mac80211/cfg.c ieee80211_csa_finalize(sdata); sdata 3185 net/mac80211/cfg.c sdata_unlock(sdata); sdata 3188 net/mac80211/cfg.c static int ieee80211_set_csa_beacon(struct ieee80211_sub_if_data *sdata, sdata 3195 net/mac80211/cfg.c switch (sdata->vif.type) { sdata 3197 net/mac80211/cfg.c sdata->u.ap.next_beacon = sdata 3199 net/mac80211/cfg.c if (!sdata->u.ap.next_beacon) sdata 3233 net/mac80211/cfg.c err = ieee80211_assign_beacon(sdata, ¶ms->beacon_csa, &csa); sdata 3235 net/mac80211/cfg.c kfree(sdata->u.ap.next_beacon); sdata 3242 net/mac80211/cfg.c if (!sdata->vif.bss_conf.ibss_joined) sdata 3245 net/mac80211/cfg.c if (params->chandef.width != sdata->u.ibss.chandef.width) sdata 3251 net/mac80211/cfg.c cfg80211_get_chandef_type(&sdata->u.ibss.chandef)) sdata 3263 net/mac80211/cfg.c if (sdata->u.ibss.chandef.chan->band != sdata 3269 net/mac80211/cfg.c err = ieee80211_ibss_csa_beacon(sdata, params); sdata 3275 net/mac80211/cfg.c ieee80211_send_action_csa(sdata, params); sdata 3280 net/mac80211/cfg.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 3282 net/mac80211/cfg.c if (params->chandef.width != sdata->vif.bss_conf.chandef.width) sdata 3286 net/mac80211/cfg.c if (sdata->vif.bss_conf.chandef.chan->band != sdata 3300 net/mac80211/cfg.c err = ieee80211_mesh_csa_beacon(sdata, params); sdata 3309 net/mac80211/cfg.c ieee80211_send_action_csa(sdata, params); sdata 3325 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 3326 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 3333 net/mac80211/cfg.c sdata_assert_lock(sdata); sdata 3339 net/mac80211/cfg.c if (sdata->wdev.cac_started) sdata 3343 net/mac80211/cfg.c &sdata->vif.bss_conf.chandef)) sdata 3347 net/mac80211/cfg.c if (sdata->vif.csa_active) sdata 3351 net/mac80211/cfg.c conf = rcu_dereference_protected(sdata->vif.chanctx_conf, sdata 3366 net/mac80211/cfg.c err = drv_pre_channel_switch(sdata, &ch_switch); sdata 3370 net/mac80211/cfg.c err = ieee80211_vif_reserve_chanctx(sdata, ¶ms->chandef, sdata 3377 net/mac80211/cfg.c err = ieee80211_check_combinations(sdata, NULL, chanctx->mode, 0); sdata 3379 net/mac80211/cfg.c ieee80211_vif_unreserve_chanctx(sdata); sdata 3383 net/mac80211/cfg.c err = ieee80211_set_csa_beacon(sdata, params, &changed); sdata 3385 net/mac80211/cfg.c ieee80211_vif_unreserve_chanctx(sdata); sdata 3389 net/mac80211/cfg.c sdata->csa_chandef = params->chandef; sdata 3390 net/mac80211/cfg.c sdata->csa_block_tx = params->block_tx; sdata 3391 net/mac80211/cfg.c sdata->vif.csa_active = true; sdata 3393 net/mac80211/cfg.c if (sdata->csa_block_tx) sdata 3394 net/mac80211/cfg.c ieee80211_stop_vif_queues(local, sdata, sdata 3397 net/mac80211/cfg.c cfg80211_ch_switch_started_notify(sdata->dev, &sdata->csa_chandef, sdata 3401 net/mac80211/cfg.c ieee80211_bss_info_change_notify(sdata, changed); sdata 3402 net/mac80211/cfg.c drv_channel_switch_beacon(sdata, ¶ms->chandef); sdata 3405 net/mac80211/cfg.c ieee80211_csa_finalize(sdata); sdata 3416 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 3417 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 3474 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 3480 net/mac80211/cfg.c sdata->vif.probe_req_reg++; sdata 3485 net/mac80211/cfg.c if (sdata->vif.probe_req_reg) sdata 3486 net/mac80211/cfg.c sdata->vif.probe_req_reg--; sdata 3492 net/mac80211/cfg.c if (sdata->vif.probe_req_reg == 1) sdata 3493 net/mac80211/cfg.c drv_config_iface_filter(local, sdata, FIF_PROBE_REQ, sdata 3495 net/mac80211/cfg.c else if (sdata->vif.probe_req_reg == 0) sdata 3496 net/mac80211/cfg.c drv_config_iface_filter(local, sdata, 0, sdata 3528 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 3533 net/mac80211/cfg.c drv_set_rekey_data(local, sdata, data); sdata 3541 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 3542 net/mac80211/cfg.c struct ieee80211_local *local = sdata->local; sdata 3558 net/mac80211/cfg.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 3564 net/mac80211/cfg.c sta = sta_info_get_bss(sdata, peer); sdata 3597 net/mac80211/cfg.c memcpy(nullfunc->addr2, sdata->vif.addr, ETH_ALEN); sdata 3598 net/mac80211/cfg.c memcpy(nullfunc->addr3, sdata->vif.addr, ETH_ALEN); sdata 3619 net/mac80211/cfg.c ieee80211_xmit(sdata, sta, skb, 0); sdata 3634 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 3640 net/mac80211/cfg.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 3642 net/mac80211/cfg.c *chandef = sdata->vif.bss_conf.chandef; sdata 3646 net/mac80211/cfg.c sdata->vif.type == NL80211_IFTYPE_MONITOR) { sdata 3669 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 3682 net/mac80211/cfg.c old_qos_map = sdata_dereference(sdata->qos_map, sdata); sdata 3683 net/mac80211/cfg.c rcu_assign_pointer(sdata->qos_map, new_qos_map); sdata 3694 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 3698 net/mac80211/cfg.c ret = ieee80211_vif_change_bandwidth(sdata, chandef, &changed); sdata 3700 net/mac80211/cfg.c ieee80211_bss_info_change_notify(sdata, changed); sdata 3709 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 3710 net/mac80211/cfg.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 3713 net/mac80211/cfg.c if (sdata->vif.type != NL80211_IFTYPE_STATION) sdata 3716 net/mac80211/cfg.c if (!(sdata->wmm_acm & BIT(up))) sdata 3734 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 3735 net/mac80211/cfg.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 3757 net/mac80211/cfg.c ieee80211_flush_queues(local, sdata, false); sdata 3764 net/mac80211/cfg.c ieee80211_sta_handle_tspec_ac_params(sdata); sdata 3780 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 3787 net/mac80211/cfg.c spin_lock_bh(&sdata->u.nan.func_lock); sdata 3789 net/mac80211/cfg.c func = idr_find(&sdata->u.nan.function_inst_ids, inst_id); sdata 3791 net/mac80211/cfg.c spin_unlock_bh(&sdata->u.nan.func_lock); sdata 3796 net/mac80211/cfg.c idr_remove(&sdata->u.nan.function_inst_ids, inst_id); sdata 3798 net/mac80211/cfg.c spin_unlock_bh(&sdata->u.nan.func_lock); sdata 3811 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 3817 net/mac80211/cfg.c spin_lock_bh(&sdata->u.nan.func_lock); sdata 3819 net/mac80211/cfg.c func = idr_find(&sdata->u.nan.function_inst_ids, match->inst_id); sdata 3821 net/mac80211/cfg.c spin_unlock_bh(&sdata->u.nan.func_lock); sdata 3826 net/mac80211/cfg.c spin_unlock_bh(&sdata->u.nan.func_lock); sdata 3836 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 3838 net/mac80211/cfg.c sdata->u.ap.multicast_to_unicast = enabled; sdata 3897 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata; sdata 3907 net/mac80211/cfg.c sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 3908 net/mac80211/cfg.c if (!sdata->vif.txq) { sdata 3912 net/mac80211/cfg.c ieee80211_fill_txq_stats(txqstats, to_txq_info(sdata->vif.txq)); sdata 3942 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 3944 net/mac80211/cfg.c return drv_get_ftm_responder_stats(local, sdata, ftm_stats); sdata 3952 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(dev); sdata 3954 net/mac80211/cfg.c return drv_start_pmsr(local, sdata, request); sdata 3962 net/mac80211/cfg.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(dev); sdata 3964 net/mac80211/cfg.c return drv_abort_pmsr(local, sdata, request); sdata 16 net/mac80211/chan.c struct ieee80211_sub_if_data *sdata; sdata 21 net/mac80211/chan.c list_for_each_entry(sdata, &ctx->assigned_vifs, assigned_chanctx_list) sdata 30 net/mac80211/chan.c struct ieee80211_sub_if_data *sdata; sdata 35 net/mac80211/chan.c list_for_each_entry(sdata, &ctx->reserved_vifs, reserved_chanctx_list) sdata 68 net/mac80211/chan.c ieee80211_vif_get_chanctx(struct ieee80211_sub_if_data *sdata) sdata 70 net/mac80211/chan.c struct ieee80211_local *local __maybe_unused = sdata->local; sdata 73 net/mac80211/chan.c conf = rcu_dereference_protected(sdata->vif.chanctx_conf, sdata 86 net/mac80211/chan.c struct ieee80211_sub_if_data *sdata; sdata 90 net/mac80211/chan.c list_for_each_entry(sdata, &ctx->reserved_vifs, sdata 93 net/mac80211/chan.c compat = &sdata->reserved_chandef; sdata 95 net/mac80211/chan.c compat = cfg80211_chandef_compatible(&sdata->reserved_chandef, sdata 109 net/mac80211/chan.c struct ieee80211_sub_if_data *sdata; sdata 113 net/mac80211/chan.c list_for_each_entry(sdata, &ctx->assigned_vifs, sdata 115 net/mac80211/chan.c if (sdata->reserved_chanctx != NULL) sdata 119 net/mac80211/chan.c compat = &sdata->vif.bss_conf.chandef; sdata 122 net/mac80211/chan.c &sdata->vif.bss_conf.chandef, compat); sdata 224 net/mac80211/chan.c ieee80211_get_max_required_bw(struct ieee80211_sub_if_data *sdata) sdata 230 net/mac80211/chan.c list_for_each_entry_rcu(sta, &sdata->local->sta_list, list) { sdata 231 net/mac80211/chan.c if (sdata != sta->sdata && sdata 232 net/mac80211/chan.c !(sta->sdata->bss && sta->sdata->bss == sdata->bss)) sdata 246 net/mac80211/chan.c struct ieee80211_sub_if_data *sdata; sdata 250 net/mac80211/chan.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 251 net/mac80211/chan.c struct ieee80211_vif *vif = &sdata->vif; sdata 254 net/mac80211/chan.c if (!ieee80211_sdata_running(sdata)) sdata 257 net/mac80211/chan.c if (rcu_access_pointer(sdata->vif.chanctx_conf) != conf) sdata 263 net/mac80211/chan.c width = ieee80211_get_max_required_bw(sdata); sdata 272 net/mac80211/chan.c ieee80211_get_max_required_bw(sdata)); sdata 294 net/mac80211/chan.c sdata = rcu_dereference(local->monitor_sdata); sdata 295 net/mac80211/chan.c if (sdata && rcu_access_pointer(sdata->vif.chanctx_conf) == conf) sdata 402 net/mac80211/chan.c struct ieee80211_sub_if_data *sdata; sdata 407 net/mac80211/chan.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 408 net/mac80211/chan.c if (sdata->radar_required) { sdata 423 net/mac80211/chan.c struct ieee80211_sub_if_data *sdata; sdata 430 net/mac80211/chan.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 431 net/mac80211/chan.c if (!ieee80211_sdata_running(sdata)) sdata 433 net/mac80211/chan.c if (rcu_access_pointer(sdata->vif.chanctx_conf) != conf) sdata 435 net/mac80211/chan.c if (!sdata->radar_required) sdata 570 net/mac80211/chan.c struct ieee80211_sub_if_data *sdata; sdata 577 net/mac80211/chan.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 579 net/mac80211/chan.c if (!ieee80211_sdata_running(sdata)) sdata 581 net/mac80211/chan.c if (rcu_access_pointer(sdata->vif.chanctx_conf) != conf) sdata 583 net/mac80211/chan.c if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 587 net/mac80211/chan.c compat = &sdata->vif.bss_conf.chandef; sdata 590 net/mac80211/chan.c &sdata->vif.bss_conf.chandef, compat); sdata 640 net/mac80211/chan.c static int ieee80211_assign_vif_chanctx(struct ieee80211_sub_if_data *sdata, sdata 643 net/mac80211/chan.c struct ieee80211_local *local = sdata->local; sdata 648 net/mac80211/chan.c if (WARN_ON(sdata->vif.type == NL80211_IFTYPE_NAN)) sdata 651 net/mac80211/chan.c conf = rcu_dereference_protected(sdata->vif.chanctx_conf, sdata 657 net/mac80211/chan.c drv_unassign_vif_chanctx(local, sdata, curr_ctx); sdata 659 net/mac80211/chan.c list_del(&sdata->assigned_chanctx_list); sdata 663 net/mac80211/chan.c ret = drv_assign_vif_chanctx(local, sdata, new_ctx); sdata 668 net/mac80211/chan.c list_add(&sdata->assigned_chanctx_list, sdata 673 net/mac80211/chan.c rcu_assign_pointer(sdata->vif.chanctx_conf, conf); sdata 675 net/mac80211/chan.c sdata->vif.bss_conf.idle = !conf; sdata 685 net/mac80211/chan.c ieee80211_recalc_txpower(sdata, false); sdata 689 net/mac80211/chan.c if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE && sdata 690 net/mac80211/chan.c sdata->vif.type != NL80211_IFTYPE_MONITOR) sdata 691 net/mac80211/chan.c ieee80211_bss_info_change_notify(sdata, sdata 694 net/mac80211/chan.c ieee80211_check_fast_xmit_iface(sdata); sdata 702 net/mac80211/chan.c struct ieee80211_sub_if_data *sdata; sdata 711 net/mac80211/chan.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 714 net/mac80211/chan.c if (!ieee80211_sdata_running(sdata)) sdata 717 net/mac80211/chan.c if (rcu_access_pointer(sdata->vif.chanctx_conf) != sdata 721 net/mac80211/chan.c switch (sdata->vif.type) { sdata 726 net/mac80211/chan.c if (!sdata->u.mgd.associated) sdata 741 net/mac80211/chan.c switch (sdata->smps_mode) { sdata 744 net/mac80211/chan.c sdata->smps_mode); sdata 747 net/mac80211/chan.c needed_static = sdata->needed_rx_chains; sdata 748 net/mac80211/chan.c needed_dynamic = sdata->needed_rx_chains; sdata 752 net/mac80211/chan.c needed_dynamic = sdata->needed_rx_chains; sdata 765 net/mac80211/chan.c sdata = rcu_dereference(local->monitor_sdata); sdata 766 net/mac80211/chan.c if (sdata && sdata 767 net/mac80211/chan.c rcu_access_pointer(sdata->vif.chanctx_conf) == &chanctx->conf) sdata 792 net/mac80211/chan.c __ieee80211_vif_copy_chanctx_to_vlans(struct ieee80211_sub_if_data *sdata, sdata 795 net/mac80211/chan.c struct ieee80211_local *local __maybe_unused = sdata->local; sdata 799 net/mac80211/chan.c if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_AP)) sdata 810 net/mac80211/chan.c conf = rcu_dereference_protected(sdata->vif.chanctx_conf, sdata 817 net/mac80211/chan.c list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) sdata 821 net/mac80211/chan.c void ieee80211_vif_copy_chanctx_to_vlans(struct ieee80211_sub_if_data *sdata, sdata 824 net/mac80211/chan.c struct ieee80211_local *local = sdata->local; sdata 828 net/mac80211/chan.c __ieee80211_vif_copy_chanctx_to_vlans(sdata, clear); sdata 833 net/mac80211/chan.c int ieee80211_vif_unreserve_chanctx(struct ieee80211_sub_if_data *sdata) sdata 835 net/mac80211/chan.c struct ieee80211_chanctx *ctx = sdata->reserved_chanctx; sdata 837 net/mac80211/chan.c lockdep_assert_held(&sdata->local->chanctx_mtx); sdata 842 net/mac80211/chan.c list_del(&sdata->reserved_chanctx_list); sdata 843 net/mac80211/chan.c sdata->reserved_chanctx = NULL; sdata 845 net/mac80211/chan.c if (ieee80211_chanctx_refcount(sdata->local, ctx) == 0) { sdata 861 net/mac80211/chan.c ieee80211_free_chanctx(sdata->local, ctx); sdata 868 net/mac80211/chan.c int ieee80211_vif_reserve_chanctx(struct ieee80211_sub_if_data *sdata, sdata 873 net/mac80211/chan.c struct ieee80211_local *local = sdata->local; sdata 878 net/mac80211/chan.c curr_ctx = ieee80211_vif_get_chanctx(sdata); sdata 955 net/mac80211/chan.c list_add(&sdata->reserved_chanctx_list, &new_ctx->reserved_vifs); sdata 956 net/mac80211/chan.c sdata->reserved_chanctx = new_ctx; sdata 957 net/mac80211/chan.c sdata->reserved_chandef = *chandef; sdata 958 net/mac80211/chan.c sdata->reserved_radar_required = radar_required; sdata 959 net/mac80211/chan.c sdata->reserved_ready = false; sdata 965 net/mac80211/chan.c ieee80211_vif_chanctx_reservation_complete(struct ieee80211_sub_if_data *sdata) sdata 967 net/mac80211/chan.c switch (sdata->vif.type) { sdata 972 net/mac80211/chan.c ieee80211_queue_work(&sdata->local->hw, sdata 973 net/mac80211/chan.c &sdata->csa_finalize_work); sdata 976 net/mac80211/chan.c ieee80211_queue_work(&sdata->local->hw, sdata 977 net/mac80211/chan.c &sdata->u.mgd.chswitch_work); sdata 994 net/mac80211/chan.c ieee80211_vif_update_chandef(struct ieee80211_sub_if_data *sdata, sdata 999 net/mac80211/chan.c sdata->vif.bss_conf.chandef = *chandef; sdata 1001 net/mac80211/chan.c if (sdata->vif.type != NL80211_IFTYPE_AP) sdata 1004 net/mac80211/chan.c list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) sdata 1009 net/mac80211/chan.c ieee80211_vif_use_reserved_reassign(struct ieee80211_sub_if_data *sdata) sdata 1011 net/mac80211/chan.c struct ieee80211_local *local = sdata->local; sdata 1021 net/mac80211/chan.c new_ctx = sdata->reserved_chanctx; sdata 1022 net/mac80211/chan.c old_ctx = ieee80211_vif_get_chanctx(sdata); sdata 1024 net/mac80211/chan.c if (WARN_ON(!sdata->reserved_ready)) sdata 1038 net/mac80211/chan.c &sdata->reserved_chandef); sdata 1044 net/mac80211/chan.c vif_chsw[0].vif = &sdata->vif; sdata 1048 net/mac80211/chan.c list_del(&sdata->reserved_chanctx_list); sdata 1049 net/mac80211/chan.c sdata->reserved_chanctx = NULL; sdata 1060 net/mac80211/chan.c list_move(&sdata->assigned_chanctx_list, &new_ctx->assigned_vifs); sdata 1061 net/mac80211/chan.c rcu_assign_pointer(sdata->vif.chanctx_conf, &new_ctx->conf); sdata 1063 net/mac80211/chan.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 1064 net/mac80211/chan.c __ieee80211_vif_copy_chanctx_to_vlans(sdata, false); sdata 1066 net/mac80211/chan.c ieee80211_check_fast_xmit_iface(sdata); sdata 1071 net/mac80211/chan.c if (sdata->vif.bss_conf.chandef.width != sdata->reserved_chandef.width) sdata 1074 net/mac80211/chan.c ieee80211_vif_update_chandef(sdata, &sdata->reserved_chandef); sdata 1081 net/mac80211/chan.c ieee80211_bss_info_change_notify(sdata, changed); sdata 1084 net/mac80211/chan.c ieee80211_vif_chanctx_reservation_complete(sdata); sdata 1089 net/mac80211/chan.c ieee80211_vif_use_reserved_assign(struct ieee80211_sub_if_data *sdata) sdata 1091 net/mac80211/chan.c struct ieee80211_local *local = sdata->local; sdata 1096 net/mac80211/chan.c old_ctx = ieee80211_vif_get_chanctx(sdata); sdata 1097 net/mac80211/chan.c new_ctx = sdata->reserved_chanctx; sdata 1099 net/mac80211/chan.c if (WARN_ON(!sdata->reserved_ready)) sdata 1113 net/mac80211/chan.c &sdata->reserved_chandef); sdata 1119 net/mac80211/chan.c list_del(&sdata->reserved_chanctx_list); sdata 1120 net/mac80211/chan.c sdata->reserved_chanctx = NULL; sdata 1122 net/mac80211/chan.c err = ieee80211_assign_vif_chanctx(sdata, new_ctx); sdata 1131 net/mac80211/chan.c ieee80211_vif_chanctx_reservation_complete(sdata); sdata 1136 net/mac80211/chan.c ieee80211_vif_has_in_place_reservation(struct ieee80211_sub_if_data *sdata) sdata 1140 net/mac80211/chan.c lockdep_assert_held(&sdata->local->chanctx_mtx); sdata 1142 net/mac80211/chan.c new_ctx = sdata->reserved_chanctx; sdata 1143 net/mac80211/chan.c old_ctx = ieee80211_vif_get_chanctx(sdata); sdata 1183 net/mac80211/chan.c struct ieee80211_sub_if_data *sdata; sdata 1204 net/mac80211/chan.c list_for_each_entry(sdata, &ctx->reserved_vifs, sdata 1207 net/mac80211/chan.c sdata)) sdata 1210 net/mac80211/chan.c old_ctx = ieee80211_vif_get_chanctx(sdata); sdata 1211 net/mac80211/chan.c vif_chsw[i].vif = &sdata->vif; sdata 1268 net/mac80211/chan.c struct ieee80211_sub_if_data *sdata, *sdata_tmp; sdata 1311 net/mac80211/chan.c list_for_each_entry(sdata, &ctx->replace_ctx->assigned_vifs, sdata 1314 net/mac80211/chan.c if (sdata->reserved_chanctx) { sdata 1316 net/mac80211/chan.c if (sdata->reserved_ready) sdata 1333 net/mac80211/chan.c list_for_each_entry(sdata, &ctx->reserved_vifs, sdata 1335 net/mac80211/chan.c if (ieee80211_vif_has_in_place_reservation(sdata) && sdata 1336 net/mac80211/chan.c !sdata->reserved_ready) sdata 1339 net/mac80211/chan.c old_ctx = ieee80211_vif_get_chanctx(sdata); sdata 1350 net/mac80211/chan.c if (sdata->reserved_radar_required) sdata 1401 net/mac80211/chan.c list_for_each_entry(sdata, &ctx->reserved_vifs, sdata 1405 net/mac80211/chan.c if (!ieee80211_vif_has_in_place_reservation(sdata)) sdata 1408 net/mac80211/chan.c rcu_assign_pointer(sdata->vif.chanctx_conf, &ctx->conf); sdata 1410 net/mac80211/chan.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 1411 net/mac80211/chan.c __ieee80211_vif_copy_chanctx_to_vlans(sdata, sdata 1414 net/mac80211/chan.c ieee80211_check_fast_xmit_iface(sdata); sdata 1416 net/mac80211/chan.c sdata->radar_required = sdata->reserved_radar_required; sdata 1418 net/mac80211/chan.c if (sdata->vif.bss_conf.chandef.width != sdata 1419 net/mac80211/chan.c sdata->reserved_chandef.width) sdata 1422 net/mac80211/chan.c ieee80211_vif_update_chandef(sdata, &sdata->reserved_chandef); sdata 1424 net/mac80211/chan.c ieee80211_bss_info_change_notify(sdata, sdata 1427 net/mac80211/chan.c ieee80211_recalc_txpower(sdata, false); sdata 1435 net/mac80211/chan.c list_for_each_entry_safe(sdata, sdata_tmp, &ctx->reserved_vifs, sdata 1437 net/mac80211/chan.c if (ieee80211_vif_get_chanctx(sdata) != ctx) sdata 1440 net/mac80211/chan.c list_del(&sdata->reserved_chanctx_list); sdata 1441 net/mac80211/chan.c list_move(&sdata->assigned_chanctx_list, sdata 1443 net/mac80211/chan.c sdata->reserved_chanctx = NULL; sdata 1445 net/mac80211/chan.c ieee80211_vif_chanctx_reservation_complete(sdata); sdata 1455 net/mac80211/chan.c list_for_each_entry_safe(sdata, sdata_tmp, &ctx->reserved_vifs, sdata 1458 net/mac80211/chan.c sdata))) sdata 1461 net/mac80211/chan.c if (WARN_ON(sdata->reserved_chanctx != ctx)) sdata 1464 net/mac80211/chan.c if (!sdata->reserved_ready) sdata 1467 net/mac80211/chan.c if (ieee80211_vif_get_chanctx(sdata)) sdata 1469 net/mac80211/chan.c sdata); sdata 1471 net/mac80211/chan.c err = ieee80211_vif_use_reserved_assign(sdata); sdata 1474 net/mac80211/chan.c sdata_info(sdata, sdata 1477 net/mac80211/chan.c ieee80211_vif_unreserve_chanctx(sdata); sdata 1479 net/mac80211/chan.c &sdata->wdev, sdata 1508 net/mac80211/chan.c list_for_each_entry_safe(sdata, sdata_tmp, &ctx->reserved_vifs, sdata 1510 net/mac80211/chan.c ieee80211_vif_unreserve_chanctx(sdata); sdata 1511 net/mac80211/chan.c ieee80211_vif_chanctx_reservation_complete(sdata); sdata 1518 net/mac80211/chan.c static void __ieee80211_vif_release_channel(struct ieee80211_sub_if_data *sdata) sdata 1520 net/mac80211/chan.c struct ieee80211_local *local = sdata->local; sdata 1527 net/mac80211/chan.c conf = rcu_dereference_protected(sdata->vif.chanctx_conf, sdata 1534 net/mac80211/chan.c if (sdata->reserved_chanctx) { sdata 1535 net/mac80211/chan.c if (sdata->reserved_chanctx->replace_state == sdata 1538 net/mac80211/chan.c sdata->reserved_chanctx) > 1) sdata 1541 net/mac80211/chan.c ieee80211_vif_unreserve_chanctx(sdata); sdata 1544 net/mac80211/chan.c ieee80211_assign_vif_chanctx(sdata, NULL); sdata 1548 net/mac80211/chan.c sdata->radar_required = false; sdata 1555 net/mac80211/chan.c int ieee80211_vif_use_channel(struct ieee80211_sub_if_data *sdata, sdata 1559 net/mac80211/chan.c struct ieee80211_local *local = sdata->local; sdata 1566 net/mac80211/chan.c WARN_ON(sdata->dev && netif_carrier_ok(sdata->dev)); sdata 1572 net/mac80211/chan.c sdata->wdev.iftype); sdata 1578 net/mac80211/chan.c sdata->radar_required = ret; sdata 1580 net/mac80211/chan.c ret = ieee80211_check_combinations(sdata, chandef, mode, sdata 1585 net/mac80211/chan.c __ieee80211_vif_release_channel(sdata); sdata 1595 net/mac80211/chan.c ieee80211_vif_update_chandef(sdata, chandef); sdata 1597 net/mac80211/chan.c ret = ieee80211_assign_vif_chanctx(sdata, ctx); sdata 1609 net/mac80211/chan.c sdata->radar_required = false; sdata 1615 net/mac80211/chan.c int ieee80211_vif_use_reserved_context(struct ieee80211_sub_if_data *sdata) sdata 1617 net/mac80211/chan.c struct ieee80211_local *local = sdata->local; sdata 1625 net/mac80211/chan.c new_ctx = sdata->reserved_chanctx; sdata 1626 net/mac80211/chan.c old_ctx = ieee80211_vif_get_chanctx(sdata); sdata 1635 net/mac80211/chan.c if (WARN_ON(sdata->reserved_ready)) sdata 1638 net/mac80211/chan.c sdata->reserved_ready = true; sdata 1642 net/mac80211/chan.c err = ieee80211_vif_use_reserved_reassign(sdata); sdata 1644 net/mac80211/chan.c err = ieee80211_vif_use_reserved_assign(sdata); sdata 1679 net/mac80211/chan.c int ieee80211_vif_change_bandwidth(struct ieee80211_sub_if_data *sdata, sdata 1683 net/mac80211/chan.c struct ieee80211_local *local = sdata->local; sdata 1689 net/mac80211/chan.c if (!cfg80211_chandef_usable(sdata->local->hw.wiphy, chandef, sdata 1694 net/mac80211/chan.c if (cfg80211_chandef_identical(chandef, &sdata->vif.bss_conf.chandef)) { sdata 1700 net/mac80211/chan.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT) { sdata 1705 net/mac80211/chan.c conf = rcu_dereference_protected(sdata->vif.chanctx_conf, sdata 1740 net/mac80211/chan.c ieee80211_vif_update_chandef(sdata, chandef); sdata 1751 net/mac80211/chan.c void ieee80211_vif_release_channel(struct ieee80211_sub_if_data *sdata) sdata 1753 net/mac80211/chan.c WARN_ON(sdata->dev && netif_carrier_ok(sdata->dev)); sdata 1755 net/mac80211/chan.c lockdep_assert_held(&sdata->local->mtx); sdata 1757 net/mac80211/chan.c mutex_lock(&sdata->local->chanctx_mtx); sdata 1758 net/mac80211/chan.c __ieee80211_vif_release_channel(sdata); sdata 1759 net/mac80211/chan.c mutex_unlock(&sdata->local->chanctx_mtx); sdata 1762 net/mac80211/chan.c void ieee80211_vif_vlan_copy_chanctx(struct ieee80211_sub_if_data *sdata) sdata 1764 net/mac80211/chan.c struct ieee80211_local *local = sdata->local; sdata 1768 net/mac80211/chan.c if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_AP_VLAN || !sdata->bss)) sdata 1771 net/mac80211/chan.c ap = container_of(sdata->bss, struct ieee80211_sub_if_data, u.ap); sdata 1777 net/mac80211/chan.c rcu_assign_pointer(sdata->vif.chanctx_conf, conf); sdata 91 net/mac80211/debug.h #define _sdata_info(sdata, fmt, ...) \ sdata 92 net/mac80211/debug.h __sdata_info("%s: " fmt, (sdata)->name, ##__VA_ARGS__) sdata 93 net/mac80211/debug.h #define _sdata_dbg(print, sdata, fmt, ...) \ sdata 94 net/mac80211/debug.h __sdata_dbg(print, "%s: " fmt, (sdata)->name, ##__VA_ARGS__) sdata 95 net/mac80211/debug.h #define _sdata_err(sdata, fmt, ...) \ sdata 96 net/mac80211/debug.h __sdata_err("%s: " fmt, (sdata)->name, ##__VA_ARGS__) sdata 100 net/mac80211/debug.h #define _sdata_info(sdata, fmt, ...) \ sdata 103 net/mac80211/debug.h (sdata)->name, ##__VA_ARGS__); \ sdata 106 net/mac80211/debug.h #define _sdata_dbg(print, sdata, fmt, ...) \ sdata 110 net/mac80211/debug.h (sdata)->name, ##__VA_ARGS__); \ sdata 113 net/mac80211/debug.h #define _sdata_err(sdata, fmt, ...) \ sdata 116 net/mac80211/debug.h (sdata)->name, ##__VA_ARGS__); \ sdata 126 net/mac80211/debug.h #define sdata_info(sdata, fmt, ...) \ sdata 127 net/mac80211/debug.h _sdata_info(sdata, fmt, ##__VA_ARGS__) sdata 128 net/mac80211/debug.h #define sdata_err(sdata, fmt, ...) \ sdata 129 net/mac80211/debug.h _sdata_err(sdata, fmt, ##__VA_ARGS__) sdata 130 net/mac80211/debug.h #define sdata_dbg(sdata, fmt, ...) \ sdata 131 net/mac80211/debug.h _sdata_dbg(1, sdata, fmt, ##__VA_ARGS__) sdata 133 net/mac80211/debug.h #define ht_dbg(sdata, fmt, ...) \ sdata 135 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 137 net/mac80211/debug.h #define ht_dbg_ratelimited(sdata, fmt, ...) \ sdata 139 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 141 net/mac80211/debug.h #define ocb_dbg(sdata, fmt, ...) \ sdata 143 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 145 net/mac80211/debug.h #define ibss_dbg(sdata, fmt, ...) \ sdata 147 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 149 net/mac80211/debug.h #define ps_dbg(sdata, fmt, ...) \ sdata 151 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 157 net/mac80211/debug.h #define ps_dbg_ratelimited(sdata, fmt, ...) \ sdata 159 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 161 net/mac80211/debug.h #define mpl_dbg(sdata, fmt, ...) \ sdata 163 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 165 net/mac80211/debug.h #define mpath_dbg(sdata, fmt, ...) \ sdata 167 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 169 net/mac80211/debug.h #define mhwmp_dbg(sdata, fmt, ...) \ sdata 171 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 173 net/mac80211/debug.h #define msync_dbg(sdata, fmt, ...) \ sdata 175 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 177 net/mac80211/debug.h #define mcsa_dbg(sdata, fmt, ...) \ sdata 179 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 181 net/mac80211/debug.h #define mps_dbg(sdata, fmt, ...) \ sdata 183 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 185 net/mac80211/debug.h #define tdls_dbg(sdata, fmt, ...) \ sdata 187 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 189 net/mac80211/debug.h #define sta_dbg(sdata, fmt, ...) \ sdata 191 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 193 net/mac80211/debug.h #define mlme_dbg(sdata, fmt, ...) \ sdata 195 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 197 net/mac80211/debug.h #define mlme_dbg_ratelimited(sdata, fmt, ...) \ sdata 199 net/mac80211/debug.h sdata, fmt, ##__VA_ARGS__) sdata 66 net/mac80211/debugfs_key.c KEY_READ(ifindex, sdata->name, "%s\n"); sdata 345 net/mac80211/debugfs_key.c sta->sdata->name, sta->sta.addr); sdata 373 net/mac80211/debugfs_key.c void ieee80211_debugfs_key_update_default(struct ieee80211_sub_if_data *sdata) sdata 378 net/mac80211/debugfs_key.c if (!sdata->vif.debugfs_dir) sdata 381 net/mac80211/debugfs_key.c lockdep_assert_held(&sdata->local->key_mtx); sdata 383 net/mac80211/debugfs_key.c debugfs_remove(sdata->debugfs.default_unicast_key); sdata 384 net/mac80211/debugfs_key.c sdata->debugfs.default_unicast_key = NULL; sdata 386 net/mac80211/debugfs_key.c if (sdata->default_unicast_key) { sdata 387 net/mac80211/debugfs_key.c key = key_mtx_dereference(sdata->local, sdata 388 net/mac80211/debugfs_key.c sdata->default_unicast_key); sdata 390 net/mac80211/debugfs_key.c sdata->debugfs.default_unicast_key = sdata 392 net/mac80211/debugfs_key.c sdata->vif.debugfs_dir, buf); sdata 395 net/mac80211/debugfs_key.c debugfs_remove(sdata->debugfs.default_multicast_key); sdata 396 net/mac80211/debugfs_key.c sdata->debugfs.default_multicast_key = NULL; sdata 398 net/mac80211/debugfs_key.c if (sdata->default_multicast_key) { sdata 399 net/mac80211/debugfs_key.c key = key_mtx_dereference(sdata->local, sdata 400 net/mac80211/debugfs_key.c sdata->default_multicast_key); sdata 402 net/mac80211/debugfs_key.c sdata->debugfs.default_multicast_key = sdata 404 net/mac80211/debugfs_key.c sdata->vif.debugfs_dir, buf); sdata 408 net/mac80211/debugfs_key.c void ieee80211_debugfs_key_add_mgmt_default(struct ieee80211_sub_if_data *sdata) sdata 413 net/mac80211/debugfs_key.c if (!sdata->vif.debugfs_dir) sdata 416 net/mac80211/debugfs_key.c key = key_mtx_dereference(sdata->local, sdata 417 net/mac80211/debugfs_key.c sdata->default_mgmt_key); sdata 420 net/mac80211/debugfs_key.c sdata->debugfs.default_mgmt_key = sdata 422 net/mac80211/debugfs_key.c sdata->vif.debugfs_dir, buf); sdata 424 net/mac80211/debugfs_key.c ieee80211_debugfs_key_remove_mgmt_default(sdata); sdata 427 net/mac80211/debugfs_key.c void ieee80211_debugfs_key_remove_mgmt_default(struct ieee80211_sub_if_data *sdata) sdata 429 net/mac80211/debugfs_key.c if (!sdata) sdata 432 net/mac80211/debugfs_key.c debugfs_remove(sdata->debugfs.default_mgmt_key); sdata 433 net/mac80211/debugfs_key.c sdata->debugfs.default_mgmt_key = NULL; sdata 8 net/mac80211/debugfs_key.h void ieee80211_debugfs_key_update_default(struct ieee80211_sub_if_data *sdata); sdata 10 net/mac80211/debugfs_key.h struct ieee80211_sub_if_data *sdata); sdata 12 net/mac80211/debugfs_key.h struct ieee80211_sub_if_data *sdata); sdata 21 net/mac80211/debugfs_key.h struct ieee80211_sub_if_data *sdata) sdata 24 net/mac80211/debugfs_key.h struct ieee80211_sub_if_data *sdata) sdata 27 net/mac80211/debugfs_key.h struct ieee80211_sub_if_data *sdata) sdata 25 net/mac80211/debugfs_netdev.c struct ieee80211_sub_if_data *sdata, sdata 34 net/mac80211/debugfs_netdev.c ret = (*format)(sdata, buf, sizeof(buf)); sdata 44 net/mac80211/debugfs_netdev.c struct ieee80211_sub_if_data *sdata, sdata 61 net/mac80211/debugfs_netdev.c ret = (*write)(sdata, buf, count); sdata 69 net/mac80211/debugfs_netdev.c const struct ieee80211_sub_if_data *sdata, char *buf, \ sdata 72 net/mac80211/debugfs_netdev.c return scnprintf(buf, buflen, format_string, sdata->field); \ sdata 85 net/mac80211/debugfs_netdev.c const struct ieee80211_sub_if_data *sdata, \ sdata 90 net/mac80211/debugfs_netdev.c for (i = 0; i < sizeof(sdata->field); i++) { \ sdata 92 net/mac80211/debugfs_netdev.c sdata->field[i]); \ sdata 100 net/mac80211/debugfs_netdev.c const struct ieee80211_sub_if_data *sdata, \ sdata 103 net/mac80211/debugfs_netdev.c return scnprintf(buf, buflen, "%d\n", atomic_read(&sdata->field));\ sdata 108 net/mac80211/debugfs_netdev.c const struct ieee80211_sub_if_data *sdata, char *buf, \ sdata 111 net/mac80211/debugfs_netdev.c return scnprintf(buf, buflen, "%pM\n", sdata->field); \ sdata 116 net/mac80211/debugfs_netdev.c const struct ieee80211_sub_if_data *sdata, \ sdata 120 net/mac80211/debugfs_netdev.c jiffies_to_msecs(sdata->field)); \ sdata 179 net/mac80211/debugfs_netdev.c const struct ieee80211_sub_if_data *sdata, sdata 183 net/mac80211/debugfs_netdev.c const u16 *mask = sdata->rc_rateidx_vht_mcs_mask[NL80211_BAND_2GHZ]; sdata 195 net/mac80211/debugfs_netdev.c const struct ieee80211_sub_if_data *sdata, sdata 199 net/mac80211/debugfs_netdev.c const u16 *mask = sdata->rc_rateidx_vht_mcs_mask[NL80211_BAND_5GHZ]; sdata 217 net/mac80211/debugfs_netdev.c ieee80211_if_fmt_hw_queues(const struct ieee80211_sub_if_data *sdata, sdata 223 net/mac80211/debugfs_netdev.c sdata->vif.hw_queue[IEEE80211_AC_VO], sdata 224 net/mac80211/debugfs_netdev.c sdata->vif.hw_queue[IEEE80211_AC_VI], sdata 225 net/mac80211/debugfs_netdev.c sdata->vif.hw_queue[IEEE80211_AC_BE], sdata 226 net/mac80211/debugfs_netdev.c sdata->vif.hw_queue[IEEE80211_AC_BK]); sdata 228 net/mac80211/debugfs_netdev.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 230 net/mac80211/debugfs_netdev.c sdata->vif.cab_queue); sdata 241 net/mac80211/debugfs_netdev.c static int ieee80211_set_smps(struct ieee80211_sub_if_data *sdata, sdata 244 net/mac80211/debugfs_netdev.c struct ieee80211_local *local = sdata->local; sdata 257 net/mac80211/debugfs_netdev.c if (sdata->vif.type != NL80211_IFTYPE_STATION && sdata 258 net/mac80211/debugfs_netdev.c sdata->vif.type != NL80211_IFTYPE_AP) sdata 261 net/mac80211/debugfs_netdev.c sdata_lock(sdata); sdata 262 net/mac80211/debugfs_netdev.c if (sdata->vif.type == NL80211_IFTYPE_STATION) sdata 263 net/mac80211/debugfs_netdev.c err = __ieee80211_request_smps_mgd(sdata, smps_mode); sdata 265 net/mac80211/debugfs_netdev.c err = __ieee80211_request_smps_ap(sdata, smps_mode); sdata 266 net/mac80211/debugfs_netdev.c sdata_unlock(sdata); sdata 278 net/mac80211/debugfs_netdev.c static ssize_t ieee80211_if_fmt_smps(const struct ieee80211_sub_if_data *sdata, sdata 281 net/mac80211/debugfs_netdev.c if (sdata->vif.type == NL80211_IFTYPE_STATION) sdata 283 net/mac80211/debugfs_netdev.c smps_modes[sdata->u.mgd.req_smps], sdata 284 net/mac80211/debugfs_netdev.c smps_modes[sdata->smps_mode]); sdata 285 net/mac80211/debugfs_netdev.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 287 net/mac80211/debugfs_netdev.c smps_modes[sdata->u.ap.req_smps], sdata 288 net/mac80211/debugfs_netdev.c smps_modes[sdata->smps_mode]); sdata 292 net/mac80211/debugfs_netdev.c static ssize_t ieee80211_if_parse_smps(struct ieee80211_sub_if_data *sdata, sdata 299 net/mac80211/debugfs_netdev.c int err = ieee80211_set_smps(sdata, mode); sdata 311 net/mac80211/debugfs_netdev.c struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) sdata 313 net/mac80211/debugfs_netdev.c struct ieee80211_local *local = sdata->local; sdata 322 net/mac80211/debugfs_netdev.c if (!ieee80211_sdata_running(sdata)) sdata 333 net/mac80211/debugfs_netdev.c switch (sdata->vif.type) { sdata 338 net/mac80211/debugfs_netdev.c memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); sdata 339 net/mac80211/debugfs_netdev.c memcpy(hdr->addr3, sdata->vif.addr, ETH_ALEN); sdata 344 net/mac80211/debugfs_netdev.c sdata_lock(sdata); sdata 345 net/mac80211/debugfs_netdev.c if (!sdata->u.mgd.associated) { sdata 346 net/mac80211/debugfs_netdev.c sdata_unlock(sdata); sdata 350 net/mac80211/debugfs_netdev.c memcpy(hdr->addr1, sdata->u.mgd.associated->bssid, ETH_ALEN); sdata 351 net/mac80211/debugfs_netdev.c memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); sdata 353 net/mac80211/debugfs_netdev.c sdata_unlock(sdata); sdata 370 net/mac80211/debugfs_netdev.c ieee80211_tx_skb(sdata, skb); sdata 377 net/mac80211/debugfs_netdev.c struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) sdata 379 net/mac80211/debugfs_netdev.c if (!ieee80211_sdata_running(sdata) || !sdata->vif.bss_conf.assoc) sdata 382 net/mac80211/debugfs_netdev.c ieee80211_beacon_loss(&sdata->vif); sdata 389 net/mac80211/debugfs_netdev.c const struct ieee80211_sub_if_data *sdata, char *buf, int buflen) sdata 391 net/mac80211/debugfs_netdev.c const struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 397 net/mac80211/debugfs_netdev.c struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) sdata 399 net/mac80211/debugfs_netdev.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 417 net/mac80211/debugfs_netdev.c const struct ieee80211_sub_if_data *sdata, char *buf, int buflen) sdata 419 net/mac80211/debugfs_netdev.c const struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 425 net/mac80211/debugfs_netdev.c struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) sdata 427 net/mac80211/debugfs_netdev.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 445 net/mac80211/debugfs_netdev.c const struct ieee80211_sub_if_data *sdata, char *buf, int buflen) sdata 447 net/mac80211/debugfs_netdev.c const struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 450 net/mac80211/debugfs_netdev.c tdls_wider_bw = ieee80211_hw_check(&sdata->local->hw, TDLS_WIDER_BW) && sdata 457 net/mac80211/debugfs_netdev.c struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) sdata 459 net/mac80211/debugfs_netdev.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 479 net/mac80211/debugfs_netdev.c const struct ieee80211_sub_if_data *sdata, char *buf, int buflen) sdata 482 net/mac80211/debugfs_netdev.c skb_queue_len(&sdata->u.ap.ps.bc_buf)); sdata 487 net/mac80211/debugfs_netdev.c const struct ieee80211_sub_if_data *sdata, char *buf, int buflen) sdata 489 net/mac80211/debugfs_netdev.c struct ieee80211_local *local = sdata->local; sdata 493 net/mac80211/debugfs_netdev.c if (!sdata->vif.txq) sdata 496 net/mac80211/debugfs_netdev.c txqi = to_txq_info(sdata->vif.txq); sdata 527 net/mac80211/debugfs_netdev.c const struct ieee80211_sub_if_data *sdata, char *buf, int buflen) sdata 529 net/mac80211/debugfs_netdev.c struct ieee80211_local *local = sdata->local; sdata 532 net/mac80211/debugfs_netdev.c tsf = drv_get_tsf(local, (struct ieee80211_sub_if_data *)sdata); sdata 538 net/mac80211/debugfs_netdev.c struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) sdata 540 net/mac80211/debugfs_netdev.c struct ieee80211_local *local = sdata->local; sdata 547 net/mac80211/debugfs_netdev.c drv_reset_tsf(local, sdata); sdata 564 net/mac80211/debugfs_netdev.c drv_offset_tsf(local, sdata, tsf_is_delta * tsf); sdata 570 net/mac80211/debugfs_netdev.c tsf = drv_get_tsf(local, sdata) + sdata 572 net/mac80211/debugfs_netdev.c drv_set_tsf(local, sdata, tsf); sdata 578 net/mac80211/debugfs_netdev.c ieee80211_recalc_dtim(local, sdata); sdata 651 net/mac80211/debugfs_netdev.c debugfs_create_file(#name, mode, sdata->vif.debugfs_dir, \ sdata 652 net/mac80211/debugfs_netdev.c sdata, &name##_ops); sdata 656 net/mac80211/debugfs_netdev.c static void add_common_files(struct ieee80211_sub_if_data *sdata) sdata 666 net/mac80211/debugfs_netdev.c if (sdata->local->ops->wake_tx_queue && sdata 667 net/mac80211/debugfs_netdev.c sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE && sdata 668 net/mac80211/debugfs_netdev.c sdata->vif.type != NL80211_IFTYPE_NAN) sdata 672 net/mac80211/debugfs_netdev.c static void add_sta_files(struct ieee80211_sub_if_data *sdata) sdata 685 net/mac80211/debugfs_netdev.c static void add_ap_files(struct ieee80211_sub_if_data *sdata) sdata 696 net/mac80211/debugfs_netdev.c static void add_vlan_files(struct ieee80211_sub_if_data *sdata) sdata 699 net/mac80211/debugfs_netdev.c debugfs_create_file("num_mcast_sta", 0400, sdata->vif.debugfs_dir, sdata 700 net/mac80211/debugfs_netdev.c sdata, &num_mcast_sta_vlan_ops); sdata 703 net/mac80211/debugfs_netdev.c static void add_ibss_files(struct ieee80211_sub_if_data *sdata) sdata 708 net/mac80211/debugfs_netdev.c static void add_wds_files(struct ieee80211_sub_if_data *sdata) sdata 715 net/mac80211/debugfs_netdev.c static void add_mesh_files(struct ieee80211_sub_if_data *sdata) sdata 721 net/mac80211/debugfs_netdev.c static void add_mesh_stats(struct ieee80211_sub_if_data *sdata) sdata 724 net/mac80211/debugfs_netdev.c sdata->vif.debugfs_dir); sdata 726 net/mac80211/debugfs_netdev.c debugfs_create_file(#name, 0400, dir, sdata, &name##_ops); sdata 737 net/mac80211/debugfs_netdev.c static void add_mesh_config(struct ieee80211_sub_if_data *sdata) sdata 740 net/mac80211/debugfs_netdev.c sdata->vif.debugfs_dir); sdata 743 net/mac80211/debugfs_netdev.c debugfs_create_file(#name, 0600, dir, sdata, &name##_ops); sdata 776 net/mac80211/debugfs_netdev.c static void add_files(struct ieee80211_sub_if_data *sdata) sdata 778 net/mac80211/debugfs_netdev.c if (!sdata->vif.debugfs_dir) sdata 787 net/mac80211/debugfs_netdev.c if (sdata->vif.type != NL80211_IFTYPE_MONITOR) sdata 788 net/mac80211/debugfs_netdev.c add_common_files(sdata); sdata 790 net/mac80211/debugfs_netdev.c switch (sdata->vif.type) { sdata 793 net/mac80211/debugfs_netdev.c add_mesh_files(sdata); sdata 794 net/mac80211/debugfs_netdev.c add_mesh_stats(sdata); sdata 795 net/mac80211/debugfs_netdev.c add_mesh_config(sdata); sdata 799 net/mac80211/debugfs_netdev.c add_sta_files(sdata); sdata 802 net/mac80211/debugfs_netdev.c add_ibss_files(sdata); sdata 805 net/mac80211/debugfs_netdev.c add_ap_files(sdata); sdata 808 net/mac80211/debugfs_netdev.c add_vlan_files(sdata); sdata 811 net/mac80211/debugfs_netdev.c add_wds_files(sdata); sdata 818 net/mac80211/debugfs_netdev.c void ieee80211_debugfs_add_netdev(struct ieee80211_sub_if_data *sdata) sdata 822 net/mac80211/debugfs_netdev.c sprintf(buf, "netdev:%s", sdata->name); sdata 823 net/mac80211/debugfs_netdev.c sdata->vif.debugfs_dir = debugfs_create_dir(buf, sdata 824 net/mac80211/debugfs_netdev.c sdata->local->hw.wiphy->debugfsdir); sdata 825 net/mac80211/debugfs_netdev.c sdata->debugfs.subdir_stations = debugfs_create_dir("stations", sdata 826 net/mac80211/debugfs_netdev.c sdata->vif.debugfs_dir); sdata 827 net/mac80211/debugfs_netdev.c add_files(sdata); sdata 830 net/mac80211/debugfs_netdev.c void ieee80211_debugfs_remove_netdev(struct ieee80211_sub_if_data *sdata) sdata 832 net/mac80211/debugfs_netdev.c if (!sdata->vif.debugfs_dir) sdata 835 net/mac80211/debugfs_netdev.c debugfs_remove_recursive(sdata->vif.debugfs_dir); sdata 836 net/mac80211/debugfs_netdev.c sdata->vif.debugfs_dir = NULL; sdata 837 net/mac80211/debugfs_netdev.c sdata->debugfs.subdir_stations = NULL; sdata 840 net/mac80211/debugfs_netdev.c void ieee80211_debugfs_rename_netdev(struct ieee80211_sub_if_data *sdata) sdata 845 net/mac80211/debugfs_netdev.c dir = sdata->vif.debugfs_dir; sdata 850 net/mac80211/debugfs_netdev.c sprintf(buf, "netdev:%s", sdata->name); sdata 10 net/mac80211/debugfs_netdev.h void ieee80211_debugfs_add_netdev(struct ieee80211_sub_if_data *sdata); sdata 11 net/mac80211/debugfs_netdev.h void ieee80211_debugfs_remove_netdev(struct ieee80211_sub_if_data *sdata); sdata 12 net/mac80211/debugfs_netdev.h void ieee80211_debugfs_rename_netdev(struct ieee80211_sub_if_data *sdata); sdata 15 net/mac80211/debugfs_netdev.h struct ieee80211_sub_if_data *sdata) sdata 18 net/mac80211/debugfs_netdev.h struct ieee80211_sub_if_data *sdata) sdata 21 net/mac80211/debugfs_netdev.h struct ieee80211_sub_if_data *sdata) sdata 200 net/mac80211/debugfs_sta.c struct ieee80211_local *local = sta->sdata->local; sdata 239 net/mac80211/debugfs_sta.c struct ieee80211_local *local = sta->sdata->local; sdata 942 net/mac80211/debugfs_sta.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 943 net/mac80211/debugfs_sta.c struct dentry *stations_dir = sta->sdata->debugfs.subdir_stations; sdata 991 net/mac80211/debugfs_sta.c drv_sta_add_debugfs(local, sdata, &sta->sta, sta->debugfs_dir); sdata 53 net/mac80211/driver-ops.c struct ieee80211_sub_if_data *sdata) sdata 59 net/mac80211/driver-ops.c if (WARN_ON(sdata->vif.type == NL80211_IFTYPE_AP_VLAN || sdata 60 net/mac80211/driver-ops.c (sdata->vif.type == NL80211_IFTYPE_MONITOR && sdata 62 net/mac80211/driver-ops.c !(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE)))) sdata 65 net/mac80211/driver-ops.c trace_drv_add_interface(local, sdata); sdata 66 net/mac80211/driver-ops.c ret = local->ops->add_interface(&local->hw, &sdata->vif); sdata 70 net/mac80211/driver-ops.c sdata->flags |= IEEE80211_SDATA_IN_DRIVER; sdata 76 net/mac80211/driver-ops.c struct ieee80211_sub_if_data *sdata, sdata 83 net/mac80211/driver-ops.c if (!check_sdata_in_driver(sdata)) sdata 86 net/mac80211/driver-ops.c trace_drv_change_interface(local, sdata, type, p2p); sdata 87 net/mac80211/driver-ops.c ret = local->ops->change_interface(&local->hw, &sdata->vif, type, p2p); sdata 93 net/mac80211/driver-ops.c struct ieee80211_sub_if_data *sdata) sdata 97 net/mac80211/driver-ops.c if (!check_sdata_in_driver(sdata)) sdata 100 net/mac80211/driver-ops.c trace_drv_remove_interface(local, sdata); sdata 101 net/mac80211/driver-ops.c local->ops->remove_interface(&local->hw, &sdata->vif); sdata 102 net/mac80211/driver-ops.c sdata->flags &= ~IEEE80211_SDATA_IN_DRIVER; sdata 108 net/mac80211/driver-ops.c struct ieee80211_sub_if_data *sdata, sdata 117 net/mac80211/driver-ops.c sdata = get_bss_sdata(sdata); sdata 118 net/mac80211/driver-ops.c if (!check_sdata_in_driver(sdata)) sdata 121 net/mac80211/driver-ops.c trace_drv_sta_state(local, sdata, &sta->sta, old_state, new_state); sdata 123 net/mac80211/driver-ops.c ret = local->ops->sta_state(&local->hw, &sdata->vif, &sta->sta, sdata 127 net/mac80211/driver-ops.c ret = drv_sta_add(local, sdata, &sta->sta); sdata 132 net/mac80211/driver-ops.c drv_sta_remove(local, sdata, &sta->sta); sdata 140 net/mac80211/driver-ops.c struct ieee80211_sub_if_data *sdata, sdata 147 net/mac80211/driver-ops.c sdata = get_bss_sdata(sdata); sdata 148 net/mac80211/driver-ops.c if (!check_sdata_in_driver(sdata)) sdata 151 net/mac80211/driver-ops.c trace_drv_sta_set_txpwr(local, sdata, &sta->sta); sdata 153 net/mac80211/driver-ops.c ret = local->ops->sta_set_txpwr(&local->hw, &sdata->vif, sdata 160 net/mac80211/driver-ops.c struct ieee80211_sub_if_data *sdata, sdata 163 net/mac80211/driver-ops.c sdata = get_bss_sdata(sdata); sdata 164 net/mac80211/driver-ops.c if (!check_sdata_in_driver(sdata)) sdata 168 net/mac80211/driver-ops.c (sdata->vif.type != NL80211_IFTYPE_ADHOC && sdata 169 net/mac80211/driver-ops.c sdata->vif.type != NL80211_IFTYPE_MESH_POINT)); sdata 171 net/mac80211/driver-ops.c trace_drv_sta_rc_update(local, sdata, sta, changed); sdata 173 net/mac80211/driver-ops.c local->ops->sta_rc_update(&local->hw, &sdata->vif, sdata 180 net/mac80211/driver-ops.c struct ieee80211_sub_if_data *sdata, u16 ac, sdata 187 net/mac80211/driver-ops.c if (!check_sdata_in_driver(sdata)) sdata 197 net/mac80211/driver-ops.c sdata->name, params->cw_min, params->cw_max); sdata 201 net/mac80211/driver-ops.c trace_drv_conf_tx(local, sdata, ac, params); sdata 203 net/mac80211/driver-ops.c ret = local->ops->conf_tx(&local->hw, &sdata->vif, sdata 210 net/mac80211/driver-ops.c struct ieee80211_sub_if_data *sdata) sdata 216 net/mac80211/driver-ops.c if (!check_sdata_in_driver(sdata)) sdata 219 net/mac80211/driver-ops.c trace_drv_get_tsf(local, sdata); sdata 221 net/mac80211/driver-ops.c ret = local->ops->get_tsf(&local->hw, &sdata->vif); sdata 227 net/mac80211/driver-ops.c struct ieee80211_sub_if_data *sdata, sdata 232 net/mac80211/driver-ops.c if (!check_sdata_in_driver(sdata)) sdata 235 net/mac80211/driver-ops.c trace_drv_set_tsf(local, sdata, tsf); sdata 237 net/mac80211/driver-ops.c local->ops->set_tsf(&local->hw, &sdata->vif, tsf); sdata 242 net/mac80211/driver-ops.c struct ieee80211_sub_if_data *sdata, sdata 247 net/mac80211/driver-ops.c if (!check_sdata_in_driver(sdata)) sdata 250 net/mac80211/driver-ops.c trace_drv_offset_tsf(local, sdata, offset); sdata 252 net/mac80211/driver-ops.c local->ops->offset_tsf(&local->hw, &sdata->vif, offset); sdata 257 net/mac80211/driver-ops.c struct ieee80211_sub_if_data *sdata) sdata 261 net/mac80211/driver-ops.c if (!check_sdata_in_driver(sdata)) sdata 264 net/mac80211/driver-ops.c trace_drv_reset_tsf(local, sdata); sdata 266 net/mac80211/driver-ops.c local->ops->reset_tsf(&local->hw, &sdata->vif); sdata 324 net/mac80211/driver-ops.c struct ieee80211_sub_if_data *sdata, sdata 331 net/mac80211/driver-ops.c sdata = get_bss_sdata(sdata); sdata 332 net/mac80211/driver-ops.c if (!check_sdata_in_driver(sdata)) sdata 335 net/mac80211/driver-ops.c trace_drv_ampdu_action(local, sdata, params); sdata 338 net/mac80211/driver-ops.c ret = local->ops->ampdu_action(&local->hw, &sdata->vif, params); sdata 15 net/mac80211/driver-ops.h static inline bool check_sdata_in_driver(struct ieee80211_sub_if_data *sdata) sdata 17 net/mac80211/driver-ops.h return !WARN(!(sdata->flags & IEEE80211_SDATA_IN_DRIVER), sdata 19 net/mac80211/driver-ops.h sdata->dev ? sdata->dev->name : sdata->name, sdata->flags); sdata 23 net/mac80211/driver-ops.h get_bss_sdata(struct ieee80211_sub_if_data *sdata) sdata 25 net/mac80211/driver-ops.h if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 26 net/mac80211/driver-ops.h sdata = container_of(sdata->bss, struct ieee80211_sub_if_data, sdata 29 net/mac80211/driver-ops.h return sdata; sdata 43 net/mac80211/driver-ops.h trace_drv_sync_rx_queues(local, sta->sdata, &sta->sta); sdata 49 net/mac80211/driver-ops.h static inline void drv_get_et_strings(struct ieee80211_sub_if_data *sdata, sdata 52 net/mac80211/driver-ops.h struct ieee80211_local *local = sdata->local; sdata 55 net/mac80211/driver-ops.h local->ops->get_et_strings(&local->hw, &sdata->vif, sset, data); sdata 60 net/mac80211/driver-ops.h static inline void drv_get_et_stats(struct ieee80211_sub_if_data *sdata, sdata 64 net/mac80211/driver-ops.h struct ieee80211_local *local = sdata->local; sdata 67 net/mac80211/driver-ops.h local->ops->get_et_stats(&local->hw, &sdata->vif, stats, data); sdata 72 net/mac80211/driver-ops.h static inline int drv_get_et_sset_count(struct ieee80211_sub_if_data *sdata, sdata 75 net/mac80211/driver-ops.h struct ieee80211_local *local = sdata->local; sdata 79 net/mac80211/driver-ops.h rv = local->ops->get_et_sset_count(&local->hw, &sdata->vif, sdata 130 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata); sdata 133 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 137 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata); sdata 152 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 160 net/mac80211/driver-ops.h sdata->vif.type != NL80211_IFTYPE_AP && sdata 161 net/mac80211/driver-ops.h sdata->vif.type != NL80211_IFTYPE_ADHOC && sdata 162 net/mac80211/driver-ops.h sdata->vif.type != NL80211_IFTYPE_MESH_POINT && sdata 163 net/mac80211/driver-ops.h sdata->vif.type != NL80211_IFTYPE_OCB)) sdata 166 net/mac80211/driver-ops.h if (WARN_ON_ONCE(sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE || sdata 167 net/mac80211/driver-ops.h sdata->vif.type == NL80211_IFTYPE_NAN || sdata 168 net/mac80211/driver-ops.h (sdata->vif.type == NL80211_IFTYPE_MONITOR && sdata 169 net/mac80211/driver-ops.h !sdata->vif.mu_mimo_owner && sdata 173 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 176 net/mac80211/driver-ops.h trace_drv_bss_info_changed(local, sdata, info, changed); sdata 178 net/mac80211/driver-ops.h local->ops->bss_info_changed(&local->hw, &sdata->vif, info, changed); sdata 212 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 218 net/mac80211/driver-ops.h trace_drv_config_iface_filter(local, sdata, filter_flags, sdata 221 net/mac80211/driver-ops.h local->ops->config_iface_filter(&local->hw, &sdata->vif, sdata 240 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 248 net/mac80211/driver-ops.h sdata = get_bss_sdata(sdata); sdata 249 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 252 net/mac80211/driver-ops.h trace_drv_set_key(local, cmd, sdata, sta, key); sdata 253 net/mac80211/driver-ops.h ret = local->ops->set_key(&local->hw, cmd, &sdata->vif, sta, key); sdata 259 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 269 net/mac80211/driver-ops.h sdata = get_bss_sdata(sdata); sdata 270 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 273 net/mac80211/driver-ops.h trace_drv_update_tkip_key(local, sdata, conf, ista, iv32); sdata 275 net/mac80211/driver-ops.h local->ops->update_tkip_key(&local->hw, &sdata->vif, conf, sdata 281 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 288 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 291 net/mac80211/driver-ops.h trace_drv_hw_scan(local, sdata); sdata 292 net/mac80211/driver-ops.h ret = local->ops->hw_scan(&local->hw, &sdata->vif, req); sdata 298 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata) sdata 302 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 305 net/mac80211/driver-ops.h trace_drv_cancel_hw_scan(local, sdata); sdata 306 net/mac80211/driver-ops.h local->ops->cancel_hw_scan(&local->hw, &sdata->vif); sdata 312 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 320 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 323 net/mac80211/driver-ops.h trace_drv_sched_scan_start(local, sdata); sdata 324 net/mac80211/driver-ops.h ret = local->ops->sched_scan_start(&local->hw, &sdata->vif, sdata 331 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata) sdata 337 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 340 net/mac80211/driver-ops.h trace_drv_sched_scan_stop(local, sdata); sdata 341 net/mac80211/driver-ops.h ret = local->ops->sched_scan_stop(&local->hw, &sdata->vif); sdata 348 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 353 net/mac80211/driver-ops.h trace_drv_sw_scan_start(local, sdata, mac_addr); sdata 355 net/mac80211/driver-ops.h local->ops->sw_scan_start(&local->hw, &sdata->vif, mac_addr); sdata 360 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata) sdata 364 net/mac80211/driver-ops.h trace_drv_sw_scan_complete(local, sdata); sdata 366 net/mac80211/driver-ops.h local->ops->sw_scan_complete(&local->hw, &sdata->vif); sdata 438 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 442 net/mac80211/driver-ops.h sdata = get_bss_sdata(sdata); sdata 443 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 446 net/mac80211/driver-ops.h trace_drv_sta_notify(local, sdata, cmd, sta); sdata 448 net/mac80211/driver-ops.h local->ops->sta_notify(&local->hw, &sdata->vif, cmd, sta); sdata 453 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 460 net/mac80211/driver-ops.h sdata = get_bss_sdata(sdata); sdata 461 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 464 net/mac80211/driver-ops.h trace_drv_sta_add(local, sdata, sta); sdata 466 net/mac80211/driver-ops.h ret = local->ops->sta_add(&local->hw, &sdata->vif, sta); sdata 474 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 479 net/mac80211/driver-ops.h sdata = get_bss_sdata(sdata); sdata 480 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 483 net/mac80211/driver-ops.h trace_drv_sta_remove(local, sdata, sta); sdata 485 net/mac80211/driver-ops.h local->ops->sta_remove(&local->hw, &sdata->vif, sta); sdata 492 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 498 net/mac80211/driver-ops.h sdata = get_bss_sdata(sdata); sdata 499 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 503 net/mac80211/driver-ops.h local->ops->sta_add_debugfs(&local->hw, &sdata->vif, sdata 509 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 514 net/mac80211/driver-ops.h sdata = get_bss_sdata(sdata); sdata 515 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 518 net/mac80211/driver-ops.h trace_drv_sta_pre_rcu_remove(local, sdata, &sta->sta); sdata 520 net/mac80211/driver-ops.h local->ops->sta_pre_rcu_remove(&local->hw, &sdata->vif, sdata 527 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 534 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 538 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 542 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 545 net/mac80211/driver-ops.h sdata = get_bss_sdata(sdata); sdata 546 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 549 net/mac80211/driver-ops.h trace_drv_sta_rate_tbl_update(local, sdata, sta); sdata 551 net/mac80211/driver-ops.h local->ops->sta_rate_tbl_update(&local->hw, &sdata->vif, sta); sdata 557 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 561 net/mac80211/driver-ops.h sdata = get_bss_sdata(sdata); sdata 562 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 565 net/mac80211/driver-ops.h trace_drv_sta_statistics(local, sdata, sta); sdata 567 net/mac80211/driver-ops.h local->ops->sta_statistics(&local->hw, &sdata->vif, sta, sinfo); sdata 572 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, u16 ac, sdata 576 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata); sdata 578 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 581 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 584 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata); sdata 600 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 627 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 630 net/mac80211/driver-ops.h struct ieee80211_vif *vif = sdata ? &sdata->vif : NULL; sdata 634 net/mac80211/driver-ops.h if (sdata && !check_sdata_in_driver(sdata)) sdata 644 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 649 net/mac80211/driver-ops.h trace_drv_channel_switch(local, sdata, ch_switch); sdata 650 net/mac80211/driver-ops.h local->ops->channel_switch(&local->hw, &sdata->vif, ch_switch); sdata 678 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 687 net/mac80211/driver-ops.h trace_drv_remain_on_channel(local, sdata, chan, duration, type); sdata 688 net/mac80211/driver-ops.h ret = local->ops->remain_on_channel(&local->hw, &sdata->vif, sdata 697 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata) sdata 703 net/mac80211/driver-ops.h trace_drv_cancel_remain_on_channel(local, sdata); sdata 704 net/mac80211/driver-ops.h ret = local->ops->cancel_remain_on_channel(&local->hw, &sdata->vif); sdata 751 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 758 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 761 net/mac80211/driver-ops.h trace_drv_set_bitrate_mask(local, sdata, mask); sdata 764 net/mac80211/driver-ops.h &sdata->vif, mask); sdata 771 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 774 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 777 net/mac80211/driver-ops.h trace_drv_set_rekey_data(local, sdata, data); sdata 779 net/mac80211/driver-ops.h local->ops->set_rekey_data(&local->hw, &sdata->vif, data); sdata 784 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 787 net/mac80211/driver-ops.h trace_drv_event_callback(local, sdata, event); sdata 789 net/mac80211/driver-ops.h local->ops->event_callback(&local->hw, &sdata->vif, event); sdata 824 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 829 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 831 net/mac80211/driver-ops.h WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_STATION); sdata 833 net/mac80211/driver-ops.h trace_drv_mgd_prepare_tx(local, sdata, duration); sdata 835 net/mac80211/driver-ops.h local->ops->mgd_prepare_tx(&local->hw, &sdata->vif, duration); sdata 841 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata) sdata 845 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 847 net/mac80211/driver-ops.h WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_STATION); sdata 849 net/mac80211/driver-ops.h trace_drv_mgd_protect_tdls_discover(local, sdata); sdata 851 net/mac80211/driver-ops.h local->ops->mgd_protect_tdls_discover(&local->hw, &sdata->vif); sdata 902 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 907 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 910 net/mac80211/driver-ops.h trace_drv_assign_vif_chanctx(local, sdata, ctx); sdata 914 net/mac80211/driver-ops.h &sdata->vif, sdata 923 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 928 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 931 net/mac80211/driver-ops.h trace_drv_unassign_vif_chanctx(local, sdata, ctx); sdata 935 net/mac80211/driver-ops.h &sdata->vif, sdata 946 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata) sdata 952 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 955 net/mac80211/driver-ops.h trace_drv_start_ap(local, sdata, &sdata->vif.bss_conf); sdata 957 net/mac80211/driver-ops.h ret = local->ops->start_ap(&local->hw, &sdata->vif); sdata 963 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata) sdata 965 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 968 net/mac80211/driver-ops.h trace_drv_stop_ap(local, sdata); sdata 970 net/mac80211/driver-ops.h local->ops->stop_ap(&local->hw, &sdata->vif); sdata 988 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 991 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 996 net/mac80211/driver-ops.h trace_drv_set_default_unicast_key(local, sdata, key_idx); sdata 998 net/mac80211/driver-ops.h local->ops->set_default_unicast_key(&local->hw, &sdata->vif, sdata 1005 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 1008 net/mac80211/driver-ops.h trace_drv_ipv6_addr_change(local, sdata); sdata 1010 net/mac80211/driver-ops.h local->ops->ipv6_addr_change(&local->hw, &sdata->vif, idev); sdata 1016 net/mac80211/driver-ops.h drv_channel_switch_beacon(struct ieee80211_sub_if_data *sdata, sdata 1019 net/mac80211/driver-ops.h struct ieee80211_local *local = sdata->local; sdata 1022 net/mac80211/driver-ops.h trace_drv_channel_switch_beacon(local, sdata, chandef); sdata 1023 net/mac80211/driver-ops.h local->ops->channel_switch_beacon(&local->hw, &sdata->vif, sdata 1029 net/mac80211/driver-ops.h drv_pre_channel_switch(struct ieee80211_sub_if_data *sdata, sdata 1032 net/mac80211/driver-ops.h struct ieee80211_local *local = sdata->local; sdata 1035 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 1038 net/mac80211/driver-ops.h trace_drv_pre_channel_switch(local, sdata, ch_switch); sdata 1040 net/mac80211/driver-ops.h ret = local->ops->pre_channel_switch(&local->hw, &sdata->vif, sdata 1047 net/mac80211/driver-ops.h drv_post_channel_switch(struct ieee80211_sub_if_data *sdata) sdata 1049 net/mac80211/driver-ops.h struct ieee80211_local *local = sdata->local; sdata 1052 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 1055 net/mac80211/driver-ops.h trace_drv_post_channel_switch(local, sdata); sdata 1057 net/mac80211/driver-ops.h ret = local->ops->post_channel_switch(&local->hw, &sdata->vif); sdata 1063 net/mac80211/driver-ops.h drv_abort_channel_switch(struct ieee80211_sub_if_data *sdata) sdata 1065 net/mac80211/driver-ops.h struct ieee80211_local *local = sdata->local; sdata 1067 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 1070 net/mac80211/driver-ops.h trace_drv_abort_channel_switch(local, sdata); sdata 1073 net/mac80211/driver-ops.h local->ops->abort_channel_switch(&local->hw, &sdata->vif); sdata 1077 net/mac80211/driver-ops.h drv_channel_switch_rx_beacon(struct ieee80211_sub_if_data *sdata, sdata 1080 net/mac80211/driver-ops.h struct ieee80211_local *local = sdata->local; sdata 1082 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 1085 net/mac80211/driver-ops.h trace_drv_channel_switch_rx_beacon(local, sdata, ch_switch); sdata 1087 net/mac80211/driver-ops.h local->ops->channel_switch_rx_beacon(&local->hw, &sdata->vif, sdata 1092 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata) sdata 1097 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 1100 net/mac80211/driver-ops.h trace_drv_join_ibss(local, sdata, &sdata->vif.bss_conf); sdata 1102 net/mac80211/driver-ops.h ret = local->ops->join_ibss(&local->hw, &sdata->vif); sdata 1108 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata) sdata 1111 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 1114 net/mac80211/driver-ops.h trace_drv_leave_ibss(local, sdata); sdata 1116 net/mac80211/driver-ops.h local->ops->leave_ibss(&local->hw, &sdata->vif); sdata 1134 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, int *dbm) sdata 1141 net/mac80211/driver-ops.h ret = local->ops->get_txpower(&local->hw, &sdata->vif, dbm); sdata 1142 net/mac80211/driver-ops.h trace_drv_get_txpower(local, sdata, *dbm, ret); sdata 1149 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 1157 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 1163 net/mac80211/driver-ops.h trace_drv_tdls_channel_switch(local, sdata, sta, oper_class, chandef); sdata 1164 net/mac80211/driver-ops.h ret = local->ops->tdls_channel_switch(&local->hw, &sdata->vif, sta, sdata 1173 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 1177 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 1183 net/mac80211/driver-ops.h trace_drv_tdls_cancel_channel_switch(local, sdata, sta); sdata 1184 net/mac80211/driver-ops.h local->ops->tdls_cancel_channel_switch(&local->hw, &sdata->vif, sta); sdata 1190 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 1193 net/mac80211/driver-ops.h trace_drv_tdls_recv_channel_switch(local, sdata, params); sdata 1195 net/mac80211/driver-ops.h local->ops->tdls_recv_channel_switch(&local->hw, &sdata->vif, sdata 1203 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata = vif_to_sdata(txq->txq.vif); sdata 1208 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 1211 net/mac80211/driver-ops.h trace_drv_wake_tx_queue(local, sdata, txq); sdata 1234 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 1241 net/mac80211/driver-ops.h &sdata->vif, sdata 1243 net/mac80211/driver-ops.h trace_drv_get_ftm_responder_stats(local, sdata, ftm_stats); sdata 1249 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 1255 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 1258 net/mac80211/driver-ops.h trace_drv_start_pmsr(local, sdata); sdata 1261 net/mac80211/driver-ops.h ret = local->ops->start_pmsr(&local->hw, &sdata->vif, request); sdata 1268 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 1271 net/mac80211/driver-ops.h trace_drv_abort_pmsr(local, sdata); sdata 1274 net/mac80211/driver-ops.h if (!check_sdata_in_driver(sdata)) sdata 1278 net/mac80211/driver-ops.h local->ops->abort_pmsr(&local->hw, &sdata->vif, request); sdata 1283 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 1289 net/mac80211/driver-ops.h check_sdata_in_driver(sdata); sdata 1291 net/mac80211/driver-ops.h trace_drv_start_nan(local, sdata, conf); sdata 1292 net/mac80211/driver-ops.h ret = local->ops->start_nan(&local->hw, &sdata->vif, conf); sdata 1298 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata) sdata 1301 net/mac80211/driver-ops.h check_sdata_in_driver(sdata); sdata 1303 net/mac80211/driver-ops.h trace_drv_stop_nan(local, sdata); sdata 1304 net/mac80211/driver-ops.h local->ops->stop_nan(&local->hw, &sdata->vif); sdata 1309 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 1316 net/mac80211/driver-ops.h check_sdata_in_driver(sdata); sdata 1321 net/mac80211/driver-ops.h trace_drv_nan_change_conf(local, sdata, conf, changes); sdata 1322 net/mac80211/driver-ops.h ret = local->ops->nan_change_conf(&local->hw, &sdata->vif, conf, sdata 1330 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 1336 net/mac80211/driver-ops.h check_sdata_in_driver(sdata); sdata 1341 net/mac80211/driver-ops.h trace_drv_add_nan_func(local, sdata, nan_func); sdata 1342 net/mac80211/driver-ops.h ret = local->ops->add_nan_func(&local->hw, &sdata->vif, nan_func); sdata 1349 net/mac80211/driver-ops.h struct ieee80211_sub_if_data *sdata, sdata 1353 net/mac80211/driver-ops.h check_sdata_in_driver(sdata); sdata 1355 net/mac80211/driver-ops.h trace_drv_del_nan_func(local, sdata, instance_id); sdata 1357 net/mac80211/driver-ops.h local->ops->del_nan_func(&local->hw, &sdata->vif, instance_id); sdata 51 net/mac80211/ethtool.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 57 net/mac80211/ethtool.c rv += drv_get_et_sset_count(sdata, sset); sdata 68 net/mac80211/ethtool.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 72 net/mac80211/ethtool.c struct ieee80211_local *local = sdata->local; sdata 103 net/mac80211/ethtool.c if (sdata->vif.type == NL80211_IFTYPE_STATION) { sdata 104 net/mac80211/ethtool.c sta = sta_info_get_bss(sdata, sdata->u.mgd.bssid); sdata 106 net/mac80211/ethtool.c if (!(sta && !WARN_ON(sta->sdata->dev != dev))) sdata 133 net/mac80211/ethtool.c if (sta->sdata->dev != dev) sdata 149 net/mac80211/ethtool.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 202 net/mac80211/ethtool.c drv_get_et_stats(sdata, stats, &(data[STA_STATS_LEN])); sdata 207 net/mac80211/ethtool.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 214 net/mac80211/ethtool.c drv_get_et_strings(sdata, sset, &(data[sz_sta_stats])); sdata 267 net/mac80211/fils_aead.c int fils_decrypt_assoc_resp(struct ieee80211_sub_if_data *sdata, sdata 286 net/mac80211/fils_aead.c mlme_dbg(sdata, sdata 316 net/mac80211/fils_aead.c mlme_dbg(sdata, sdata 324 net/mac80211/fils_aead.c mlme_dbg(sdata, sdata 12 net/mac80211/fils_aead.h int fils_decrypt_assoc_resp(struct ieee80211_sub_if_data *sdata, sdata 11 net/mac80211/he.c ieee80211_he_cap_ie_to_sta_he_cap(struct ieee80211_sub_if_data *sdata, sdata 44 net/mac80211/ht.c void ieee80211_apply_htcap_overrides(struct ieee80211_sub_if_data *sdata, sdata 54 net/mac80211/ht.c switch (sdata->vif.type) { sdata 56 net/mac80211/ht.c ht_capa = &sdata->u.mgd.ht_capa; sdata 57 net/mac80211/ht.c ht_capa_mask = &sdata->u.mgd.ht_capa_mask; sdata 60 net/mac80211/ht.c ht_capa = &sdata->u.ibss.ht_capa; sdata 61 net/mac80211/ht.c ht_capa_mask = &sdata->u.ibss.ht_capa_mask; sdata 137 net/mac80211/ht.c bool ieee80211_ht_cap_ie_to_sta_ht_cap(struct ieee80211_sub_if_data *sdata, sdata 164 net/mac80211/ht.c if (sdata->vif.type == NL80211_IFTYPE_STATION || sdata 165 net/mac80211/ht.c sdata->vif.type == NL80211_IFTYPE_ADHOC) sdata 166 net/mac80211/ht.c ieee80211_apply_htcap_overrides(sdata, &own_cap); sdata 250 net/mac80211/ht.c switch (sdata->vif.bss_conf.chandef.width) { sdata 408 net/mac80211/ht.c void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata, sdata 412 net/mac80211/ht.c struct ieee80211_local *local = sdata->local; sdata 424 net/mac80211/ht.c memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); sdata 425 net/mac80211/ht.c if (sdata->vif.type == NL80211_IFTYPE_AP || sdata 426 net/mac80211/ht.c sdata->vif.type == NL80211_IFTYPE_AP_VLAN || sdata 427 net/mac80211/ht.c sdata->vif.type == NL80211_IFTYPE_MESH_POINT) sdata 428 net/mac80211/ht.c memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); sdata 429 net/mac80211/ht.c else if (sdata->vif.type == NL80211_IFTYPE_STATION) sdata 430 net/mac80211/ht.c memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); sdata 431 net/mac80211/ht.c else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) sdata 432 net/mac80211/ht.c memcpy(mgmt->bssid, sdata->u.ibss.bssid, ETH_ALEN); sdata 447 net/mac80211/ht.c ieee80211_tx_skb(sdata, skb); sdata 450 net/mac80211/ht.c void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata, sdata 461 net/mac80211/ht.c ht_dbg_ratelimited(sdata, "delba from %pM (%s) tid %d reason code %d\n", sdata 488 net/mac80211/ht.c int ieee80211_send_smps_action(struct ieee80211_sub_if_data *sdata, sdata 492 net/mac80211/ht.c struct ieee80211_local *local = sdata->local; sdata 504 net/mac80211/ht.c memcpy(action_frame->sa, sdata->dev->dev_addr, ETH_ALEN); sdata 531 net/mac80211/ht.c ieee80211_tx_skb(sdata, skb); sdata 538 net/mac80211/ht.c struct ieee80211_sub_if_data *sdata = sdata 542 net/mac80211/ht.c sdata_lock(sdata); sdata 543 net/mac80211/ht.c __ieee80211_request_smps_mgd(sdata, sdata->u.mgd.driver_smps_mode); sdata 544 net/mac80211/ht.c sdata_unlock(sdata); sdata 549 net/mac80211/ht.c struct ieee80211_sub_if_data *sdata = sdata 553 net/mac80211/ht.c sdata_lock(sdata); sdata 554 net/mac80211/ht.c if (sdata_dereference(sdata->u.ap.beacon, sdata)) sdata 555 net/mac80211/ht.c __ieee80211_request_smps_ap(sdata, sdata 556 net/mac80211/ht.c sdata->u.ap.driver_smps_mode); sdata 557 net/mac80211/ht.c sdata_unlock(sdata); sdata 563 net/mac80211/ht.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 570 net/mac80211/ht.c if (sdata->u.mgd.driver_smps_mode == smps_mode) sdata 572 net/mac80211/ht.c sdata->u.mgd.driver_smps_mode = smps_mode; sdata 573 net/mac80211/ht.c ieee80211_queue_work(&sdata->local->hw, sdata 574 net/mac80211/ht.c &sdata->u.mgd.request_smps_work); sdata 579 net/mac80211/ht.c if (sdata->u.ap.driver_smps_mode == smps_mode) sdata 581 net/mac80211/ht.c sdata->u.ap.driver_smps_mode = smps_mode; sdata 582 net/mac80211/ht.c ieee80211_queue_work(&sdata->local->hw, sdata 583 net/mac80211/ht.c &sdata->u.ap.request_smps_work); sdata 38 net/mac80211/ibss.c ieee80211_ibss_build_presp(struct ieee80211_sub_if_data *sdata, sdata 45 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 46 net/mac80211/ibss.c struct ieee80211_local *local = sdata->local; sdata 80 net/mac80211/ibss.c memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); sdata 183 net/mac80211/ibss.c ieee80211_apply_htcap_overrides(sdata, &ht_cap); sdata 218 net/mac80211/ibss.c static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata, sdata 225 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 226 net/mac80211/ibss.c struct ieee80211_local *local = sdata->local; sdata 238 net/mac80211/ibss.c sdata_assert_lock(sdata); sdata 241 net/mac80211/ibss.c drv_reset_tsf(local, sdata); sdata 244 net/mac80211/ibss.c sta_info_flush(sdata); sdata 247 net/mac80211/ibss.c if (sdata->vif.bss_conf.ibss_joined) { sdata 248 net/mac80211/ibss.c sdata->vif.bss_conf.ibss_joined = false; sdata 249 net/mac80211/ibss.c sdata->vif.bss_conf.ibss_creator = false; sdata 250 net/mac80211/ibss.c sdata->vif.bss_conf.enable_beacon = false; sdata 251 net/mac80211/ibss.c netif_carrier_off(sdata->dev); sdata 252 net/mac80211/ibss.c ieee80211_bss_info_change_notify(sdata, sdata 255 net/mac80211/ibss.c drv_leave_ibss(local, sdata); sdata 259 net/mac80211/ibss.c lockdep_is_held(&sdata->wdev.mtx)); sdata 273 net/mac80211/ibss.c sdata_info(sdata, sdata 282 net/mac80211/ibss.c sdata_info(sdata, sdata 288 net/mac80211/ibss.c err = cfg80211_chandef_dfs_required(sdata->local->hw.wiphy, sdata 291 net/mac80211/ibss.c sdata_info(sdata, sdata 296 net/mac80211/ibss.c sdata_info(sdata, sdata 304 net/mac80211/ibss.c if (ieee80211_vif_use_channel(sdata, &chandef, sdata 308 net/mac80211/ibss.c sdata_info(sdata, "Failed to join IBSS, no channel context\n"); sdata 312 net/mac80211/ibss.c sdata->radar_required = radar_required; sdata 317 net/mac80211/ibss.c presp = ieee80211_ibss_build_presp(sdata, beacon_int, basic_rates, sdata 326 net/mac80211/ibss.c sdata->vif.bss_conf.enable_beacon = true; sdata 327 net/mac80211/ibss.c sdata->vif.bss_conf.beacon_int = beacon_int; sdata 328 net/mac80211/ibss.c sdata->vif.bss_conf.basic_rates = basic_rates; sdata 329 net/mac80211/ibss.c sdata->vif.bss_conf.ssid_len = ifibss->ssid_len; sdata 330 net/mac80211/ibss.c memcpy(sdata->vif.bss_conf.ssid, ifibss->ssid, ifibss->ssid_len); sdata 332 net/mac80211/ibss.c bss_change |= ieee80211_reset_erp_info(sdata); sdata 351 net/mac80211/ibss.c sdata->vif.bss_conf.use_short_slot = chan->band == NL80211_BAND_5GHZ; sdata 356 net/mac80211/ibss.c sdata->flags |= IEEE80211_SDATA_OPERATING_GMODE; sdata 358 net/mac80211/ibss.c sdata->flags &= ~IEEE80211_SDATA_OPERATING_GMODE; sdata 360 net/mac80211/ibss.c ieee80211_set_wmm_default(sdata, true, false); sdata 362 net/mac80211/ibss.c sdata->vif.bss_conf.ibss_joined = true; sdata 363 net/mac80211/ibss.c sdata->vif.bss_conf.ibss_creator = creator; sdata 365 net/mac80211/ibss.c err = drv_join_ibss(local, sdata); sdata 367 net/mac80211/ibss.c sdata->vif.bss_conf.ibss_joined = false; sdata 368 net/mac80211/ibss.c sdata->vif.bss_conf.ibss_creator = false; sdata 369 net/mac80211/ibss.c sdata->vif.bss_conf.enable_beacon = false; sdata 370 net/mac80211/ibss.c sdata->vif.bss_conf.ssid_len = 0; sdata 374 net/mac80211/ibss.c ieee80211_vif_release_channel(sdata); sdata 376 net/mac80211/ibss.c sdata_info(sdata, "Failed to join IBSS, driver failure: %d\n", sdata 381 net/mac80211/ibss.c ieee80211_bss_info_change_notify(sdata, bss_change); sdata 393 net/mac80211/ibss.c netif_carrier_on(sdata->dev); sdata 394 net/mac80211/ibss.c cfg80211_ibss_joined(sdata->dev, ifibss->bssid, chan, GFP_KERNEL); sdata 397 net/mac80211/ibss.c static void ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata, sdata 413 net/mac80211/ibss.c sdata_assert_lock(sdata); sdata 418 net/mac80211/ibss.c switch (sdata->u.ibss.chandef.width) { sdata 422 net/mac80211/ibss.c chan_type = cfg80211_get_chandef_type(&sdata->u.ibss.chandef); sdata 429 net/mac80211/ibss.c chandef.width = sdata->u.ibss.chandef.width; sdata 434 net/mac80211/ibss.c chandef = sdata->u.ibss.chandef; sdata 444 net/mac80211/ibss.c sband = sdata->local->hw.wiphy->bands[cbss->channel->band]; sdata 445 net/mac80211/ibss.c rate_flags = ieee80211_chandef_rate_flags(&sdata->u.ibss.chandef); sdata 446 net/mac80211/ibss.c shift = ieee80211_vif_get_shift(&sdata->vif); sdata 475 net/mac80211/ibss.c __ieee80211_sta_join_ibss(sdata, cbss->bssid, sdata 483 net/mac80211/ibss.c int ieee80211_ibss_csa_beacon(struct ieee80211_sub_if_data *sdata, sdata 486 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 494 net/mac80211/ibss.c sdata_assert_lock(sdata); sdata 499 net/mac80211/ibss.c cbss = cfg80211_get_bss(sdata->local->hw.wiphy, ifibss->chandef.chan, sdata 513 net/mac80211/ibss.c cfg80211_put_bss(sdata->local->hw.wiphy, cbss); sdata 516 net/mac80211/ibss.c lockdep_is_held(&sdata->wdev.mtx)); sdata 518 net/mac80211/ibss.c presp = ieee80211_ibss_build_presp(sdata, sdata 519 net/mac80211/ibss.c sdata->vif.bss_conf.beacon_int, sdata 520 net/mac80211/ibss.c sdata->vif.bss_conf.basic_rates, sdata 537 net/mac80211/ibss.c int ieee80211_ibss_finish_csa(struct ieee80211_sub_if_data *sdata) sdata 539 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 543 net/mac80211/ibss.c sdata_assert_lock(sdata); sdata 547 net/mac80211/ibss.c cbss = cfg80211_get_bss(sdata->local->hw.wiphy, sdata 555 net/mac80211/ibss.c cbss->channel = sdata->csa_chandef.chan; sdata 556 net/mac80211/ibss.c cfg80211_put_bss(sdata->local->hw.wiphy, cbss); sdata 560 net/mac80211/ibss.c ifibss->chandef = sdata->csa_chandef; sdata 563 net/mac80211/ibss.c err = ieee80211_ibss_csa_beacon(sdata, NULL); sdata 572 net/mac80211/ibss.c void ieee80211_ibss_stop(struct ieee80211_sub_if_data *sdata) sdata 574 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 582 net/mac80211/ibss.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 587 net/mac80211/ibss.c ibss_dbg(sdata, "Adding new IBSS station %pM\n", addr); sdata 593 net/mac80211/ibss.c if (!sta->sdata->u.ibss.control_port) sdata 600 net/mac80211/ibss.c return sta_info_get(sdata, addr); sdata 605 net/mac80211/ibss.c ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata, const u8 *bssid, sdata 609 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 610 net/mac80211/ibss.c struct ieee80211_local *local = sdata->local; sdata 623 net/mac80211/ibss.c sdata->name, addr); sdata 633 net/mac80211/ibss.c if (!ether_addr_equal(bssid, sdata->u.ibss.bssid)) { sdata 639 net/mac80211/ibss.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 646 net/mac80211/ibss.c sta = sta_info_alloc(sdata, addr, GFP_KERNEL); sdata 660 net/mac80211/ibss.c static int ieee80211_sta_active_ibss(struct ieee80211_sub_if_data *sdata) sdata 662 net/mac80211/ibss.c struct ieee80211_local *local = sdata->local; sdata 666 net/mac80211/ibss.c sdata_assert_lock(sdata); sdata 673 net/mac80211/ibss.c if (sta->sdata == sdata && sdata 686 net/mac80211/ibss.c static void ieee80211_ibss_disconnect(struct ieee80211_sub_if_data *sdata) sdata 688 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 689 net/mac80211/ibss.c struct ieee80211_local *local = sdata->local; sdata 703 net/mac80211/ibss.c cfg80211_put_bss(sdata->local->hw.wiphy, cbss); sdata 709 net/mac80211/ibss.c sta_info_flush(sdata); sdata 723 net/mac80211/ibss.c netif_carrier_off(sdata->dev); sdata 725 net/mac80211/ibss.c sdata->vif.bss_conf.ibss_joined = false; sdata 726 net/mac80211/ibss.c sdata->vif.bss_conf.ibss_creator = false; sdata 727 net/mac80211/ibss.c sdata->vif.bss_conf.enable_beacon = false; sdata 728 net/mac80211/ibss.c sdata->vif.bss_conf.ssid_len = 0; sdata 732 net/mac80211/ibss.c lockdep_is_held(&sdata->wdev.mtx)); sdata 733 net/mac80211/ibss.c RCU_INIT_POINTER(sdata->u.ibss.presp, NULL); sdata 737 net/mac80211/ibss.c clear_bit(SDATA_STATE_OFFCHANNEL_BEACON_STOPPED, &sdata->state); sdata 738 net/mac80211/ibss.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON_ENABLED | sdata 740 net/mac80211/ibss.c drv_leave_ibss(local, sdata); sdata 742 net/mac80211/ibss.c ieee80211_vif_release_channel(sdata); sdata 748 net/mac80211/ibss.c struct ieee80211_sub_if_data *sdata = sdata 752 net/mac80211/ibss.c sdata_lock(sdata); sdata 754 net/mac80211/ibss.c ieee80211_ibss_disconnect(sdata); sdata 756 net/mac80211/ibss.c skb_queue_purge(&sdata->skb_queue); sdata 759 net/mac80211/ibss.c ieee80211_queue_work(&sdata->local->hw, &sdata->work); sdata 761 net/mac80211/ibss.c sdata_unlock(sdata); sdata 764 net/mac80211/ibss.c static void ieee80211_ibss_csa_mark_radar(struct ieee80211_sub_if_data *sdata) sdata 766 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 772 net/mac80211/ibss.c err = cfg80211_chandef_dfs_required(sdata->local->hw.wiphy, sdata 776 net/mac80211/ibss.c cfg80211_radar_event(sdata->local->hw.wiphy, &ifibss->chandef, sdata 781 net/mac80211/ibss.c ieee80211_ibss_process_chanswitch(struct ieee80211_sub_if_data *sdata, sdata 787 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 792 net/mac80211/ibss.c sdata_assert_lock(sdata); sdata 809 net/mac80211/ibss.c err = ieee80211_parse_ch_switch_ie(sdata, elems, sdata 821 net/mac80211/ibss.c if (!(sdata->local->hw.wiphy->flags & WIPHY_FLAG_HAS_CHANNEL_SWITCH)) sdata 843 net/mac80211/ibss.c sdata_info(sdata, sdata 859 net/mac80211/ibss.c if (!cfg80211_reg_can_beacon(sdata->local->hw.wiphy, ¶ms.chandef, sdata 861 net/mac80211/ibss.c sdata_info(sdata, sdata 871 net/mac80211/ibss.c err = cfg80211_chandef_dfs_required(sdata->local->hw.wiphy, sdata 884 net/mac80211/ibss.c &sdata->vif.bss_conf.chandef)) { sdata 885 net/mac80211/ibss.c ibss_dbg(sdata, sdata 891 net/mac80211/ibss.c ibss_dbg(sdata, sdata 897 net/mac80211/ibss.c if (ieee80211_channel_switch(sdata->local->hw.wiphy, sdata->dev, sdata 901 net/mac80211/ibss.c ieee80211_ibss_csa_mark_radar(sdata); sdata 905 net/mac80211/ibss.c ibss_dbg(sdata, "Can't handle channel switch, disconnect\n"); sdata 906 net/mac80211/ibss.c ieee80211_queue_work(&sdata->local->hw, sdata 909 net/mac80211/ibss.c ieee80211_ibss_csa_mark_radar(sdata); sdata 915 net/mac80211/ibss.c ieee80211_rx_mgmt_spectrum_mgmt(struct ieee80211_sub_if_data *sdata, sdata 935 net/mac80211/ibss.c if (!sdata->vif.csa_active) sdata 936 net/mac80211/ibss.c ieee80211_ibss_process_chanswitch(sdata, elems, false); sdata 939 net/mac80211/ibss.c static void ieee80211_rx_mgmt_deauth_ibss(struct ieee80211_sub_if_data *sdata, sdata 948 net/mac80211/ibss.c ibss_dbg(sdata, "RX DeAuth SA=%pM DA=%pM\n", mgmt->sa, mgmt->da); sdata 949 net/mac80211/ibss.c ibss_dbg(sdata, "\tBSSID=%pM (reason: %d)\n", mgmt->bssid, reason); sdata 950 net/mac80211/ibss.c sta_info_destroy_addr(sdata, mgmt->sa); sdata 953 net/mac80211/ibss.c static void ieee80211_rx_mgmt_auth_ibss(struct ieee80211_sub_if_data *sdata, sdata 959 net/mac80211/ibss.c sdata_assert_lock(sdata); sdata 967 net/mac80211/ibss.c ibss_dbg(sdata, "RX Auth SA=%pM DA=%pM\n", mgmt->sa, mgmt->da); sdata 968 net/mac80211/ibss.c ibss_dbg(sdata, "\tBSSID=%pM (auth_transaction=%d)\n", sdata 980 net/mac80211/ibss.c ieee80211_send_auth(sdata, 2, WLAN_AUTH_OPEN, 0, NULL, 0, sdata 981 net/mac80211/ibss.c mgmt->sa, sdata->u.ibss.bssid, NULL, 0, 0, 0); sdata 984 net/mac80211/ibss.c static void ieee80211_update_sta_info(struct ieee80211_sub_if_data *sdata, sdata 993 net/mac80211/ibss.c struct ieee80211_local *local = sdata->local; sdata 998 net/mac80211/ibss.c if (sdata->vif.type != NL80211_IFTYPE_ADHOC) sdata 1001 net/mac80211/ibss.c if (!ether_addr_equal(mgmt->bssid, sdata->u.ibss.bssid)) sdata 1009 net/mac80211/ibss.c sta = sta_info_get(sdata, mgmt->sa); sdata 1012 net/mac80211/ibss.c supp_rates = ieee80211_sta_get_rates(sdata, elems, sdata 1028 net/mac80211/ibss.c ibss_dbg(sdata, sdata 1036 net/mac80211/ibss.c sta = ieee80211_ibss_add_sta(sdata, mgmt->bssid, sdata 1048 net/mac80211/ibss.c sdata->u.ibss.chandef.width != NL80211_CHAN_WIDTH_20_NOHT && sdata 1049 net/mac80211/ibss.c sdata->u.ibss.chandef.width != NL80211_CHAN_WIDTH_5 && sdata 1050 net/mac80211/ibss.c sdata->u.ibss.chandef.width != NL80211_CHAN_WIDTH_10) { sdata 1060 net/mac80211/ibss.c rates_updated |= ieee80211_ht_cap_ie_to_sta_ht_cap(sdata, sband, sdata 1065 net/mac80211/ibss.c sdata->u.ibss.chandef.width != NL80211_CHAN_WIDTH_20 && sdata 1066 net/mac80211/ibss.c sdata->u.ibss.chandef.width != NL80211_CHAN_WIDTH_40) { sdata 1076 net/mac80211/ibss.c ieee80211_vht_cap_ie_to_sta_vht_cap(sdata, sband, sdata 1085 net/mac80211/ibss.c if (!cfg80211_chandef_compatible(&sdata->u.ibss.chandef, sdata 1100 net/mac80211/ibss.c drv_sta_rc_update(local, sdata, &sta->sta, changed); sdata 1106 net/mac80211/ibss.c static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, sdata 1111 net/mac80211/ibss.c struct ieee80211_local *local = sdata->local; sdata 1123 net/mac80211/ibss.c ieee80211_update_sta_info(sdata, mgmt, len, rx_status, elems, channel); sdata 1141 net/mac80211/ibss.c if (sdata->u.ibss.fixed_channel && sdata 1142 net/mac80211/ibss.c sdata->u.ibss.chandef.chan != cbss->channel) sdata 1146 net/mac80211/ibss.c if (elems->ssid_len != sdata->u.ibss.ssid_len || sdata 1147 net/mac80211/ibss.c memcmp(elems->ssid, sdata->u.ibss.ssid, sdata 1148 net/mac80211/ibss.c sdata->u.ibss.ssid_len)) sdata 1152 net/mac80211/ibss.c if (sdata->vif.csa_active || sdata 1153 net/mac80211/ibss.c ieee80211_ibss_process_chanswitch(sdata, elems, true)) sdata 1157 net/mac80211/ibss.c if (ether_addr_equal(cbss->bssid, sdata->u.ibss.bssid)) sdata 1161 net/mac80211/ibss.c if (sdata->u.ibss.fixed_bssid) sdata 1174 net/mac80211/ibss.c rx_timestamp = drv_get_tsf(local, sdata); sdata 1177 net/mac80211/ibss.c ibss_dbg(sdata, "RX beacon SA=%pM BSSID=%pM TSF=0x%llx\n", sdata 1180 net/mac80211/ibss.c ibss_dbg(sdata, "\tBCN=0x%llx diff=%lld @%lu\n", sdata 1186 net/mac80211/ibss.c ibss_dbg(sdata, sdata 1189 net/mac80211/ibss.c ieee80211_sta_join_ibss(sdata, bss); sdata 1190 net/mac80211/ibss.c supp_rates = ieee80211_sta_get_rates(sdata, elems, band, NULL); sdata 1191 net/mac80211/ibss.c ieee80211_ibss_add_sta(sdata, mgmt->bssid, mgmt->sa, sdata 1200 net/mac80211/ibss.c void ieee80211_ibss_rx_no_sta(struct ieee80211_sub_if_data *sdata, sdata 1204 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 1205 net/mac80211/ibss.c struct ieee80211_local *local = sdata->local; sdata 1218 net/mac80211/ibss.c sdata->name, addr); sdata 1225 net/mac80211/ibss.c if (!ether_addr_equal(bssid, sdata->u.ibss.bssid)) sdata 1229 net/mac80211/ibss.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 1238 net/mac80211/ibss.c sta = sta_info_alloc(sdata, addr, GFP_ATOMIC); sdata 1250 net/mac80211/ibss.c ieee80211_queue_work(&local->hw, &sdata->work); sdata 1253 net/mac80211/ibss.c static void ieee80211_ibss_sta_expire(struct ieee80211_sub_if_data *sdata) sdata 1255 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 1256 net/mac80211/ibss.c struct ieee80211_local *local = sdata->local; sdata 1266 net/mac80211/ibss.c if (sdata != sta->sdata) sdata 1274 net/mac80211/ibss.c sta_dbg(sta->sdata, "expiring inactive %sSTA %pM\n", sdata 1278 net/mac80211/ibss.c ieee80211_send_deauth_disassoc(sdata, sta->sta.addr, sdata 1294 net/mac80211/ibss.c static void ieee80211_sta_merge_ibss(struct ieee80211_sub_if_data *sdata) sdata 1296 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 1299 net/mac80211/ibss.c sdata_assert_lock(sdata); sdata 1304 net/mac80211/ibss.c ieee80211_ibss_sta_expire(sdata); sdata 1310 net/mac80211/ibss.c if (ieee80211_sta_active_ibss(sdata)) sdata 1316 net/mac80211/ibss.c sdata_info(sdata, sdata 1320 net/mac80211/ibss.c ieee80211_request_ibss_scan(sdata, ifibss->ssid, ifibss->ssid_len, sdata 1324 net/mac80211/ibss.c static void ieee80211_sta_create_ibss(struct ieee80211_sub_if_data *sdata) sdata 1326 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 1331 net/mac80211/ibss.c sdata_assert_lock(sdata); sdata 1341 net/mac80211/ibss.c bssid[i] ^= sdata->vif.addr[i]; sdata 1346 net/mac80211/ibss.c sdata_info(sdata, "Creating new IBSS network, BSSID %pM\n", bssid); sdata 1353 net/mac80211/ibss.c __ieee80211_sta_join_ibss(sdata, bssid, sdata->vif.bss_conf.beacon_int, sdata 1432 net/mac80211/ibss.c static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata) sdata 1434 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 1435 net/mac80211/ibss.c struct ieee80211_local *local = sdata->local; sdata 1442 net/mac80211/ibss.c sdata_assert_lock(sdata); sdata 1444 net/mac80211/ibss.c active_ibss = ieee80211_sta_active_ibss(sdata); sdata 1445 net/mac80211/ibss.c ibss_dbg(sdata, "sta_find_ibss (active_ibss=%d)\n", active_ibss); sdata 1465 net/mac80211/ibss.c ibss_dbg(sdata, sdata 1468 net/mac80211/ibss.c sdata_info(sdata, sdata 1472 net/mac80211/ibss.c ieee80211_sta_join_ibss(sdata, bss); sdata 1481 net/mac80211/ibss.c sdata_info(sdata, "Created IBSS using preconfigured BSSID %pM\n", sdata 1483 net/mac80211/ibss.c ieee80211_sta_create_ibss(sdata); sdata 1488 net/mac80211/ibss.c ibss_dbg(sdata, "sta_find_ibss: did not try to join ibss\n"); sdata 1496 net/mac80211/ibss.c sdata_info(sdata, "Trigger new scan to find an IBSS to join\n"); sdata 1505 net/mac80211/ibss.c ieee80211_request_ibss_scan(sdata, ifibss->ssid, sdata 1509 net/mac80211/ibss.c ieee80211_request_ibss_scan(sdata, ifibss->ssid, sdata 1518 net/mac80211/ibss.c ieee80211_sta_create_ibss(sdata); sdata 1525 net/mac80211/ibss.c static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata, sdata 1529 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 1530 net/mac80211/ibss.c struct ieee80211_local *local = sdata->local; sdata 1536 net/mac80211/ibss.c sdata_assert_lock(sdata); sdata 1539 net/mac80211/ibss.c lockdep_is_held(&sdata->wdev.mtx)); sdata 1547 net/mac80211/ibss.c ibss_dbg(sdata, "RX ProbeReq SA=%pM DA=%pM\n", mgmt->sa, mgmt->da); sdata 1548 net/mac80211/ibss.c ibss_dbg(sdata, "\tBSSID=%pM (tx_last_beacon=%d)\n", sdata 1562 net/mac80211/ibss.c ibss_dbg(sdata, "Invalid SSID IE in ProbeReq from %pM\n", sdata 1582 net/mac80211/ibss.c ibss_dbg(sdata, "Sending ProbeResp to %pM\n", mgmt->sa); sdata 1589 net/mac80211/ibss.c ieee80211_tx_skb(sdata, skb); sdata 1593 net/mac80211/ibss.c void ieee80211_rx_mgmt_probe_beacon(struct ieee80211_sub_if_data *sdata, sdata 1614 net/mac80211/ibss.c ieee80211_rx_bss_info(sdata, mgmt, len, rx_status, &elems); sdata 1617 net/mac80211/ibss.c void ieee80211_ibss_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata, sdata 1630 net/mac80211/ibss.c sdata_lock(sdata); sdata 1632 net/mac80211/ibss.c if (!sdata->u.ibss.ssid_len) sdata 1637 net/mac80211/ibss.c ieee80211_rx_mgmt_probe_req(sdata, skb); sdata 1641 net/mac80211/ibss.c ieee80211_rx_mgmt_probe_beacon(sdata, mgmt, skb->len, sdata 1645 net/mac80211/ibss.c ieee80211_rx_mgmt_auth_ibss(sdata, mgmt, skb->len); sdata 1648 net/mac80211/ibss.c ieee80211_rx_mgmt_deauth_ibss(sdata, mgmt, skb->len); sdata 1667 net/mac80211/ibss.c ieee80211_rx_mgmt_spectrum_mgmt(sdata, mgmt, skb->len, sdata 1674 net/mac80211/ibss.c sdata_unlock(sdata); sdata 1677 net/mac80211/ibss.c void ieee80211_ibss_work(struct ieee80211_sub_if_data *sdata) sdata 1679 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 1682 net/mac80211/ibss.c sdata_lock(sdata); sdata 1707 net/mac80211/ibss.c ieee80211_sta_find_ibss(sdata); sdata 1710 net/mac80211/ibss.c ieee80211_sta_merge_ibss(sdata); sdata 1718 net/mac80211/ibss.c sdata_unlock(sdata); sdata 1723 net/mac80211/ibss.c struct ieee80211_sub_if_data *sdata = sdata 1724 net/mac80211/ibss.c from_timer(sdata, t, u.ibss.timer); sdata 1726 net/mac80211/ibss.c ieee80211_queue_work(&sdata->local->hw, &sdata->work); sdata 1729 net/mac80211/ibss.c void ieee80211_ibss_setup_sdata(struct ieee80211_sub_if_data *sdata) sdata 1731 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 1743 net/mac80211/ibss.c struct ieee80211_sub_if_data *sdata; sdata 1746 net/mac80211/ibss.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 1747 net/mac80211/ibss.c if (!ieee80211_sdata_running(sdata)) sdata 1749 net/mac80211/ibss.c if (sdata->vif.type != NL80211_IFTYPE_ADHOC) sdata 1751 net/mac80211/ibss.c sdata->u.ibss.last_scan_completed = jiffies; sdata 1756 net/mac80211/ibss.c int ieee80211_ibss_join(struct ieee80211_sub_if_data *sdata, sdata 1763 net/mac80211/ibss.c struct ieee80211_local *local = sdata->local; sdata 1770 net/mac80211/ibss.c sdata->wdev.iftype); sdata 1784 net/mac80211/ibss.c ret = ieee80211_check_combinations(sdata, ¶ms->chandef, chanmode, sdata 1791 net/mac80211/ibss.c memcpy(sdata->u.ibss.bssid, params->bssid, ETH_ALEN); sdata 1792 net/mac80211/ibss.c sdata->u.ibss.fixed_bssid = true; sdata 1794 net/mac80211/ibss.c sdata->u.ibss.fixed_bssid = false; sdata 1796 net/mac80211/ibss.c sdata->u.ibss.privacy = params->privacy; sdata 1797 net/mac80211/ibss.c sdata->u.ibss.control_port = params->control_port; sdata 1798 net/mac80211/ibss.c sdata->u.ibss.userspace_handles_dfs = params->userspace_handles_dfs; sdata 1799 net/mac80211/ibss.c sdata->u.ibss.basic_rates = params->basic_rates; sdata 1800 net/mac80211/ibss.c sdata->u.ibss.last_scan_completed = jiffies; sdata 1807 net/mac80211/ibss.c sdata->u.ibss.basic_rates &= ~BIT(i); sdata 1809 net/mac80211/ibss.c memcpy(sdata->vif.bss_conf.mcast_rate, params->mcast_rate, sdata 1812 net/mac80211/ibss.c sdata->vif.bss_conf.beacon_int = params->beacon_interval; sdata 1814 net/mac80211/ibss.c sdata->u.ibss.chandef = params->chandef; sdata 1815 net/mac80211/ibss.c sdata->u.ibss.fixed_channel = params->channel_fixed; sdata 1818 net/mac80211/ibss.c sdata->u.ibss.ie = kmemdup(params->ie, params->ie_len, sdata 1820 net/mac80211/ibss.c if (sdata->u.ibss.ie) sdata 1821 net/mac80211/ibss.c sdata->u.ibss.ie_len = params->ie_len; sdata 1824 net/mac80211/ibss.c sdata->u.ibss.state = IEEE80211_IBSS_MLME_SEARCH; sdata 1825 net/mac80211/ibss.c sdata->u.ibss.ibss_join_req = jiffies; sdata 1827 net/mac80211/ibss.c memcpy(sdata->u.ibss.ssid, params->ssid, params->ssid_len); sdata 1828 net/mac80211/ibss.c sdata->u.ibss.ssid_len = params->ssid_len; sdata 1830 net/mac80211/ibss.c memcpy(&sdata->u.ibss.ht_capa, ¶ms->ht_capa, sdata 1831 net/mac80211/ibss.c sizeof(sdata->u.ibss.ht_capa)); sdata 1832 net/mac80211/ibss.c memcpy(&sdata->u.ibss.ht_capa_mask, ¶ms->ht_capa_mask, sdata 1833 net/mac80211/ibss.c sizeof(sdata->u.ibss.ht_capa_mask)); sdata 1845 net/mac80211/ibss.c sdata->vif.bss_conf.ht_operation_mode |= sdata 1850 net/mac80211/ibss.c ieee80211_bss_info_change_notify(sdata, changed); sdata 1852 net/mac80211/ibss.c sdata->smps_mode = IEEE80211_SMPS_OFF; sdata 1853 net/mac80211/ibss.c sdata->needed_rx_chains = local->rx_chains; sdata 1854 net/mac80211/ibss.c sdata->control_port_over_nl80211 = params->control_port_over_nl80211; sdata 1856 net/mac80211/ibss.c ieee80211_queue_work(&local->hw, &sdata->work); sdata 1861 net/mac80211/ibss.c int ieee80211_ibss_leave(struct ieee80211_sub_if_data *sdata) sdata 1863 net/mac80211/ibss.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 1865 net/mac80211/ibss.c ieee80211_ibss_disconnect(sdata); sdata 1870 net/mac80211/ibss.c kfree(sdata->u.ibss.ie); sdata 1878 net/mac80211/ibss.c skb_queue_purge(&sdata->skb_queue); sdata 1880 net/mac80211/ibss.c del_timer_sync(&sdata->u.ibss.timer); sdata 173 net/mac80211/ieee80211_i.h struct ieee80211_sub_if_data *sdata; sdata 222 net/mac80211/ieee80211_i.h struct ieee80211_sub_if_data *sdata; sdata 335 net/mac80211/ieee80211_i.h struct ieee80211_sub_if_data *sdata; sdata 629 net/mac80211/ieee80211_i.h void (*rx_bcn_presp)(struct ieee80211_sub_if_data *sdata, sdata 636 net/mac80211/ieee80211_i.h void (*adjust_tsf)(struct ieee80211_sub_if_data *sdata, sdata 997 net/mac80211/ieee80211_i.h static inline void sdata_lock(struct ieee80211_sub_if_data *sdata) sdata 998 net/mac80211/ieee80211_i.h __acquires(&sdata->wdev.mtx) sdata 1000 net/mac80211/ieee80211_i.h mutex_lock(&sdata->wdev.mtx); sdata 1001 net/mac80211/ieee80211_i.h __acquire(&sdata->wdev.mtx); sdata 1004 net/mac80211/ieee80211_i.h static inline void sdata_unlock(struct ieee80211_sub_if_data *sdata) sdata 1005 net/mac80211/ieee80211_i.h __releases(&sdata->wdev.mtx) sdata 1007 net/mac80211/ieee80211_i.h mutex_unlock(&sdata->wdev.mtx); sdata 1008 net/mac80211/ieee80211_i.h __release(&sdata->wdev.mtx); sdata 1011 net/mac80211/ieee80211_i.h #define sdata_dereference(p, sdata) \ sdata 1012 net/mac80211/ieee80211_i.h rcu_dereference_protected(p, lockdep_is_held(&sdata->wdev.mtx)) sdata 1015 net/mac80211/ieee80211_i.h sdata_assert_lock(struct ieee80211_sub_if_data *sdata) sdata 1017 net/mac80211/ieee80211_i.h lockdep_assert_held(&sdata->wdev.mtx); sdata 1426 net/mac80211/ieee80211_i.h ieee80211_get_sband(struct ieee80211_sub_if_data *sdata) sdata 1428 net/mac80211/ieee80211_i.h struct ieee80211_local *local = sdata->local; sdata 1433 net/mac80211/ieee80211_i.h chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 1573 net/mac80211/ieee80211_i.h void ieee80211_vif_inc_num_mcast(struct ieee80211_sub_if_data *sdata); sdata 1574 net/mac80211/ieee80211_i.h void ieee80211_vif_dec_num_mcast(struct ieee80211_sub_if_data *sdata); sdata 1581 net/mac80211/ieee80211_i.h ieee80211_vif_get_num_mcast_if(struct ieee80211_sub_if_data *sdata) sdata 1583 net/mac80211/ieee80211_i.h if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 1584 net/mac80211/ieee80211_i.h return atomic_read(&sdata->u.ap.num_mcast_sta); sdata 1585 net/mac80211/ieee80211_i.h if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN && !sdata->u.vlan.sta) sdata 1586 net/mac80211/ieee80211_i.h return atomic_read(&sdata->u.vlan.num_mcast_sta); sdata 1596 net/mac80211/ieee80211_i.h void ieee80211_bss_info_change_notify(struct ieee80211_sub_if_data *sdata, sdata 1599 net/mac80211/ieee80211_i.h u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata); sdata 1606 net/mac80211/ieee80211_i.h void __ieee80211_check_fast_rx_iface(struct ieee80211_sub_if_data *sdata); sdata 1607 net/mac80211/ieee80211_i.h void ieee80211_check_fast_rx_iface(struct ieee80211_sub_if_data *sdata); sdata 1611 net/mac80211/ieee80211_i.h void ieee80211_sta_setup_sdata(struct ieee80211_sub_if_data *sdata); sdata 1612 net/mac80211/ieee80211_i.h int ieee80211_mgd_auth(struct ieee80211_sub_if_data *sdata, sdata 1614 net/mac80211/ieee80211_i.h int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata, sdata 1616 net/mac80211/ieee80211_i.h int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata, sdata 1618 net/mac80211/ieee80211_i.h int ieee80211_mgd_disassoc(struct ieee80211_sub_if_data *sdata, sdata 1621 net/mac80211/ieee80211_i.h struct ieee80211_sub_if_data *sdata); sdata 1623 net/mac80211/ieee80211_i.h void ieee80211_recalc_ps_vif(struct ieee80211_sub_if_data *sdata); sdata 1624 net/mac80211/ieee80211_i.h int ieee80211_set_arp_filter(struct ieee80211_sub_if_data *sdata); sdata 1625 net/mac80211/ieee80211_i.h void ieee80211_sta_work(struct ieee80211_sub_if_data *sdata); sdata 1626 net/mac80211/ieee80211_i.h void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata, sdata 1628 net/mac80211/ieee80211_i.h void ieee80211_sta_reset_beacon_monitor(struct ieee80211_sub_if_data *sdata); sdata 1629 net/mac80211/ieee80211_i.h void ieee80211_sta_reset_conn_monitor(struct ieee80211_sub_if_data *sdata); sdata 1630 net/mac80211/ieee80211_i.h void ieee80211_mgd_stop(struct ieee80211_sub_if_data *sdata); sdata 1631 net/mac80211/ieee80211_i.h void ieee80211_mgd_conn_tx_status(struct ieee80211_sub_if_data *sdata, sdata 1633 net/mac80211/ieee80211_i.h void ieee80211_mgd_quiesce(struct ieee80211_sub_if_data *sdata); sdata 1634 net/mac80211/ieee80211_i.h void ieee80211_sta_restart(struct ieee80211_sub_if_data *sdata); sdata 1635 net/mac80211/ieee80211_i.h void ieee80211_sta_handle_tspec_ac_params(struct ieee80211_sub_if_data *sdata); sdata 1639 net/mac80211/ieee80211_i.h void ieee80211_ibss_setup_sdata(struct ieee80211_sub_if_data *sdata); sdata 1640 net/mac80211/ieee80211_i.h void ieee80211_ibss_rx_no_sta(struct ieee80211_sub_if_data *sdata, sdata 1642 net/mac80211/ieee80211_i.h int ieee80211_ibss_join(struct ieee80211_sub_if_data *sdata, sdata 1644 net/mac80211/ieee80211_i.h int ieee80211_ibss_leave(struct ieee80211_sub_if_data *sdata); sdata 1645 net/mac80211/ieee80211_i.h void ieee80211_ibss_work(struct ieee80211_sub_if_data *sdata); sdata 1646 net/mac80211/ieee80211_i.h void ieee80211_ibss_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata, sdata 1648 net/mac80211/ieee80211_i.h int ieee80211_ibss_csa_beacon(struct ieee80211_sub_if_data *sdata, sdata 1650 net/mac80211/ieee80211_i.h int ieee80211_ibss_finish_csa(struct ieee80211_sub_if_data *sdata); sdata 1651 net/mac80211/ieee80211_i.h void ieee80211_ibss_stop(struct ieee80211_sub_if_data *sdata); sdata 1654 net/mac80211/ieee80211_i.h void ieee80211_ocb_work(struct ieee80211_sub_if_data *sdata); sdata 1655 net/mac80211/ieee80211_i.h void ieee80211_ocb_rx_no_sta(struct ieee80211_sub_if_data *sdata, sdata 1657 net/mac80211/ieee80211_i.h void ieee80211_ocb_setup_sdata(struct ieee80211_sub_if_data *sdata); sdata 1658 net/mac80211/ieee80211_i.h int ieee80211_ocb_join(struct ieee80211_sub_if_data *sdata, sdata 1660 net/mac80211/ieee80211_i.h int ieee80211_ocb_leave(struct ieee80211_sub_if_data *sdata); sdata 1663 net/mac80211/ieee80211_i.h void ieee80211_mesh_work(struct ieee80211_sub_if_data *sdata); sdata 1664 net/mac80211/ieee80211_i.h void ieee80211_mesh_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata, sdata 1666 net/mac80211/ieee80211_i.h int ieee80211_mesh_csa_beacon(struct ieee80211_sub_if_data *sdata, sdata 1668 net/mac80211/ieee80211_i.h int ieee80211_mesh_finish_csa(struct ieee80211_sub_if_data *sdata); sdata 1672 net/mac80211/ieee80211_i.h int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata, sdata 1677 net/mac80211/ieee80211_i.h int ieee80211_request_scan(struct ieee80211_sub_if_data *sdata, sdata 1695 net/mac80211/ieee80211_i.h __ieee80211_request_sched_scan_start(struct ieee80211_sub_if_data *sdata, sdata 1697 net/mac80211/ieee80211_i.h int ieee80211_request_sched_scan_start(struct ieee80211_sub_if_data *sdata, sdata 1709 net/mac80211/ieee80211_i.h struct ieee80211_sub_if_data *sdata); sdata 1732 net/mac80211/ieee80211_i.h int ieee80211_if_change_type(struct ieee80211_sub_if_data *sdata, sdata 1734 net/mac80211/ieee80211_i.h void ieee80211_if_remove(struct ieee80211_sub_if_data *sdata); sdata 1738 net/mac80211/ieee80211_i.h void ieee80211_adjust_monitor_flags(struct ieee80211_sub_if_data *sdata, sdata 1741 net/mac80211/ieee80211_i.h void ieee80211_sdata_stop(struct ieee80211_sub_if_data *sdata); sdata 1745 net/mac80211/ieee80211_i.h bool __ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata); sdata 1746 net/mac80211/ieee80211_i.h void ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata, sdata 1749 net/mac80211/ieee80211_i.h static inline bool ieee80211_sdata_running(struct ieee80211_sub_if_data *sdata) sdata 1751 net/mac80211/ieee80211_i.h return test_bit(SDATA_STATE_RUNNING, &sdata->state); sdata 1768 net/mac80211/ieee80211_i.h ieee80211_build_data_template(struct ieee80211_sub_if_data *sdata, sdata 1777 net/mac80211/ieee80211_i.h void ieee80211_check_fast_xmit_iface(struct ieee80211_sub_if_data *sdata); sdata 1786 net/mac80211/ieee80211_i.h void ieee80211_apply_htcap_overrides(struct ieee80211_sub_if_data *sdata, sdata 1788 net/mac80211/ieee80211_i.h bool ieee80211_ht_cap_ie_to_sta_ht_cap(struct ieee80211_sub_if_data *sdata, sdata 1792 net/mac80211/ieee80211_i.h void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata, sdata 1795 net/mac80211/ieee80211_i.h int ieee80211_send_smps_action(struct ieee80211_sub_if_data *sdata, sdata 1814 net/mac80211/ieee80211_i.h void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata, sdata 1844 net/mac80211/ieee80211_i.h ieee80211_vht_cap_ie_to_sta_vht_cap(struct ieee80211_sub_if_data *sdata, sdata 1855 net/mac80211/ieee80211_i.h void ieee80211_process_mu_groups(struct ieee80211_sub_if_data *sdata, sdata 1857 net/mac80211/ieee80211_i.h u32 __ieee80211_vht_handle_opmode(struct ieee80211_sub_if_data *sdata, sdata 1860 net/mac80211/ieee80211_i.h void ieee80211_vht_handle_opmode(struct ieee80211_sub_if_data *sdata, sdata 1863 net/mac80211/ieee80211_i.h void ieee80211_apply_vhtcap_overrides(struct ieee80211_sub_if_data *sdata, sdata 1872 net/mac80211/ieee80211_i.h ieee80211_he_cap_ie_to_sta_he_cap(struct ieee80211_sub_if_data *sdata, sdata 1885 net/mac80211/ieee80211_i.h void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata, sdata 1904 net/mac80211/ieee80211_i.h int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata, sdata 1934 net/mac80211/ieee80211_i.h void ieee80211_regulatory_limit_wmm_params(struct ieee80211_sub_if_data *sdata, sdata 1937 net/mac80211/ieee80211_i.h void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata, sdata 1939 net/mac80211/ieee80211_i.h void ieee80211_xmit(struct ieee80211_sub_if_data *sdata, sdata 1943 net/mac80211/ieee80211_i.h void __ieee80211_tx_skb_tid_band(struct ieee80211_sub_if_data *sdata, sdata 1948 net/mac80211/ieee80211_i.h ieee80211_tx_skb_tid_band(struct ieee80211_sub_if_data *sdata, sdata 1953 net/mac80211/ieee80211_i.h __ieee80211_tx_skb_tid_band(sdata, skb, tid, band, txdata_flags); sdata 1957 net/mac80211/ieee80211_i.h static inline void ieee80211_tx_skb_tid(struct ieee80211_sub_if_data *sdata, sdata 1963 net/mac80211/ieee80211_i.h chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 1970 net/mac80211/ieee80211_i.h __ieee80211_tx_skb_tid_band(sdata, skb, tid, sdata 1975 net/mac80211/ieee80211_i.h static inline void ieee80211_tx_skb(struct ieee80211_sub_if_data *sdata, sdata 1979 net/mac80211/ieee80211_i.h ieee80211_tx_skb_tid(sdata, skb, 7); sdata 2008 net/mac80211/ieee80211_i.h struct ieee80211_sub_if_data *sdata, sdata 2010 net/mac80211/ieee80211_i.h void ieee80211_sta_rx_notify(struct ieee80211_sub_if_data *sdata, sdata 2012 net/mac80211/ieee80211_i.h void ieee80211_sta_tx_notify(struct ieee80211_sub_if_data *sdata, sdata 2020 net/mac80211/ieee80211_i.h struct ieee80211_sub_if_data *sdata, sdata 2023 net/mac80211/ieee80211_i.h struct ieee80211_sub_if_data *sdata, sdata 2041 net/mac80211/ieee80211_i.h struct ieee80211_sub_if_data *sdata, bool drop); sdata 2043 net/mac80211/ieee80211_i.h struct ieee80211_sub_if_data *sdata, sdata 2086 net/mac80211/ieee80211_i.h void ieee80211_txq_init(struct ieee80211_sub_if_data *sdata, sdata 2092 net/mac80211/ieee80211_i.h struct ieee80211_sub_if_data *sdata); sdata 2096 net/mac80211/ieee80211_i.h void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata, sdata 2101 net/mac80211/ieee80211_i.h void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata, sdata 2119 net/mac80211/ieee80211_i.h struct sk_buff *ieee80211_build_probe_req(struct ieee80211_sub_if_data *sdata, sdata 2126 net/mac80211/ieee80211_i.h u32 ieee80211_sta_get_rates(struct ieee80211_sub_if_data *sdata, sdata 2129 net/mac80211/ieee80211_i.h int __ieee80211_request_smps_mgd(struct ieee80211_sub_if_data *sdata, sdata 2131 net/mac80211/ieee80211_i.h int __ieee80211_request_smps_ap(struct ieee80211_sub_if_data *sdata, sdata 2133 net/mac80211/ieee80211_i.h void ieee80211_recalc_smps(struct ieee80211_sub_if_data *sdata); sdata 2134 net/mac80211/ieee80211_i.h void ieee80211_recalc_min_chandef(struct ieee80211_sub_if_data *sdata); sdata 2148 net/mac80211/ieee80211_i.h u8 ieee80211_ie_len_he_cap(struct ieee80211_sub_if_data *sdata, u8 iftype); sdata 2156 net/mac80211/ieee80211_i.h int ieee80211_add_srates_ie(struct ieee80211_sub_if_data *sdata, sdata 2159 net/mac80211/ieee80211_i.h int ieee80211_add_ext_srates_ie(struct ieee80211_sub_if_data *sdata, sdata 2174 net/mac80211/ieee80211_i.h ieee80211_vif_use_channel(struct ieee80211_sub_if_data *sdata, sdata 2178 net/mac80211/ieee80211_i.h ieee80211_vif_reserve_chanctx(struct ieee80211_sub_if_data *sdata, sdata 2183 net/mac80211/ieee80211_i.h ieee80211_vif_use_reserved_context(struct ieee80211_sub_if_data *sdata); sdata 2184 net/mac80211/ieee80211_i.h int ieee80211_vif_unreserve_chanctx(struct ieee80211_sub_if_data *sdata); sdata 2187 net/mac80211/ieee80211_i.h ieee80211_vif_change_bandwidth(struct ieee80211_sub_if_data *sdata, sdata 2190 net/mac80211/ieee80211_i.h void ieee80211_vif_release_channel(struct ieee80211_sub_if_data *sdata); sdata 2191 net/mac80211/ieee80211_i.h void ieee80211_vif_vlan_copy_chanctx(struct ieee80211_sub_if_data *sdata); sdata 2192 net/mac80211/ieee80211_i.h void ieee80211_vif_copy_chanctx_to_vlans(struct ieee80211_sub_if_data *sdata, sdata 2207 net/mac80211/ieee80211_i.h int ieee80211_send_action_csa(struct ieee80211_sub_if_data *sdata, sdata 2219 net/mac80211/ieee80211_i.h struct ieee80211_sub_if_data *sdata); sdata 2220 net/mac80211/ieee80211_i.h int ieee80211_check_combinations(struct ieee80211_sub_if_data *sdata, sdata 2244 net/mac80211/ieee80211_i.h void ieee80211_teardown_tdls_peers(struct ieee80211_sub_if_data *sdata); sdata 2246 net/mac80211/ieee80211_i.h void ieee80211_tdls_handle_disconnect(struct ieee80211_sub_if_data *sdata, sdata 47 net/mac80211/iface.c bool __ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata) sdata 53 net/mac80211/iface.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 62 net/mac80211/iface.c if (sdata->user_power_level != IEEE80211_UNSET_POWER_LEVEL) sdata 63 net/mac80211/iface.c power = min(power, sdata->user_power_level); sdata 65 net/mac80211/iface.c if (sdata->ap_power_level != IEEE80211_UNSET_POWER_LEVEL) sdata 66 net/mac80211/iface.c power = min(power, sdata->ap_power_level); sdata 68 net/mac80211/iface.c if (power != sdata->vif.bss_conf.txpower) { sdata 69 net/mac80211/iface.c sdata->vif.bss_conf.txpower = power; sdata 70 net/mac80211/iface.c ieee80211_hw_config(sdata->local, 0); sdata 77 net/mac80211/iface.c void ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata, sdata 80 net/mac80211/iface.c if (__ieee80211_recalc_txpower(sdata) || sdata 81 net/mac80211/iface.c (update_bss && ieee80211_sdata_running(sdata))) sdata 82 net/mac80211/iface.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_TXPOWER); sdata 152 net/mac80211/iface.c static int ieee80211_verify_mac(struct ieee80211_sub_if_data *sdata, u8 *addr, sdata 155 net/mac80211/iface.c struct ieee80211_local *local = sdata->local; sdata 179 net/mac80211/iface.c if (iter == sdata) sdata 203 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 208 net/mac80211/iface.c if (ieee80211_sdata_running(sdata)) sdata 211 net/mac80211/iface.c if (sdata->vif.type == NL80211_IFTYPE_MONITOR && sdata 212 net/mac80211/iface.c !(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE)) sdata 215 net/mac80211/iface.c ret = ieee80211_verify_mac(sdata, sa->sa_data, check_dup); sdata 222 net/mac80211/iface.c memcpy(sdata->vif.addr, sa->sa_data, ETH_ALEN); sdata 243 net/mac80211/iface.c static int ieee80211_check_concurrent_iface(struct ieee80211_sub_if_data *sdata, sdata 246 net/mac80211/iface.c struct ieee80211_local *local = sdata->local; sdata 254 net/mac80211/iface.c if (nsdata != sdata && ieee80211_sdata_running(nsdata)) { sdata 258 net/mac80211/iface.c if ((sdata->vif.type == NL80211_IFTYPE_OCB && sdata 260 net/mac80211/iface.c (sdata->vif.type != NL80211_IFTYPE_MONITOR && sdata 288 net/mac80211/iface.c if (!ether_addr_equal(sdata->vif.addr, sdata 304 net/mac80211/iface.c sdata->bss = &nsdata->u.ap; sdata 309 net/mac80211/iface.c ret = ieee80211_check_combinations(sdata, NULL, 0, 0); sdata 314 net/mac80211/iface.c static int ieee80211_check_queues(struct ieee80211_sub_if_data *sdata, sdata 317 net/mac80211/iface.c int n_queues = sdata->local->hw.queues; sdata 325 net/mac80211/iface.c if (WARN_ON_ONCE(sdata->vif.hw_queue[i] == sdata 328 net/mac80211/iface.c if (WARN_ON_ONCE(sdata->vif.hw_queue[i] >= sdata 337 net/mac80211/iface.c !ieee80211_hw_check(&sdata->local->hw, QUEUE_CONTROL)) { sdata 338 net/mac80211/iface.c sdata->vif.cab_queue = IEEE80211_INVAL_HW_QUEUE; sdata 342 net/mac80211/iface.c if (WARN_ON_ONCE(sdata->vif.cab_queue == IEEE80211_INVAL_HW_QUEUE)) sdata 345 net/mac80211/iface.c if (WARN_ON_ONCE(sdata->vif.cab_queue >= n_queues)) sdata 351 net/mac80211/iface.c void ieee80211_adjust_monitor_flags(struct ieee80211_sub_if_data *sdata, sdata 354 net/mac80211/iface.c struct ieee80211_local *local = sdata->local; sdata 355 net/mac80211/iface.c u32 flags = sdata->u.mntr.flags; sdata 371 net/mac80211/iface.c static void ieee80211_set_default_queues(struct ieee80211_sub_if_data *sdata) sdata 373 net/mac80211/iface.c struct ieee80211_local *local = sdata->local; sdata 378 net/mac80211/iface.c sdata->vif.hw_queue[i] = IEEE80211_INVAL_HW_QUEUE; sdata 380 net/mac80211/iface.c sdata->vif.hw_queue[i] = i; sdata 382 net/mac80211/iface.c sdata->vif.hw_queue[i] = 0; sdata 384 net/mac80211/iface.c sdata->vif.cab_queue = IEEE80211_INVAL_HW_QUEUE; sdata 389 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata; sdata 400 net/mac80211/iface.c sdata = kzalloc(sizeof(*sdata) + local->hw.vif_data_size, GFP_KERNEL); sdata 401 net/mac80211/iface.c if (!sdata) sdata 405 net/mac80211/iface.c sdata->local = local; sdata 406 net/mac80211/iface.c sdata->vif.type = NL80211_IFTYPE_MONITOR; sdata 407 net/mac80211/iface.c snprintf(sdata->name, IFNAMSIZ, "%s-monitor", sdata 409 net/mac80211/iface.c sdata->wdev.iftype = NL80211_IFTYPE_MONITOR; sdata 411 net/mac80211/iface.c sdata->encrypt_headroom = IEEE80211_ENCRYPT_HEADROOM; sdata 413 net/mac80211/iface.c ieee80211_set_default_queues(sdata); sdata 415 net/mac80211/iface.c ret = drv_add_interface(local, sdata); sdata 418 net/mac80211/iface.c kfree(sdata); sdata 422 net/mac80211/iface.c ret = ieee80211_check_queues(sdata, NL80211_IFTYPE_MONITOR); sdata 424 net/mac80211/iface.c kfree(sdata); sdata 429 net/mac80211/iface.c rcu_assign_pointer(local->monitor_sdata, sdata); sdata 433 net/mac80211/iface.c ret = ieee80211_vif_use_channel(sdata, &local->monitor_chandef, sdata 441 net/mac80211/iface.c drv_remove_interface(local, sdata); sdata 442 net/mac80211/iface.c kfree(sdata); sdata 446 net/mac80211/iface.c skb_queue_head_init(&sdata->skb_queue); sdata 447 net/mac80211/iface.c INIT_WORK(&sdata->work, ieee80211_iface_work); sdata 454 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata; sdata 463 net/mac80211/iface.c sdata = rcu_dereference_protected(local->monitor_sdata, sdata 465 net/mac80211/iface.c if (!sdata) { sdata 476 net/mac80211/iface.c ieee80211_vif_release_channel(sdata); sdata 479 net/mac80211/iface.c drv_remove_interface(local, sdata); sdata 481 net/mac80211/iface.c kfree(sdata); sdata 491 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 493 net/mac80211/iface.c struct ieee80211_local *local = sdata->local; sdata 499 net/mac80211/iface.c switch (sdata->vif.type) { sdata 501 net/mac80211/iface.c if (!is_valid_ether_addr(sdata->u.wds.remote_addr)) sdata 507 net/mac80211/iface.c if (!sdata->bss) sdata 511 net/mac80211/iface.c list_add(&sdata->u.vlan.list, &sdata->bss->vlans); sdata 514 net/mac80211/iface.c master = container_of(sdata->bss, sdata 516 net/mac80211/iface.c sdata->control_port_protocol = sdata 518 net/mac80211/iface.c sdata->control_port_no_encrypt = sdata 520 net/mac80211/iface.c sdata->control_port_over_nl80211 = sdata 522 net/mac80211/iface.c sdata->vif.cab_queue = master->vif.cab_queue; sdata 523 net/mac80211/iface.c memcpy(sdata->vif.hw_queue, master->vif.hw_queue, sdata 524 net/mac80211/iface.c sizeof(sdata->vif.hw_queue)); sdata 525 net/mac80211/iface.c sdata->vif.bss_conf.chandef = master->vif.bss_conf.chandef; sdata 528 net/mac80211/iface.c sdata->crypto_tx_tailroom_needed_cnt += sdata 535 net/mac80211/iface.c sdata->bss = &sdata->u.ap; sdata 582 net/mac80211/iface.c switch (sdata->vif.type) { sdata 585 net/mac80211/iface.c if (rtnl_dereference(sdata->bss->beacon)) { sdata 586 net/mac80211/iface.c ieee80211_vif_vlan_copy_chanctx(sdata); sdata 593 net/mac80211/iface.c if (sdata->u.mntr.flags & MONITOR_FLAG_COOK_FRAMES) { sdata 598 net/mac80211/iface.c if (sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE) { sdata 599 net/mac80211/iface.c res = drv_add_interface(local, sdata); sdata 615 net/mac80211/iface.c ieee80211_adjust_monitor_flags(sdata, 1); sdata 627 net/mac80211/iface.c res = drv_add_interface(local, sdata); sdata 630 net/mac80211/iface.c res = ieee80211_check_queues(sdata, sdata 631 net/mac80211/iface.c ieee80211_vif_type_p2p(&sdata->vif)); sdata 636 net/mac80211/iface.c if (sdata->vif.type == NL80211_IFTYPE_AP) { sdata 641 net/mac80211/iface.c } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { sdata 645 net/mac80211/iface.c if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE && sdata 646 net/mac80211/iface.c sdata->vif.type != NL80211_IFTYPE_NAN) sdata 647 net/mac80211/iface.c changed |= ieee80211_reset_erp_info(sdata); sdata 648 net/mac80211/iface.c ieee80211_bss_info_change_notify(sdata, changed); sdata 650 net/mac80211/iface.c switch (sdata->vif.type) { sdata 673 net/mac80211/iface.c ieee80211_set_wmm_default(sdata, true, sdata 674 net/mac80211/iface.c sdata->vif.type != NL80211_IFTYPE_STATION); sdata 677 net/mac80211/iface.c set_bit(SDATA_STATE_RUNNING, &sdata->state); sdata 679 net/mac80211/iface.c switch (sdata->vif.type) { sdata 682 net/mac80211/iface.c sta = sta_info_alloc(sdata, sdata->u.wds.remote_addr, sdata 703 net/mac80211/iface.c rcu_assign_pointer(local->p2p_sdata, sdata); sdata 706 net/mac80211/iface.c if (sdata->u.mntr.flags & MONITOR_FLAG_COOK_FRAMES) sdata 708 net/mac80211/iface.c list_add_tail_rcu(&sdata->u.mntr.list, &local->mon_list); sdata 719 net/mac80211/iface.c if (sdata->flags & IEEE80211_SDATA_ALLMULTI) sdata 730 net/mac80211/iface.c if (sdata->vif.type == NL80211_IFTYPE_MONITOR || sdata 731 net/mac80211/iface.c sdata->vif.type == NL80211_IFTYPE_AP_VLAN || sdata 745 net/mac80211/iface.c if (sdata->vif.cab_queue == IEEE80211_INVAL_HW_QUEUE || sdata 746 net/mac80211/iface.c (local->queue_stop_reasons[sdata->vif.cab_queue] == 0 && sdata 747 net/mac80211/iface.c skb_queue_empty(&local->pending[sdata->vif.cab_queue]))) { sdata 749 net/mac80211/iface.c int ac_queue = sdata->vif.hw_queue[ac]; sdata 761 net/mac80211/iface.c drv_remove_interface(local, sdata); sdata 766 net/mac80211/iface.c sdata->bss = NULL; sdata 767 net/mac80211/iface.c if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { sdata 769 net/mac80211/iface.c list_del(&sdata->u.vlan.list); sdata 773 net/mac80211/iface.c clear_bit(SDATA_STATE_RUNNING, &sdata->state); sdata 779 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 786 net/mac80211/iface.c err = ieee80211_check_concurrent_iface(sdata, sdata->vif.type); sdata 790 net/mac80211/iface.c return ieee80211_do_open(&sdata->wdev, true); sdata 793 net/mac80211/iface.c static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata, sdata 796 net/mac80211/iface.c struct ieee80211_local *local = sdata->local; sdata 806 net/mac80211/iface.c clear_bit(SDATA_STATE_RUNNING, &sdata->state); sdata 808 net/mac80211/iface.c cancel_scan = rcu_access_pointer(local->scan_sdata) == sdata; sdata 815 net/mac80211/iface.c if (sdata->dev) sdata 816 net/mac80211/iface.c netif_tx_stop_all_queues(sdata->dev); sdata 818 net/mac80211/iface.c ieee80211_roc_purge(local, sdata); sdata 820 net/mac80211/iface.c switch (sdata->vif.type) { sdata 822 net/mac80211/iface.c ieee80211_mgd_stop(sdata); sdata 825 net/mac80211/iface.c ieee80211_ibss_stop(sdata); sdata 828 net/mac80211/iface.c cancel_work_sync(&sdata->u.ap.request_smps_work); sdata 831 net/mac80211/iface.c if (sdata->u.mntr.flags & MONITOR_FLAG_COOK_FRAMES) sdata 833 net/mac80211/iface.c list_del_rcu(&sdata->u.mntr.list); sdata 854 net/mac80211/iface.c flushed = sta_info_flush(sdata); sdata 855 net/mac80211/iface.c WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_AP_VLAN && sdata 856 net/mac80211/iface.c ((sdata->vif.type != NL80211_IFTYPE_WDS && flushed > 0) || sdata 857 net/mac80211/iface.c (sdata->vif.type == NL80211_IFTYPE_WDS && flushed != 1))); sdata 860 net/mac80211/iface.c if (sdata->flags & IEEE80211_SDATA_ALLMULTI) sdata 863 net/mac80211/iface.c if (sdata->vif.type == NL80211_IFTYPE_AP) { sdata 866 net/mac80211/iface.c } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { sdata 870 net/mac80211/iface.c if (sdata->dev) { sdata 871 net/mac80211/iface.c netif_addr_lock_bh(sdata->dev); sdata 873 net/mac80211/iface.c __hw_addr_unsync(&local->mc_list, &sdata->dev->mc, sdata 874 net/mac80211/iface.c sdata->dev->addr_len); sdata 876 net/mac80211/iface.c netif_addr_unlock_bh(sdata->dev); sdata 882 net/mac80211/iface.c cancel_work_sync(&sdata->recalc_smps); sdata 883 net/mac80211/iface.c sdata_lock(sdata); sdata 885 net/mac80211/iface.c sdata->vif.csa_active = false; sdata 886 net/mac80211/iface.c if (sdata->vif.type == NL80211_IFTYPE_STATION) sdata 887 net/mac80211/iface.c sdata->u.mgd.csa_waiting_bcn = false; sdata 888 net/mac80211/iface.c if (sdata->csa_block_tx) { sdata 889 net/mac80211/iface.c ieee80211_wake_vif_queues(local, sdata, sdata 891 net/mac80211/iface.c sdata->csa_block_tx = false; sdata 894 net/mac80211/iface.c sdata_unlock(sdata); sdata 896 net/mac80211/iface.c cancel_work_sync(&sdata->csa_finalize_work); sdata 898 net/mac80211/iface.c cancel_delayed_work_sync(&sdata->dfs_cac_timer_work); sdata 900 net/mac80211/iface.c if (sdata->wdev.cac_started) { sdata 901 net/mac80211/iface.c chandef = sdata->vif.bss_conf.chandef; sdata 904 net/mac80211/iface.c ieee80211_vif_release_channel(sdata); sdata 906 net/mac80211/iface.c cfg80211_cac_event(sdata->dev, &chandef, sdata 912 net/mac80211/iface.c if (sdata->vif.type == NL80211_IFTYPE_AP) { sdata 916 net/mac80211/iface.c list_for_each_entry_safe(vlan, tmpsdata, &sdata->u.ap.vlans, sdata 919 net/mac80211/iface.c WARN_ON(!list_empty(&sdata->u.ap.vlans)); sdata 920 net/mac80211/iface.c } else if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { sdata 922 net/mac80211/iface.c ps = &sdata->bss->ps; sdata 926 net/mac80211/iface.c if (skb->dev == sdata->dev) { sdata 938 net/mac80211/iface.c switch (sdata->vif.type) { sdata 941 net/mac80211/iface.c list_del(&sdata->u.vlan.list); sdata 943 net/mac80211/iface.c RCU_INIT_POINTER(sdata->vif.chanctx_conf, NULL); sdata 945 net/mac80211/iface.c ieee80211_free_keys(sdata, true); sdata 949 net/mac80211/iface.c if (sdata->u.mntr.flags & MONITOR_FLAG_COOK_FRAMES) { sdata 960 net/mac80211/iface.c ieee80211_adjust_monitor_flags(sdata, -1); sdata 964 net/mac80211/iface.c spin_lock_bh(&sdata->u.nan.func_lock); sdata 966 net/mac80211/iface.c idr_for_each_entry(&sdata->u.nan.function_inst_ids, func, i) { sdata 967 net/mac80211/iface.c idr_remove(&sdata->u.nan.function_inst_ids, i); sdata 970 net/mac80211/iface.c idr_destroy(&sdata->u.nan.function_inst_ids); sdata 972 net/mac80211/iface.c spin_unlock_bh(&sdata->u.nan.func_lock); sdata 979 net/mac80211/iface.c cancel_work_sync(&sdata->work); sdata 992 net/mac80211/iface.c ieee80211_free_keys(sdata, true); sdata 993 net/mac80211/iface.c skb_queue_purge(&sdata->skb_queue); sdata 1000 net/mac80211/iface.c if (info->control.vif == &sdata->vif) { sdata 1008 net/mac80211/iface.c if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 1009 net/mac80211/iface.c ieee80211_txq_remove_vlan(local, sdata); sdata 1011 net/mac80211/iface.c sdata->bss = NULL; sdata 1016 net/mac80211/iface.c sdata->vif.bss_conf.beacon_int = 0; sdata 1033 net/mac80211/iface.c switch (sdata->vif.type) { sdata 1044 net/mac80211/iface.c if (!(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE)) sdata 1050 net/mac80211/iface.c drv_remove_interface(local, sdata); sdata 1075 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1077 net/mac80211/iface.c ieee80211_do_stop(sdata, true); sdata 1084 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1085 net/mac80211/iface.c struct ieee80211_local *local = sdata->local; sdata 1089 net/mac80211/iface.c sdata_allmulti = !!(sdata->flags & IEEE80211_SDATA_ALLMULTI); sdata 1096 net/mac80211/iface.c sdata->flags ^= IEEE80211_SDATA_ALLMULTI; sdata 1109 net/mac80211/iface.c static void ieee80211_teardown_sdata(struct ieee80211_sub_if_data *sdata) sdata 1114 net/mac80211/iface.c ieee80211_free_keys(sdata, false); sdata 1116 net/mac80211/iface.c ieee80211_debugfs_remove_netdev(sdata); sdata 1119 net/mac80211/iface.c __skb_queue_purge(&sdata->fragments[i].skb_list); sdata 1120 net/mac80211/iface.c sdata->fragment_next = 0; sdata 1122 net/mac80211/iface.c if (ieee80211_vif_is_mesh(&sdata->vif)) sdata 1123 net/mac80211/iface.c ieee80211_mesh_teardown_sdata(sdata); sdata 1180 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1181 net/mac80211/iface.c struct ieee80211_local *local = sdata->local; sdata 1194 net/mac80211/iface.c return ieee80211_select_queue_80211(sdata, skb, hdr); sdata 1230 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata = sdata 1232 net/mac80211/iface.c struct ieee80211_local *local = sdata->local; sdata 1236 net/mac80211/iface.c if (!ieee80211_sdata_running(sdata)) sdata 1246 net/mac80211/iface.c while ((skb = skb_dequeue(&sdata->skb_queue))) { sdata 1254 net/mac80211/iface.c sta = sta_info_get_bss(sdata, mgmt->sa); sdata 1266 net/mac80211/iface.c ieee80211_process_delba(sdata, sta, sdata 1288 net/mac80211/iface.c sta = sta_info_get_bss(sdata, mgmt->sa); sdata 1291 net/mac80211/iface.c ieee80211_vht_handle_opmode(sdata, sta, sdata 1299 net/mac80211/iface.c ieee80211_process_mu_groups(sdata, mgmt); sdata 1325 net/mac80211/iface.c sta = sta_info_get_bss(sdata, mgmt->sa); sdata 1335 net/mac80211/iface.c } else switch (sdata->vif.type) { sdata 1337 net/mac80211/iface.c ieee80211_sta_rx_queued_mgmt(sdata, skb); sdata 1340 net/mac80211/iface.c ieee80211_ibss_rx_queued_mgmt(sdata, skb); sdata 1343 net/mac80211/iface.c if (!ieee80211_vif_is_mesh(&sdata->vif)) sdata 1345 net/mac80211/iface.c ieee80211_mesh_rx_queued_mgmt(sdata, skb); sdata 1356 net/mac80211/iface.c switch (sdata->vif.type) { sdata 1358 net/mac80211/iface.c ieee80211_sta_work(sdata); sdata 1361 net/mac80211/iface.c ieee80211_ibss_work(sdata); sdata 1364 net/mac80211/iface.c if (!ieee80211_vif_is_mesh(&sdata->vif)) sdata 1366 net/mac80211/iface.c ieee80211_mesh_work(sdata); sdata 1369 net/mac80211/iface.c ieee80211_ocb_work(sdata); sdata 1378 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata = sdata 1381 net/mac80211/iface.c ieee80211_recalc_smps(sdata); sdata 1387 net/mac80211/iface.c static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata, sdata 1394 net/mac80211/iface.c memset(&sdata->u, 0, sizeof(sdata->u)); sdata 1397 net/mac80211/iface.c sdata->vif.type = type; sdata 1398 net/mac80211/iface.c sdata->vif.p2p = false; sdata 1399 net/mac80211/iface.c sdata->wdev.iftype = type; sdata 1401 net/mac80211/iface.c sdata->control_port_protocol = cpu_to_be16(ETH_P_PAE); sdata 1402 net/mac80211/iface.c sdata->control_port_no_encrypt = false; sdata 1403 net/mac80211/iface.c sdata->encrypt_headroom = IEEE80211_ENCRYPT_HEADROOM; sdata 1404 net/mac80211/iface.c sdata->vif.bss_conf.idle = true; sdata 1406 net/mac80211/iface.c sdata->noack_map = 0; sdata 1409 net/mac80211/iface.c if (sdata->dev) { sdata 1410 net/mac80211/iface.c sdata->dev->netdev_ops = &ieee80211_dataif_ops; sdata 1411 net/mac80211/iface.c sdata->dev->type = ARPHRD_ETHER; sdata 1414 net/mac80211/iface.c skb_queue_head_init(&sdata->skb_queue); sdata 1415 net/mac80211/iface.c INIT_WORK(&sdata->work, ieee80211_iface_work); sdata 1416 net/mac80211/iface.c INIT_WORK(&sdata->recalc_smps, ieee80211_recalc_smps_work); sdata 1417 net/mac80211/iface.c INIT_WORK(&sdata->csa_finalize_work, ieee80211_csa_finalize_work); sdata 1418 net/mac80211/iface.c INIT_LIST_HEAD(&sdata->assigned_chanctx_list); sdata 1419 net/mac80211/iface.c INIT_LIST_HEAD(&sdata->reserved_chanctx_list); sdata 1424 net/mac80211/iface.c sdata->vif.type = type; sdata 1425 net/mac80211/iface.c sdata->vif.p2p = true; sdata 1428 net/mac80211/iface.c skb_queue_head_init(&sdata->u.ap.ps.bc_buf); sdata 1429 net/mac80211/iface.c INIT_LIST_HEAD(&sdata->u.ap.vlans); sdata 1430 net/mac80211/iface.c INIT_WORK(&sdata->u.ap.request_smps_work, sdata 1432 net/mac80211/iface.c sdata->vif.bss_conf.bssid = sdata->vif.addr; sdata 1433 net/mac80211/iface.c sdata->u.ap.req_smps = IEEE80211_SMPS_OFF; sdata 1437 net/mac80211/iface.c sdata->vif.type = type; sdata 1438 net/mac80211/iface.c sdata->vif.p2p = true; sdata 1441 net/mac80211/iface.c sdata->vif.bss_conf.bssid = sdata->u.mgd.bssid; sdata 1442 net/mac80211/iface.c ieee80211_sta_setup_sdata(sdata); sdata 1445 net/mac80211/iface.c sdata->vif.bss_conf.bssid = bssid_wildcard; sdata 1446 net/mac80211/iface.c ieee80211_ocb_setup_sdata(sdata); sdata 1449 net/mac80211/iface.c sdata->vif.bss_conf.bssid = sdata->u.ibss.bssid; sdata 1450 net/mac80211/iface.c ieee80211_ibss_setup_sdata(sdata); sdata 1453 net/mac80211/iface.c if (ieee80211_vif_is_mesh(&sdata->vif)) sdata 1454 net/mac80211/iface.c ieee80211_mesh_init_sdata(sdata); sdata 1457 net/mac80211/iface.c sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP; sdata 1458 net/mac80211/iface.c sdata->dev->netdev_ops = &ieee80211_monitorif_ops; sdata 1459 net/mac80211/iface.c sdata->u.mntr.flags = MONITOR_FLAG_CONTROL | sdata 1463 net/mac80211/iface.c sdata->vif.bss_conf.bssid = NULL; sdata 1466 net/mac80211/iface.c idr_init(&sdata->u.nan.function_inst_ids); sdata 1467 net/mac80211/iface.c spin_lock_init(&sdata->u.nan.func_lock); sdata 1468 net/mac80211/iface.c sdata->vif.bss_conf.bssid = sdata->vif.addr; sdata 1472 net/mac80211/iface.c sdata->vif.bss_conf.bssid = sdata->vif.addr; sdata 1480 net/mac80211/iface.c ieee80211_debugfs_add_netdev(sdata); sdata 1483 net/mac80211/iface.c static int ieee80211_runtime_change_iftype(struct ieee80211_sub_if_data *sdata, sdata 1486 net/mac80211/iface.c struct ieee80211_local *local = sdata->local; sdata 1496 net/mac80211/iface.c switch (sdata->vif.type) { sdata 1536 net/mac80211/iface.c ret = ieee80211_check_concurrent_iface(sdata, internal_type); sdata 1540 net/mac80211/iface.c ieee80211_do_stop(sdata, false); sdata 1542 net/mac80211/iface.c ieee80211_teardown_sdata(sdata); sdata 1544 net/mac80211/iface.c ret = drv_change_interface(local, sdata, internal_type, p2p); sdata 1546 net/mac80211/iface.c type = ieee80211_vif_type_p2p(&sdata->vif); sdata 1553 net/mac80211/iface.c ieee80211_check_queues(sdata, type); sdata 1555 net/mac80211/iface.c ieee80211_setup_sdata(sdata, type); sdata 1557 net/mac80211/iface.c err = ieee80211_do_open(&sdata->wdev, false); sdata 1563 net/mac80211/iface.c int ieee80211_if_change_type(struct ieee80211_sub_if_data *sdata, sdata 1570 net/mac80211/iface.c if (type == ieee80211_vif_type_p2p(&sdata->vif)) sdata 1573 net/mac80211/iface.c if (ieee80211_sdata_running(sdata)) { sdata 1574 net/mac80211/iface.c ret = ieee80211_runtime_change_iftype(sdata, type); sdata 1579 net/mac80211/iface.c ieee80211_teardown_sdata(sdata); sdata 1580 net/mac80211/iface.c ieee80211_setup_sdata(sdata, type); sdata 1585 net/mac80211/iface.c sdata->u.mgd.use_4addr = false; sdata 1593 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata; sdata 1615 net/mac80211/iface.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 1616 net/mac80211/iface.c if (sdata->vif.type != NL80211_IFTYPE_AP) sdata 1618 net/mac80211/iface.c memcpy(perm_addr, sdata->vif.addr, ETH_ALEN); sdata 1626 net/mac80211/iface.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 1627 net/mac80211/iface.c if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE) sdata 1629 net/mac80211/iface.c if (!ieee80211_sdata_running(sdata)) sdata 1631 net/mac80211/iface.c memcpy(perm_addr, sdata->vif.addr, ETH_ALEN); sdata 1641 net/mac80211/iface.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 1643 net/mac80211/iface.c sdata->vif.addr)) { sdata 1677 net/mac80211/iface.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 1678 net/mac80211/iface.c if (sdata->vif.type == NL80211_IFTYPE_MONITOR) sdata 1680 net/mac80211/iface.c m = sdata->vif.addr; sdata 1702 net/mac80211/iface.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 1703 net/mac80211/iface.c if (ether_addr_equal(tmp_addr, sdata->vif.addr)) { sdata 1729 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata = NULL; sdata 1740 net/mac80211/iface.c sdata = kzalloc(sizeof(*sdata) + local->hw.vif_data_size, sdata 1742 net/mac80211/iface.c if (!sdata) sdata 1744 net/mac80211/iface.c wdev = &sdata->wdev; sdata 1746 net/mac80211/iface.c sdata->dev = NULL; sdata 1747 net/mac80211/iface.c strlcpy(sdata->name, name, IFNAMSIZ); sdata 1749 net/mac80211/iface.c memcpy(sdata->vif.addr, wdev->address, ETH_ALEN); sdata 1751 net/mac80211/iface.c int size = ALIGN(sizeof(*sdata) + local->hw.vif_data_size, sdata 1807 net/mac80211/iface.c sdata = netdev_priv(ndev); sdata 1808 net/mac80211/iface.c ndev->ieee80211_ptr = &sdata->wdev; sdata 1809 net/mac80211/iface.c memcpy(sdata->vif.addr, ndev->dev_addr, ETH_ALEN); sdata 1810 net/mac80211/iface.c memcpy(sdata->name, ndev->name, IFNAMSIZ); sdata 1814 net/mac80211/iface.c ieee80211_txq_init(sdata, NULL, txqi, 0); sdata 1817 net/mac80211/iface.c sdata->dev = ndev; sdata 1821 net/mac80211/iface.c sdata->wdev.wiphy = local->hw.wiphy; sdata 1822 net/mac80211/iface.c sdata->local = local; sdata 1825 net/mac80211/iface.c skb_queue_head_init(&sdata->fragments[i].skb_list); sdata 1827 net/mac80211/iface.c INIT_LIST_HEAD(&sdata->key_list); sdata 1829 net/mac80211/iface.c INIT_DELAYED_WORK(&sdata->dfs_cac_timer_work, sdata 1831 net/mac80211/iface.c INIT_DELAYED_WORK(&sdata->dec_tailroom_needed_wk, sdata 1837 net/mac80211/iface.c sdata->rc_rateidx_mask[i] = sdata 1843 net/mac80211/iface.c memcpy(sdata->rc_rateidx_mcs_mask[i], sdata 1845 net/mac80211/iface.c sizeof(sdata->rc_rateidx_mcs_mask[i])); sdata 1848 net/mac80211/iface.c vht_rate_mask = sdata->rc_rateidx_vht_mcs_mask[i]; sdata 1851 net/mac80211/iface.c memset(sdata->rc_rateidx_mcs_mask[i], 0, sdata 1852 net/mac80211/iface.c sizeof(sdata->rc_rateidx_mcs_mask[i])); sdata 1853 net/mac80211/iface.c memset(sdata->rc_rateidx_vht_mcs_mask[i], 0, sdata 1854 net/mac80211/iface.c sizeof(sdata->rc_rateidx_vht_mcs_mask[i])); sdata 1858 net/mac80211/iface.c ieee80211_set_default_queues(sdata); sdata 1860 net/mac80211/iface.c sdata->ap_power_level = IEEE80211_UNSET_POWER_LEVEL; sdata 1861 net/mac80211/iface.c sdata->user_power_level = local->user_power_level; sdata 1863 net/mac80211/iface.c sdata->encrypt_headroom = IEEE80211_ENCRYPT_HEADROOM; sdata 1866 net/mac80211/iface.c ieee80211_setup_sdata(sdata, type); sdata 1871 net/mac80211/iface.c sdata->u.mgd.use_4addr = params->use_4addr; sdata 1889 net/mac80211/iface.c list_add_tail_rcu(&sdata->list, &local->interfaces); sdata 1893 net/mac80211/iface.c *new_wdev = &sdata->wdev; sdata 1898 net/mac80211/iface.c void ieee80211_if_remove(struct ieee80211_sub_if_data *sdata) sdata 1902 net/mac80211/iface.c mutex_lock(&sdata->local->iflist_mtx); sdata 1903 net/mac80211/iface.c list_del_rcu(&sdata->list); sdata 1904 net/mac80211/iface.c mutex_unlock(&sdata->local->iflist_mtx); sdata 1906 net/mac80211/iface.c if (sdata->vif.txq) sdata 1907 net/mac80211/iface.c ieee80211_txq_purge(sdata->local, to_txq_info(sdata->vif.txq)); sdata 1911 net/mac80211/iface.c if (sdata->dev) { sdata 1912 net/mac80211/iface.c unregister_netdevice(sdata->dev); sdata 1914 net/mac80211/iface.c cfg80211_unregister_wdev(&sdata->wdev); sdata 1915 net/mac80211/iface.c ieee80211_teardown_sdata(sdata); sdata 1916 net/mac80211/iface.c kfree(sdata); sdata 1920 net/mac80211/iface.c void ieee80211_sdata_stop(struct ieee80211_sub_if_data *sdata) sdata 1922 net/mac80211/iface.c if (WARN_ON_ONCE(!test_bit(SDATA_STATE_RUNNING, &sdata->state))) sdata 1924 net/mac80211/iface.c ieee80211_do_stop(sdata, true); sdata 1929 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata, *tmp; sdata 1954 net/mac80211/iface.c list_for_each_entry_safe(sdata, tmp, &local->interfaces, list) { sdata 1955 net/mac80211/iface.c list_del(&sdata->list); sdata 1957 net/mac80211/iface.c if (sdata->dev) sdata 1958 net/mac80211/iface.c unregister_netdevice_queue(sdata->dev, &unreg_list); sdata 1960 net/mac80211/iface.c list_add(&sdata->list, &wdev_list); sdata 1965 net/mac80211/iface.c list_for_each_entry_safe(sdata, tmp, &wdev_list, list) { sdata 1966 net/mac80211/iface.c list_del(&sdata->list); sdata 1967 net/mac80211/iface.c cfg80211_unregister_wdev(&sdata->wdev); sdata 1968 net/mac80211/iface.c kfree(sdata); sdata 1976 net/mac80211/iface.c struct ieee80211_sub_if_data *sdata; sdata 1987 net/mac80211/iface.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1988 net/mac80211/iface.c memcpy(sdata->name, dev->name, IFNAMSIZ); sdata 1989 net/mac80211/iface.c ieee80211_debugfs_rename_netdev(sdata); sdata 2008 net/mac80211/iface.c void ieee80211_vif_inc_num_mcast(struct ieee80211_sub_if_data *sdata) sdata 2010 net/mac80211/iface.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 2011 net/mac80211/iface.c atomic_inc(&sdata->u.ap.num_mcast_sta); sdata 2012 net/mac80211/iface.c else if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 2013 net/mac80211/iface.c atomic_inc(&sdata->u.vlan.num_mcast_sta); sdata 2016 net/mac80211/iface.c void ieee80211_vif_dec_num_mcast(struct ieee80211_sub_if_data *sdata) sdata 2018 net/mac80211/iface.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 2019 net/mac80211/iface.c atomic_dec(&sdata->u.ap.num_mcast_sta); sdata 2020 net/mac80211/iface.c else if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 2021 net/mac80211/iface.c atomic_dec(&sdata->u.vlan.num_mcast_sta); sdata 62 net/mac80211/key.c update_vlan_tailroom_need_count(struct ieee80211_sub_if_data *sdata, int delta) sdata 66 net/mac80211/key.c if (sdata->vif.type != NL80211_IFTYPE_AP) sdata 70 net/mac80211/key.c assert_key_lock(sdata->local); sdata 74 net/mac80211/key.c list_for_each_entry_rcu(vlan, &sdata->u.ap.vlans, u.vlan.list) sdata 80 net/mac80211/key.c static void increment_tailroom_need_count(struct ieee80211_sub_if_data *sdata) sdata 101 net/mac80211/key.c assert_key_lock(sdata->local); sdata 103 net/mac80211/key.c update_vlan_tailroom_need_count(sdata, 1); sdata 105 net/mac80211/key.c if (!sdata->crypto_tx_tailroom_needed_cnt++) { sdata 114 net/mac80211/key.c static void decrease_tailroom_need_count(struct ieee80211_sub_if_data *sdata, sdata 117 net/mac80211/key.c assert_key_lock(sdata->local); sdata 119 net/mac80211/key.c WARN_ON_ONCE(sdata->crypto_tx_tailroom_needed_cnt < delta); sdata 121 net/mac80211/key.c update_vlan_tailroom_need_count(sdata, -delta); sdata 122 net/mac80211/key.c sdata->crypto_tx_tailroom_needed_cnt -= delta; sdata 127 net/mac80211/key.c struct ieee80211_sub_if_data *sdata = key->sdata; sdata 145 net/mac80211/key.c increment_tailroom_need_count(sdata); sdata 169 net/mac80211/key.c if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { sdata 180 net/mac80211/key.c ret = drv_set_key(key->local, SET_KEY, sdata, sdata 189 net/mac80211/key.c decrease_tailroom_need_count(sdata, 1); sdata 201 net/mac80211/key.c sdata_err(sdata, sdata 232 net/mac80211/key.c struct ieee80211_sub_if_data *sdata; sdata 247 net/mac80211/key.c sdata = key->sdata; sdata 252 net/mac80211/key.c increment_tailroom_need_count(sdata); sdata 255 net/mac80211/key.c ret = drv_set_key(key->local, DISABLE_KEY, sdata, sdata 259 net/mac80211/key.c sdata_err(sdata, sdata 342 net/mac80211/key.c ieee80211_flush_queues(local, old->sdata, false); sdata 347 net/mac80211/key.c static void __ieee80211_set_default_key(struct ieee80211_sub_if_data *sdata, sdata 352 net/mac80211/key.c assert_key_lock(sdata->local); sdata 355 net/mac80211/key.c key = key_mtx_dereference(sdata->local, sdata->keys[idx]); sdata 358 net/mac80211/key.c rcu_assign_pointer(sdata->default_unicast_key, key); sdata 359 net/mac80211/key.c ieee80211_check_fast_xmit_iface(sdata); sdata 360 net/mac80211/key.c if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN) sdata 361 net/mac80211/key.c drv_set_default_unicast_key(sdata->local, sdata, idx); sdata 365 net/mac80211/key.c rcu_assign_pointer(sdata->default_multicast_key, key); sdata 367 net/mac80211/key.c ieee80211_debugfs_key_update_default(sdata); sdata 370 net/mac80211/key.c void ieee80211_set_default_key(struct ieee80211_sub_if_data *sdata, int idx, sdata 373 net/mac80211/key.c mutex_lock(&sdata->local->key_mtx); sdata 374 net/mac80211/key.c __ieee80211_set_default_key(sdata, idx, uni, multi); sdata 375 net/mac80211/key.c mutex_unlock(&sdata->local->key_mtx); sdata 379 net/mac80211/key.c __ieee80211_set_default_mgmt_key(struct ieee80211_sub_if_data *sdata, int idx) sdata 383 net/mac80211/key.c assert_key_lock(sdata->local); sdata 387 net/mac80211/key.c key = key_mtx_dereference(sdata->local, sdata->keys[idx]); sdata 389 net/mac80211/key.c rcu_assign_pointer(sdata->default_mgmt_key, key); sdata 391 net/mac80211/key.c ieee80211_debugfs_key_update_default(sdata); sdata 394 net/mac80211/key.c void ieee80211_set_default_mgmt_key(struct ieee80211_sub_if_data *sdata, sdata 397 net/mac80211/key.c mutex_lock(&sdata->local->key_mtx); sdata 398 net/mac80211/key.c __ieee80211_set_default_mgmt_key(sdata, idx); sdata 399 net/mac80211/key.c mutex_unlock(&sdata->local->key_mtx); sdata 402 net/mac80211/key.c static int ieee80211_key_replace(struct ieee80211_sub_if_data *sdata, sdata 417 net/mac80211/key.c list_add_tail_rcu(&new->list, &sdata->key_list); sdata 464 net/mac80211/key.c old == key_mtx_dereference(sdata->local, sdata 465 net/mac80211/key.c sdata->default_unicast_key); sdata 467 net/mac80211/key.c old == key_mtx_dereference(sdata->local, sdata 468 net/mac80211/key.c sdata->default_multicast_key); sdata 470 net/mac80211/key.c old == key_mtx_dereference(sdata->local, sdata 471 net/mac80211/key.c sdata->default_mgmt_key); sdata 474 net/mac80211/key.c __ieee80211_set_default_key(sdata, -1, true, false); sdata 476 net/mac80211/key.c __ieee80211_set_default_key(sdata, -1, false, true); sdata 478 net/mac80211/key.c __ieee80211_set_default_mgmt_key(sdata, -1); sdata 480 net/mac80211/key.c rcu_assign_pointer(sdata->keys[idx], new); sdata 482 net/mac80211/key.c __ieee80211_set_default_key(sdata, new->conf.keyidx, sdata 485 net/mac80211/key.c __ieee80211_set_default_key(sdata, new->conf.keyidx, sdata 488 net/mac80211/key.c __ieee80211_set_default_mgmt_key(sdata, sdata 692 net/mac80211/key.c struct ieee80211_sub_if_data *sdata = key->sdata; sdata 698 net/mac80211/key.c sdata->crypto_tx_tailroom_pending_dec++; sdata 699 net/mac80211/key.c schedule_delayed_work(&sdata->dec_tailroom_needed_wk, sdata 702 net/mac80211/key.c decrease_tailroom_need_count(sdata, 1); sdata 726 net/mac80211/key.c WARN_ON(key->sdata || key->local); sdata 730 net/mac80211/key.c static bool ieee80211_key_identical(struct ieee80211_sub_if_data *sdata, sdata 748 net/mac80211/key.c if (sdata->vif.type == NL80211_IFTYPE_STATION && sdata 764 net/mac80211/key.c struct ieee80211_sub_if_data *sdata, sdata 775 net/mac80211/key.c bool delay_tailroom = sdata->vif.type == NL80211_IFTYPE_STATION; sdata 778 net/mac80211/key.c mutex_lock(&sdata->local->key_mtx); sdata 783 net/mac80211/key.c old_key = key_mtx_dereference(sdata->local, sta->ptk[idx]); sdata 784 net/mac80211/key.c alt_key = key_mtx_dereference(sdata->local, sta->ptk[idx ^ 1]); sdata 793 net/mac80211/key.c old_key = key_mtx_dereference(sdata->local, sta->gtk[idx]); sdata 795 net/mac80211/key.c old_key = key_mtx_dereference(sdata->local, sdata->keys[idx]); sdata 808 net/mac80211/key.c if (ieee80211_key_identical(sdata, old_key, key)) { sdata 814 net/mac80211/key.c key->local = sdata->local; sdata 815 net/mac80211/key.c key->sdata = sdata; sdata 818 net/mac80211/key.c increment_tailroom_need_count(sdata); sdata 820 net/mac80211/key.c ret = ieee80211_key_replace(sdata, sta, pairwise, old_key, key); sdata 830 net/mac80211/key.c mutex_unlock(&sdata->local->key_mtx); sdata 843 net/mac80211/key.c if (key->sdata) sdata 844 net/mac80211/key.c ieee80211_key_replace(key->sdata, key->sta, sdata 850 net/mac80211/key.c void ieee80211_reenable_keys(struct ieee80211_sub_if_data *sdata) sdata 857 net/mac80211/key.c mutex_lock(&sdata->local->key_mtx); sdata 859 net/mac80211/key.c sdata->crypto_tx_tailroom_needed_cnt = 0; sdata 860 net/mac80211/key.c sdata->crypto_tx_tailroom_pending_dec = 0; sdata 862 net/mac80211/key.c if (sdata->vif.type == NL80211_IFTYPE_AP) { sdata 863 net/mac80211/key.c list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) { sdata 869 net/mac80211/key.c if (ieee80211_sdata_running(sdata)) { sdata 870 net/mac80211/key.c list_for_each_entry(key, &sdata->key_list, list) { sdata 871 net/mac80211/key.c increment_tailroom_need_count(sdata); sdata 876 net/mac80211/key.c mutex_unlock(&sdata->local->key_mtx); sdata 890 net/mac80211/key.c struct ieee80211_sub_if_data *sdata; sdata 896 net/mac80211/key.c sdata = vif_to_sdata(vif); sdata 897 net/mac80211/key.c list_for_each_entry_safe(key, tmp, &sdata->key_list, list) sdata 898 net/mac80211/key.c iter(hw, &sdata->vif, sdata 902 net/mac80211/key.c list_for_each_entry(sdata, &local->interfaces, list) sdata 904 net/mac80211/key.c &sdata->key_list, list) sdata 905 net/mac80211/key.c iter(hw, &sdata->vif, sdata 915 net/mac80211/key.c struct ieee80211_sub_if_data *sdata, sdata 925 net/mac80211/key.c list_for_each_entry_rcu(key, &sdata->key_list, list) { sdata 932 net/mac80211/key.c iter(hw, &sdata->vif, sdata 948 net/mac80211/key.c struct ieee80211_sub_if_data *sdata; sdata 951 net/mac80211/key.c sdata = vif_to_sdata(vif); sdata 952 net/mac80211/key.c _ieee80211_iter_keys_rcu(hw, sdata, iter, iter_data); sdata 954 net/mac80211/key.c list_for_each_entry_rcu(sdata, &local->interfaces, list) sdata 955 net/mac80211/key.c _ieee80211_iter_keys_rcu(hw, sdata, iter, iter_data); sdata 960 net/mac80211/key.c static void ieee80211_free_keys_iface(struct ieee80211_sub_if_data *sdata, sdata 965 net/mac80211/key.c decrease_tailroom_need_count(sdata, sdata 966 net/mac80211/key.c sdata->crypto_tx_tailroom_pending_dec); sdata 967 net/mac80211/key.c sdata->crypto_tx_tailroom_pending_dec = 0; sdata 969 net/mac80211/key.c ieee80211_debugfs_key_remove_mgmt_default(sdata); sdata 971 net/mac80211/key.c list_for_each_entry_safe(key, tmp, &sdata->key_list, list) { sdata 972 net/mac80211/key.c ieee80211_key_replace(key->sdata, key->sta, sdata 978 net/mac80211/key.c ieee80211_debugfs_key_update_default(sdata); sdata 981 net/mac80211/key.c void ieee80211_free_keys(struct ieee80211_sub_if_data *sdata, sdata 984 net/mac80211/key.c struct ieee80211_local *local = sdata->local; sdata 990 net/mac80211/key.c cancel_delayed_work_sync(&sdata->dec_tailroom_needed_wk); sdata 994 net/mac80211/key.c ieee80211_free_keys_iface(sdata, &keys); sdata 996 net/mac80211/key.c if (sdata->vif.type == NL80211_IFTYPE_AP) { sdata 997 net/mac80211/key.c list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) sdata 1006 net/mac80211/key.c if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { sdata 1007 net/mac80211/key.c if (sdata->bss) { sdata 1008 net/mac80211/key.c master = container_of(sdata->bss, sdata 1012 net/mac80211/key.c WARN_ON_ONCE(sdata->crypto_tx_tailroom_needed_cnt != sdata 1016 net/mac80211/key.c WARN_ON_ONCE(sdata->crypto_tx_tailroom_needed_cnt || sdata 1017 net/mac80211/key.c sdata->crypto_tx_tailroom_pending_dec); sdata 1020 net/mac80211/key.c if (sdata->vif.type == NL80211_IFTYPE_AP) { sdata 1021 net/mac80211/key.c list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) sdata 1040 net/mac80211/key.c ieee80211_key_replace(key->sdata, key->sta, sdata 1043 net/mac80211/key.c __ieee80211_key_destroy(key, key->sdata->vif.type == sdata 1051 net/mac80211/key.c ieee80211_key_replace(key->sdata, key->sta, sdata 1054 net/mac80211/key.c __ieee80211_key_destroy(key, key->sdata->vif.type == sdata 1063 net/mac80211/key.c struct ieee80211_sub_if_data *sdata; sdata 1065 net/mac80211/key.c sdata = container_of(wk, struct ieee80211_sub_if_data, sdata 1084 net/mac80211/key.c mutex_lock(&sdata->local->key_mtx); sdata 1085 net/mac80211/key.c decrease_tailroom_need_count(sdata, sdata 1086 net/mac80211/key.c sdata->crypto_tx_tailroom_pending_dec); sdata 1087 net/mac80211/key.c sdata->crypto_tx_tailroom_pending_dec = 0; sdata 1088 net/mac80211/key.c mutex_unlock(&sdata->local->key_mtx); sdata 1094 net/mac80211/key.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 1096 net/mac80211/key.c trace_api_gtk_rekey_notify(sdata, bssid, replay_ctr); sdata 1098 net/mac80211/key.c cfg80211_gtk_rekey_notify(sdata->dev, bssid, replay_ctr, gfp); sdata 1229 net/mac80211/key.c increment_tailroom_need_count(key->sdata); sdata 1240 net/mac80211/key.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 1241 net/mac80211/key.c struct ieee80211_local *local = sdata->local; sdata 1257 net/mac80211/key.c if (sdata->u.mgd.mfp != IEEE80211_MFP_DISABLED) sdata 1260 net/mac80211/key.c err = ieee80211_key_link(key, sdata, NULL); sdata 60 net/mac80211/key.h struct ieee80211_sub_if_data *sdata; sdata 147 net/mac80211/key.h struct ieee80211_sub_if_data *sdata, sdata 152 net/mac80211/key.h void ieee80211_set_default_key(struct ieee80211_sub_if_data *sdata, int idx, sdata 154 net/mac80211/key.h void ieee80211_set_default_mgmt_key(struct ieee80211_sub_if_data *sdata, sdata 156 net/mac80211/key.h void ieee80211_free_keys(struct ieee80211_sub_if_data *sdata, sdata 160 net/mac80211/key.h void ieee80211_reenable_keys(struct ieee80211_sub_if_data *sdata); sdata 93 net/mac80211/main.c struct ieee80211_sub_if_data *sdata; sdata 144 net/mac80211/main.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 145 net/mac80211/main.c if (!rcu_access_pointer(sdata->vif.chanctx_conf)) sdata 147 net/mac80211/main.c if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 149 net/mac80211/main.c power = min(power, sdata->vif.bss_conf.txpower); sdata 195 net/mac80211/main.c void ieee80211_bss_info_change_notify(struct ieee80211_sub_if_data *sdata, sdata 198 net/mac80211/main.c struct ieee80211_local *local = sdata->local; sdata 200 net/mac80211/main.c if (!changed || sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 203 net/mac80211/main.c drv_bss_info_changed(local, sdata, &sdata->vif.bss_conf, changed); sdata 206 net/mac80211/main.c u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata) sdata 208 net/mac80211/main.c sdata->vif.bss_conf.use_cts_prot = false; sdata 209 net/mac80211/main.c sdata->vif.bss_conf.use_short_preamble = false; sdata 210 net/mac80211/main.c sdata->vif.bss_conf.use_short_slot = false; sdata 247 net/mac80211/main.c struct ieee80211_sub_if_data *sdata; sdata 258 net/mac80211/main.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 267 net/mac80211/main.c if (sdata->vif.type == NL80211_IFTYPE_STATION) { sdata 275 net/mac80211/main.c cancel_work_sync(&sdata->u.mgd.csa_connection_drop_work); sdata 277 net/mac80211/main.c flush_delayed_work(&sdata->dec_tailroom_needed_wk); sdata 328 net/mac80211/main.c struct ieee80211_sub_if_data *sdata; sdata 340 net/mac80211/main.c sdata = IEEE80211_DEV_TO_SUB_IF(ndev); sdata 341 net/mac80211/main.c bss_conf = &sdata->vif.bss_conf; sdata 344 net/mac80211/main.c if (sdata->vif.type != NL80211_IFTYPE_STATION) sdata 347 net/mac80211/main.c idev = __in_dev_get_rtnl(sdata->dev); sdata 351 net/mac80211/main.c ifmgd = &sdata->u.mgd; sdata 352 net/mac80211/main.c sdata_lock(sdata); sdata 367 net/mac80211/main.c ieee80211_bss_info_change_notify(sdata, sdata 370 net/mac80211/main.c sdata_unlock(sdata); sdata 386 net/mac80211/main.c struct ieee80211_sub_if_data *sdata; sdata 392 net/mac80211/main.c sdata = IEEE80211_DEV_TO_SUB_IF(ndev); sdata 398 net/mac80211/main.c if (sdata->vif.type != NL80211_IFTYPE_STATION) sdata 401 net/mac80211/main.c drv_ipv6_addr_change(local, sdata, idev); sdata 40 net/mac80211/mesh.c struct ieee80211_sub_if_data *sdata = sdata 41 net/mac80211/mesh.c from_timer(sdata, t, u.mesh.housekeeping_timer); sdata 42 net/mac80211/mesh.c struct ieee80211_local *local = sdata->local; sdata 43 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 47 net/mac80211/mesh.c ieee80211_queue_work(&local->hw, &sdata->work); sdata 59 net/mac80211/mesh.c bool mesh_matches_local(struct ieee80211_sub_if_data *sdata, sdata 62 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 86 net/mac80211/mesh.c sband = ieee80211_get_sband(sdata); sdata 90 net/mac80211/mesh.c ieee80211_sta_get_rates(sdata, ie, sband->band, sdata 93 net/mac80211/mesh.c if (sdata->vif.bss_conf.basic_rates != basic_rates) sdata 96 net/mac80211/mesh.c cfg80211_chandef_create(&sta_chan_def, sdata->vif.bss_conf.chandef.chan, sdata 99 net/mac80211/mesh.c ieee80211_chandef_vht_oper(&sdata->local->hw, sdata 103 net/mac80211/mesh.c if (!cfg80211_chandef_compatible(&sdata->vif.bss_conf.chandef, sdata 128 net/mac80211/mesh.c u32 mesh_accept_plinks_update(struct ieee80211_sub_if_data *sdata) sdata 139 net/mac80211/mesh.c free_plinks = mesh_plink_availables(sdata); sdata 141 net/mac80211/mesh.c if (free_plinks != sdata->u.mesh.accepting_plinks) { sdata 142 net/mac80211/mesh.c sdata->u.mesh.accepting_plinks = free_plinks; sdata 156 net/mac80211/mesh.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 160 net/mac80211/mesh.c ieee80211_mbss_info_change_notify(sdata, changed); sdata 163 net/mac80211/mesh.c int mesh_rmc_init(struct ieee80211_sub_if_data *sdata) sdata 167 net/mac80211/mesh.c sdata->u.mesh.rmc = kmalloc(sizeof(struct mesh_rmc), GFP_KERNEL); sdata 168 net/mac80211/mesh.c if (!sdata->u.mesh.rmc) sdata 170 net/mac80211/mesh.c sdata->u.mesh.rmc->idx_mask = RMC_BUCKETS - 1; sdata 172 net/mac80211/mesh.c INIT_HLIST_HEAD(&sdata->u.mesh.rmc->bucket[i]); sdata 176 net/mac80211/mesh.c void mesh_rmc_free(struct ieee80211_sub_if_data *sdata) sdata 178 net/mac80211/mesh.c struct mesh_rmc *rmc = sdata->u.mesh.rmc; sdata 183 net/mac80211/mesh.c if (!sdata->u.mesh.rmc) sdata 194 net/mac80211/mesh.c sdata->u.mesh.rmc = NULL; sdata 210 net/mac80211/mesh.c int mesh_rmc_check(struct ieee80211_sub_if_data *sdata, sdata 213 net/mac80211/mesh.c struct mesh_rmc *rmc = sdata->u.mesh.rmc; sdata 248 net/mac80211/mesh.c int mesh_add_meshconf_ie(struct ieee80211_sub_if_data *sdata, sdata 251 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 294 net/mac80211/mesh.c int mesh_add_meshid_ie(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) sdata 296 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 311 net/mac80211/mesh.c static int mesh_add_awake_window_ie(struct ieee80211_sub_if_data *sdata, sdata 314 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 334 net/mac80211/mesh.c int mesh_add_vendor_ies(struct ieee80211_sub_if_data *sdata, sdata 337 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 358 net/mac80211/mesh.c int mesh_add_rsn_ie(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) sdata 360 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 381 net/mac80211/mesh.c static int mesh_add_ds_params_ie(struct ieee80211_sub_if_data *sdata, sdata 392 net/mac80211/mesh.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 408 net/mac80211/mesh.c int mesh_add_ht_cap_ie(struct ieee80211_sub_if_data *sdata, sdata 414 net/mac80211/mesh.c sband = ieee80211_get_sband(sdata); sdata 419 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata 420 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || sdata 421 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_10) sdata 433 net/mac80211/mesh.c int mesh_add_ht_oper_ie(struct ieee80211_sub_if_data *sdata, sdata 436 net/mac80211/mesh.c struct ieee80211_local *local = sdata->local; sdata 444 net/mac80211/mesh.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 456 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata 457 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || sdata 458 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_10) sdata 465 net/mac80211/mesh.c ieee80211_ie_build_ht_oper(pos, ht_cap, &sdata->vif.bss_conf.chandef, sdata 466 net/mac80211/mesh.c sdata->vif.bss_conf.ht_operation_mode, sdata 472 net/mac80211/mesh.c int mesh_add_vht_cap_ie(struct ieee80211_sub_if_data *sdata, sdata 478 net/mac80211/mesh.c sband = ieee80211_get_sband(sdata); sdata 483 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata 484 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || sdata 485 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_10) sdata 497 net/mac80211/mesh.c int mesh_add_vht_oper_ie(struct ieee80211_sub_if_data *sdata, sdata 500 net/mac80211/mesh.c struct ieee80211_local *local = sdata->local; sdata 508 net/mac80211/mesh.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 520 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata 521 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || sdata 522 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_10) sdata 530 net/mac80211/mesh.c &sdata->vif.bss_conf.chandef); sdata 535 net/mac80211/mesh.c int mesh_add_he_cap_ie(struct ieee80211_sub_if_data *sdata, sdata 542 net/mac80211/mesh.c sband = ieee80211_get_sband(sdata); sdata 549 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata 550 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || sdata 551 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_10) sdata 563 net/mac80211/mesh.c int mesh_add_he_oper_ie(struct ieee80211_sub_if_data *sdata, sdata 570 net/mac80211/mesh.c sband = ieee80211_get_sband(sdata); sdata 576 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata 577 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || sdata 578 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_10) sdata 592 net/mac80211/mesh.c struct ieee80211_sub_if_data *sdata = sdata 593 net/mac80211/mesh.c from_timer(sdata, t, u.mesh.mesh_path_timer); sdata 595 net/mac80211/mesh.c ieee80211_queue_work(&sdata->local->hw, &sdata->work); sdata 600 net/mac80211/mesh.c struct ieee80211_sub_if_data *sdata = sdata 601 net/mac80211/mesh.c from_timer(sdata, t, u.mesh.mesh_path_root_timer); sdata 602 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 606 net/mac80211/mesh.c ieee80211_queue_work(&sdata->local->hw, &sdata->work); sdata 663 net/mac80211/mesh.c unsigned int ieee80211_new_mesh_header(struct ieee80211_sub_if_data *sdata, sdata 672 net/mac80211/mesh.c meshhdr->ttl = sdata->u.mesh.mshcfg.dot11MeshTTL; sdata 675 net/mac80211/mesh.c put_unaligned(cpu_to_le32(sdata->u.mesh.mesh_seqnum), &meshhdr->seqnum); sdata 676 net/mac80211/mesh.c sdata->u.mesh.mesh_seqnum++; sdata 692 net/mac80211/mesh.c static void ieee80211_mesh_housekeeping(struct ieee80211_sub_if_data *sdata) sdata 694 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 698 net/mac80211/mesh.c ieee80211_sta_expire(sdata, ifmsh->mshcfg.plink_timeout * HZ); sdata 699 net/mac80211/mesh.c mesh_path_expire(sdata); sdata 701 net/mac80211/mesh.c changed = mesh_accept_plinks_update(sdata); sdata 702 net/mac80211/mesh.c ieee80211_mbss_info_change_notify(sdata, changed); sdata 709 net/mac80211/mesh.c static void ieee80211_mesh_rootpath(struct ieee80211_sub_if_data *sdata) sdata 711 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 714 net/mac80211/mesh.c mesh_path_tx_root_frame(sdata); sdata 737 net/mac80211/mesh.c struct ieee80211_sub_if_data *sdata; sdata 740 net/mac80211/mesh.c sdata = container_of(ifmsh, struct ieee80211_sub_if_data, u.mesh); sdata 742 net/mac80211/mesh.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 746 net/mac80211/mesh.c ie_len_he_cap = ieee80211_ie_len_he_cap(sdata, sdata 789 net/mac80211/mesh.c memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); sdata 790 net/mac80211/mesh.c memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); sdata 791 net/mac80211/mesh.c ieee80211_mps_set_frame_flags(sdata, NULL, (void *) mgmt); sdata 793 net/mac80211/mesh.c cpu_to_le16(sdata->vif.bss_conf.beacon_int); sdata 795 net/mac80211/mesh.c sdata->u.mesh.security ? WLAN_CAPABILITY_PRIVACY : 0); sdata 866 net/mac80211/mesh.c if (ieee80211_add_srates_ie(sdata, skb, true, band) || sdata 867 net/mac80211/mesh.c mesh_add_ds_params_ie(sdata, skb)) sdata 877 net/mac80211/mesh.c if (ieee80211_add_ext_srates_ie(sdata, skb, true, band) || sdata 878 net/mac80211/mesh.c mesh_add_rsn_ie(sdata, skb) || sdata 879 net/mac80211/mesh.c mesh_add_ht_cap_ie(sdata, skb) || sdata 880 net/mac80211/mesh.c mesh_add_ht_oper_ie(sdata, skb) || sdata 881 net/mac80211/mesh.c mesh_add_meshid_ie(sdata, skb) || sdata 882 net/mac80211/mesh.c mesh_add_meshconf_ie(sdata, skb) || sdata 883 net/mac80211/mesh.c mesh_add_awake_window_ie(sdata, skb) || sdata 884 net/mac80211/mesh.c mesh_add_vht_cap_ie(sdata, skb) || sdata 885 net/mac80211/mesh.c mesh_add_vht_oper_ie(sdata, skb) || sdata 886 net/mac80211/mesh.c mesh_add_he_cap_ie(sdata, skb, ie_len_he_cap) || sdata 887 net/mac80211/mesh.c mesh_add_he_oper_ie(sdata, skb) || sdata 888 net/mac80211/mesh.c mesh_add_vendor_ies(sdata, skb)) sdata 906 net/mac80211/mesh.c ieee80211_mesh_rebuild_beacon(struct ieee80211_sub_if_data *sdata) sdata 911 net/mac80211/mesh.c old_bcn = rcu_dereference_protected(sdata->u.mesh.beacon, sdata 912 net/mac80211/mesh.c lockdep_is_held(&sdata->wdev.mtx)); sdata 913 net/mac80211/mesh.c ret = ieee80211_mesh_build_beacon(&sdata->u.mesh); sdata 923 net/mac80211/mesh.c void ieee80211_mbss_info_change_notify(struct ieee80211_sub_if_data *sdata, sdata 926 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 937 net/mac80211/mesh.c ieee80211_queue_work(&sdata->local->hw, &sdata->work); sdata 940 net/mac80211/mesh.c int ieee80211_start_mesh(struct ieee80211_sub_if_data *sdata) sdata 942 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 943 net/mac80211/mesh.c struct ieee80211_local *local = sdata->local; sdata 962 net/mac80211/mesh.c ieee80211_queue_work(&local->hw, &sdata->work); sdata 963 net/mac80211/mesh.c sdata->vif.bss_conf.ht_operation_mode = sdata 965 net/mac80211/mesh.c sdata->vif.bss_conf.enable_beacon = true; sdata 967 net/mac80211/mesh.c changed |= ieee80211_mps_local_status_update(sdata); sdata 970 net/mac80211/mesh.c ieee80211_stop_mesh(sdata); sdata 974 net/mac80211/mesh.c ieee80211_recalc_dtim(local, sdata); sdata 975 net/mac80211/mesh.c ieee80211_bss_info_change_notify(sdata, changed); sdata 977 net/mac80211/mesh.c netif_carrier_on(sdata->dev); sdata 981 net/mac80211/mesh.c void ieee80211_stop_mesh(struct ieee80211_sub_if_data *sdata) sdata 983 net/mac80211/mesh.c struct ieee80211_local *local = sdata->local; sdata 984 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 987 net/mac80211/mesh.c netif_carrier_off(sdata->dev); sdata 990 net/mac80211/mesh.c sta_info_flush(sdata); sdata 991 net/mac80211/mesh.c ieee80211_free_keys(sdata, true); sdata 992 net/mac80211/mesh.c mesh_path_flush_by_iface(sdata); sdata 996 net/mac80211/mesh.c sdata->vif.bss_conf.enable_beacon = false; sdata 997 net/mac80211/mesh.c clear_bit(SDATA_STATE_OFFCHANNEL_BEACON_STOPPED, &sdata->state); sdata 998 net/mac80211/mesh.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON_ENABLED); sdata 1002 net/mac80211/mesh.c lockdep_is_held(&sdata->wdev.mtx)); sdata 1010 net/mac80211/mesh.c del_timer_sync(&sdata->u.mesh.housekeeping_timer); sdata 1011 net/mac80211/mesh.c del_timer_sync(&sdata->u.mesh.mesh_path_root_timer); sdata 1012 net/mac80211/mesh.c del_timer_sync(&sdata->u.mesh.mesh_path_timer); sdata 1023 net/mac80211/mesh.c static void ieee80211_mesh_csa_mark_radar(struct ieee80211_sub_if_data *sdata) sdata 1030 net/mac80211/mesh.c err = cfg80211_chandef_dfs_required(sdata->local->hw.wiphy, sdata 1031 net/mac80211/mesh.c &sdata->vif.bss_conf.chandef, sdata 1034 net/mac80211/mesh.c cfg80211_radar_event(sdata->local->hw.wiphy, sdata 1035 net/mac80211/mesh.c &sdata->vif.bss_conf.chandef, GFP_ATOMIC); sdata 1039 net/mac80211/mesh.c ieee80211_mesh_process_chnswitch(struct ieee80211_sub_if_data *sdata, sdata 1044 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 1049 net/mac80211/mesh.c sdata_assert_lock(sdata); sdata 1051 net/mac80211/mesh.c sband = ieee80211_get_sband(sdata); sdata 1056 net/mac80211/mesh.c switch (sdata->vif.bss_conf.chandef.width) { sdata 1071 net/mac80211/mesh.c err = ieee80211_parse_ch_switch_ie(sdata, elems, sband->band, sdata 1072 net/mac80211/mesh.c sta_flags, sdata->vif.addr, sdata 1083 net/mac80211/mesh.c ieee80211_mesh_csa_mark_radar(sdata); sdata 1088 net/mac80211/mesh.c if (!cfg80211_chandef_usable(sdata->local->hw.wiphy, ¶ms.chandef, sdata 1090 net/mac80211/mesh.c !cfg80211_reg_can_beacon(sdata->local->hw.wiphy, ¶ms.chandef, sdata 1092 net/mac80211/mesh.c sdata_info(sdata, sdata 1094 net/mac80211/mesh.c sdata->vif.addr, sdata 1102 net/mac80211/mesh.c err = cfg80211_chandef_dfs_required(sdata->local->hw.wiphy, sdata 1108 net/mac80211/mesh.c sdata_info(sdata, sdata 1110 net/mac80211/mesh.c sdata->vif.addr, sdata 1121 net/mac80211/mesh.c &sdata->vif.bss_conf.chandef)) { sdata 1122 net/mac80211/mesh.c mcsa_dbg(sdata, sdata 1127 net/mac80211/mesh.c mcsa_dbg(sdata, sdata 1144 net/mac80211/mesh.c if (ieee80211_channel_switch(sdata->local->hw.wiphy, sdata->dev, sdata 1152 net/mac80211/mesh.c ieee80211_mesh_rx_probe_req(struct ieee80211_sub_if_data *sdata, sdata 1155 net/mac80211/mesh.c struct ieee80211_local *local = sdata->local; sdata 1156 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 1176 net/mac80211/mesh.c if ((!ether_addr_equal(mgmt->da, sdata->vif.addr) && sdata 1205 net/mac80211/mesh.c ieee80211_tx_skb(sdata, presp); sdata 1210 net/mac80211/mesh.c static void ieee80211_mesh_rx_bcn_presp(struct ieee80211_sub_if_data *sdata, sdata 1216 net/mac80211/mesh.c struct ieee80211_local *local = sdata->local; sdata 1217 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 1226 net/mac80211/mesh.c !ether_addr_equal(mgmt->da, sdata->vif.addr)) sdata 1238 net/mac80211/mesh.c (elems.rsn && sdata->u.mesh.security == IEEE80211_MESH_SEC_NONE) || sdata 1239 net/mac80211/mesh.c (!elems.rsn && sdata->u.mesh.security != IEEE80211_MESH_SEC_NONE)) sdata 1252 net/mac80211/mesh.c if (mesh_matches_local(sdata, &elems)) { sdata 1253 net/mac80211/mesh.c mpl_dbg(sdata, "rssi_threshold=%d,rx_status->signal=%d\n", sdata 1254 net/mac80211/mesh.c sdata->u.mesh.mshcfg.rssi_threshold, rx_status->signal); sdata 1255 net/mac80211/mesh.c if (!sdata->u.mesh.user_mpm || sdata 1256 net/mac80211/mesh.c sdata->u.mesh.mshcfg.rssi_threshold == 0 || sdata 1257 net/mac80211/mesh.c sdata->u.mesh.mshcfg.rssi_threshold < rx_status->signal) sdata 1258 net/mac80211/mesh.c mesh_neighbour_update(sdata, mgmt->sa, &elems, sdata 1262 net/mac80211/mesh.c !sdata->vif.csa_active) sdata 1263 net/mac80211/mesh.c ieee80211_mesh_process_chnswitch(sdata, &elems, true); sdata 1267 net/mac80211/mesh.c ifmsh->sync_ops->rx_bcn_presp(sdata, sdata 1271 net/mac80211/mesh.c int ieee80211_mesh_finish_csa(struct ieee80211_sub_if_data *sdata) sdata 1273 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 1284 net/mac80211/mesh.c lockdep_is_held(&sdata->wdev.mtx)); sdata 1288 net/mac80211/mesh.c ret = ieee80211_mesh_rebuild_beacon(sdata); sdata 1294 net/mac80211/mesh.c mcsa_dbg(sdata, "complete switching to center freq %d MHz", sdata 1295 net/mac80211/mesh.c sdata->vif.bss_conf.chandef.chan->center_freq); sdata 1299 net/mac80211/mesh.c int ieee80211_mesh_csa_beacon(struct ieee80211_sub_if_data *sdata, sdata 1302 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 1306 net/mac80211/mesh.c lockdep_assert_held(&sdata->wdev.mtx); sdata 1318 net/mac80211/mesh.c ret = ieee80211_mesh_rebuild_beacon(sdata); sdata 1329 net/mac80211/mesh.c static int mesh_fwd_csa_frame(struct ieee80211_sub_if_data *sdata, sdata 1335 net/mac80211/mesh.c struct ieee80211_local *local = sdata->local; sdata 1349 net/mac80211/mesh.c memcpy(mgmt_fwd->sa, sdata->vif.addr, ETH_ALEN); sdata 1350 net/mac80211/mesh.c memcpy(mgmt_fwd->bssid, sdata->vif.addr, ETH_ALEN); sdata 1352 net/mac80211/mesh.c ieee80211_tx_skb(sdata, skb); sdata 1356 net/mac80211/mesh.c static void mesh_rx_csa_frame(struct ieee80211_sub_if_data *sdata, sdata 1359 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 1376 net/mac80211/mesh.c if (!mesh_matches_local(sdata, &elems)) sdata 1389 net/mac80211/mesh.c if (!sdata->vif.csa_active && sdata 1390 net/mac80211/mesh.c !ieee80211_mesh_process_chnswitch(sdata, &elems, false)) { sdata 1391 net/mac80211/mesh.c mcsa_dbg(sdata, "Failed to process CSA action frame"); sdata 1397 net/mac80211/mesh.c if (mesh_fwd_csa_frame(sdata, mgmt, len, &elems) < 0) sdata 1398 net/mac80211/mesh.c mcsa_dbg(sdata, "Failed to forward the CSA frame"); sdata 1402 net/mac80211/mesh.c static void ieee80211_mesh_rx_mgmt_action(struct ieee80211_sub_if_data *sdata, sdata 1413 net/mac80211/mesh.c mesh_rx_plink_frame(sdata, mgmt, len, rx_status); sdata 1419 net/mac80211/mesh.c mesh_rx_path_sel_frame(sdata, mgmt, len); sdata 1422 net/mac80211/mesh.c mesh_rx_csa_frame(sdata, mgmt, len); sdata 1427 net/mac80211/mesh.c void ieee80211_mesh_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata, sdata 1434 net/mac80211/mesh.c sdata_lock(sdata); sdata 1437 net/mac80211/mesh.c if (!sdata->u.mesh.mesh_id_len) sdata 1447 net/mac80211/mesh.c ieee80211_mesh_rx_bcn_presp(sdata, stype, mgmt, skb->len, sdata 1451 net/mac80211/mesh.c ieee80211_mesh_rx_probe_req(sdata, mgmt, skb->len); sdata 1454 net/mac80211/mesh.c ieee80211_mesh_rx_mgmt_action(sdata, mgmt, skb->len, rx_status); sdata 1458 net/mac80211/mesh.c sdata_unlock(sdata); sdata 1461 net/mac80211/mesh.c static void mesh_bss_info_changed(struct ieee80211_sub_if_data *sdata) sdata 1463 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 1472 net/mac80211/mesh.c if (sdata->vif.bss_conf.enable_beacon && sdata 1477 net/mac80211/mesh.c if (ieee80211_mesh_rebuild_beacon(sdata)) sdata 1480 net/mac80211/mesh.c ieee80211_bss_info_change_notify(sdata, changed); sdata 1483 net/mac80211/mesh.c void ieee80211_mesh_work(struct ieee80211_sub_if_data *sdata) sdata 1485 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 1487 net/mac80211/mesh.c sdata_lock(sdata); sdata 1490 net/mac80211/mesh.c if (!sdata->u.mesh.mesh_id_len) sdata 1496 net/mac80211/mesh.c mesh_path_start_discovery(sdata); sdata 1499 net/mac80211/mesh.c ieee80211_mesh_housekeeping(sdata); sdata 1502 net/mac80211/mesh.c ieee80211_mesh_rootpath(sdata); sdata 1505 net/mac80211/mesh.c mesh_sync_adjust_tsf(sdata); sdata 1508 net/mac80211/mesh.c mesh_bss_info_changed(sdata); sdata 1510 net/mac80211/mesh.c sdata_unlock(sdata); sdata 1514 net/mac80211/mesh.c void ieee80211_mesh_init_sdata(struct ieee80211_sub_if_data *sdata) sdata 1516 net/mac80211/mesh.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 1524 net/mac80211/mesh.c mesh_rmc_init(sdata); sdata 1532 net/mac80211/mesh.c mesh_pathtbl_init(sdata); sdata 1543 net/mac80211/mesh.c sdata->vif.bss_conf.bssid = zero_addr; sdata 1546 net/mac80211/mesh.c void ieee80211_mesh_teardown_sdata(struct ieee80211_sub_if_data *sdata) sdata 1548 net/mac80211/mesh.c mesh_rmc_free(sdata); sdata 1549 net/mac80211/mesh.c mesh_pathtbl_unregister(sdata); sdata 109 net/mac80211/mesh.h struct ieee80211_sub_if_data *sdata; sdata 197 net/mac80211/mesh.h unsigned int ieee80211_new_mesh_header(struct ieee80211_sub_if_data *sdata, sdata 200 net/mac80211/mesh.h int mesh_rmc_check(struct ieee80211_sub_if_data *sdata, sdata 202 net/mac80211/mesh.h bool mesh_matches_local(struct ieee80211_sub_if_data *sdata, sdata 205 net/mac80211/mesh.h int mesh_add_meshconf_ie(struct ieee80211_sub_if_data *sdata, sdata 207 net/mac80211/mesh.h int mesh_add_meshid_ie(struct ieee80211_sub_if_data *sdata, sdata 209 net/mac80211/mesh.h int mesh_add_rsn_ie(struct ieee80211_sub_if_data *sdata, sdata 211 net/mac80211/mesh.h int mesh_add_vendor_ies(struct ieee80211_sub_if_data *sdata, sdata 213 net/mac80211/mesh.h int mesh_add_ht_cap_ie(struct ieee80211_sub_if_data *sdata, sdata 215 net/mac80211/mesh.h int mesh_add_ht_oper_ie(struct ieee80211_sub_if_data *sdata, sdata 217 net/mac80211/mesh.h int mesh_add_vht_cap_ie(struct ieee80211_sub_if_data *sdata, sdata 219 net/mac80211/mesh.h int mesh_add_vht_oper_ie(struct ieee80211_sub_if_data *sdata, sdata 221 net/mac80211/mesh.h int mesh_add_he_cap_ie(struct ieee80211_sub_if_data *sdata, sdata 223 net/mac80211/mesh.h int mesh_add_he_oper_ie(struct ieee80211_sub_if_data *sdata, sdata 225 net/mac80211/mesh.h void mesh_rmc_free(struct ieee80211_sub_if_data *sdata); sdata 226 net/mac80211/mesh.h int mesh_rmc_init(struct ieee80211_sub_if_data *sdata); sdata 231 net/mac80211/mesh.h void ieee80211_mesh_init_sdata(struct ieee80211_sub_if_data *sdata); sdata 232 net/mac80211/mesh.h void ieee80211_mesh_teardown_sdata(struct ieee80211_sub_if_data *sdata); sdata 233 net/mac80211/mesh.h int ieee80211_start_mesh(struct ieee80211_sub_if_data *sdata); sdata 234 net/mac80211/mesh.h void ieee80211_stop_mesh(struct ieee80211_sub_if_data *sdata); sdata 238 net/mac80211/mesh.h void ieee80211_mbss_info_change_notify(struct ieee80211_sub_if_data *sdata, sdata 242 net/mac80211/mesh.h u32 ieee80211_mps_local_status_update(struct ieee80211_sub_if_data *sdata); sdata 245 net/mac80211/mesh.h void ieee80211_mps_set_frame_flags(struct ieee80211_sub_if_data *sdata, sdata 257 net/mac80211/mesh.h int mesh_nexthop_lookup(struct ieee80211_sub_if_data *sdata, sdata 259 net/mac80211/mesh.h int mesh_nexthop_resolve(struct ieee80211_sub_if_data *sdata, sdata 261 net/mac80211/mesh.h void mesh_path_start_discovery(struct ieee80211_sub_if_data *sdata); sdata 262 net/mac80211/mesh.h struct mesh_path *mesh_path_lookup(struct ieee80211_sub_if_data *sdata, sdata 264 net/mac80211/mesh.h struct mesh_path *mpp_path_lookup(struct ieee80211_sub_if_data *sdata, sdata 266 net/mac80211/mesh.h int mpp_path_add(struct ieee80211_sub_if_data *sdata, sdata 269 net/mac80211/mesh.h mesh_path_lookup_by_idx(struct ieee80211_sub_if_data *sdata, int idx); sdata 271 net/mac80211/mesh.h mpp_path_lookup_by_idx(struct ieee80211_sub_if_data *sdata, int idx); sdata 273 net/mac80211/mesh.h void mesh_path_expire(struct ieee80211_sub_if_data *sdata); sdata 274 net/mac80211/mesh.h void mesh_rx_path_sel_frame(struct ieee80211_sub_if_data *sdata, sdata 277 net/mac80211/mesh.h mesh_path_add(struct ieee80211_sub_if_data *sdata, const u8 *dst); sdata 281 net/mac80211/mesh.h int mesh_gate_num(struct ieee80211_sub_if_data *sdata); sdata 286 net/mac80211/mesh.h void mesh_neighbour_update(struct ieee80211_sub_if_data *sdata, sdata 290 net/mac80211/mesh.h u32 mesh_accept_plinks_update(struct ieee80211_sub_if_data *sdata); sdata 296 net/mac80211/mesh.h void mesh_rx_plink_frame(struct ieee80211_sub_if_data *sdata, sdata 303 net/mac80211/mesh.h int mesh_path_error_tx(struct ieee80211_sub_if_data *sdata, sdata 309 net/mac80211/mesh.h int mesh_pathtbl_init(struct ieee80211_sub_if_data *sdata); sdata 310 net/mac80211/mesh.h void mesh_pathtbl_unregister(struct ieee80211_sub_if_data *sdata); sdata 311 net/mac80211/mesh.h int mesh_path_del(struct ieee80211_sub_if_data *sdata, const u8 *addr); sdata 314 net/mac80211/mesh.h void mesh_path_discard_frame(struct ieee80211_sub_if_data *sdata, sdata 316 net/mac80211/mesh.h void mesh_path_tx_root_frame(struct ieee80211_sub_if_data *sdata); sdata 322 net/mac80211/mesh.h u32 mesh_plink_inc_estab_count(struct ieee80211_sub_if_data *sdata) sdata 324 net/mac80211/mesh.h atomic_inc(&sdata->u.mesh.estab_plinks); sdata 325 net/mac80211/mesh.h return mesh_accept_plinks_update(sdata) | BSS_CHANGED_BEACON; sdata 329 net/mac80211/mesh.h u32 mesh_plink_dec_estab_count(struct ieee80211_sub_if_data *sdata) sdata 331 net/mac80211/mesh.h atomic_dec(&sdata->u.mesh.estab_plinks); sdata 332 net/mac80211/mesh.h return mesh_accept_plinks_update(sdata) | BSS_CHANGED_BEACON; sdata 335 net/mac80211/mesh.h static inline int mesh_plink_free_count(struct ieee80211_sub_if_data *sdata) sdata 337 net/mac80211/mesh.h return sdata->u.mesh.mshcfg.dot11MeshMaxPeerLinks - sdata 338 net/mac80211/mesh.h atomic_read(&sdata->u.mesh.estab_plinks); sdata 341 net/mac80211/mesh.h static inline bool mesh_plink_availables(struct ieee80211_sub_if_data *sdata) sdata 343 net/mac80211/mesh.h return (min_t(long, mesh_plink_free_count(sdata), sdata 344 net/mac80211/mesh.h MESH_MAX_PLINKS - sdata->local->num_sta)) > 0; sdata 352 net/mac80211/mesh.h static inline bool mesh_path_sel_is_hwmp(struct ieee80211_sub_if_data *sdata) sdata 354 net/mac80211/mesh.h return sdata->u.mesh.mesh_pp_id == IEEE80211_PATH_PROTOCOL_HWMP; sdata 357 net/mac80211/mesh.h void mesh_path_flush_by_iface(struct ieee80211_sub_if_data *sdata); sdata 358 net/mac80211/mesh.h void mesh_sync_adjust_tsf(struct ieee80211_sub_if_data *sdata); sdata 361 net/mac80211/mesh.h static inline bool mesh_path_sel_is_hwmp(struct ieee80211_sub_if_data *sdata) sdata 363 net/mac80211/mesh.h static inline void mesh_path_flush_by_iface(struct ieee80211_sub_if_data *sdata) sdata 87 net/mac80211/mesh_hwmp.c msecs_to_jiffies(sdata->u.mesh.mshcfg.min_discovery_timeout) sdata 89 net/mac80211/mesh_hwmp.c msecs_to_jiffies(sdata->u.mesh.mshcfg.dot11MeshHWMPconfirmationInterval) sdata 106 net/mac80211/mesh_hwmp.c struct ieee80211_sub_if_data *sdata) sdata 108 net/mac80211/mesh_hwmp.c struct ieee80211_local *local = sdata->local; sdata 126 net/mac80211/mesh_hwmp.c memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); sdata 128 net/mac80211/mesh_hwmp.c memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); sdata 135 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, "sending PREQ to %pM\n", target); sdata 141 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, "sending PREP to %pM\n", orig_addr); sdata 147 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, "sending RANN from %pM\n", orig_addr); sdata 193 net/mac80211/mesh_hwmp.c ieee80211_tx_skb(sdata, skb); sdata 200 net/mac80211/mesh_hwmp.c static void prepare_frame_for_deferred_tx(struct ieee80211_sub_if_data *sdata, sdata 214 net/mac80211/mesh_hwmp.c info->control.vif = &sdata->vif; sdata 216 net/mac80211/mesh_hwmp.c ieee80211_set_qos_hdr(sdata, skb); sdata 217 net/mac80211/mesh_hwmp.c ieee80211_mps_set_frame_flags(sdata, NULL, hdr); sdata 234 net/mac80211/mesh_hwmp.c int mesh_path_error_tx(struct ieee80211_sub_if_data *sdata, sdata 238 net/mac80211/mesh_hwmp.c struct ieee80211_local *local = sdata->local; sdata 240 net/mac80211/mesh_hwmp.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 250 net/mac80211/mesh_hwmp.c sdata->encrypt_headroom + sdata 256 net/mac80211/mesh_hwmp.c skb_reserve(skb, local->tx_headroom + sdata->encrypt_headroom); sdata 262 net/mac80211/mesh_hwmp.c memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); sdata 264 net/mac80211/mesh_hwmp.c memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); sdata 288 net/mac80211/mesh_hwmp.c prepare_frame_for_deferred_tx(sdata, skb); sdata 380 net/mac80211/mesh_hwmp.c static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata, sdata 384 net/mac80211/mesh_hwmp.c struct ieee80211_local *local = sdata->local; sdata 396 net/mac80211/mesh_hwmp.c sta = sta_info_get(sdata, mgmt->sa); sdata 435 net/mac80211/mesh_hwmp.c if (ether_addr_equal(orig_addr, sdata->vif.addr)) { sdata 442 net/mac80211/mesh_hwmp.c mpath = mesh_path_lookup(sdata, orig_addr); sdata 480 net/mac80211/mesh_hwmp.c mpath = mesh_path_add(sdata, orig_addr); sdata 518 net/mac80211/mesh_hwmp.c mpath = mesh_path_lookup(sdata, ta); sdata 528 net/mac80211/mesh_hwmp.c mpath = mesh_path_add(sdata, ta); sdata 559 net/mac80211/mesh_hwmp.c static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata, sdata 563 net/mac80211/mesh_hwmp.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 583 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, "received PREQ from %pM\n", orig_addr); sdata 585 net/mac80211/mesh_hwmp.c if (ether_addr_equal(target_addr, sdata->vif.addr)) { sdata 586 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, "PREQ is for us\n"); sdata 595 net/mac80211/mesh_hwmp.c net_traversal_jiffies(sdata)) || sdata 604 net/mac80211/mesh_hwmp.c mpath = mesh_path_lookup(sdata, orig_addr); sdata 608 net/mac80211/mesh_hwmp.c target_addr = sdata->vif.addr; sdata 619 net/mac80211/mesh_hwmp.c mpath = mesh_path_lookup(sdata, target_addr); sdata 641 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, "replying to the PREQ\n"); sdata 646 net/mac80211/mesh_hwmp.c sdata); sdata 662 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, "forwarding the PREQ from %pM\n", orig_addr); sdata 677 net/mac80211/mesh_hwmp.c orig_metric, preq_id, sdata); sdata 695 net/mac80211/mesh_hwmp.c static void hwmp_prep_frame_process(struct ieee80211_sub_if_data *sdata, sdata 699 net/mac80211/mesh_hwmp.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 706 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, "received PREP from %pM\n", sdata 710 net/mac80211/mesh_hwmp.c if (ether_addr_equal(orig_addr, sdata->vif.addr)) sdata 719 net/mac80211/mesh_hwmp.c sdata->u.mesh.mshstats.dropped_frames_ttl++; sdata 724 net/mac80211/mesh_hwmp.c mpath = mesh_path_lookup(sdata, orig_addr); sdata 745 net/mac80211/mesh_hwmp.c ttl, lifetime, metric, 0, sdata); sdata 748 net/mac80211/mesh_hwmp.c sdata->u.mesh.mshstats.fwded_unicast++; sdata 749 net/mac80211/mesh_hwmp.c sdata->u.mesh.mshstats.fwded_frames++; sdata 754 net/mac80211/mesh_hwmp.c sdata->u.mesh.mshstats.dropped_frames_no_route++; sdata 757 net/mac80211/mesh_hwmp.c static void hwmp_perr_frame_process(struct ieee80211_sub_if_data *sdata, sdata 761 net/mac80211/mesh_hwmp.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 780 net/mac80211/mesh_hwmp.c mpath = mesh_path_lookup(sdata, target_addr); sdata 799 net/mac80211/mesh_hwmp.c mesh_path_error_tx(sdata, ttl, target_addr, sdata 809 net/mac80211/mesh_hwmp.c static void hwmp_rann_frame_process(struct ieee80211_sub_if_data *sdata, sdata 813 net/mac80211/mesh_hwmp.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 814 net/mac80211/mesh_hwmp.c struct ieee80211_local *local = sdata->local; sdata 833 net/mac80211/mesh_hwmp.c if (ether_addr_equal(orig_addr, sdata->vif.addr)) sdata 836 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, sdata 841 net/mac80211/mesh_hwmp.c sta = sta_info_get(sdata, mgmt->sa); sdata 852 net/mac80211/mesh_hwmp.c mpath = mesh_path_lookup(sdata, orig_addr); sdata 854 net/mac80211/mesh_hwmp.c mpath = mesh_path_add(sdata, orig_addr); sdata 857 net/mac80211/mesh_hwmp.c sdata->u.mesh.mshstats.dropped_frames_no_route++; sdata 870 net/mac80211/mesh_hwmp.c root_path_confirmation_jiffies(sdata)) || sdata 873 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, sdata 901 net/mac80211/mesh_hwmp.c new_metric, 0, sdata); sdata 908 net/mac80211/mesh_hwmp.c void mesh_rx_path_sel_frame(struct ieee80211_sub_if_data *sdata, sdata 921 net/mac80211/mesh_hwmp.c sta = sta_info_get(sdata, mgmt->sa); sdata 936 net/mac80211/mesh_hwmp.c path_metric = hwmp_route_info_get(sdata, mgmt, elems.preq, sdata 939 net/mac80211/mesh_hwmp.c hwmp_preq_frame_process(sdata, mgmt, elems.preq, sdata 946 net/mac80211/mesh_hwmp.c path_metric = hwmp_route_info_get(sdata, mgmt, elems.prep, sdata 949 net/mac80211/mesh_hwmp.c hwmp_prep_frame_process(sdata, mgmt, elems.prep, sdata 956 net/mac80211/mesh_hwmp.c hwmp_perr_frame_process(sdata, mgmt, elems.perr); sdata 959 net/mac80211/mesh_hwmp.c hwmp_rann_frame_process(sdata, mgmt, elems.rann); sdata 973 net/mac80211/mesh_hwmp.c struct ieee80211_sub_if_data *sdata = mpath->sdata; sdata 974 net/mac80211/mesh_hwmp.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 979 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, "could not allocate PREQ node\n"); sdata 988 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, "PREQ node queue full\n"); sdata 1010 net/mac80211/mesh_hwmp.c if (time_after(jiffies, ifmsh->last_preq + min_preq_int_jiff(sdata))) sdata 1011 net/mac80211/mesh_hwmp.c ieee80211_queue_work(&sdata->local->hw, &sdata->work); sdata 1017 net/mac80211/mesh_hwmp.c ifmsh->last_preq = jiffies - min_preq_int_jiff(sdata) - 1; sdata 1018 net/mac80211/mesh_hwmp.c ieee80211_queue_work(&sdata->local->hw, &sdata->work); sdata 1021 net/mac80211/mesh_hwmp.c min_preq_int_jiff(sdata)); sdata 1029 net/mac80211/mesh_hwmp.c void mesh_path_start_discovery(struct ieee80211_sub_if_data *sdata) sdata 1031 net/mac80211/mesh_hwmp.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 1041 net/mac80211/mesh_hwmp.c min_preq_int_jiff(sdata))) { sdata 1053 net/mac80211/mesh_hwmp.c mpath = mesh_path_lookup(sdata, preq_node->dst); sdata 1071 net/mac80211/mesh_hwmp.c mpath->discovery_timeout = disc_timeout_jiff(sdata); sdata 1083 net/mac80211/mesh_hwmp.c net_traversal_jiffies(sdata)) || sdata 1086 net/mac80211/mesh_hwmp.c sdata->u.mesh.last_sn_update = jiffies; sdata 1088 net/mac80211/mesh_hwmp.c lifetime = default_lifetime(sdata); sdata 1089 net/mac80211/mesh_hwmp.c ttl = sdata->u.mesh.mshcfg.element_ttl; sdata 1091 net/mac80211/mesh_hwmp.c sdata->u.mesh.mshstats.dropped_frames_ttl++; sdata 1103 net/mac80211/mesh_hwmp.c mesh_path_sel_frame_tx(MPATH_PREQ, 0, sdata->vif.addr, ifmsh->sn, sdata 1105 net/mac80211/mesh_hwmp.c ttl, lifetime, 0, ifmsh->preq_id++, sdata); sdata 1132 net/mac80211/mesh_hwmp.c int mesh_nexthop_resolve(struct ieee80211_sub_if_data *sdata, sdata 1149 net/mac80211/mesh_hwmp.c if (!mesh_nexthop_lookup(sdata, skb)) sdata 1153 net/mac80211/mesh_hwmp.c mpath = mesh_path_lookup(sdata, target_addr); sdata 1155 net/mac80211/mesh_hwmp.c mpath = mesh_path_add(sdata, target_addr); sdata 1157 net/mac80211/mesh_hwmp.c mesh_path_discard_frame(sdata, skb); sdata 1163 net/mac80211/mesh_hwmp.c mesh_path_sel_is_hwmp(sdata)) sdata 1170 net/mac80211/mesh_hwmp.c ieee80211_set_qos_hdr(sdata, skb); sdata 1173 net/mac80211/mesh_hwmp.c mesh_path_discard_frame(sdata, skb_to_free); sdata 1188 net/mac80211/mesh_hwmp.c int mesh_nexthop_lookup(struct ieee80211_sub_if_data *sdata, sdata 1196 net/mac80211/mesh_hwmp.c mpath = mesh_path_lookup(sdata, target_addr); sdata 1202 net/mac80211/mesh_hwmp.c msecs_to_jiffies(sdata->u.mesh.mshcfg.path_refresh_time)) && sdata 1203 net/mac80211/mesh_hwmp.c ether_addr_equal(sdata->vif.addr, hdr->addr4) && sdata 1211 net/mac80211/mesh_hwmp.c memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); sdata 1212 net/mac80211/mesh_hwmp.c ieee80211_mps_set_frame_flags(sdata, next_hop, hdr); sdata 1222 net/mac80211/mesh_hwmp.c struct ieee80211_sub_if_data *sdata = mpath->sdata; sdata 1225 net/mac80211/mesh_hwmp.c if (sdata->local->quiescing) sdata 1233 net/mac80211/mesh_hwmp.c } else if (mpath->discovery_retries < max_preq_retries(sdata)) { sdata 1245 net/mac80211/mesh_hwmp.c if (!mpath->is_gate && mesh_gate_num(sdata) > 0) { sdata 1248 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, "no gate was reachable\n"); sdata 1254 net/mac80211/mesh_hwmp.c void mesh_path_tx_root_frame(struct ieee80211_sub_if_data *sdata) sdata 1256 net/mac80211/mesh_hwmp.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 1265 net/mac80211/mesh_hwmp.c mesh_path_sel_frame_tx(MPATH_RANN, flags, sdata->vif.addr, sdata 1268 net/mac80211/mesh_hwmp.c interval, 0, 0, sdata); sdata 1277 net/mac80211/mesh_hwmp.c mesh_path_sel_frame_tx(MPATH_PREQ, flags, sdata->vif.addr, sdata 1281 net/mac80211/mesh_hwmp.c 0, ifmsh->preq_id++, sdata); sdata 1284 net/mac80211/mesh_hwmp.c mhwmp_dbg(sdata, "Proactive mechanism not supported\n"); sdata 95 net/mac80211/mesh_pathtbl.c memcpy(hdr->addr2, mpath->sdata->vif.addr, ETH_ALEN); sdata 96 net/mac80211/mesh_pathtbl.c ieee80211_mps_set_frame_flags(sta->sdata, sta, hdr); sdata 138 net/mac80211/mesh_pathtbl.c memcpy(hdr->addr2, gate_mpath->sdata->vif.addr, ETH_ALEN); sdata 182 net/mac80211/mesh_pathtbl.c mpath_dbg(gate_mpath->sdata, "mpath queue full!\n"); sdata 200 net/mac80211/mesh_pathtbl.c mpath_dbg(gate_mpath->sdata, "Mpath queue for gate %pM has %d frames\n", sdata 213 net/mac80211/mesh_pathtbl.c struct ieee80211_sub_if_data *sdata) sdata 237 net/mac80211/mesh_pathtbl.c mesh_path_lookup(struct ieee80211_sub_if_data *sdata, const u8 *dst) sdata 239 net/mac80211/mesh_pathtbl.c return mpath_lookup(sdata->u.mesh.mesh_paths, dst, sdata); sdata 243 net/mac80211/mesh_pathtbl.c mpp_path_lookup(struct ieee80211_sub_if_data *sdata, const u8 *dst) sdata 245 net/mac80211/mesh_pathtbl.c return mpath_lookup(sdata->u.mesh.mpp_paths, dst, sdata); sdata 280 net/mac80211/mesh_pathtbl.c mesh_path_lookup_by_idx(struct ieee80211_sub_if_data *sdata, int idx) sdata 282 net/mac80211/mesh_pathtbl.c return __mesh_path_lookup_by_idx(sdata->u.mesh.mesh_paths, idx); sdata 295 net/mac80211/mesh_pathtbl.c mpp_path_lookup_by_idx(struct ieee80211_sub_if_data *sdata, int idx) sdata 297 net/mac80211/mesh_pathtbl.c return __mesh_path_lookup_by_idx(sdata->u.mesh.mpp_paths, idx); sdata 310 net/mac80211/mesh_pathtbl.c tbl = mpath->sdata->u.mesh.mesh_paths; sdata 319 net/mac80211/mesh_pathtbl.c mpath->sdata->u.mesh.num_gates++; sdata 327 net/mac80211/mesh_pathtbl.c mpath_dbg(mpath->sdata, sdata 329 net/mac80211/mesh_pathtbl.c mpath->dst, mpath->sdata->u.mesh.num_gates); sdata 350 net/mac80211/mesh_pathtbl.c mpath->sdata->u.mesh.num_gates--; sdata 353 net/mac80211/mesh_pathtbl.c mpath_dbg(mpath->sdata, sdata 355 net/mac80211/mesh_pathtbl.c mpath->dst, mpath->sdata->u.mesh.num_gates); sdata 362 net/mac80211/mesh_pathtbl.c int mesh_gate_num(struct ieee80211_sub_if_data *sdata) sdata 364 net/mac80211/mesh_pathtbl.c return sdata->u.mesh.num_gates; sdata 368 net/mac80211/mesh_pathtbl.c struct mesh_path *mesh_path_new(struct ieee80211_sub_if_data *sdata, sdata 380 net/mac80211/mesh_pathtbl.c new_mpath->sdata = sdata; sdata 399 net/mac80211/mesh_pathtbl.c struct mesh_path *mesh_path_add(struct ieee80211_sub_if_data *sdata, sdata 405 net/mac80211/mesh_pathtbl.c if (ether_addr_equal(dst, sdata->vif.addr)) sdata 412 net/mac80211/mesh_pathtbl.c if (atomic_add_unless(&sdata->u.mesh.mpaths, 1, MESH_MAX_MPATHS) == 0) sdata 415 net/mac80211/mesh_pathtbl.c new_mpath = mesh_path_new(sdata, dst, GFP_ATOMIC); sdata 419 net/mac80211/mesh_pathtbl.c tbl = sdata->u.mesh.mesh_paths; sdata 437 net/mac80211/mesh_pathtbl.c sdata->u.mesh.mesh_paths_generation++; sdata 441 net/mac80211/mesh_pathtbl.c int mpp_path_add(struct ieee80211_sub_if_data *sdata, sdata 448 net/mac80211/mesh_pathtbl.c if (ether_addr_equal(dst, sdata->vif.addr)) sdata 455 net/mac80211/mesh_pathtbl.c new_mpath = mesh_path_new(sdata, dst, GFP_ATOMIC); sdata 461 net/mac80211/mesh_pathtbl.c tbl = sdata->u.mesh.mpp_paths; sdata 474 net/mac80211/mesh_pathtbl.c sdata->u.mesh.mpp_paths_generation++; sdata 489 net/mac80211/mesh_pathtbl.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 490 net/mac80211/mesh_pathtbl.c struct mesh_table *tbl = sdata->u.mesh.mesh_paths; sdata 503 net/mac80211/mesh_pathtbl.c mesh_path_error_tx(sdata, sdata 504 net/mac80211/mesh_pathtbl.c sdata->u.mesh.mshcfg.element_ttl, sdata 515 net/mac80211/mesh_pathtbl.c struct ieee80211_sub_if_data *sdata = mpath->sdata; sdata 522 net/mac80211/mesh_pathtbl.c atomic_dec(&sdata->u.mesh.mpaths); sdata 547 net/mac80211/mesh_pathtbl.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 548 net/mac80211/mesh_pathtbl.c struct mesh_table *tbl = sdata->u.mesh.mesh_paths; sdata 560 net/mac80211/mesh_pathtbl.c static void mpp_flush_by_proxy(struct ieee80211_sub_if_data *sdata, sdata 563 net/mac80211/mesh_pathtbl.c struct mesh_table *tbl = sdata->u.mesh.mpp_paths; sdata 595 net/mac80211/mesh_pathtbl.c void mesh_path_flush_by_iface(struct ieee80211_sub_if_data *sdata) sdata 597 net/mac80211/mesh_pathtbl.c table_flush_by_iface(sdata->u.mesh.mesh_paths); sdata 598 net/mac80211/mesh_pathtbl.c table_flush_by_iface(sdata->u.mesh.mpp_paths); sdata 611 net/mac80211/mesh_pathtbl.c struct ieee80211_sub_if_data *sdata, sdata 637 net/mac80211/mesh_pathtbl.c int mesh_path_del(struct ieee80211_sub_if_data *sdata, const u8 *addr) sdata 642 net/mac80211/mesh_pathtbl.c mpp_flush_by_proxy(sdata, addr); sdata 644 net/mac80211/mesh_pathtbl.c err = table_path_del(sdata->u.mesh.mesh_paths, sdata, addr); sdata 645 net/mac80211/mesh_pathtbl.c sdata->u.mesh.mesh_paths_generation++; sdata 660 net/mac80211/mesh_pathtbl.c ieee80211_add_pending_skbs(mpath->sdata->local, sdata 676 net/mac80211/mesh_pathtbl.c struct ieee80211_sub_if_data *sdata = mpath->sdata; sdata 682 net/mac80211/mesh_pathtbl.c tbl = sdata->u.mesh.mesh_paths; sdata 687 net/mac80211/mesh_pathtbl.c mpath_dbg(sdata, "Forwarding to %pM\n", gate->dst); sdata 692 net/mac80211/mesh_pathtbl.c mpath_dbg(sdata, sdata 699 net/mac80211/mesh_pathtbl.c mpath_dbg(sdata, "Sending to %pM\n", gate->dst); sdata 715 net/mac80211/mesh_pathtbl.c void mesh_path_discard_frame(struct ieee80211_sub_if_data *sdata, sdata 719 net/mac80211/mesh_pathtbl.c sdata->u.mesh.mshstats.dropped_frames_no_route++; sdata 734 net/mac80211/mesh_pathtbl.c mesh_path_discard_frame(mpath->sdata, skb); sdata 762 net/mac80211/mesh_pathtbl.c int mesh_pathtbl_init(struct ieee80211_sub_if_data *sdata) sdata 780 net/mac80211/mesh_pathtbl.c sdata->u.mesh.mesh_paths = tbl_path; sdata 781 net/mac80211/mesh_pathtbl.c sdata->u.mesh.mpp_paths = tbl_mpp; sdata 791 net/mac80211/mesh_pathtbl.c void mesh_path_tbl_expire(struct ieee80211_sub_if_data *sdata, sdata 807 net/mac80211/mesh_pathtbl.c void mesh_path_expire(struct ieee80211_sub_if_data *sdata) sdata 809 net/mac80211/mesh_pathtbl.c mesh_path_tbl_expire(sdata, sdata->u.mesh.mesh_paths); sdata 810 net/mac80211/mesh_pathtbl.c mesh_path_tbl_expire(sdata, sdata->u.mesh.mpp_paths); sdata 813 net/mac80211/mesh_pathtbl.c void mesh_pathtbl_unregister(struct ieee80211_sub_if_data *sdata) sdata 815 net/mac80211/mesh_pathtbl.c mesh_table_free(sdata->u.mesh.mesh_paths); sdata 816 net/mac80211/mesh_pathtbl.c mesh_table_free(sdata->u.mesh.mpp_paths); sdata 58 net/mac80211/mesh_plink.c static bool rssi_threshold_check(struct ieee80211_sub_if_data *sdata, sdata 61 net/mac80211/mesh_plink.c s32 rssi_threshold = sdata->u.mesh.mshcfg.rssi_threshold; sdata 93 net/mac80211/mesh_plink.c static u32 mesh_set_short_slot_time(struct ieee80211_sub_if_data *sdata) sdata 95 net/mac80211/mesh_plink.c struct ieee80211_local *local = sdata->local; sdata 102 net/mac80211/mesh_plink.c sband = ieee80211_get_sband(sdata); sdata 123 net/mac80211/mesh_plink.c if (sdata != sta->sdata || sdata 136 net/mac80211/mesh_plink.c if (sdata->vif.bss_conf.use_short_slot != short_slot) { sdata 137 net/mac80211/mesh_plink.c sdata->vif.bss_conf.use_short_slot = short_slot; sdata 139 net/mac80211/mesh_plink.c mpl_dbg(sdata, "mesh_plink %pM: ERP short slot time %d\n", sdata 140 net/mac80211/mesh_plink.c sdata->vif.addr, short_slot); sdata 155 net/mac80211/mesh_plink.c static u32 mesh_set_ht_prot_mode(struct ieee80211_sub_if_data *sdata) sdata 157 net/mac80211/mesh_plink.c struct ieee80211_local *local = sdata->local; sdata 162 net/mac80211/mesh_plink.c switch (sdata->vif.bss_conf.chandef.width) { sdata 173 net/mac80211/mesh_plink.c if (sdata != sta->sdata || sdata 181 net/mac80211/mesh_plink.c mpl_dbg(sdata, "nonHT sta (%pM) is present\n", sdata 187 net/mac80211/mesh_plink.c mpl_dbg(sdata, "HT20 sta (%pM) is present\n", sta->sta.addr); sdata 195 net/mac80211/mesh_plink.c sdata->vif.bss_conf.chandef.width > NL80211_CHAN_WIDTH_20) sdata 200 net/mac80211/mesh_plink.c if (sdata->vif.bss_conf.ht_operation_mode == ht_opmode) sdata 203 net/mac80211/mesh_plink.c sdata->vif.bss_conf.ht_operation_mode = ht_opmode; sdata 204 net/mac80211/mesh_plink.c sdata->u.mesh.mshcfg.ht_opmode = ht_opmode; sdata 205 net/mac80211/mesh_plink.c mpl_dbg(sdata, "selected new HT protection mode %d\n", ht_opmode); sdata 209 net/mac80211/mesh_plink.c static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata, sdata 214 net/mac80211/mesh_plink.c struct ieee80211_local *local = sdata->local; sdata 225 net/mac80211/mesh_plink.c ie_len_he_cap = ieee80211_ie_len_he_cap(sdata, sdata 233 net/mac80211/mesh_plink.c 2 + sdata->u.mesh.mesh_id_len + sdata 242 net/mac80211/mesh_plink.c sdata->u.mesh.ie_len); sdata 251 net/mac80211/mesh_plink.c memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); sdata 252 net/mac80211/mesh_plink.c memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); sdata 260 net/mac80211/mesh_plink.c sband = ieee80211_get_sband(sdata); sdata 274 net/mac80211/mesh_plink.c if (ieee80211_add_srates_ie(sdata, skb, true, band) || sdata 275 net/mac80211/mesh_plink.c ieee80211_add_ext_srates_ie(sdata, skb, true, band) || sdata 276 net/mac80211/mesh_plink.c mesh_add_rsn_ie(sdata, skb) || sdata 277 net/mac80211/mesh_plink.c mesh_add_meshid_ie(sdata, skb) || sdata 278 net/mac80211/mesh_plink.c mesh_add_meshconf_ie(sdata, skb)) sdata 282 net/mac80211/mesh_plink.c if (mesh_add_meshid_ie(sdata, skb)) sdata 326 net/mac80211/mesh_plink.c if (mesh_add_ht_cap_ie(sdata, skb) || sdata 327 net/mac80211/mesh_plink.c mesh_add_ht_oper_ie(sdata, skb) || sdata 328 net/mac80211/mesh_plink.c mesh_add_vht_cap_ie(sdata, skb) || sdata 329 net/mac80211/mesh_plink.c mesh_add_vht_oper_ie(sdata, skb) || sdata 330 net/mac80211/mesh_plink.c mesh_add_he_cap_ie(sdata, skb, ie_len_he_cap) || sdata 331 net/mac80211/mesh_plink.c mesh_add_he_oper_ie(sdata, skb)) sdata 335 net/mac80211/mesh_plink.c if (mesh_add_vendor_ies(sdata, skb)) sdata 338 net/mac80211/mesh_plink.c ieee80211_tx_skb(sdata, skb); sdata 359 net/mac80211/mesh_plink.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 365 net/mac80211/mesh_plink.c changed = mesh_plink_dec_estab_count(sdata); sdata 384 net/mac80211/mesh_plink.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 390 net/mac80211/mesh_plink.c if (!sdata->u.mesh.user_mpm) { sdata 392 net/mac80211/mesh_plink.c mesh_plink_frame_tx(sdata, sta, WLAN_SP_MESH_PEERING_CLOSE, sdata 397 net/mac80211/mesh_plink.c if (!sdata->u.mesh.user_mpm) sdata 407 net/mac80211/mesh_plink.c static void mesh_sta_info_init(struct ieee80211_sub_if_data *sdata, sdata 411 net/mac80211/mesh_plink.c struct ieee80211_local *local = sdata->local; sdata 416 net/mac80211/mesh_plink.c sband = ieee80211_get_sband(sdata); sdata 420 net/mac80211/mesh_plink.c rates = ieee80211_sta_get_rates(sdata, elems, sband->band, sdata 436 net/mac80211/mesh_plink.c if (ieee80211_ht_cap_ie_to_sta_ht_cap(sdata, sband, sdata 440 net/mac80211/mesh_plink.c ieee80211_vht_cap_ie_to_sta_vht_cap(sdata, sband, sdata 443 net/mac80211/mesh_plink.c ieee80211_he_cap_ie_to_sta_he_cap(sdata, sband, elems->he_cap, sdata 466 net/mac80211/mesh_plink.c static int mesh_allocate_aid(struct ieee80211_sub_if_data *sdata) sdata 481 net/mac80211/mesh_plink.c list_for_each_entry_rcu(sta, &sdata->local->sta_list, list) sdata 495 net/mac80211/mesh_plink.c __mesh_sta_info_alloc(struct ieee80211_sub_if_data *sdata, u8 *hw_addr) sdata 500 net/mac80211/mesh_plink.c if (sdata->local->num_sta >= MESH_MAX_PLINKS) sdata 503 net/mac80211/mesh_plink.c aid = mesh_allocate_aid(sdata); sdata 507 net/mac80211/mesh_plink.c sta = sta_info_alloc(sdata, hw_addr, GFP_KERNEL); sdata 523 net/mac80211/mesh_plink.c mesh_sta_info_alloc(struct ieee80211_sub_if_data *sdata, u8 *addr, sdata 530 net/mac80211/mesh_plink.c if (sdata->u.mesh.user_mpm || sdata 531 net/mac80211/mesh_plink.c sdata->u.mesh.security & IEEE80211_MESH_SEC_AUTHED) { sdata 533 net/mac80211/mesh_plink.c mesh_plink_availables(sdata)) { sdata 536 net/mac80211/mesh_plink.c if (ieee80211_hw_check(&sdata->local->hw, SIGNAL_DBM)) sdata 539 net/mac80211/mesh_plink.c cfg80211_notify_new_peer_candidate(sdata->dev, addr, sdata 545 net/mac80211/mesh_plink.c sta = __mesh_sta_info_alloc(sdata, addr); sdata 562 net/mac80211/mesh_plink.c mesh_sta_info_get(struct ieee80211_sub_if_data *sdata, sdata 569 net/mac80211/mesh_plink.c sta = sta_info_get(sdata, addr); sdata 571 net/mac80211/mesh_plink.c mesh_sta_info_init(sdata, sta, elems); sdata 575 net/mac80211/mesh_plink.c sta = mesh_sta_info_alloc(sdata, addr, elems, rx_status); sdata 581 net/mac80211/mesh_plink.c mesh_sta_info_init(sdata, sta, elems); sdata 600 net/mac80211/mesh_plink.c void mesh_neighbour_update(struct ieee80211_sub_if_data *sdata, sdata 608 net/mac80211/mesh_plink.c sta = mesh_sta_info_get(sdata, hw_addr, elems, rx_status); sdata 617 net/mac80211/mesh_plink.c sdata->u.mesh.accepting_plinks && sdata 618 net/mac80211/mesh_plink.c sdata->u.mesh.mshcfg.auto_open_plinks && sdata 619 net/mac80211/mesh_plink.c rssi_threshold_check(sdata, sta)) sdata 625 net/mac80211/mesh_plink.c ieee80211_mbss_info_change_notify(sdata, changed); sdata 633 net/mac80211/mesh_plink.c struct ieee80211_sub_if_data *sdata; sdata 644 net/mac80211/mesh_plink.c if (sta->sdata->local->quiescing) sdata 655 net/mac80211/mesh_plink.c mpl_dbg(sta->sdata, sdata 665 net/mac80211/mesh_plink.c mpl_dbg(sta->sdata, sdata 672 net/mac80211/mesh_plink.c mpl_dbg(sta->sdata, sdata 675 net/mac80211/mesh_plink.c sdata = sta->sdata; sdata 676 net/mac80211/mesh_plink.c mshcfg = &sdata->u.mesh.mshcfg; sdata 684 net/mac80211/mesh_plink.c mpl_dbg(sta->sdata, sdata 716 net/mac80211/mesh_plink.c mesh_plink_frame_tx(sdata, sta, action, sta->sta.addr, sdata 726 net/mac80211/mesh_plink.c static bool llid_in_use(struct ieee80211_sub_if_data *sdata, sdata 729 net/mac80211/mesh_plink.c struct ieee80211_local *local = sdata->local; sdata 735 net/mac80211/mesh_plink.c if (sdata != sta->sdata) sdata 748 net/mac80211/mesh_plink.c static u16 mesh_get_new_llid(struct ieee80211_sub_if_data *sdata) sdata 754 net/mac80211/mesh_plink.c } while (llid_in_use(sdata, llid)); sdata 761 net/mac80211/mesh_plink.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 768 net/mac80211/mesh_plink.c sta->mesh->llid = mesh_get_new_llid(sdata); sdata 775 net/mac80211/mesh_plink.c mesh_plink_timer_set(sta, sdata->u.mesh.mshcfg.dot11MeshRetryTimeout); sdata 777 net/mac80211/mesh_plink.c mpl_dbg(sdata, sdata 782 net/mac80211/mesh_plink.c changed = ieee80211_mps_local_status_update(sdata); sdata 784 net/mac80211/mesh_plink.c mesh_plink_frame_tx(sdata, sta, WLAN_SP_MESH_PEERING_OPEN, sdata 802 net/mac80211/mesh_plink.c static void mesh_plink_close(struct ieee80211_sub_if_data *sdata, sdata 806 net/mac80211/mesh_plink.c struct mesh_config *mshcfg = &sdata->u.mesh.mshcfg; sdata 815 net/mac80211/mesh_plink.c static u32 mesh_plink_establish(struct ieee80211_sub_if_data *sdata, sdata 818 net/mac80211/mesh_plink.c struct mesh_config *mshcfg = &sdata->u.mesh.mshcfg; sdata 823 net/mac80211/mesh_plink.c changed |= mesh_plink_inc_estab_count(sdata); sdata 824 net/mac80211/mesh_plink.c changed |= mesh_set_ht_prot_mode(sdata); sdata 825 net/mac80211/mesh_plink.c changed |= mesh_set_short_slot_time(sdata); sdata 826 net/mac80211/mesh_plink.c mpl_dbg(sdata, "Mesh plink with %pM ESTABLISHED\n", sta->sta.addr); sdata 841 net/mac80211/mesh_plink.c static u32 mesh_plink_fsm(struct ieee80211_sub_if_data *sdata, sdata 844 net/mac80211/mesh_plink.c struct mesh_config *mshcfg = &sdata->u.mesh.mshcfg; sdata 849 net/mac80211/mesh_plink.c mpl_dbg(sdata, "peer %pM in state %s got event %s\n", sta->sta.addr, sdata 861 net/mac80211/mesh_plink.c sta->mesh->llid = mesh_get_new_llid(sdata); sdata 866 net/mac80211/mesh_plink.c changed |= ieee80211_mps_local_status_update(sdata); sdata 878 net/mac80211/mesh_plink.c mesh_plink_close(sdata, sta, event); sdata 899 net/mac80211/mesh_plink.c mesh_plink_close(sdata, sta, event); sdata 906 net/mac80211/mesh_plink.c changed |= mesh_plink_establish(sdata, sta); sdata 917 net/mac80211/mesh_plink.c mesh_plink_close(sdata, sta, event); sdata 921 net/mac80211/mesh_plink.c changed |= mesh_plink_establish(sdata, sta); sdata 932 net/mac80211/mesh_plink.c changed |= mesh_set_ht_prot_mode(sdata); sdata 933 net/mac80211/mesh_plink.c changed |= mesh_set_short_slot_time(sdata); sdata 934 net/mac80211/mesh_plink.c mesh_plink_close(sdata, sta, event); sdata 971 net/mac80211/mesh_plink.c mesh_plink_frame_tx(sdata, sta, action, sta->sta.addr, sdata 977 net/mac80211/mesh_plink.c mesh_plink_frame_tx(sdata, sta, sdata 1001 net/mac80211/mesh_plink.c mesh_plink_get_event(struct ieee80211_sub_if_data *sdata, sdata 1012 net/mac80211/mesh_plink.c mesh_matches_local(sdata, elems)); sdata 1022 net/mac80211/mesh_plink.c mpl_dbg(sdata, "Mesh plink: cls or cnf from unknown peer\n"); sdata 1026 net/mac80211/mesh_plink.c if (!mesh_plink_free_count(sdata)) { sdata 1027 net/mac80211/mesh_plink.c mpl_dbg(sdata, "Mesh plink error: no more free plinks\n"); sdata 1036 net/mac80211/mesh_plink.c mpl_dbg(sdata, "Mesh plink: Action frame from non-authed peer\n"); sdata 1047 net/mac80211/mesh_plink.c if (!mesh_plink_free_count(sdata) || sdata 1056 net/mac80211/mesh_plink.c if (!mesh_plink_free_count(sdata) || sdata 1083 net/mac80211/mesh_plink.c mpl_dbg(sdata, "Mesh plink: unknown frame subtype\n"); sdata 1092 net/mac80211/mesh_plink.c mesh_process_plink_frame(struct ieee80211_sub_if_data *sdata, sdata 1106 net/mac80211/mesh_plink.c mpl_dbg(sdata, sdata 1112 net/mac80211/mesh_plink.c sdata->u.mesh.security == IEEE80211_MESH_SEC_NONE) { sdata 1113 net/mac80211/mesh_plink.c mpl_dbg(sdata, sdata 1123 net/mac80211/mesh_plink.c mpl_dbg(sdata, sdata 1131 net/mac80211/mesh_plink.c mpl_dbg(sdata, "Mesh plink: missing necessary ie\n"); sdata 1145 net/mac80211/mesh_plink.c sta = sta_info_get(sdata, mgmt->sa); sdata 1148 net/mac80211/mesh_plink.c !rssi_threshold_check(sdata, sta)) { sdata 1149 net/mac80211/mesh_plink.c mpl_dbg(sdata, "Mesh plink: %pM does not meet rssi threshold\n", sdata 1155 net/mac80211/mesh_plink.c event = mesh_plink_get_event(sdata, sta, elems, ftype, llid, plid); sdata 1160 net/mac80211/mesh_plink.c sta = mesh_sta_info_get(sdata, mgmt->sa, elems, rx_status); sdata 1162 net/mac80211/mesh_plink.c mpl_dbg(sdata, "Mesh plink: failed to init peer!\n"); sdata 1167 net/mac80211/mesh_plink.c mesh_plink_frame_tx(sdata, NULL, WLAN_SP_MESH_PEERING_CLOSE, sdata 1184 net/mac80211/mesh_plink.c changed |= mesh_plink_fsm(sdata, sta, event); sdata 1190 net/mac80211/mesh_plink.c ieee80211_mbss_info_change_notify(sdata, changed); sdata 1193 net/mac80211/mesh_plink.c void mesh_rx_plink_frame(struct ieee80211_sub_if_data *sdata, sdata 1205 net/mac80211/mesh_plink.c if (sdata->u.mesh.user_mpm) sdata 1210 net/mac80211/mesh_plink.c mpl_dbg(sdata, sdata 1227 net/mac80211/mesh_plink.c mesh_process_plink_frame(sdata, mgmt, &elems, rx_status); sdata 18 net/mac80211/mesh_ps.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 19 net/mac80211/mesh_ps.c struct ieee80211_local *local = sdata->local; sdata 33 net/mac80211/mesh_ps.c sdata->vif.addr); sdata 40 net/mac80211/mesh_ps.c ieee80211_mps_set_frame_flags(sdata, sta, nullfunc); sdata 56 net/mac80211/mesh_ps.c mps_dbg(sta->sdata, "announcing peer-specific power mode to %pM\n", sdata 66 net/mac80211/mesh_ps.c ieee80211_tx_skb(sta->sdata, skb); sdata 77 net/mac80211/mesh_ps.c u32 ieee80211_mps_local_status_update(struct ieee80211_sub_if_data *sdata) sdata 79 net/mac80211/mesh_ps.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 88 net/mac80211/mesh_ps.c list_for_each_entry_rcu(sta, &sdata->local->sta_list, list) { sdata 89 net/mac80211/mesh_ps.c if (sdata != sta->sdata) sdata 118 net/mac80211/mesh_ps.c mps_dbg(sdata, "setting non-peer PM to active for peering\n"); sdata 121 net/mac80211/mesh_ps.c mps_dbg(sdata, "setting non-peer PM to deep sleep\n"); sdata 124 net/mac80211/mesh_ps.c mps_dbg(sdata, "setting non-peer PM to user value\n"); sdata 151 net/mac80211/mesh_ps.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 156 net/mac80211/mesh_ps.c mps_dbg(sdata, "local STA operates in mode %d with %pM\n", sdata 168 net/mac80211/mesh_ps.c return ieee80211_mps_local_status_update(sdata); sdata 183 net/mac80211/mesh_ps.c void ieee80211_mps_set_frame_flags(struct ieee80211_sub_if_data *sdata, sdata 200 net/mac80211/mesh_ps.c pm = sdata->u.mesh.nonpeer_pm; sdata 215 net/mac80211/mesh_ps.c sdata->u.mesh.ps_peers_deep_sleep > 0)) sdata 263 net/mac80211/mesh_ps.c atomic_inc(&sta->sdata->u.mesh.ps.num_sta_ps); sdata 264 net/mac80211/mesh_ps.c mps_dbg(sta->sdata, "start PS buffering frames towards %pM\n", sdata 299 net/mac80211/mesh_ps.c mps_dbg(sta->sdata, "STA %pM enters mode %d\n", sdata 320 net/mac80211/mesh_ps.c mps_dbg(sta->sdata, "STA %pM sets non-peer mode to %d\n", sdata 362 net/mac80211/mesh_ps.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 395 net/mac80211/mesh_ps.c mps_dbg(sdata, "sending MPSP trigger%s%s to %pM\n", sdata 398 net/mac80211/mesh_ps.c ieee80211_tx_skb(sdata, skb); sdata 411 net/mac80211/mesh_ps.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 423 net/mac80211/mesh_ps.c mps_dbg(sdata, "appending QoS Null in MPSP towards %pM\n", sdata 431 net/mac80211/mesh_ps.c ieee80211_set_qos_hdr(sdata, new_skb); sdata 434 net/mac80211/mesh_ps.c info->control.vif = &sdata->vif; sdata 448 net/mac80211/mesh_ps.c struct ieee80211_local *local = sta->sdata->local; sdata 487 net/mac80211/mesh_ps.c mps_dbg(sta->sdata, "sending %d frames to PS STA %pM\n", sdata 582 net/mac80211/mesh_ps.c mps_dbg(sta->sdata, "%pM indicates buffered frames\n", sdata 46 net/mac80211/mesh_sync.c void mesh_sync_adjust_tsf(struct ieee80211_sub_if_data *sdata) sdata 48 net/mac80211/mesh_sync.c struct ieee80211_local *local = sdata->local; sdata 49 net/mac80211/mesh_sync.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 51 net/mac80211/mesh_sync.c u64 beacon_int_fraction = sdata->vif.bss_conf.beacon_int * 1024 / 2500; sdata 57 net/mac80211/mesh_sync.c msync_dbg(sdata, "TSF : max clockdrift=%lld; adjusting\n", sdata 62 net/mac80211/mesh_sync.c msync_dbg(sdata, "TSF : max clockdrift=%lld; adjusting by %llu\n", sdata 71 net/mac80211/mesh_sync.c drv_offset_tsf(local, sdata, tsfdelta); sdata 73 net/mac80211/mesh_sync.c tsf = drv_get_tsf(local, sdata); sdata 75 net/mac80211/mesh_sync.c drv_set_tsf(local, sdata, tsf + tsfdelta); sdata 79 net/mac80211/mesh_sync.c static void mesh_sync_offset_rx_bcn_presp(struct ieee80211_sub_if_data *sdata, sdata 85 net/mac80211/mesh_sync.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 86 net/mac80211/mesh_sync.c struct ieee80211_local *local = sdata->local; sdata 109 net/mac80211/mesh_sync.c t_r = drv_get_tsf(local, sdata); sdata 112 net/mac80211/mesh_sync.c sta = sta_info_get(sdata, mgmt->sa); sdata 123 net/mac80211/mesh_sync.c msync_dbg(sdata, "STA %pM : is adjusting TBTT\n", sdata 134 net/mac80211/mesh_sync.c msync_dbg(sdata, sdata 142 net/mac80211/mesh_sync.c msync_dbg(sdata, sdata 157 net/mac80211/mesh_sync.c msync_dbg(sdata, sdata 167 net/mac80211/mesh_sync.c static void mesh_sync_offset_adjust_tsf(struct ieee80211_sub_if_data *sdata, sdata 170 net/mac80211/mesh_sync.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 183 net/mac80211/mesh_sync.c msync_dbg(sdata, sdata 188 net/mac80211/mesh_sync.c msync_dbg(sdata, sdata 100 net/mac80211/mlme.c static void run_again(struct ieee80211_sub_if_data *sdata, sdata 103 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 105 net/mac80211/mlme.c if (!timer_pending(&sdata->u.mgd.timer) || sdata 106 net/mac80211/mlme.c time_before(timeout, sdata->u.mgd.timer.expires)) sdata 107 net/mac80211/mlme.c mod_timer(&sdata->u.mgd.timer, timeout); sdata 110 net/mac80211/mlme.c void ieee80211_sta_reset_beacon_monitor(struct ieee80211_sub_if_data *sdata) sdata 112 net/mac80211/mlme.c if (sdata->vif.driver_flags & IEEE80211_VIF_BEACON_FILTER) sdata 115 net/mac80211/mlme.c if (ieee80211_hw_check(&sdata->local->hw, CONNECTION_MONITOR)) sdata 118 net/mac80211/mlme.c mod_timer(&sdata->u.mgd.bcn_mon_timer, sdata 119 net/mac80211/mlme.c round_jiffies_up(jiffies + sdata->u.mgd.beacon_timeout)); sdata 122 net/mac80211/mlme.c void ieee80211_sta_reset_conn_monitor(struct ieee80211_sub_if_data *sdata) sdata 124 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 132 net/mac80211/mlme.c if (ieee80211_hw_check(&sdata->local->hw, CONNECTION_MONITOR)) sdata 145 net/mac80211/mlme.c ieee80211_determine_chantype(struct ieee80211_sub_if_data *sdata, sdata 153 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 159 net/mac80211/mlme.c ieee80211_apply_htcap_overrides(sdata, &sta_ht_cap); sdata 184 net/mac80211/mlme.c sdata_info(sdata, sdata 221 net/mac80211/mlme.c if (!ieee80211_chandef_vht_oper(&sdata->local->hw, sdata 225 net/mac80211/mlme.c sdata_info(sdata, sdata 230 net/mac80211/mlme.c } else if (!ieee80211_chandef_vht_oper(&sdata->local->hw, vht_oper, sdata 233 net/mac80211/mlme.c sdata_info(sdata, sdata 241 net/mac80211/mlme.c sdata_info(sdata, sdata 254 net/mac80211/mlme.c sdata_info(sdata, sdata 284 net/mac80211/mlme.c cfg80211_chandef_identical(chandef, &sdata->vif.bss_conf.chandef)) sdata 299 net/mac80211/mlme.c while (!cfg80211_chandef_usable(sdata->local->hw.wiphy, chandef, sdata 312 net/mac80211/mlme.c sdata_info(sdata, sdata 319 net/mac80211/mlme.c static int ieee80211_config_bw(struct ieee80211_sub_if_data *sdata, sdata 327 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 328 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 329 net/mac80211/mlme.c struct ieee80211_channel *chan = sdata->vif.bss_conf.chandef.chan; sdata 359 net/mac80211/mlme.c if (sdata->vif.bss_conf.ht_operation_mode != ht_opmode) { sdata 361 net/mac80211/mlme.c sdata->vif.bss_conf.ht_operation_mode = ht_opmode; sdata 365 net/mac80211/mlme.c flags = ieee80211_determine_chantype(sdata, sband, chan, sdata 386 net/mac80211/mlme.c if (cfg80211_chandef_identical(&chandef, &sdata->vif.bss_conf.chandef)) sdata 389 net/mac80211/mlme.c sdata_info(sdata, sdata 400 net/mac80211/mlme.c sdata_info(sdata, sdata 434 net/mac80211/mlme.c ret = ieee80211_vif_change_bandwidth(sdata, &chandef, changed); sdata 436 net/mac80211/mlme.c sdata_info(sdata, sdata 453 net/mac80211/mlme.c static void ieee80211_add_ht_ie(struct ieee80211_sub_if_data *sdata, sdata 467 net/mac80211/mlme.c ieee80211_apply_htcap_overrides(sdata, &ht_cap); sdata 492 net/mac80211/mlme.c if (sdata->u.mgd.flags & IEEE80211_STA_DISABLE_40MHZ) { sdata 527 net/mac80211/mlme.c static void ieee80211_add_vht_ie(struct ieee80211_sub_if_data *sdata, sdata 532 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 541 net/mac80211/mlme.c ieee80211_apply_vhtcap_overrides(sdata, &vht_cap); sdata 546 net/mac80211/mlme.c if (sdata->u.mgd.flags & IEEE80211_STA_DISABLE_80P80MHZ) { sdata 555 net/mac80211/mlme.c if (sdata->u.mgd.flags & IEEE80211_STA_DISABLE_160MHZ) { sdata 592 net/mac80211/mlme.c sdata->vif.mu_mimo_owner = true; sdata 613 net/mac80211/mlme.c static void ieee80211_add_he_ie(struct ieee80211_sub_if_data *sdata, sdata 638 net/mac80211/mlme.c static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata) sdata 640 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 641 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 654 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 657 net/mac80211/mlme.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 665 net/mac80211/mlme.c shift = ieee80211_vif_get_shift(&sdata->vif); sdata 730 net/mac80211/mlme.c memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); sdata 876 net/mac80211/mlme.c ieee80211_add_ht_ie(sdata, skb, assoc_data->ap_ht_param, sdata 877 net/mac80211/mlme.c sband, chan, sdata->smps_mode); sdata 930 net/mac80211/mlme.c ieee80211_add_vht_ie(sdata, skb, sband, sdata 943 net/mac80211/mlme.c ieee80211_add_he_ie(sdata, skb, sband); sdata 983 net/mac80211/mlme.c drv_mgd_prepare_tx(local, sdata, 0); sdata 989 net/mac80211/mlme.c ieee80211_tx_skb(sdata, skb); sdata 993 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata) sdata 998 net/mac80211/mlme.c skb = ieee80211_pspoll_get(&local->hw, &sdata->vif); sdata 1006 net/mac80211/mlme.c ieee80211_tx_skb(sdata, skb); sdata 1010 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata, sdata 1015 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 1018 net/mac80211/mlme.c if (sdata->vif.type == NL80211_IFTYPE_STATION && sdata 1022 net/mac80211/mlme.c skb = ieee80211_nullfunc_get(&local->hw, &sdata->vif, sdata 1040 net/mac80211/mlme.c ieee80211_tx_skb(sdata, skb); sdata 1044 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata) sdata 1050 net/mac80211/mlme.c if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_STATION)) sdata 1054 net/mac80211/mlme.c if (!(sdata->u.mgd.flags & IEEE80211_STA_DISABLE_HE)) sdata 1067 net/mac80211/mlme.c memcpy(nullfunc->addr1, sdata->u.mgd.bssid, ETH_ALEN); sdata 1068 net/mac80211/mlme.c memcpy(nullfunc->addr2, sdata->vif.addr, ETH_ALEN); sdata 1069 net/mac80211/mlme.c memcpy(nullfunc->addr3, sdata->u.mgd.bssid, ETH_ALEN); sdata 1070 net/mac80211/mlme.c memcpy(nullfunc->addr4, sdata->vif.addr, ETH_ALEN); sdata 1073 net/mac80211/mlme.c ieee80211_tx_skb(sdata, skb); sdata 1079 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = sdata 1081 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 1082 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 1085 net/mac80211/mlme.c if (!ieee80211_sdata_running(sdata)) sdata 1088 net/mac80211/mlme.c sdata_lock(sdata); sdata 1095 net/mac80211/mlme.c if (!sdata->vif.csa_active) sdata 1105 net/mac80211/mlme.c if (sdata->reserved_chanctx) { sdata 1115 net/mac80211/mlme.c if (sdata->reserved_ready) sdata 1118 net/mac80211/mlme.c if (sdata->vif.bss_conf.chandef.width != sdata 1119 net/mac80211/mlme.c sdata->csa_chandef.width) { sdata 1130 net/mac80211/mlme.c switch (sdata->csa_chandef.width) { sdata 1148 net/mac80211/mlme.c mgd_sta = sta_info_get(sdata, ifmgd->bssid); sdata 1150 net/mac80211/mlme.c local->hw.wiphy->bands[sdata->csa_chandef.chan->band]; sdata 1153 net/mac80211/mlme.c if (sdata->vif.bss_conf.chandef.width > sdata 1154 net/mac80211/mlme.c sdata->csa_chandef.width) { sdata 1160 net/mac80211/mlme.c ret = ieee80211_vif_use_reserved_context(sdata); sdata 1162 net/mac80211/mlme.c sdata_info(sdata, sdata 1165 net/mac80211/mlme.c ieee80211_queue_work(&sdata->local->hw, sdata 1170 net/mac80211/mlme.c if (sdata->vif.bss_conf.chandef.width < sdata 1171 net/mac80211/mlme.c sdata->csa_chandef.width) { sdata 1180 net/mac80211/mlme.c if (!cfg80211_chandef_identical(&sdata->vif.bss_conf.chandef, sdata 1181 net/mac80211/mlme.c &sdata->csa_chandef)) { sdata 1182 net/mac80211/mlme.c sdata_info(sdata, sdata 1184 net/mac80211/mlme.c ieee80211_queue_work(&sdata->local->hw, sdata 1191 net/mac80211/mlme.c ieee80211_sta_reset_beacon_monitor(sdata); sdata 1192 net/mac80211/mlme.c ieee80211_sta_reset_conn_monitor(sdata); sdata 1197 net/mac80211/mlme.c sdata_unlock(sdata); sdata 1200 net/mac80211/mlme.c static void ieee80211_chswitch_post_beacon(struct ieee80211_sub_if_data *sdata) sdata 1202 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 1203 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 1206 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 1208 net/mac80211/mlme.c WARN_ON(!sdata->vif.csa_active); sdata 1210 net/mac80211/mlme.c if (sdata->csa_block_tx) { sdata 1211 net/mac80211/mlme.c ieee80211_wake_vif_queues(local, sdata, sdata 1213 net/mac80211/mlme.c sdata->csa_block_tx = false; sdata 1216 net/mac80211/mlme.c sdata->vif.csa_active = false; sdata 1219 net/mac80211/mlme.c ret = drv_post_channel_switch(sdata); sdata 1221 net/mac80211/mlme.c sdata_info(sdata, sdata 1228 net/mac80211/mlme.c cfg80211_ch_switch_notify(sdata->dev, &sdata->reserved_chandef); sdata 1233 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 1234 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 1236 net/mac80211/mlme.c trace_api_chswitch_done(sdata, success); sdata 1238 net/mac80211/mlme.c sdata_info(sdata, sdata 1240 net/mac80211/mlme.c ieee80211_queue_work(&sdata->local->hw, sdata 1243 net/mac80211/mlme.c ieee80211_queue_work(&sdata->local->hw, &ifmgd->chswitch_work); sdata 1250 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = sdata 1251 net/mac80211/mlme.c from_timer(sdata, t, u.mgd.chswitch_timer); sdata 1253 net/mac80211/mlme.c ieee80211_queue_work(&sdata->local->hw, &sdata->u.mgd.chswitch_work); sdata 1257 net/mac80211/mlme.c ieee80211_sta_abort_chanswitch(struct ieee80211_sub_if_data *sdata) sdata 1259 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 1267 net/mac80211/mlme.c ieee80211_vif_unreserve_chanctx(sdata); sdata 1270 net/mac80211/mlme.c if (sdata->csa_block_tx) sdata 1271 net/mac80211/mlme.c ieee80211_wake_vif_queues(local, sdata, sdata 1274 net/mac80211/mlme.c sdata->csa_block_tx = false; sdata 1275 net/mac80211/mlme.c sdata->vif.csa_active = false; sdata 1279 net/mac80211/mlme.c drv_abort_channel_switch(sdata); sdata 1283 net/mac80211/mlme.c ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata, sdata 1288 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 1289 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 1298 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 1307 net/mac80211/mlme.c res = ieee80211_parse_ch_switch_ie(sdata, elems, current_band, sdata 1326 net/mac80211/mlme.c if (beacon && sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) { sdata 1328 net/mac80211/mlme.c ieee80211_sta_abort_chanswitch(sdata); sdata 1330 net/mac80211/mlme.c drv_channel_switch_rx_beacon(sdata, &ch_switch); sdata 1332 net/mac80211/mlme.c } else if (sdata->vif.csa_active || res) { sdata 1339 net/mac80211/mlme.c sdata_info(sdata, sdata 1351 net/mac80211/mlme.c &sdata->vif.bss_conf.chandef) && sdata 1355 net/mac80211/mlme.c sdata_info(sdata, sdata 1368 net/mac80211/mlme.c ieee80211_teardown_tdls_peers(sdata); sdata 1372 net/mac80211/mlme.c conf = rcu_dereference_protected(sdata->vif.chanctx_conf, sdata 1375 net/mac80211/mlme.c sdata_info(sdata, sdata 1384 net/mac80211/mlme.c sdata_info(sdata, sdata 1389 net/mac80211/mlme.c if (drv_pre_channel_switch(sdata, &ch_switch)) { sdata 1390 net/mac80211/mlme.c sdata_info(sdata, sdata 1395 net/mac80211/mlme.c res = ieee80211_vif_reserve_chanctx(sdata, &csa_ie.chandef, sdata 1398 net/mac80211/mlme.c sdata_info(sdata, sdata 1405 net/mac80211/mlme.c sdata->vif.csa_active = true; sdata 1406 net/mac80211/mlme.c sdata->csa_chandef = csa_ie.chandef; sdata 1407 net/mac80211/mlme.c sdata->csa_block_tx = csa_ie.mode; sdata 1410 net/mac80211/mlme.c if (sdata->csa_block_tx) sdata 1411 net/mac80211/mlme.c ieee80211_stop_vif_queues(local, sdata, sdata 1415 net/mac80211/mlme.c cfg80211_ch_switch_started_notify(sdata->dev, &csa_ie.chandef, sdata 1420 net/mac80211/mlme.c drv_channel_switch(local, sdata, &ch_switch); sdata 1440 net/mac80211/mlme.c sdata->vif.csa_active = true; sdata 1441 net/mac80211/mlme.c sdata->csa_block_tx = csa_ie.mode; sdata 1449 net/mac80211/mlme.c ieee80211_find_80211h_pwr_constr(struct ieee80211_sub_if_data *sdata, sdata 1510 net/mac80211/mlme.c static void ieee80211_find_cisco_dtpc(struct ieee80211_sub_if_data *sdata, sdata 1524 net/mac80211/mlme.c static u32 ieee80211_handle_pwr_constr(struct ieee80211_sub_if_data *sdata, sdata 1541 net/mac80211/mlme.c sdata, channel, country_ie, country_ie_len, sdata 1549 net/mac80211/mlme.c sdata, channel, cisco_dtpc_ie, &pwr_level_cisco); sdata 1563 net/mac80211/mlme.c if (sdata->ap_power_level == new_ap_level) sdata 1566 net/mac80211/mlme.c sdata_dbg(sdata, sdata 1569 net/mac80211/mlme.c sdata->u.mgd.bssid); sdata 1573 net/mac80211/mlme.c if (sdata->ap_power_level == new_ap_level) sdata 1576 net/mac80211/mlme.c sdata_dbg(sdata, sdata 1578 net/mac80211/mlme.c pwr_level_cisco, sdata->u.mgd.bssid); sdata 1581 net/mac80211/mlme.c sdata->ap_power_level = new_ap_level; sdata 1582 net/mac80211/mlme.c if (__ieee80211_recalc_txpower(sdata)) sdata 1589 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata) sdata 1606 net/mac80211/mlme.c ieee80211_send_nullfunc(local, sdata, true); sdata 1631 net/mac80211/mlme.c static bool ieee80211_powersave_allowed(struct ieee80211_sub_if_data *sdata) sdata 1633 net/mac80211/mlme.c struct ieee80211_if_managed *mgd = &sdata->u.mgd; sdata 1653 net/mac80211/mlme.c sta = sta_info_get(sdata, mgd->bssid); sdata 1664 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata, *found = NULL; sdata 1673 net/mac80211/mlme.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 1674 net/mac80211/mlme.c if (!ieee80211_sdata_running(sdata)) sdata 1676 net/mac80211/mlme.c if (sdata->vif.type == NL80211_IFTYPE_AP) { sdata 1684 net/mac80211/mlme.c if (sdata->vif.type != NL80211_IFTYPE_STATION) sdata 1686 net/mac80211/mlme.c found = sdata; sdata 1711 net/mac80211/mlme.c void ieee80211_recalc_ps_vif(struct ieee80211_sub_if_data *sdata) sdata 1713 net/mac80211/mlme.c bool ps_allowed = ieee80211_powersave_allowed(sdata); sdata 1715 net/mac80211/mlme.c if (sdata->vif.bss_conf.ps != ps_allowed) { sdata 1716 net/mac80211/mlme.c sdata->vif.bss_conf.ps = ps_allowed; sdata 1717 net/mac80211/mlme.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_PS); sdata 1743 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = local->ps_sdata; sdata 1749 net/mac80211/mlme.c if (!sdata) sdata 1752 net/mac80211/mlme.c ifmgd = &sdata->u.mgd; sdata 1792 net/mac80211/mlme.c ieee80211_send_nullfunc(local, sdata, true); sdata 1794 net/mac80211/mlme.c ieee80211_flush_queues(local, sdata, false); sdata 1817 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = sdata 1820 net/mac80211/mlme.c struct cfg80211_chan_def chandef = sdata->vif.bss_conf.chandef; sdata 1822 net/mac80211/mlme.c mutex_lock(&sdata->local->mtx); sdata 1823 net/mac80211/mlme.c if (sdata->wdev.cac_started) { sdata 1824 net/mac80211/mlme.c ieee80211_vif_release_channel(sdata); sdata 1825 net/mac80211/mlme.c cfg80211_cac_event(sdata->dev, &chandef, sdata 1829 net/mac80211/mlme.c mutex_unlock(&sdata->local->mtx); sdata 1833 net/mac80211/mlme.c __ieee80211_sta_handle_tspec_ac_params(struct ieee80211_sub_if_data *sdata) sdata 1835 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 1836 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 1862 net/mac80211/mlme.c if (drv_conf_tx(local, sdata, ac, &sdata->tx_conf[ac])) sdata 1863 net/mac80211/mlme.c sdata_err(sdata, sdata 1880 net/mac80211/mlme.c if (!(sdata->wmm_acm & BIT(7 - 2 * non_acm_ac))) sdata 1891 net/mac80211/mlme.c if (drv_conf_tx(local, sdata, ac, sdata 1892 net/mac80211/mlme.c &sdata->tx_conf[non_acm_ac])) sdata 1893 net/mac80211/mlme.c sdata_err(sdata, sdata 1910 net/mac80211/mlme.c void ieee80211_sta_handle_tspec_ac_params(struct ieee80211_sub_if_data *sdata) sdata 1912 net/mac80211/mlme.c if (__ieee80211_sta_handle_tspec_ac_params(sdata)) sdata 1913 net/mac80211/mlme.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_QOS); sdata 1918 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata; sdata 1920 net/mac80211/mlme.c sdata = container_of(work, struct ieee80211_sub_if_data, sdata 1922 net/mac80211/mlme.c ieee80211_sta_handle_tspec_ac_params(sdata); sdata 1928 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata, sdata 1933 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 1971 net/mac80211/mlme.c sdata->wmm_acm = 0; sdata 1981 net/mac80211/mlme.c sdata->wmm_acm |= BIT(1) | BIT(2); /* BK/- */ sdata 1991 net/mac80211/mlme.c sdata->wmm_acm |= BIT(4) | BIT(5); /* CL/VI */ sdata 2001 net/mac80211/mlme.c sdata->wmm_acm |= BIT(6) | BIT(7); /* VO/NC */ sdata 2012 net/mac80211/mlme.c sdata->wmm_acm |= BIT(0) | BIT(3); /* BE/EE */ sdata 2024 net/mac80211/mlme.c sdata_info(sdata, sdata 2037 net/mac80211/mlme.c sdata_info(sdata, sdata 2042 net/mac80211/mlme.c ieee80211_regulatory_limit_wmm_params(sdata, ¶ms[ac], ac); sdata 2048 net/mac80211/mlme.c sdata_info(sdata, sdata 2056 net/mac80211/mlme.c mlme_dbg(sdata, sdata 2062 net/mac80211/mlme.c sdata->tx_conf[ac] = params[ac]; sdata 2064 net/mac80211/mlme.c drv_conf_tx(local, sdata, ac, ¶ms[ac])) sdata 2065 net/mac80211/mlme.c sdata_err(sdata, sdata 2071 net/mac80211/mlme.c sdata->vif.bss_conf.qos = true; sdata 2075 net/mac80211/mlme.c static void __ieee80211_stop_poll(struct ieee80211_sub_if_data *sdata) sdata 2077 net/mac80211/mlme.c lockdep_assert_held(&sdata->local->mtx); sdata 2079 net/mac80211/mlme.c sdata->u.mgd.flags &= ~IEEE80211_STA_CONNECTION_POLL; sdata 2080 net/mac80211/mlme.c ieee80211_run_deferred_scan(sdata->local); sdata 2083 net/mac80211/mlme.c static void ieee80211_stop_poll(struct ieee80211_sub_if_data *sdata) sdata 2085 net/mac80211/mlme.c mutex_lock(&sdata->local->mtx); sdata 2086 net/mac80211/mlme.c __ieee80211_stop_poll(sdata); sdata 2087 net/mac80211/mlme.c mutex_unlock(&sdata->local->mtx); sdata 2090 net/mac80211/mlme.c static u32 ieee80211_handle_bss_capability(struct ieee80211_sub_if_data *sdata, sdata 2093 net/mac80211/mlme.c struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf; sdata 2100 net/mac80211/mlme.c sband = ieee80211_get_sband(sdata); sdata 2134 net/mac80211/mlme.c static void ieee80211_set_associated(struct ieee80211_sub_if_data *sdata, sdata 2139 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 2140 net/mac80211/mlme.c struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf; sdata 2143 net/mac80211/mlme.c bss_info_changed |= ieee80211_handle_bss_capability(sdata, sdata 2146 net/mac80211/mlme.c sdata->u.mgd.beacon_timeout = usecs_to_jiffies(ieee80211_tu_to_usec( sdata 2149 net/mac80211/mlme.c sdata->u.mgd.associated = cbss; sdata 2150 net/mac80211/mlme.c memcpy(sdata->u.mgd.bssid, cbss->bssid, ETH_ALEN); sdata 2152 net/mac80211/mlme.c ieee80211_check_rate_mask(sdata); sdata 2154 net/mac80211/mlme.c sdata->u.mgd.flags |= IEEE80211_STA_RESET_SIGNAL_AVE; sdata 2156 net/mac80211/mlme.c if (sdata->vif.p2p || sdata 2157 net/mac80211/mlme.c sdata->vif.driver_flags & IEEE80211_VIF_GET_NOA_UPDATE) { sdata 2171 net/mac80211/mlme.c sdata->u.mgd.p2p_noa_index = sdata 2180 net/mac80211/mlme.c ieee80211_stop_poll(sdata); sdata 2184 net/mac80211/mlme.c if (sdata->u.mgd.have_beacon) { sdata 2191 net/mac80211/mlme.c bss_conf->dtim_period = sdata->u.mgd.dtim_period ?: 1; sdata 2202 net/mac80211/mlme.c if (sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_CQM_RSSI && sdata 2210 net/mac80211/mlme.c ieee80211_bss_info_change_notify(sdata, bss_info_changed); sdata 2216 net/mac80211/mlme.c ieee80211_recalc_smps(sdata); sdata 2217 net/mac80211/mlme.c ieee80211_recalc_ps_vif(sdata); sdata 2219 net/mac80211/mlme.c netif_carrier_on(sdata->dev); sdata 2222 net/mac80211/mlme.c static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata, sdata 2226 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 2227 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 2230 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 2238 net/mac80211/mlme.c ieee80211_stop_poll(sdata); sdata 2241 net/mac80211/mlme.c netif_carrier_off(sdata->dev); sdata 2255 net/mac80211/mlme.c ieee80211_recalc_ps_vif(sdata); sdata 2267 net/mac80211/mlme.c ieee80211_flush_queues(local, sdata, true); sdata 2279 net/mac80211/mlme.c drv_mgd_prepare_tx(sdata->local, sdata, 0); sdata 2281 net/mac80211/mlme.c ieee80211_send_deauth_disassoc(sdata, ifmgd->bssid, sdata 2288 net/mac80211/mlme.c ieee80211_flush_queues(local, sdata, false); sdata 2294 net/mac80211/mlme.c sta_info_flush(sdata); sdata 2297 net/mac80211/mlme.c changed |= ieee80211_reset_erp_info(sdata); sdata 2301 net/mac80211/mlme.c sdata->vif.bss_conf.assoc = false; sdata 2304 net/mac80211/mlme.c memset(&sdata->vif.bss_conf.p2p_noa_attr, 0, sdata 2305 net/mac80211/mlme.c sizeof(sdata->vif.bss_conf.p2p_noa_attr)); sdata 2314 net/mac80211/mlme.c memset(sdata->vif.bss_conf.mu_group.membership, 0, sdata 2315 net/mac80211/mlme.c sizeof(sdata->vif.bss_conf.mu_group.membership)); sdata 2316 net/mac80211/mlme.c memset(sdata->vif.bss_conf.mu_group.position, 0, sdata 2317 net/mac80211/mlme.c sizeof(sdata->vif.bss_conf.mu_group.position)); sdata 2319 net/mac80211/mlme.c sdata->vif.mu_mimo_owner = false; sdata 2321 net/mac80211/mlme.c sdata->ap_power_level = IEEE80211_UNSET_POWER_LEVEL; sdata 2327 net/mac80211/mlme.c if (sdata->vif.bss_conf.arp_addr_cnt) sdata 2330 net/mac80211/mlme.c sdata->vif.bss_conf.qos = false; sdata 2335 net/mac80211/mlme.c ieee80211_bss_info_change_notify(sdata, changed); sdata 2338 net/mac80211/mlme.c ieee80211_set_wmm_default(sdata, false, false); sdata 2340 net/mac80211/mlme.c del_timer_sync(&sdata->u.mgd.conn_mon_timer); sdata 2341 net/mac80211/mlme.c del_timer_sync(&sdata->u.mgd.bcn_mon_timer); sdata 2342 net/mac80211/mlme.c del_timer_sync(&sdata->u.mgd.timer); sdata 2343 net/mac80211/mlme.c del_timer_sync(&sdata->u.mgd.chswitch_timer); sdata 2345 net/mac80211/mlme.c sdata->vif.bss_conf.dtim_period = 0; sdata 2346 net/mac80211/mlme.c sdata->vif.bss_conf.beacon_rate = NULL; sdata 2352 net/mac80211/mlme.c ieee80211_vif_release_channel(sdata); sdata 2354 net/mac80211/mlme.c sdata->vif.csa_active = false; sdata 2357 net/mac80211/mlme.c if (sdata->csa_block_tx) { sdata 2358 net/mac80211/mlme.c ieee80211_wake_vif_queues(local, sdata, sdata 2360 net/mac80211/mlme.c sdata->csa_block_tx = false; sdata 2368 net/mac80211/mlme.c sdata->encrypt_headroom = IEEE80211_ENCRYPT_HEADROOM; sdata 2371 net/mac80211/mlme.c void ieee80211_sta_rx_notify(struct ieee80211_sub_if_data *sdata, sdata 2385 net/mac80211/mlme.c ieee80211_sta_reset_conn_monitor(sdata); sdata 2388 net/mac80211/mlme.c static void ieee80211_reset_ap_probe(struct ieee80211_sub_if_data *sdata) sdata 2390 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 2391 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 2397 net/mac80211/mlme.c __ieee80211_stop_poll(sdata); sdata 2403 net/mac80211/mlme.c if (ieee80211_hw_check(&sdata->local->hw, CONNECTION_MONITOR)) sdata 2411 net/mac80211/mlme.c ieee80211_sta_reset_beacon_monitor(sdata); sdata 2420 net/mac80211/mlme.c static void ieee80211_sta_tx_wmm_ac_notify(struct ieee80211_sub_if_data *sdata, sdata 2424 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 2455 net/mac80211/mlme.c void ieee80211_sta_tx_notify(struct ieee80211_sub_if_data *sdata, sdata 2458 net/mac80211/mlme.c ieee80211_sta_tx_wmm_ac_notify(sdata, hdr, tx_time); sdata 2464 net/mac80211/mlme.c sdata->u.mgd.probe_send_count > 0) { sdata 2466 net/mac80211/mlme.c ieee80211_sta_reset_conn_monitor(sdata); sdata 2468 net/mac80211/mlme.c sdata->u.mgd.nullfunc_failed = true; sdata 2469 net/mac80211/mlme.c ieee80211_queue_work(&sdata->local->hw, &sdata->work); sdata 2474 net/mac80211/mlme.c ieee80211_sta_reset_conn_monitor(sdata); sdata 2477 net/mac80211/mlme.c static void ieee80211_mlme_send_probe_req(struct ieee80211_sub_if_data *sdata, sdata 2484 net/mac80211/mlme.c skb = ieee80211_build_probe_req(sdata, src, dst, (u32)-1, channel, sdata 2488 net/mac80211/mlme.c ieee80211_tx_skb(sdata, skb); sdata 2491 net/mac80211/mlme.c static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata) sdata 2493 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 2517 net/mac80211/mlme.c mutex_lock(&sdata->local->sta_mtx); sdata 2518 net/mac80211/mlme.c sta = sta_info_get(sdata, dst); sdata 2521 net/mac80211/mlme.c mutex_unlock(&sdata->local->sta_mtx); sdata 2524 net/mac80211/mlme.c if (ieee80211_hw_check(&sdata->local->hw, REPORTS_TX_ACK_STATUS)) { sdata 2529 net/mac80211/mlme.c ieee80211_send_nullfunc(sdata->local, sdata, false); sdata 2540 net/mac80211/mlme.c ieee80211_mlme_send_probe_req(sdata, sdata->vif.addr, dst, sdata 2547 net/mac80211/mlme.c run_again(sdata, ifmgd->probe_timeout); sdata 2550 net/mac80211/mlme.c static void ieee80211_mgd_probe_ap(struct ieee80211_sub_if_data *sdata, sdata 2553 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 2556 net/mac80211/mlme.c if (!ieee80211_sdata_running(sdata)) sdata 2559 net/mac80211/mlme.c sdata_lock(sdata); sdata 2564 net/mac80211/mlme.c mutex_lock(&sdata->local->mtx); sdata 2566 net/mac80211/mlme.c if (sdata->local->tmp_channel || sdata->local->scanning) { sdata 2567 net/mac80211/mlme.c mutex_unlock(&sdata->local->mtx); sdata 2572 net/mac80211/mlme.c mlme_dbg_ratelimited(sdata, sdata 2576 net/mac80211/mlme.c ieee80211_cqm_beacon_loss_notify(&sdata->vif, GFP_KERNEL); sdata 2595 net/mac80211/mlme.c mutex_unlock(&sdata->local->mtx); sdata 2600 net/mac80211/mlme.c mutex_lock(&sdata->local->iflist_mtx); sdata 2601 net/mac80211/mlme.c ieee80211_recalc_ps(sdata->local); sdata 2602 net/mac80211/mlme.c mutex_unlock(&sdata->local->iflist_mtx); sdata 2605 net/mac80211/mlme.c ieee80211_mgd_probe_ap_send(sdata); sdata 2607 net/mac80211/mlme.c sdata_unlock(sdata); sdata 2613 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 2614 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 2620 net/mac80211/mlme.c if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_STATION)) sdata 2623 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 2642 net/mac80211/mlme.c skb = ieee80211_build_probe_req(sdata, sdata->vif.addr, cbss->bssid, sdata 2652 net/mac80211/mlme.c static void ieee80211_report_disconnect(struct ieee80211_sub_if_data *sdata, sdata 2663 net/mac80211/mlme.c cfg80211_tx_mlme_mgmt(sdata->dev, buf, len); sdata 2665 net/mac80211/mlme.c cfg80211_rx_mlme_mgmt(sdata->dev, buf, len); sdata 2667 net/mac80211/mlme.c drv_event_callback(sdata->local, sdata, &event); sdata 2670 net/mac80211/mlme.c static void __ieee80211_disconnect(struct ieee80211_sub_if_data *sdata) sdata 2672 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 2673 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 2677 net/mac80211/mlme.c sdata_lock(sdata); sdata 2679 net/mac80211/mlme.c sdata_unlock(sdata); sdata 2683 net/mac80211/mlme.c tx = !sdata->csa_block_tx; sdata 2690 net/mac80211/mlme.c ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH, sdata 2694 net/mac80211/mlme.c sdata->vif.csa_active = false; sdata 2696 net/mac80211/mlme.c if (sdata->csa_block_tx) { sdata 2697 net/mac80211/mlme.c ieee80211_wake_vif_queues(local, sdata, sdata 2699 net/mac80211/mlme.c sdata->csa_block_tx = false; sdata 2703 net/mac80211/mlme.c ieee80211_report_disconnect(sdata, frame_buf, sizeof(frame_buf), tx, sdata 2706 net/mac80211/mlme.c sdata_unlock(sdata); sdata 2711 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = sdata 2714 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 2720 net/mac80211/mlme.c sdata_info(sdata, "Connection to AP %pM lost\n", sdata 2722 net/mac80211/mlme.c __ieee80211_disconnect(sdata); sdata 2724 net/mac80211/mlme.c ieee80211_mgd_probe_ap(sdata, true); sdata 2730 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = sdata 2734 net/mac80211/mlme.c __ieee80211_disconnect(sdata); sdata 2739 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 2740 net/mac80211/mlme.c struct ieee80211_hw *hw = &sdata->local->hw; sdata 2742 net/mac80211/mlme.c trace_api_beacon_loss(sdata); sdata 2744 net/mac80211/mlme.c sdata->u.mgd.connection_loss = false; sdata 2745 net/mac80211/mlme.c ieee80211_queue_work(hw, &sdata->u.mgd.beacon_connection_loss_work); sdata 2751 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 2752 net/mac80211/mlme.c struct ieee80211_hw *hw = &sdata->local->hw; sdata 2754 net/mac80211/mlme.c trace_api_connection_loss(sdata); sdata 2756 net/mac80211/mlme.c sdata->u.mgd.connection_loss = true; sdata 2757 net/mac80211/mlme.c ieee80211_queue_work(hw, &sdata->u.mgd.beacon_connection_loss_work); sdata 2762 net/mac80211/mlme.c static void ieee80211_destroy_auth_data(struct ieee80211_sub_if_data *sdata, sdata 2765 net/mac80211/mlme.c struct ieee80211_mgd_auth_data *auth_data = sdata->u.mgd.auth_data; sdata 2767 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 2775 net/mac80211/mlme.c del_timer_sync(&sdata->u.mgd.timer); sdata 2776 net/mac80211/mlme.c sta_info_destroy_addr(sdata, auth_data->bss->bssid); sdata 2778 net/mac80211/mlme.c eth_zero_addr(sdata->u.mgd.bssid); sdata 2779 net/mac80211/mlme.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BSSID); sdata 2780 net/mac80211/mlme.c sdata->u.mgd.flags = 0; sdata 2781 net/mac80211/mlme.c mutex_lock(&sdata->local->mtx); sdata 2782 net/mac80211/mlme.c ieee80211_vif_release_channel(sdata); sdata 2783 net/mac80211/mlme.c mutex_unlock(&sdata->local->mtx); sdata 2786 net/mac80211/mlme.c cfg80211_put_bss(sdata->local->hw.wiphy, auth_data->bss); sdata 2788 net/mac80211/mlme.c sdata->u.mgd.auth_data = NULL; sdata 2791 net/mac80211/mlme.c static void ieee80211_destroy_assoc_data(struct ieee80211_sub_if_data *sdata, sdata 2794 net/mac80211/mlme.c struct ieee80211_mgd_assoc_data *assoc_data = sdata->u.mgd.assoc_data; sdata 2796 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 2804 net/mac80211/mlme.c del_timer_sync(&sdata->u.mgd.timer); sdata 2805 net/mac80211/mlme.c sta_info_destroy_addr(sdata, assoc_data->bss->bssid); sdata 2807 net/mac80211/mlme.c eth_zero_addr(sdata->u.mgd.bssid); sdata 2808 net/mac80211/mlme.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BSSID); sdata 2809 net/mac80211/mlme.c sdata->u.mgd.flags = 0; sdata 2810 net/mac80211/mlme.c sdata->vif.mu_mimo_owner = false; sdata 2812 net/mac80211/mlme.c mutex_lock(&sdata->local->mtx); sdata 2813 net/mac80211/mlme.c ieee80211_vif_release_channel(sdata); sdata 2814 net/mac80211/mlme.c mutex_unlock(&sdata->local->mtx); sdata 2817 net/mac80211/mlme.c cfg80211_abandon_assoc(sdata->dev, assoc_data->bss); sdata 2821 net/mac80211/mlme.c sdata->u.mgd.assoc_data = NULL; sdata 2824 net/mac80211/mlme.c static void ieee80211_auth_challenge(struct ieee80211_sub_if_data *sdata, sdata 2827 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 2828 net/mac80211/mlme.c struct ieee80211_mgd_auth_data *auth_data = sdata->u.mgd.auth_data; sdata 2839 net/mac80211/mlme.c drv_mgd_prepare_tx(sdata->local, sdata, 0); sdata 2843 net/mac80211/mlme.c ieee80211_send_auth(sdata, 3, auth_data->algorithm, 0, sdata 2850 net/mac80211/mlme.c static bool ieee80211_mark_sta_auth(struct ieee80211_sub_if_data *sdata, sdata 2853 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 2857 net/mac80211/mlme.c sdata_info(sdata, "authenticated\n"); sdata 2861 net/mac80211/mlme.c run_again(sdata, ifmgd->auth_data->timeout); sdata 2864 net/mac80211/mlme.c mutex_lock(&sdata->local->sta_mtx); sdata 2865 net/mac80211/mlme.c sta = sta_info_get(sdata, bssid); sdata 2867 net/mac80211/mlme.c WARN_ONCE(1, "%s: STA %pM not found", sdata->name, bssid); sdata 2872 net/mac80211/mlme.c sdata_info(sdata, "failed moving %pM to auth\n", bssid); sdata 2878 net/mac80211/mlme.c mutex_unlock(&sdata->local->sta_mtx); sdata 2882 net/mac80211/mlme.c static void ieee80211_rx_mgmt_auth(struct ieee80211_sub_if_data *sdata, sdata 2885 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 2893 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 2916 net/mac80211/mlme.c sdata_info(sdata, "%pM unexpected authentication state: alg %d (expected %d) transact %d (expected %d)\n", sdata 2924 net/mac80211/mlme.c sdata_info(sdata, "%pM denied authentication (status %d)\n", sdata 2926 net/mac80211/mlme.c ieee80211_destroy_auth_data(sdata, false); sdata 2927 net/mac80211/mlme.c cfg80211_rx_mlme_mgmt(sdata->dev, (u8 *)mgmt, len); sdata 2930 net/mac80211/mlme.c drv_event_callback(sdata->local, sdata, &event); sdata 2945 net/mac80211/mlme.c ieee80211_auth_challenge(sdata, mgmt, len); sdata 2957 net/mac80211/mlme.c drv_event_callback(sdata->local, sdata, &event); sdata 2961 net/mac80211/mlme.c if (!ieee80211_mark_sta_auth(sdata, bssid)) sdata 2965 net/mac80211/mlme.c sdata_info(sdata, "SAE peer confirmed\n"); sdata 2969 net/mac80211/mlme.c cfg80211_rx_mlme_mgmt(sdata->dev, (u8 *)mgmt, len); sdata 3029 net/mac80211/mlme.c static void ieee80211_rx_mgmt_deauth(struct ieee80211_sub_if_data *sdata, sdata 3032 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 3035 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 3041 net/mac80211/mlme.c ieee80211_tdls_handle_disconnect(sdata, mgmt->sa, reason_code); sdata 3049 net/mac80211/mlme.c sdata_info(sdata, "deauthenticated from %pM (Reason: %u=%s)\n", sdata 3053 net/mac80211/mlme.c ieee80211_set_disassoc(sdata, 0, 0, false, NULL); sdata 3055 net/mac80211/mlme.c ieee80211_report_disconnect(sdata, (u8 *)mgmt, len, false, sdata 3064 net/mac80211/mlme.c sdata_info(sdata, sdata 3069 net/mac80211/mlme.c ieee80211_destroy_assoc_data(sdata, false, true); sdata 3071 net/mac80211/mlme.c cfg80211_rx_mlme_mgmt(sdata->dev, (u8 *)mgmt, len); sdata 3077 net/mac80211/mlme.c static void ieee80211_rx_mgmt_disassoc(struct ieee80211_sub_if_data *sdata, sdata 3080 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 3083 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 3095 net/mac80211/mlme.c ieee80211_tdls_handle_disconnect(sdata, mgmt->sa, reason_code); sdata 3099 net/mac80211/mlme.c sdata_info(sdata, "disassociated from %pM (Reason: %u=%s)\n", sdata 3103 net/mac80211/mlme.c ieee80211_set_disassoc(sdata, 0, 0, false, NULL); sdata 3105 net/mac80211/mlme.c ieee80211_report_disconnect(sdata, (u8 *)mgmt, len, false, reason_code); sdata 3170 net/mac80211/mlme.c static int ieee80211_recalc_twt_req(struct ieee80211_sub_if_data *sdata, sdata 3176 net/mac80211/mlme.c if (sdata->vif.bss_conf.twt_requester != twt) { sdata 3177 net/mac80211/mlme.c sdata->vif.bss_conf.twt_requester = twt; sdata 3183 net/mac80211/mlme.c static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata, sdata 3187 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 3188 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 3194 net/mac80211/mlme.c struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf; sdata 3215 net/mac80211/mlme.c sdata_info(sdata, "invalid AID value %d (out of range), turn off PS\n", sdata 3226 net/mac80211/mlme.c sdata_info(sdata, "no SuppRates element in AssocResp\n"); sdata 3266 net/mac80211/mlme.c sdata_info(sdata, sdata 3277 net/mac80211/mlme.c sdata_info(sdata, sdata 3283 net/mac80211/mlme.c sdata_info(sdata, sdata 3289 net/mac80211/mlme.c sdata_info(sdata, sdata 3295 net/mac80211/mlme.c sdata_info(sdata, sdata 3306 net/mac80211/mlme.c sdata_info(sdata, sdata 3314 net/mac80211/mlme.c sdata_info(sdata, sdata 3320 net/mac80211/mlme.c mutex_lock(&sdata->local->sta_mtx); sdata 3325 net/mac80211/mlme.c sta = sta_info_get(sdata, cbss->bssid); sdata 3327 net/mac80211/mlme.c mutex_unlock(&sdata->local->sta_mtx); sdata 3332 net/mac80211/mlme.c sband = ieee80211_get_sband(sdata); sdata 3334 net/mac80211/mlme.c mutex_unlock(&sdata->local->sta_mtx); sdata 3341 net/mac80211/mlme.c mutex_unlock(&sdata->local->sta_mtx); sdata 3342 net/mac80211/mlme.c sdata_info(sdata, sdata 3350 net/mac80211/mlme.c ieee80211_ht_cap_ie_to_sta_ht_cap(sdata, sband, sdata 3354 net/mac80211/mlme.c ieee80211_vht_cap_ie_to_sta_vht_cap(sdata, sband, sdata 3359 net/mac80211/mlme.c ieee80211_he_cap_ie_to_sta_he_cap(sdata, sband, sdata 3365 net/mac80211/mlme.c changed |= ieee80211_recalc_twt_req(sdata, sta, &elems); sdata 3395 net/mac80211/mlme.c ieee80211_he_op_ie_to_bss_conf(&sdata->vif, elems.he_operation); sdata 3396 net/mac80211/mlme.c ieee80211_he_spr_ie_to_bss_conf(&sdata->vif, elems.he_spr); sdata 3445 net/mac80211/mlme.c sdata_info(sdata, sdata 3449 net/mac80211/mlme.c mutex_unlock(&sdata->local->sta_mtx); sdata 3454 net/mac80211/mlme.c mutex_unlock(&sdata->local->sta_mtx); sdata 3466 net/mac80211/mlme.c ieee80211_set_wmm_default(sdata, false, false); sdata 3467 net/mac80211/mlme.c } else if (!ieee80211_sta_wmm_params(local, sdata, elems.wmm_param, sdata 3471 net/mac80211/mlme.c ieee80211_set_wmm_default(sdata, false, true); sdata 3499 net/mac80211/mlme.c ieee80211_set_associated(sdata, cbss, changed); sdata 3506 net/mac80211/mlme.c ieee80211_send_4addr_nullfunc(local, sdata); sdata 3512 net/mac80211/mlme.c ieee80211_sta_rx_notify(sdata, (struct ieee80211_hdr *)mgmt); sdata 3513 net/mac80211/mlme.c ieee80211_sta_reset_beacon_monitor(sdata); sdata 3521 net/mac80211/mlme.c static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata, sdata 3525 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 3538 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 3558 net/mac80211/mlme.c sdata_info(sdata, sdata 3564 net/mac80211/mlme.c fils_decrypt_assoc_resp(sdata, (u8 *)mgmt, &len, assoc_data) < 0) sdata 3577 net/mac80211/mlme.c sdata_info(sdata, sdata 3583 net/mac80211/mlme.c run_again(sdata, assoc_data->timeout); sdata 3590 net/mac80211/mlme.c sdata_info(sdata, "%pM denied association (code=%d)\n", sdata 3592 net/mac80211/mlme.c ieee80211_destroy_assoc_data(sdata, false, false); sdata 3595 net/mac80211/mlme.c drv_event_callback(sdata->local, sdata, &event); sdata 3597 net/mac80211/mlme.c if (!ieee80211_assoc_success(sdata, bss, mgmt, len)) { sdata 3599 net/mac80211/mlme.c ieee80211_destroy_assoc_data(sdata, false, false); sdata 3600 net/mac80211/mlme.c cfg80211_assoc_timeout(sdata->dev, bss); sdata 3604 net/mac80211/mlme.c drv_event_callback(sdata->local, sdata, &event); sdata 3605 net/mac80211/mlme.c sdata_info(sdata, "associated\n"); sdata 3612 net/mac80211/mlme.c ieee80211_destroy_assoc_data(sdata, true, false); sdata 3617 net/mac80211/mlme.c if (sdata->tx_conf[ac].uapsd) sdata 3621 net/mac80211/mlme.c cfg80211_rx_assoc_resp(sdata->dev, bss, (u8 *)mgmt, len, uapsd_queues, sdata 3625 net/mac80211/mlme.c static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, sdata 3629 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 3633 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 3641 net/mac80211/mlme.c sdata->vif.bss_conf.beacon_rate = bss->beacon_rate; sdata 3647 net/mac80211/mlme.c static void ieee80211_rx_mgmt_probe_resp(struct ieee80211_sub_if_data *sdata, sdata 3655 net/mac80211/mlme.c ifmgd = &sdata->u.mgd; sdata 3657 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 3659 net/mac80211/mlme.c if (!ether_addr_equal(mgmt->da, sdata->vif.addr)) sdata 3666 net/mac80211/mlme.c ieee80211_rx_bss_info(sdata, mgmt, len, rx_status); sdata 3670 net/mac80211/mlme.c ieee80211_reset_ap_probe(sdata); sdata 3697 net/mac80211/mlme.c static void ieee80211_handle_beacon_sig(struct ieee80211_sub_if_data *sdata, sdata 3733 net/mac80211/mlme.c drv_event_callback(local, sdata, &event); sdata 3739 net/mac80211/mlme.c drv_event_callback(local, sdata, &event); sdata 3745 net/mac80211/mlme.c !(sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_CQM_RSSI)) { sdata 3755 net/mac80211/mlme.c &sdata->vif, sdata 3762 net/mac80211/mlme.c &sdata->vif, sdata 3779 net/mac80211/mlme.c &sdata->vif, sdata 3786 net/mac80211/mlme.c &sdata->vif, sdata 3803 net/mac80211/mlme.c static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata, sdata 3807 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 3808 net/mac80211/mlme.c struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf; sdata 3811 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 3822 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 3830 net/mac80211/mlme.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 3850 net/mac80211/mlme.c ieee80211_rx_bss_info(sdata, mgmt, len, rx_status); sdata 3857 net/mac80211/mlme.c sdata->vif.bss_conf.sync_tsf = sdata 3859 net/mac80211/mlme.c sdata->vif.bss_conf.sync_device_ts = sdata 3861 net/mac80211/mlme.c sdata->vif.bss_conf.sync_dtim_count = elems.dtim_count; sdata 3875 net/mac80211/mlme.c run_again(sdata, ifmgd->assoc_data->timeout); sdata 3885 net/mac80211/mlme.c ieee80211_handle_beacon_sig(sdata, ifmgd, bss_conf, sdata 3889 net/mac80211/mlme.c mlme_dbg_ratelimited(sdata, sdata 3891 net/mac80211/mlme.c ieee80211_reset_ap_probe(sdata); sdata 3898 net/mac80211/mlme.c ieee80211_sta_reset_beacon_monitor(sdata); sdata 3914 net/mac80211/mlme.c ieee80211_send_nullfunc(local, sdata, false); sdata 3915 net/mac80211/mlme.c } else if (!local->pspolling && sdata->u.mgd.powersave) { sdata 3926 net/mac80211/mlme.c ieee80211_send_pspoll(local, sdata); sdata 3930 net/mac80211/mlme.c if (sdata->vif.p2p || sdata 3931 net/mac80211/mlme.c sdata->vif.driver_flags & IEEE80211_VIF_GET_NOA_UPDATE) { sdata 3940 net/mac80211/mlme.c if (sdata->u.mgd.p2p_noa_index != noa.index) { sdata 3942 net/mac80211/mlme.c sdata->u.mgd.p2p_noa_index = noa.index; sdata 3951 net/mac80211/mlme.c } else if (sdata->u.mgd.p2p_noa_index != -1) { sdata 3953 net/mac80211/mlme.c sdata->u.mgd.p2p_noa_index = -1; sdata 3961 net/mac80211/mlme.c ieee80211_chswitch_post_beacon(sdata); sdata 3972 net/mac80211/mlme.c sdata->vif.bss_conf.sync_tsf = sdata 3974 net/mac80211/mlme.c sdata->vif.bss_conf.sync_device_ts = sdata 3976 net/mac80211/mlme.c sdata->vif.bss_conf.sync_dtim_count = elems.dtim_count; sdata 3984 net/mac80211/mlme.c ieee80211_rx_bss_info(sdata, mgmt, len, rx_status); sdata 3986 net/mac80211/mlme.c ieee80211_sta_process_chanswitch(sdata, rx_status->mactime, sdata 3991 net/mac80211/mlme.c ieee80211_sta_wmm_params(local, sdata, elems.wmm_param, sdata 4011 net/mac80211/mlme.c ieee80211_recalc_ps_vif(sdata); sdata 4020 net/mac80211/mlme.c changed |= ieee80211_handle_bss_capability(sdata, sdata 4025 net/mac80211/mlme.c sta = sta_info_get(sdata, bssid); sdata 4027 net/mac80211/mlme.c changed |= ieee80211_recalc_twt_req(sdata, sta, &elems); sdata 4029 net/mac80211/mlme.c if (ieee80211_config_bw(sdata, sta, sdata 4034 net/mac80211/mlme.c sdata_info(sdata, sdata 4037 net/mac80211/mlme.c ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH, sdata 4040 net/mac80211/mlme.c ieee80211_report_disconnect(sdata, deauth_buf, sdata 4047 net/mac80211/mlme.c ieee80211_vht_handle_opmode(sdata, sta, *elems.opmode_notif, sdata 4051 net/mac80211/mlme.c changed |= ieee80211_handle_pwr_constr(sdata, chan, mgmt, sdata 4057 net/mac80211/mlme.c ieee80211_bss_info_change_notify(sdata, changed); sdata 4060 net/mac80211/mlme.c void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata, sdata 4073 net/mac80211/mlme.c sdata_lock(sdata); sdata 4077 net/mac80211/mlme.c ieee80211_rx_mgmt_beacon(sdata, mgmt, skb->len, rx_status); sdata 4080 net/mac80211/mlme.c ieee80211_rx_mgmt_probe_resp(sdata, skb); sdata 4083 net/mac80211/mlme.c ieee80211_rx_mgmt_auth(sdata, mgmt, skb->len); sdata 4086 net/mac80211/mlme.c ieee80211_rx_mgmt_deauth(sdata, mgmt, skb->len); sdata 4089 net/mac80211/mlme.c ieee80211_rx_mgmt_disassoc(sdata, mgmt, skb->len); sdata 4093 net/mac80211/mlme.c ieee80211_rx_mgmt_assoc_resp(sdata, mgmt, skb->len); sdata 4112 net/mac80211/mlme.c ieee80211_sta_process_chanswitch(sdata, sdata 4139 net/mac80211/mlme.c ieee80211_sta_process_chanswitch(sdata, sdata 4146 net/mac80211/mlme.c sdata_unlock(sdata); sdata 4151 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = sdata 4152 net/mac80211/mlme.c from_timer(sdata, t, u.mgd.timer); sdata 4154 net/mac80211/mlme.c ieee80211_queue_work(&sdata->local->hw, &sdata->work); sdata 4157 net/mac80211/mlme.c static void ieee80211_sta_connection_lost(struct ieee80211_sub_if_data *sdata, sdata 4162 net/mac80211/mlme.c ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH, reason, sdata 4165 net/mac80211/mlme.c ieee80211_report_disconnect(sdata, frame_buf, sizeof(frame_buf), true, sdata 4169 net/mac80211/mlme.c static int ieee80211_auth(struct ieee80211_sub_if_data *sdata) sdata 4171 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 4172 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 4179 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 4187 net/mac80211/mlme.c sdata_info(sdata, "authentication with %pM timed out\n", sdata 4203 net/mac80211/mlme.c drv_mgd_prepare_tx(local, sdata, prepare_tx_duration); sdata 4205 net/mac80211/mlme.c sdata_info(sdata, "send auth to %pM (try %d/%d)\n", sdata 4221 net/mac80211/mlme.c ieee80211_send_auth(sdata, trans, auth_data->algorithm, status, sdata 4239 net/mac80211/mlme.c run_again(sdata, auth_data->timeout); sdata 4244 net/mac80211/mlme.c static int ieee80211_do_assoc(struct ieee80211_sub_if_data *sdata) sdata 4246 net/mac80211/mlme.c struct ieee80211_mgd_assoc_data *assoc_data = sdata->u.mgd.assoc_data; sdata 4247 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 4249 net/mac80211/mlme.c sdata_assert_lock(sdata); sdata 4253 net/mac80211/mlme.c sdata_info(sdata, "association with %pM timed out\n", sdata 4265 net/mac80211/mlme.c sdata_info(sdata, "associate with %pM (try %d/%d)\n", sdata 4268 net/mac80211/mlme.c ieee80211_send_assoc(sdata); sdata 4273 net/mac80211/mlme.c run_again(sdata, assoc_data->timeout); sdata 4279 net/mac80211/mlme.c run_again(sdata, assoc_data->timeout); sdata 4285 net/mac80211/mlme.c void ieee80211_mgd_conn_tx_status(struct ieee80211_sub_if_data *sdata, sdata 4288 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 4290 net/mac80211/mlme.c sdata->u.mgd.status_fc = fc; sdata 4291 net/mac80211/mlme.c sdata->u.mgd.status_acked = acked; sdata 4292 net/mac80211/mlme.c sdata->u.mgd.status_received = true; sdata 4294 net/mac80211/mlme.c ieee80211_queue_work(&local->hw, &sdata->work); sdata 4297 net/mac80211/mlme.c void ieee80211_sta_work(struct ieee80211_sub_if_data *sdata) sdata 4299 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 4300 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 4302 net/mac80211/mlme.c sdata_lock(sdata); sdata 4320 net/mac80211/mlme.c run_again(sdata, ifmgd->auth_data->timeout); sdata 4331 net/mac80211/mlme.c run_again(sdata, ifmgd->assoc_data->timeout); sdata 4346 net/mac80211/mlme.c ieee80211_destroy_auth_data(sdata, false); sdata 4347 net/mac80211/mlme.c } else if (ieee80211_auth(sdata)) { sdata 4357 net/mac80211/mlme.c ieee80211_destroy_auth_data(sdata, false); sdata 4359 net/mac80211/mlme.c cfg80211_auth_timeout(sdata->dev, bssid); sdata 4360 net/mac80211/mlme.c drv_event_callback(sdata->local, sdata, &event); sdata 4363 net/mac80211/mlme.c run_again(sdata, ifmgd->auth_data->timeout); sdata 4368 net/mac80211/mlme.c ieee80211_do_assoc(sdata)) { sdata 4376 net/mac80211/mlme.c ieee80211_destroy_assoc_data(sdata, false, false); sdata 4377 net/mac80211/mlme.c cfg80211_assoc_timeout(sdata->dev, bss); sdata 4378 net/mac80211/mlme.c drv_event_callback(sdata->local, sdata, &event); sdata 4381 net/mac80211/mlme.c run_again(sdata, ifmgd->assoc_data->timeout); sdata 4397 net/mac80211/mlme.c ieee80211_reset_ap_probe(sdata); sdata 4400 net/mac80211/mlme.c mlme_dbg(sdata, sdata 4404 net/mac80211/mlme.c ieee80211_mgd_probe_ap_send(sdata); sdata 4406 net/mac80211/mlme.c mlme_dbg(sdata, sdata 4409 net/mac80211/mlme.c ieee80211_sta_connection_lost(sdata, bssid, sdata 4414 net/mac80211/mlme.c run_again(sdata, ifmgd->probe_timeout); sdata 4416 net/mac80211/mlme.c mlme_dbg(sdata, sdata 4419 net/mac80211/mlme.c ieee80211_sta_connection_lost(sdata, bssid, sdata 4422 net/mac80211/mlme.c mlme_dbg(sdata, sdata 4426 net/mac80211/mlme.c ieee80211_mgd_probe_ap_send(sdata); sdata 4432 net/mac80211/mlme.c mlme_dbg(sdata, sdata 4436 net/mac80211/mlme.c ieee80211_sta_connection_lost(sdata, bssid, sdata 4441 net/mac80211/mlme.c sdata_unlock(sdata); sdata 4446 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = sdata 4447 net/mac80211/mlme.c from_timer(sdata, t, u.mgd.bcn_mon_timer); sdata 4448 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 4450 net/mac80211/mlme.c if (sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) sdata 4453 net/mac80211/mlme.c sdata->u.mgd.connection_loss = false; sdata 4454 net/mac80211/mlme.c ieee80211_queue_work(&sdata->local->hw, sdata 4455 net/mac80211/mlme.c &sdata->u.mgd.beacon_connection_loss_work); sdata 4460 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = sdata 4461 net/mac80211/mlme.c from_timer(sdata, t, u.mgd.conn_mon_timer); sdata 4462 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 4463 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 4465 net/mac80211/mlme.c if (sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) sdata 4473 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = sdata 4477 net/mac80211/mlme.c ieee80211_mgd_probe_ap(sdata, false); sdata 4480 net/mac80211/mlme.c static void ieee80211_restart_sta_timer(struct ieee80211_sub_if_data *sdata) sdata 4482 net/mac80211/mlme.c if (sdata->vif.type == NL80211_IFTYPE_STATION) { sdata 4483 net/mac80211/mlme.c __ieee80211_stop_poll(sdata); sdata 4486 net/mac80211/mlme.c if (!ieee80211_hw_check(&sdata->local->hw, CONNECTION_MONITOR)) sdata 4487 net/mac80211/mlme.c ieee80211_queue_work(&sdata->local->hw, sdata 4488 net/mac80211/mlme.c &sdata->u.mgd.monitor_work); sdata 4493 net/mac80211/mlme.c void ieee80211_mgd_quiesce(struct ieee80211_sub_if_data *sdata) sdata 4495 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 4498 net/mac80211/mlme.c sdata_lock(sdata); sdata 4510 net/mac80211/mlme.c ieee80211_send_deauth_disassoc(sdata, bssid, bssid, sdata 4515 net/mac80211/mlme.c ieee80211_destroy_assoc_data(sdata, false, true); sdata 4517 net/mac80211/mlme.c ieee80211_destroy_auth_data(sdata, false); sdata 4518 net/mac80211/mlme.c cfg80211_tx_mlme_mgmt(sdata->dev, frame_buf, sdata 4539 net/mac80211/mlme.c if (ifmgd->associated && !sdata->local->wowlan) { sdata 4547 net/mac80211/mlme.c ieee80211_mgd_deauth(sdata, &req); sdata 4550 net/mac80211/mlme.c sdata_unlock(sdata); sdata 4553 net/mac80211/mlme.c void ieee80211_sta_restart(struct ieee80211_sub_if_data *sdata) sdata 4555 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 4557 net/mac80211/mlme.c sdata_lock(sdata); sdata 4559 net/mac80211/mlme.c sdata_unlock(sdata); sdata 4563 net/mac80211/mlme.c if (sdata->flags & IEEE80211_SDATA_DISCONNECT_RESUME) { sdata 4564 net/mac80211/mlme.c sdata->flags &= ~IEEE80211_SDATA_DISCONNECT_RESUME; sdata 4565 net/mac80211/mlme.c mlme_dbg(sdata, "driver requested disconnect after resume\n"); sdata 4566 net/mac80211/mlme.c ieee80211_sta_connection_lost(sdata, sdata 4570 net/mac80211/mlme.c sdata_unlock(sdata); sdata 4573 net/mac80211/mlme.c sdata_unlock(sdata); sdata 4578 net/mac80211/mlme.c void ieee80211_sta_setup_sdata(struct ieee80211_sub_if_data *sdata) sdata 4582 net/mac80211/mlme.c ifmgd = &sdata->u.mgd; sdata 4600 net/mac80211/mlme.c ifmgd->powersave = sdata->wdev.ps; sdata 4601 net/mac80211/mlme.c ifmgd->uapsd_queues = sdata->local->hw.uapsd_queues; sdata 4602 net/mac80211/mlme.c ifmgd->uapsd_max_sp_len = sdata->local->hw.uapsd_max_sp_len; sdata 4605 net/mac80211/mlme.c if (sdata->local->hw.wiphy->features & NL80211_FEATURE_DYNAMIC_SMPS) sdata 4619 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata; sdata 4623 net/mac80211/mlme.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 4624 net/mac80211/mlme.c if (ieee80211_sdata_running(sdata)) sdata 4625 net/mac80211/mlme.c ieee80211_restart_sta_timer(sdata); sdata 4630 net/mac80211/mlme.c static u8 ieee80211_ht_vht_rx_chains(struct ieee80211_sub_if_data *sdata, sdata 4633 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 4736 net/mac80211/mlme.c static int ieee80211_prep_channel(struct ieee80211_sub_if_data *sdata, sdata 4739 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 4740 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 4787 net/mac80211/mlme.c sdata_info(sdata, sdata 4834 net/mac80211/mlme.c ifmgd->flags |= ieee80211_determine_chantype(sdata, sband, sdata 4839 net/mac80211/mlme.c sdata->needed_rx_chains = min(ieee80211_ht_vht_rx_chains(sdata, cbss), sdata 4845 net/mac80211/mlme.c sdata->smps_mode = IEEE80211_SMPS_OFF; sdata 4853 net/mac80211/mlme.c ret = ieee80211_vif_use_channel(sdata, &chandef, sdata 4863 net/mac80211/mlme.c ret = ieee80211_vif_use_channel(sdata, &chandef, sdata 4905 net/mac80211/mlme.c static int ieee80211_prep_connection(struct ieee80211_sub_if_data *sdata, sdata 4909 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 4910 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 4928 net/mac80211/mlme.c have_sta = sta_info_get(sdata, cbss->bssid); sdata 4933 net/mac80211/mlme.c new_sta = sta_info_alloc(sdata, cbss->bssid, GFP_KERNEL); sdata 4956 net/mac80211/mlme.c int shift = ieee80211_vif_get_shift(&sdata->vif); sdata 4974 net/mac80211/mlme.c sdata_info(sdata, sdata 4982 net/mac80211/mlme.c sdata_info(sdata, sdata 4985 net/mac80211/mlme.c sdata->vif.bss_conf.basic_rates = basic_rates; sdata 4990 net/mac80211/mlme.c sdata->flags |= IEEE80211_SDATA_OPERATING_GMODE; sdata 4992 net/mac80211/mlme.c sdata->flags &= ~IEEE80211_SDATA_OPERATING_GMODE; sdata 4997 net/mac80211/mlme.c sdata->vif.bss_conf.beacon_int = cbss->beacon_interval; sdata 5001 net/mac80211/mlme.c sdata->vif.bss_conf.sync_tsf = ies->tsf; sdata 5002 net/mac80211/mlme.c sdata->vif.bss_conf.sync_device_ts = sdata 5006 net/mac80211/mlme.c &sdata->vif.bss_conf.sync_dtim_count, sdata 5008 net/mac80211/mlme.c } else if (!ieee80211_hw_check(&sdata->local->hw, sdata 5012 net/mac80211/mlme.c sdata->vif.bss_conf.sync_tsf = ies->tsf; sdata 5013 net/mac80211/mlme.c sdata->vif.bss_conf.sync_device_ts = sdata 5015 net/mac80211/mlme.c sdata->vif.bss_conf.sync_dtim_count = 0; sdata 5017 net/mac80211/mlme.c sdata->vif.bss_conf.sync_tsf = 0; sdata 5018 net/mac80211/mlme.c sdata->vif.bss_conf.sync_device_ts = 0; sdata 5019 net/mac80211/mlme.c sdata->vif.bss_conf.sync_dtim_count = 0; sdata 5025 net/mac80211/mlme.c err = ieee80211_prep_channel(sdata, cbss); sdata 5038 net/mac80211/mlme.c ieee80211_bss_info_change_notify(sdata, sdata 5048 net/mac80211/mlme.c sdata_info(sdata, sdata 5064 net/mac80211/mlme.c int ieee80211_mgd_auth(struct ieee80211_sub_if_data *sdata, sdata 5067 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 5068 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 5157 net/mac80211/mlme.c ieee80211_destroy_auth_data(sdata, cont_auth); sdata 5170 net/mac80211/mlme.c ieee80211_mark_sta_auth(sdata, req->bss->bssid); sdata 5175 net/mac80211/mlme.c sdata_info(sdata, sdata 5178 net/mac80211/mlme.c ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH, sdata 5182 net/mac80211/mlme.c ieee80211_report_disconnect(sdata, frame_buf, sdata 5187 net/mac80211/mlme.c sdata_info(sdata, "authenticate with %pM\n", req->bss->bssid); sdata 5189 net/mac80211/mlme.c err = ieee80211_prep_connection(sdata, req->bss, cont_auth, false); sdata 5193 net/mac80211/mlme.c err = ieee80211_auth(sdata); sdata 5195 net/mac80211/mlme.c sta_info_destroy_addr(sdata, req->bss->bssid); sdata 5205 net/mac80211/mlme.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BSSID); sdata 5207 net/mac80211/mlme.c mutex_lock(&sdata->local->mtx); sdata 5208 net/mac80211/mlme.c ieee80211_vif_release_channel(sdata); sdata 5209 net/mac80211/mlme.c mutex_unlock(&sdata->local->mtx); sdata 5214 net/mac80211/mlme.c int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata, sdata 5217 net/mac80211/mlme.c struct ieee80211_local *local = sdata->local; sdata 5218 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 5245 net/mac80211/mlme.c sdata_info(sdata, sdata 5248 net/mac80211/mlme.c ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH, sdata 5252 net/mac80211/mlme.c ieee80211_report_disconnect(sdata, frame_buf, sdata 5272 net/mac80211/mlme.c ieee80211_destroy_auth_data(sdata, match); sdata 5296 net/mac80211/mlme.c netdev_info(sdata->dev, sdata 5309 net/mac80211/mlme.c netdev_info(sdata->dev, sdata 5320 net/mac80211/mlme.c netdev_info(sdata->dev, sdata 5356 net/mac80211/mlme.c sdata->smps_mode = IEEE80211_SMPS_DYNAMIC; sdata 5358 net/mac80211/mlme.c sdata->smps_mode = IEEE80211_SMPS_OFF; sdata 5360 net/mac80211/mlme.c sdata->smps_mode = ifmgd->req_smps; sdata 5381 net/mac80211/mlme.c if (WARN((sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_UAPSD) && sdata 5384 net/mac80211/mlme.c sdata->vif.driver_flags &= ~IEEE80211_VIF_SUPPORTS_UAPSD; sdata 5387 net/mac80211/mlme.c (sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_UAPSD)) { sdata 5416 net/mac80211/mlme.c sdata->control_port_protocol = req->crypto.control_port_ethertype; sdata 5417 net/mac80211/mlme.c sdata->control_port_no_encrypt = req->crypto.control_port_no_encrypt; sdata 5418 net/mac80211/mlme.c sdata->control_port_over_nl80211 = sdata 5420 net/mac80211/mlme.c sdata->encrypt_headroom = ieee80211_cs_headroom(local, &req->crypto, sdata 5421 net/mac80211/mlme.c sdata->vif.type); sdata 5437 net/mac80211/mlme.c ieee80211_apply_htcap_overrides(sdata, &sta_ht_cap); sdata 5458 net/mac80211/mlme.c err = ieee80211_prep_connection(sdata, req->bss, true, override); sdata 5465 net/mac80211/mlme.c if (ieee80211_hw_check(&sdata->local->hw, NEED_DTIM_BEFORE_ASSOC) && sdata 5471 net/mac80211/mlme.c sdata_info(sdata, "waiting for beacon from %pM\n", sdata 5488 net/mac80211/mlme.c sdata->vif.bss_conf.sync_tsf = beacon_ies->tsf; sdata 5489 net/mac80211/mlme.c sdata->vif.bss_conf.sync_device_ts = sdata 5491 net/mac80211/mlme.c sdata->vif.bss_conf.sync_dtim_count = dtim_count; sdata 5497 net/mac80211/mlme.c sdata->vif.bss_conf.profile_periodicity = ie[4]; sdata 5503 net/mac80211/mlme.c sdata->vif.bss_conf.ema_ap = true; sdata 5510 net/mac80211/mlme.c run_again(sdata, assoc_data->timeout); sdata 5522 net/mac80211/mlme.c sdata_info(sdata, "associating with AP with corrupt %s\n", sdata 5529 net/mac80211/mlme.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BSSID); sdata 5536 net/mac80211/mlme.c int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata, sdata 5539 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 5545 net/mac80211/mlme.c sdata_info(sdata, sdata 5550 net/mac80211/mlme.c drv_mgd_prepare_tx(sdata->local, sdata, 0); sdata 5551 net/mac80211/mlme.c ieee80211_send_deauth_disassoc(sdata, req->bssid, req->bssid, sdata 5555 net/mac80211/mlme.c ieee80211_destroy_auth_data(sdata, false); sdata 5556 net/mac80211/mlme.c ieee80211_report_disconnect(sdata, frame_buf, sdata 5565 net/mac80211/mlme.c sdata_info(sdata, sdata 5570 net/mac80211/mlme.c drv_mgd_prepare_tx(sdata->local, sdata, 0); sdata 5571 net/mac80211/mlme.c ieee80211_send_deauth_disassoc(sdata, req->bssid, req->bssid, sdata 5575 net/mac80211/mlme.c ieee80211_destroy_assoc_data(sdata, false, true); sdata 5576 net/mac80211/mlme.c ieee80211_report_disconnect(sdata, frame_buf, sdata 5584 net/mac80211/mlme.c sdata_info(sdata, sdata 5589 net/mac80211/mlme.c ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH, sdata 5591 net/mac80211/mlme.c ieee80211_report_disconnect(sdata, frame_buf, sdata 5600 net/mac80211/mlme.c int ieee80211_mgd_disassoc(struct ieee80211_sub_if_data *sdata, sdata 5603 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 5616 net/mac80211/mlme.c sdata_info(sdata, sdata 5621 net/mac80211/mlme.c ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DISASSOC, sdata 5625 net/mac80211/mlme.c ieee80211_report_disconnect(sdata, frame_buf, sizeof(frame_buf), true, sdata 5631 net/mac80211/mlme.c void ieee80211_mgd_stop(struct ieee80211_sub_if_data *sdata) sdata 5633 net/mac80211/mlme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 5647 net/mac80211/mlme.c sdata_lock(sdata); sdata 5650 net/mac80211/mlme.c ieee80211_destroy_assoc_data(sdata, false, false); sdata 5651 net/mac80211/mlme.c cfg80211_assoc_timeout(sdata->dev, bss); sdata 5654 net/mac80211/mlme.c ieee80211_destroy_auth_data(sdata, false); sdata 5666 net/mac80211/mlme.c sdata_unlock(sdata); sdata 5674 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 5676 net/mac80211/mlme.c trace_api_cqm_rssi_notify(sdata, rssi_event, rssi_level); sdata 5678 net/mac80211/mlme.c cfg80211_cqm_rssi_notify(sdata->dev, rssi_event, rssi_level, gfp); sdata 5684 net/mac80211/mlme.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 5686 net/mac80211/mlme.c trace_api_cqm_beacon_loss_notify(sdata->local, sdata); sdata 5688 net/mac80211/mlme.c cfg80211_cqm_beacon_loss_notify(sdata->dev, gfp); sdata 38 net/mac80211/ocb.c void ieee80211_ocb_rx_no_sta(struct ieee80211_sub_if_data *sdata, sdata 42 net/mac80211/ocb.c struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; sdata 43 net/mac80211/ocb.c struct ieee80211_local *local = sdata->local; sdata 55 net/mac80211/ocb.c sdata->name, addr); sdata 59 net/mac80211/ocb.c ocb_dbg(sdata, "Adding new OCB station %pM\n", addr); sdata 62 net/mac80211/ocb.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 71 net/mac80211/ocb.c sta = sta_info_alloc(sdata, addr, GFP_ATOMIC); sdata 83 net/mac80211/ocb.c ieee80211_queue_work(&local->hw, &sdata->work); sdata 89 net/mac80211/ocb.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 94 net/mac80211/ocb.c ocb_dbg(sdata, "Adding new IBSS station %pM (dev=%s)\n", sdata 95 net/mac80211/ocb.c addr, sdata->name); sdata 105 net/mac80211/ocb.c return sta_info_get(sdata, addr); sdata 109 net/mac80211/ocb.c static void ieee80211_ocb_housekeeping(struct ieee80211_sub_if_data *sdata) sdata 111 net/mac80211/ocb.c struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; sdata 113 net/mac80211/ocb.c ocb_dbg(sdata, "Running ocb housekeeping\n"); sdata 115 net/mac80211/ocb.c ieee80211_sta_expire(sdata, IEEE80211_OCB_PEER_INACTIVITY_LIMIT); sdata 121 net/mac80211/ocb.c void ieee80211_ocb_work(struct ieee80211_sub_if_data *sdata) sdata 123 net/mac80211/ocb.c struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; sdata 129 net/mac80211/ocb.c sdata_lock(sdata); sdata 145 net/mac80211/ocb.c ieee80211_ocb_housekeeping(sdata); sdata 147 net/mac80211/ocb.c sdata_unlock(sdata); sdata 152 net/mac80211/ocb.c struct ieee80211_sub_if_data *sdata = sdata 153 net/mac80211/ocb.c from_timer(sdata, t, u.ocb.housekeeping_timer); sdata 154 net/mac80211/ocb.c struct ieee80211_local *local = sdata->local; sdata 155 net/mac80211/ocb.c struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; sdata 159 net/mac80211/ocb.c ieee80211_queue_work(&local->hw, &sdata->work); sdata 162 net/mac80211/ocb.c void ieee80211_ocb_setup_sdata(struct ieee80211_sub_if_data *sdata) sdata 164 net/mac80211/ocb.c struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; sdata 172 net/mac80211/ocb.c int ieee80211_ocb_join(struct ieee80211_sub_if_data *sdata, sdata 175 net/mac80211/ocb.c struct ieee80211_local *local = sdata->local; sdata 176 net/mac80211/ocb.c struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; sdata 183 net/mac80211/ocb.c sdata->flags |= IEEE80211_SDATA_OPERATING_GMODE; sdata 184 net/mac80211/ocb.c sdata->smps_mode = IEEE80211_SMPS_OFF; sdata 185 net/mac80211/ocb.c sdata->needed_rx_chains = sdata->local->rx_chains; sdata 187 net/mac80211/ocb.c mutex_lock(&sdata->local->mtx); sdata 188 net/mac80211/ocb.c err = ieee80211_vif_use_channel(sdata, &setup->chandef, sdata 190 net/mac80211/ocb.c mutex_unlock(&sdata->local->mtx); sdata 194 net/mac80211/ocb.c ieee80211_bss_info_change_notify(sdata, changed); sdata 199 net/mac80211/ocb.c ieee80211_queue_work(&local->hw, &sdata->work); sdata 201 net/mac80211/ocb.c netif_carrier_on(sdata->dev); sdata 205 net/mac80211/ocb.c int ieee80211_ocb_leave(struct ieee80211_sub_if_data *sdata) sdata 207 net/mac80211/ocb.c struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; sdata 208 net/mac80211/ocb.c struct ieee80211_local *local = sdata->local; sdata 212 net/mac80211/ocb.c sta_info_flush(sdata); sdata 226 net/mac80211/ocb.c netif_carrier_off(sdata->dev); sdata 227 net/mac80211/ocb.c clear_bit(SDATA_STATE_OFFCHANNEL, &sdata->state); sdata 228 net/mac80211/ocb.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_OCB); sdata 230 net/mac80211/ocb.c mutex_lock(&sdata->local->mtx); sdata 231 net/mac80211/ocb.c ieee80211_vif_release_channel(sdata); sdata 232 net/mac80211/ocb.c mutex_unlock(&sdata->local->mtx); sdata 234 net/mac80211/ocb.c skb_queue_purge(&sdata->skb_queue); sdata 236 net/mac80211/ocb.c del_timer_sync(&sdata->u.ocb.housekeeping_timer); sdata 25 net/mac80211/offchannel.c static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata) sdata 27 net/mac80211/offchannel.c struct ieee80211_local *local = sdata->local; sdata 28 net/mac80211/offchannel.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 58 net/mac80211/offchannel.c ieee80211_send_nullfunc(local, sdata, true); sdata 62 net/mac80211/offchannel.c static void ieee80211_offchannel_ps_disable(struct ieee80211_sub_if_data *sdata) sdata 64 net/mac80211/offchannel.c struct ieee80211_local *local = sdata->local; sdata 67 net/mac80211/offchannel.c ieee80211_send_nullfunc(local, sdata, false); sdata 94 net/mac80211/offchannel.c ieee80211_send_nullfunc(local, sdata, false); sdata 99 net/mac80211/offchannel.c ieee80211_sta_reset_beacon_monitor(sdata); sdata 100 net/mac80211/offchannel.c ieee80211_sta_reset_conn_monitor(sdata); sdata 105 net/mac80211/offchannel.c struct ieee80211_sub_if_data *sdata; sdata 125 net/mac80211/offchannel.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 126 net/mac80211/offchannel.c if (!ieee80211_sdata_running(sdata)) sdata 129 net/mac80211/offchannel.c if (sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE || sdata 130 net/mac80211/offchannel.c sdata->vif.type == NL80211_IFTYPE_NAN) sdata 133 net/mac80211/offchannel.c if (sdata->vif.type != NL80211_IFTYPE_MONITOR) sdata 134 net/mac80211/offchannel.c set_bit(SDATA_STATE_OFFCHANNEL, &sdata->state); sdata 137 net/mac80211/offchannel.c if (sdata->vif.bss_conf.enable_beacon) { sdata 139 net/mac80211/offchannel.c &sdata->state); sdata 140 net/mac80211/offchannel.c sdata->vif.bss_conf.enable_beacon = false; sdata 142 net/mac80211/offchannel.c sdata, BSS_CHANGED_BEACON_ENABLED); sdata 145 net/mac80211/offchannel.c if (sdata->vif.type == NL80211_IFTYPE_STATION && sdata 146 net/mac80211/offchannel.c sdata->u.mgd.associated) sdata 147 net/mac80211/offchannel.c ieee80211_offchannel_ps_enable(sdata); sdata 154 net/mac80211/offchannel.c struct ieee80211_sub_if_data *sdata; sdata 160 net/mac80211/offchannel.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 161 net/mac80211/offchannel.c if (sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE) sdata 164 net/mac80211/offchannel.c if (sdata->vif.type != NL80211_IFTYPE_MONITOR) sdata 165 net/mac80211/offchannel.c clear_bit(SDATA_STATE_OFFCHANNEL, &sdata->state); sdata 167 net/mac80211/offchannel.c if (!ieee80211_sdata_running(sdata)) sdata 171 net/mac80211/offchannel.c if (sdata->vif.type == NL80211_IFTYPE_STATION && sdata 172 net/mac80211/offchannel.c sdata->u.mgd.associated) sdata 173 net/mac80211/offchannel.c ieee80211_offchannel_ps_disable(sdata); sdata 176 net/mac80211/offchannel.c &sdata->state)) { sdata 177 net/mac80211/offchannel.c sdata->vif.bss_conf.enable_beacon = true; sdata 179 net/mac80211/offchannel.c sdata, BSS_CHANGED_BEACON_ENABLED); sdata 193 net/mac80211/offchannel.c cfg80211_mgmt_tx_status(&roc->sdata->wdev, roc->mgmt_tx_cookie, sdata 196 net/mac80211/offchannel.c ieee80211_free_txskb(&roc->sdata->local->hw, roc->frame); sdata 200 net/mac80211/offchannel.c cfg80211_remain_on_channel_expired(&roc->sdata->wdev, sdata 204 net/mac80211/offchannel.c cfg80211_tx_mgmt_expired(&roc->sdata->wdev, sdata 266 net/mac80211/offchannel.c ieee80211_tx_skb_tid_band(roc->sdata, roc->frame, 7, sdata 271 net/mac80211/offchannel.c cfg80211_ready_on_channel(&roc->sdata->wdev, roc->cookie, sdata 334 net/mac80211/offchannel.c if (tmp->sdata != roc->sdata || tmp->chan != roc->chan) sdata 342 net/mac80211/offchannel.c int ret = drv_remain_on_channel(local, roc->sdata, roc->chan, sdata 353 net/mac80211/offchannel.c if (tmp->sdata != roc->sdata || sdata 365 net/mac80211/offchannel.c if (tmp->sdata != roc->sdata || tmp->chan != roc->chan) sdata 394 net/mac80211/offchannel.c if (tmp->sdata != roc->sdata || tmp->chan != roc->chan) sdata 548 net/mac80211/offchannel.c struct ieee80211_sub_if_data *sdata, sdata 584 net/mac80211/offchannel.c roc->sdata = sdata; sdata 609 net/mac80211/offchannel.c ret = drv_remain_on_channel(local, sdata, channel, sdata 625 net/mac80211/offchannel.c if (tmp->chan != channel || tmp->sdata != sdata) sdata 690 net/mac80211/offchannel.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 691 net/mac80211/offchannel.c struct ieee80211_local *local = sdata->local; sdata 695 net/mac80211/offchannel.c ret = ieee80211_start_roc_work(local, sdata, chan, sdata 736 net/mac80211/offchannel.c ret = drv_cancel_remain_on_channel(local, roc->sdata); sdata 774 net/mac80211/offchannel.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 775 net/mac80211/offchannel.c struct ieee80211_local *local = sdata->local; sdata 783 net/mac80211/offchannel.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 784 net/mac80211/offchannel.c struct ieee80211_local *local = sdata->local; sdata 802 net/mac80211/offchannel.c switch (sdata->vif.type) { sdata 804 net/mac80211/offchannel.c if (!sdata->vif.bss_conf.ibss_joined) sdata 809 net/mac80211/offchannel.c if (ieee80211_vif_is_mesh(&sdata->vif) && sdata 810 net/mac80211/offchannel.c !sdata->u.mesh.mesh_id_len) sdata 817 net/mac80211/offchannel.c if (sdata->vif.type != NL80211_IFTYPE_ADHOC && sdata 818 net/mac80211/offchannel.c !ieee80211_vif_is_mesh(&sdata->vif) && sdata 819 net/mac80211/offchannel.c !rcu_access_pointer(sdata->bss->beacon)) sdata 827 net/mac80211/offchannel.c sta = sta_info_get_bss(sdata, mgmt->da); sdata 834 net/mac80211/offchannel.c sdata_lock(sdata); sdata 835 net/mac80211/offchannel.c if (!sdata->u.mgd.associated || sdata 838 net/mac80211/offchannel.c memcmp(sdata->u.mgd.associated->bssid, sdata 841 net/mac80211/offchannel.c sdata_unlock(sdata); sdata 864 net/mac80211/offchannel.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 895 net/mac80211/offchannel.c if (sdata->vif.csa_active && sdata 896 net/mac80211/offchannel.c (sdata->vif.type == NL80211_IFTYPE_AP || sdata 897 net/mac80211/offchannel.c sdata->vif.type == NL80211_IFTYPE_MESH_POINT || sdata 898 net/mac80211/offchannel.c sdata->vif.type == NL80211_IFTYPE_ADHOC) && sdata 905 net/mac80211/offchannel.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 906 net/mac80211/offchannel.c beacon = rcu_dereference(sdata->u.ap.beacon); sdata 907 net/mac80211/offchannel.c else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) sdata 908 net/mac80211/offchannel.c beacon = rcu_dereference(sdata->u.ibss.presp); sdata 909 net/mac80211/offchannel.c else if (ieee80211_vif_is_mesh(&sdata->vif)) sdata 910 net/mac80211/offchannel.c beacon = rcu_dereference(sdata->u.mesh.beacon); sdata 922 net/mac80211/offchannel.c skb->dev = sdata->dev; sdata 943 net/mac80211/offchannel.c ieee80211_tx_skb(sdata, skb); sdata 955 net/mac80211/offchannel.c ret = ieee80211_start_roc_work(local, sdata, params->chan, sdata 982 net/mac80211/offchannel.c struct ieee80211_sub_if_data *sdata) sdata 989 net/mac80211/offchannel.c if (sdata && roc->sdata != sdata) sdata 995 net/mac80211/offchannel.c drv_cancel_remain_on_channel(local, sdata); sdata 20 net/mac80211/pm.c struct ieee80211_sub_if_data *sdata; sdata 86 net/mac80211/pm.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 87 net/mac80211/pm.c if (!ieee80211_sdata_running(sdata)) sdata 89 net/mac80211/pm.c if (sdata->vif.type != NL80211_IFTYPE_STATION) sdata 91 net/mac80211/pm.c ieee80211_mgd_quiesce(sdata); sdata 101 net/mac80211/pm.c if (sdata->u.mgd.associated && sdata 102 net/mac80211/pm.c sdata->u.mgd.powersave && sdata 143 net/mac80211/pm.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 144 net/mac80211/pm.c if (!ieee80211_sdata_running(sdata)) sdata 146 net/mac80211/pm.c switch (sdata->vif.type) { sdata 151 net/mac80211/pm.c ieee80211_mgd_quiesce(sdata); sdata 156 net/mac80211/pm.c sta = sdata->u.wds.sta; sdata 162 net/mac80211/pm.c WARN_ON(drv_sta_state(local, sta->sdata, sdata 172 net/mac80211/pm.c flush_delayed_work(&sdata->dec_tailroom_needed_wk); sdata 173 net/mac80211/pm.c drv_remove_interface(local, sdata); sdata 204 net/mac80211/pm.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 206 net/mac80211/pm.c cfg80211_report_wowlan_wakeup(&sdata->wdev, wakeup, gfp); sdata 32 net/mac80211/rate.c struct ieee80211_local *local = sta->sdata->local; sdata 46 net/mac80211/rate.c chanctx_conf = rcu_dereference(sta->sdata->vif.chanctx_conf); sdata 96 net/mac80211/rate.c chanctx_conf = rcu_dereference(sta->sdata->vif.chanctx_conf); sdata 108 net/mac80211/rate.c drv_sta_rc_update(local, sta->sdata, &sta->sta, changed); sdata 259 net/mac80211/rate.c void ieee80211_check_rate_mask(struct ieee80211_sub_if_data *sdata) sdata 261 net/mac80211/rate.c struct ieee80211_local *local = sdata->local; sdata 263 net/mac80211/rate.c u32 user_mask, basic_rates = sdata->vif.bss_conf.basic_rates; sdata 266 net/mac80211/rate.c if (WARN_ON(!sdata->vif.bss_conf.chandef.chan)) sdata 272 net/mac80211/rate.c band = sdata->vif.bss_conf.chandef.chan->band; sdata 273 net/mac80211/rate.c user_mask = sdata->rc_rateidx_mask[band]; sdata 279 net/mac80211/rate.c sdata_dbg(sdata, sdata 282 net/mac80211/rate.c sdata->rc_rateidx_mask[band] = (1 << sband->n_bitrates) - 1; sdata 386 net/mac80211/rate.c if (ieee80211_vif_is_mesh(&sta->sdata->vif)) sdata 725 net/mac80211/rate.c static bool rate_control_cap_mask(struct ieee80211_sub_if_data *sdata, sdata 733 net/mac80211/rate.c *mask = sdata->rc_rateidx_mask[sband->band]; sdata 734 net/mac80211/rate.c flags = ieee80211_chandef_rate_flags(&sdata->vif.bss_conf.chandef); sdata 741 net/mac80211/rate.c !sdata->rc_has_mcs_mask[sband->band] && sdata 742 net/mac80211/rate.c !sdata->rc_has_vht_mcs_mask[sband->band]) sdata 745 net/mac80211/rate.c if (sdata->rc_has_mcs_mask[sband->band]) sdata 746 net/mac80211/rate.c memcpy(mcs_mask, sdata->rc_rateidx_mcs_mask[sband->band], sdata 751 net/mac80211/rate.c if (sdata->rc_has_vht_mcs_mask[sband->band]) sdata 752 net/mac80211/rate.c memcpy(vht_mask, sdata->rc_rateidx_vht_mcs_mask[sband->band], sdata 786 net/mac80211/rate.c if (!rate_control_cap_mask(sta->sdata, sband, &sta->sta, &mask, sdata 790 net/mac80211/rate.c chan_width = sta->sdata->vif.bss_conf.chandef.width; sdata 801 net/mac80211/rate.c static void rate_control_apply_mask(struct ieee80211_sub_if_data *sdata, sdata 818 net/mac80211/rate.c if (!rate_control_cap_mask(sdata, sband, sta, &mask, mcs_mask, sdata 827 net/mac80211/rate.c chan_width = sdata->vif.bss_conf.chandef.width; sdata 846 net/mac80211/rate.c struct ieee80211_sub_if_data *sdata; sdata 856 net/mac80211/rate.c sdata = vif_to_sdata(vif); sdata 857 net/mac80211/rate.c sband = sdata->local->hw.wiphy->bands[info->band]; sdata 860 net/mac80211/rate.c rate_control_apply_mask(sdata, sta, sband, dest, max_rates); sdata 863 net/mac80211/rate.c __rate_control_send_low(&sdata->local->hw, sband, sta, info, sdata 864 net/mac80211/rate.c sdata->rc_rateidx_mask[info->band]); sdata 871 net/mac80211/rate.c void rate_control_get_rate(struct ieee80211_sub_if_data *sdata, sdata 875 net/mac80211/rate.c struct rate_control_ref *ref = sdata->local->rate_ctrl; sdata 890 net/mac80211/rate.c if (ieee80211_hw_check(&sdata->local->hw, HAS_RATE_CONTROL)) sdata 906 net/mac80211/rate.c if (ieee80211_hw_check(&sdata->local->hw, SUPPORTS_RC_TABLE)) sdata 909 net/mac80211/rate.c ieee80211_get_tx_rates(&sdata->vif, ista, txrc->skb, sdata 922 net/mac80211/rate.c sband = ieee80211_get_sband(sta->sdata); sdata 937 net/mac80211/rate.c drv_sta_rate_tbl_update(hw_to_local(hw), sta->sdata, pubsta); sdata 24 net/mac80211/rate.h void rate_control_get_rate(struct ieee80211_sub_if_data *sdata, sdata 86 net/mac80211/rate.h void ieee80211_check_rate_mask(struct ieee80211_sub_if_data *sdata); sdata 240 net/mac80211/rx.c static void ieee80211_handle_mu_mimo_mon(struct ieee80211_sub_if_data *sdata, sdata 250 net/mac80211/rx.c if (!sdata) sdata 259 net/mac80211/rx.c if (!is_valid_ether_addr(sdata->u.mntr.mu_follow_addr)) sdata 273 net/mac80211/rx.c if (!ether_addr_equal(action.hdr.addr1, sdata->u.mntr.mu_follow_addr)) sdata 280 net/mac80211/rx.c skb_queue_tail(&sdata->skb_queue, skb); sdata 281 net/mac80211/rx.c ieee80211_queue_work(&sdata->local->hw, &sdata->work); sdata 764 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata; sdata 835 net/mac80211/rx.c list_for_each_entry_rcu(sdata, &local->mon_list, u.mntr.list) { sdata 836 net/mac80211/rx.c bool last_monitor = list_is_last(&sdata->u.mntr.list, sdata 856 net/mac80211/rx.c skb->dev = sdata->dev; sdata 1049 net/mac80211/rx.c char *dev_addr = rx->sdata->vif.addr; sdata 1123 net/mac80211/rx.c static void ieee80211_release_reorder_frame(struct ieee80211_sub_if_data *sdata, sdata 1155 net/mac80211/rx.c static void ieee80211_release_reorder_frames(struct ieee80211_sub_if_data *sdata, sdata 1166 net/mac80211/rx.c ieee80211_release_reorder_frame(sdata, tid_agg_rx, index, sdata 1182 net/mac80211/rx.c static void ieee80211_sta_reorder_release(struct ieee80211_sub_if_data *sdata, sdata 1215 net/mac80211/rx.c ht_dbg_ratelimited(sdata, sdata 1217 net/mac80211/rx.c ieee80211_release_reorder_frame(sdata, tid_agg_rx, j, sdata 1229 net/mac80211/rx.c ieee80211_release_reorder_frame(sdata, tid_agg_rx, index, sdata 1259 net/mac80211/rx.c static bool ieee80211_sta_manage_reorder_buf(struct ieee80211_sub_if_data *sdata, sdata 1313 net/mac80211/rx.c ieee80211_release_reorder_frames(sdata, tid_agg_rx, sdata 1347 net/mac80211/rx.c ieee80211_sta_reorder_release(sdata, tid_agg_rx, frames); sdata 1391 net/mac80211/rx.c ieee80211_send_delba(rx->sdata, rx->sta->sta.addr, tid, sdata 1415 net/mac80211/rx.c skb_queue_tail(&rx->sdata->skb_queue, skb); sdata 1416 net/mac80211/rx.c ieee80211_queue_work(&local->hw, &rx->sdata->work); sdata 1427 net/mac80211/rx.c if (ieee80211_sta_manage_reorder_buf(rx->sdata, tid_agg_rx, skb, sdata 1486 net/mac80211/rx.c if (ieee80211_vif_is_mesh(&rx->sdata->vif)) sdata 1491 net/mac80211/rx.c rx->sdata->vif.type != NL80211_IFTYPE_ADHOC && sdata 1492 net/mac80211/rx.c rx->sdata->vif.type != NL80211_IFTYPE_WDS && sdata 1493 net/mac80211/rx.c rx->sdata->vif.type != NL80211_IFTYPE_OCB && sdata 1500 net/mac80211/rx.c if (rx->sta && rx->sdata->vif.type == NL80211_IFTYPE_STATION && sdata 1511 net/mac80211/rx.c if (ethertype == rx->sdata->control_port_protocol) sdata 1515 net/mac80211/rx.c if (rx->sdata->vif.type == NL80211_IFTYPE_AP && sdata 1516 net/mac80211/rx.c cfg80211_rx_spurious_frame(rx->sdata->dev, sdata 1556 net/mac80211/rx.c ieee80211_send_pspoll(local, rx->sdata); sdata 1563 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 1564 net/mac80211/rx.c struct ieee80211_local *local = sdata->local; sdata 1568 net/mac80211/rx.c if (sta->sdata->vif.type == NL80211_IFTYPE_AP || sdata 1569 net/mac80211/rx.c sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 1570 net/mac80211/rx.c ps = &sdata->bss->ps; sdata 1577 net/mac80211/rx.c drv_sta_notify(local, sdata, STA_NOTIFY_SLEEP, &sta->sta); sdata 1578 net/mac80211/rx.c ps_dbg(sdata, "STA %pM aid %d enters power save mode\n", sdata 1604 net/mac80211/rx.c ps_dbg(sta->sdata, "STA %pM aid %d exits power save mode\n", sdata 1615 net/mac80211/rx.c ps_dbg(sta->sdata, "STA %pM aid %d driver-ps-blocked\n", sdata 1691 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = rx->sdata; sdata 1698 net/mac80211/rx.c if (sdata->vif.type != NL80211_IFTYPE_AP && sdata 1699 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_AP_VLAN) sdata 1707 net/mac80211/rx.c if (ieee80211_hw_check(&sdata->local->hw, AP_LINK_PS)) sdata 1759 net/mac80211/rx.c if (rx->sdata->vif.type == NL80211_IFTYPE_ADHOC) { sdata 1762 net/mac80211/rx.c if (ether_addr_equal(bssid, rx->sdata->u.ibss.bssid) && sdata 1770 net/mac80211/rx.c } else if (rx->sdata->vif.type == NL80211_IFTYPE_OCB) { sdata 1782 net/mac80211/rx.c if (rx->sdata->vif.type == NL80211_IFTYPE_STATION) sdata 1783 net/mac80211/rx.c ieee80211_sta_rx_notify(rx->sdata, hdr); sdata 1821 net/mac80211/rx.c (rx->sdata->vif.type == NL80211_IFTYPE_AP || sdata 1822 net/mac80211/rx.c rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN)) { sdata 1833 net/mac80211/rx.c if (ieee80211_vif_is_mesh(&rx->sdata->vif)) sdata 1850 net/mac80211/rx.c (rx->sdata->vif.type == NL80211_IFTYPE_AP || sdata 1851 net/mac80211/rx.c (rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && sdata 1852 net/mac80211/rx.c !rx->sdata->u.vlan.sta))) { sdata 1855 net/mac80211/rx.c rx->sdata->dev, sta->sta.addr, sdata 1959 net/mac80211/rx.c rx->key = rcu_dereference(rx->sdata->keys[mmie_keyidx]); sdata 1968 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = rx->sdata; sdata 1973 net/mac80211/rx.c (key = rcu_dereference(rx->sdata->default_mgmt_key))) sdata 1985 net/mac80211/rx.c key = rcu_dereference(sdata->keys[i]); sdata 2019 net/mac80211/rx.c rx->key = rcu_dereference(rx->sdata->keys[keyidx]); sdata 2086 net/mac80211/rx.c ieee80211_reassemble_add(struct ieee80211_sub_if_data *sdata, sdata 2092 net/mac80211/rx.c entry = &sdata->fragments[sdata->fragment_next++]; sdata 2093 net/mac80211/rx.c if (sdata->fragment_next >= IEEE80211_FRAGMENT_MAX) sdata 2094 net/mac80211/rx.c sdata->fragment_next = 0; sdata 2112 net/mac80211/rx.c ieee80211_reassemble_find(struct ieee80211_sub_if_data *sdata, sdata 2119 net/mac80211/rx.c idx = sdata->fragment_next; sdata 2128 net/mac80211/rx.c entry = &sdata->fragments[idx]; sdata 2198 net/mac80211/rx.c entry = ieee80211_reassemble_add(rx->sdata, frag, seq, sdata 2230 net/mac80211/rx.c entry = ieee80211_reassemble_find(rx->sdata, frag, seq, sdata 2346 net/mac80211/rx.c cfg80211_rx_unprot_mlme_mgmt(rx->sdata->dev, sdata 2356 net/mac80211/rx.c cfg80211_rx_unprot_mlme_mgmt(rx->sdata->dev, sdata 2376 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = rx->sdata; sdata 2384 net/mac80211/rx.c sdata->vif.type == NL80211_IFTYPE_AP_VLAN && !sdata->u.vlan.sta) sdata 2387 net/mac80211/rx.c if (sdata->vif.type == NL80211_IFTYPE_STATION && sdata 2388 net/mac80211/rx.c !!sdata->u.mgd.use_4addr != !!ieee80211_has_a4(hdr->frame_control)) { sdata 2390 net/mac80211/rx.c if (!sdata->u.mgd.use_4addr) sdata 2392 net/mac80211/rx.c else if (!ether_addr_equal(hdr->addr1, sdata->vif.addr)) sdata 2397 net/mac80211/rx.c sdata->vif.type == NL80211_IFTYPE_AP_VLAN && sdata->u.vlan.sta) sdata 2400 net/mac80211/rx.c ret = ieee80211_data_to_8023(rx->skb, sdata->vif.addr, sdata->vif.type); sdata 2405 net/mac80211/rx.c if (ehdr->h_proto == rx->sdata->control_port_protocol) sdata 2426 net/mac80211/rx.c if (ehdr->h_proto == rx->sdata->control_port_protocol && sdata 2427 net/mac80211/rx.c (ether_addr_equal(ehdr->h_dest, rx->sdata->vif.addr) || sdata 2441 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = rx->sdata; sdata 2442 net/mac80211/rx.c struct net_device *dev = sdata->dev; sdata 2444 net/mac80211/rx.c if (unlikely((skb->protocol == sdata->control_port_protocol || sdata 2446 net/mac80211/rx.c sdata->control_port_over_nl80211)) { sdata 2469 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = rx->sdata; sdata 2470 net/mac80211/rx.c struct net_device *dev = sdata->dev; sdata 2491 net/mac80211/rx.c if ((sdata->vif.type == NL80211_IFTYPE_AP || sdata 2492 net/mac80211/rx.c sdata->vif.type == NL80211_IFTYPE_AP_VLAN) && sdata 2493 net/mac80211/rx.c !(sdata->flags & IEEE80211_SDATA_DONT_BRIDGE_PACKETS) && sdata 2494 net/mac80211/rx.c (sdata->vif.type != NL80211_IFTYPE_AP_VLAN || !sdata->u.vlan.sta)) { sdata 2496 net/mac80211/rx.c ieee80211_vif_get_num_mcast_if(sdata) != 0) { sdata 2507 net/mac80211/rx.c dsta = sta_info_get(sdata, ehdr->h_dest); sdata 2569 net/mac80211/rx.c struct net_device *dev = rx->sdata->dev; sdata 2580 net/mac80211/rx.c } else switch (rx->sdata->vif.type) { sdata 2601 net/mac80211/rx.c rx->sdata->vif.addr, sdata 2602 net/mac80211/rx.c rx->sdata->vif.type, sdata 2607 net/mac80211/rx.c rx->sdata->vif.type, sdata 2643 net/mac80211/rx.c switch (rx->sdata->vif.type) { sdata 2645 net/mac80211/rx.c if (!rx->sdata->u.vlan.sta) sdata 2649 net/mac80211/rx.c if (!rx->sdata->u.mgd.use_4addr) sdata 2672 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = rx->sdata; sdata 2673 net/mac80211/rx.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 2701 net/mac80211/rx.c mesh_rmc_check(rx->sdata, hdr->addr3, mesh_hdr)) sdata 2728 net/mac80211/rx.c mppath = mpp_path_lookup(sdata, proxied_addr); sdata 2730 net/mac80211/rx.c mpp_path_add(sdata, proxied_addr, mpp_addr); sdata 2743 net/mac80211/rx.c ether_addr_equal(sdata->vif.addr, hdr->addr3)) sdata 2746 net/mac80211/rx.c ac = ieee80211_select_queue_80211(sdata, skb, hdr); sdata 2747 net/mac80211/rx.c q = sdata->vif.hw_queue[ac]; sdata 2764 net/mac80211/rx.c if (sdata->crypto_tx_tailroom_needed_cnt) sdata 2768 net/mac80211/rx.c sdata->encrypt_headroom, sdata 2778 net/mac80211/rx.c info->control.vif = &rx->sdata->vif; sdata 2782 net/mac80211/rx.c memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN); sdata 2784 net/mac80211/rx.c ieee80211_mps_set_frame_flags(sdata, NULL, fwd_hdr); sdata 2785 net/mac80211/rx.c } else if (!mesh_nexthop_lookup(sdata, fwd_skb)) { sdata 2790 net/mac80211/rx.c mesh_path_error_tx(sdata, ifmsh->mshcfg.element_ttl, sdata 2811 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = rx->sdata; sdata 2813 net/mac80211/rx.c struct net_device *dev = sdata->dev; sdata 2830 net/mac80211/rx.c sdata->vif.type == NL80211_IFTYPE_AP) { sdata 2834 net/mac80211/rx.c rx->sdata->dev, rx->sta->sta.addr, GFP_ATOMIC); sdata 2865 net/mac80211/rx.c if (rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && sdata 2866 net/mac80211/rx.c unlikely(port_control) && sdata->bss) { sdata 2867 net/mac80211/rx.c sdata = container_of(sdata->bss, struct ieee80211_sub_if_data, sdata 2869 net/mac80211/rx.c dev = sdata->dev; sdata 2870 net/mac80211/rx.c rx->sdata = sdata; sdata 2880 net/mac80211/rx.c !test_bit(SDATA_STATE_OFFCHANNEL, &sdata->state))) sdata 2920 net/mac80211/rx.c ieee80211_send_delba(rx->sdata, rx->sta->sta.addr, tid, sdata 2940 net/mac80211/rx.c ieee80211_release_reorder_frames(rx->sdata, tid_agg_rx, sdata 2944 net/mac80211/rx.c drv_event_callback(rx->local, rx->sdata, &event); sdata 2958 net/mac80211/rx.c static void ieee80211_process_sa_query_req(struct ieee80211_sub_if_data *sdata, sdata 2962 net/mac80211/rx.c struct ieee80211_local *local = sdata->local; sdata 2966 net/mac80211/rx.c if (!ether_addr_equal(mgmt->da, sdata->vif.addr)) { sdata 2971 net/mac80211/rx.c if (!ether_addr_equal(mgmt->sa, sdata->u.mgd.bssid) || sdata 2972 net/mac80211/rx.c !ether_addr_equal(mgmt->bssid, sdata->u.mgd.bssid)) { sdata 2989 net/mac80211/rx.c memcpy(resp->sa, sdata->vif.addr, ETH_ALEN); sdata 2990 net/mac80211/rx.c memcpy(resp->bssid, sdata->u.mgd.bssid, ETH_ALEN); sdata 3000 net/mac80211/rx.c ieee80211_tx_skb(sdata, skb); sdata 3020 net/mac80211/rx.c if (rx->sdata->vif.type == NL80211_IFTYPE_AP && sdata 3045 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = rx->sdata; sdata 3068 net/mac80211/rx.c if (sdata->vif.type != NL80211_IFTYPE_STATION && sdata 3069 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_MESH_POINT && sdata 3070 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_AP_VLAN && sdata 3071 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_AP && sdata 3072 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_ADHOC) sdata 3112 net/mac80211/rx.c cfg80211_sta_opmode_change_notify(sdata->dev, sdata 3149 net/mac80211/rx.c cfg80211_sta_opmode_change_notify(sdata->dev, sdata 3163 net/mac80211/rx.c if (sdata->vif.type != NL80211_IFTYPE_STATION) sdata 3167 net/mac80211/rx.c if (!ether_addr_equal(mgmt->bssid, sdata->u.mgd.bssid)) sdata 3177 net/mac80211/rx.c if (sdata->vif.type != NL80211_IFTYPE_STATION && sdata 3178 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_MESH_POINT && sdata 3179 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_AP_VLAN && sdata 3180 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_AP && sdata 3181 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_ADHOC) sdata 3205 net/mac80211/rx.c if (sdata->vif.type != NL80211_IFTYPE_STATION && sdata 3206 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_MESH_POINT && sdata 3207 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_AP_VLAN && sdata 3208 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_AP && sdata 3209 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_ADHOC) sdata 3251 net/mac80211/rx.c if (sdata->vif.type != NL80211_IFTYPE_STATION) sdata 3254 net/mac80211/rx.c ieee80211_process_measurement_req(sdata, mgmt, len); sdata 3262 net/mac80211/rx.c if (sdata->vif.type != NL80211_IFTYPE_STATION && sdata 3263 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_ADHOC && sdata 3264 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_MESH_POINT) sdata 3267 net/mac80211/rx.c if (sdata->vif.type == NL80211_IFTYPE_STATION) sdata 3268 net/mac80211/rx.c bssid = sdata->u.mgd.bssid; sdata 3269 net/mac80211/rx.c else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) sdata 3270 net/mac80211/rx.c bssid = sdata->u.ibss.bssid; sdata 3271 net/mac80211/rx.c else if (sdata->vif.type == NL80211_IFTYPE_MESH_POINT) sdata 3290 net/mac80211/rx.c if (sdata->vif.type != NL80211_IFTYPE_STATION) sdata 3292 net/mac80211/rx.c ieee80211_process_sa_query_req(sdata, mgmt, len); sdata 3305 net/mac80211/rx.c if (!ieee80211_vif_is_mesh(&sdata->vif)) sdata 3307 net/mac80211/rx.c if (sdata->u.mesh.user_mpm) sdata 3313 net/mac80211/rx.c if (!ieee80211_vif_is_mesh(&sdata->vif)) sdata 3323 net/mac80211/rx.c if (!ieee80211_vif_is_mesh(&sdata->vif)) sdata 3326 net/mac80211/rx.c !mesh_path_sel_is_hwmp(sdata)) sdata 3345 net/mac80211/rx.c skb_queue_tail(&sdata->skb_queue, rx->skb); sdata 3346 net/mac80211/rx.c ieee80211_queue_work(&local->hw, &sdata->work); sdata 3373 net/mac80211/rx.c if (cfg80211_rx_mgmt(&rx->sdata->wdev, status->freq, sig, sdata 3390 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = rx->sdata; sdata 3407 net/mac80211/rx.c (sdata->vif.type == NL80211_IFTYPE_AP || sdata 3408 net/mac80211/rx.c sdata->vif.type == NL80211_IFTYPE_AP_VLAN)) sdata 3425 net/mac80211/rx.c memcpy(nmgmt->sa, rx->sdata->vif.addr, ETH_ALEN); sdata 3429 net/mac80211/rx.c if (rx->sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE) { sdata 3440 net/mac80211/rx.c __ieee80211_tx_skb_tid_band(rx->sdata, nskb, 7, sdata 3450 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = rx->sdata; sdata 3456 net/mac80211/rx.c if (!ieee80211_vif_is_mesh(&sdata->vif) && sdata 3457 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_ADHOC && sdata 3458 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_OCB && sdata 3459 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_STATION) sdata 3474 net/mac80211/rx.c if (sdata->vif.type != NL80211_IFTYPE_STATION && sdata 3475 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_ADHOC) sdata 3486 net/mac80211/rx.c if (sdata->vif.type != NL80211_IFTYPE_STATION) sdata 3491 net/mac80211/rx.c if (sdata->vif.type != NL80211_IFTYPE_ADHOC && sdata 3492 net/mac80211/rx.c sdata->vif.type != NL80211_IFTYPE_MESH_POINT) sdata 3500 net/mac80211/rx.c skb_queue_tail(&sdata->skb_queue, rx->skb); sdata 3501 net/mac80211/rx.c ieee80211_queue_work(&rx->local->hw, &sdata->work); sdata 3511 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata; sdata 3548 net/mac80211/rx.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 3549 net/mac80211/rx.c if (!ieee80211_sdata_running(sdata)) sdata 3552 net/mac80211/rx.c if (sdata->vif.type != NL80211_IFTYPE_MONITOR || sdata 3553 net/mac80211/rx.c !(sdata->u.mntr.flags & MONITOR_FLAG_COOK_FRAMES)) sdata 3564 net/mac80211/rx.c prev_dev = sdata->dev; sdata 3565 net/mac80211/rx.c ieee80211_rx_stats(sdata->dev, skb->len); sdata 3583 net/mac80211/rx.c I802_DEBUG_INC(rx->sdata->local->rx_handlers_drop); sdata 3602 net/mac80211/rx.c I802_DEBUG_INC(rx->sdata->local->rx_handlers_drop); sdata 3608 net/mac80211/rx.c I802_DEBUG_INC(rx->sdata->local->rx_handlers_queued); sdata 3650 net/mac80211/rx.c if (ieee80211_vif_is_mesh(&rx->sdata->vif)) sdata 3713 net/mac80211/rx.c .sdata = sta->sdata, sdata 3729 net/mac80211/rx.c ieee80211_sta_reorder_release(sta->sdata, tid_agg_rx, &frames); sdata 3738 net/mac80211/rx.c drv_event_callback(rx.local, rx.sdata, &event); sdata 3766 net/mac80211/rx.c rx.sdata = sta->sdata; sdata 3782 net/mac80211/rx.c ieee80211_release_reorder_frames(sta->sdata, tid_agg_rx, sdata 3787 net/mac80211/rx.c ieee80211_release_reorder_frames(sta->sdata, tid_agg_rx, ssn, sdata 3811 net/mac80211/rx.c ieee80211_sta_reorder_release(sta->sdata, tid_agg_rx, &frames); sdata 3827 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = rx->sdata; sdata 3831 net/mac80211/rx.c u8 *bssid = ieee80211_get_bssid(hdr, skb->len, sdata->vif.type); sdata 3834 net/mac80211/rx.c switch (sdata->vif.type) { sdata 3836 net/mac80211/rx.c if (!bssid && !sdata->u.mgd.use_4addr) sdata 3842 net/mac80211/rx.c return ether_addr_equal(sdata->vif.addr, hdr->addr1); sdata 3846 net/mac80211/rx.c if (ether_addr_equal(sdata->vif.addr, hdr->addr2) || sdata 3847 net/mac80211/rx.c ether_addr_equal(sdata->u.ibss.bssid, hdr->addr2)) sdata 3851 net/mac80211/rx.c if (!ieee80211_bssid_match(bssid, sdata->u.ibss.bssid)) sdata 3854 net/mac80211/rx.c !ether_addr_equal(sdata->vif.addr, hdr->addr1)) sdata 3862 net/mac80211/rx.c ieee80211_ibss_rx_no_sta(sdata, bssid, hdr->addr2, sdata 3874 net/mac80211/rx.c !ether_addr_equal(sdata->dev->dev_addr, hdr->addr1)) sdata 3882 net/mac80211/rx.c ieee80211_ocb_rx_no_sta(sdata, bssid, hdr->addr2, sdata 3887 net/mac80211/rx.c if (ether_addr_equal(sdata->vif.addr, hdr->addr2)) sdata 3891 net/mac80211/rx.c return ether_addr_equal(sdata->vif.addr, hdr->addr1); sdata 3895 net/mac80211/rx.c return ether_addr_equal(sdata->vif.addr, hdr->addr1); sdata 3897 net/mac80211/rx.c if (!ieee80211_bssid_match(bssid, sdata->vif.addr)) { sdata 3905 net/mac80211/rx.c !ether_addr_equal(sdata->vif.addr, hdr->addr1)) sdata 3947 net/mac80211/rx.c return ether_addr_equal(sdata->u.wds.remote_addr, hdr->addr2); sdata 3966 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 3967 net/mac80211/rx.c struct ieee80211_local *local = sdata->local; sdata 3970 net/mac80211/rx.c .dev = sdata->dev, sdata 3971 net/mac80211/rx.c .vif_type = sdata->vif.type, sdata 3972 net/mac80211/rx.c .control_port_protocol = sdata->control_port_protocol, sdata 3982 net/mac80211/rx.c ether_addr_copy(fastrx.vif_addr, sdata->vif.addr); sdata 3991 net/mac80211/rx.c switch (sdata->vif.type) { sdata 3998 net/mac80211/rx.c fastrx.sta_notify = sdata->u.mgd.probe_send_count > 0; sdata 4005 net/mac80211/rx.c if (sdata->u.mgd.use_4addr && !sta->sta.tdls) { sdata 4012 net/mac80211/rx.c if (!sdata->u.mgd.powersave) sdata 4034 net/mac80211/rx.c !(sdata->flags & IEEE80211_SDATA_DONT_BRIDGE_PACKETS) && sdata 4035 net/mac80211/rx.c (sdata->vif.type != NL80211_IFTYPE_AP_VLAN || sdata 4036 net/mac80211/rx.c !sdata->u.vlan.sta); sdata 4038 net/mac80211/rx.c if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN && sdata 4039 net/mac80211/rx.c sdata->u.vlan.sta) { sdata 4108 net/mac80211/rx.c void __ieee80211_check_fast_rx_iface(struct ieee80211_sub_if_data *sdata) sdata 4110 net/mac80211/rx.c struct ieee80211_local *local = sdata->local; sdata 4116 net/mac80211/rx.c if (sdata != sta->sdata && sdata 4117 net/mac80211/rx.c (!sta->sdata->bss || sta->sdata->bss != sdata->bss)) sdata 4123 net/mac80211/rx.c void ieee80211_check_fast_rx_iface(struct ieee80211_sub_if_data *sdata) sdata 4125 net/mac80211/rx.c struct ieee80211_local *local = sdata->local; sdata 4128 net/mac80211/rx.c __ieee80211_check_fast_rx_iface(sdata); sdata 4229 net/mac80211/rx.c ieee80211_sta_rx_notify(rx->sdata, hdr); sdata 4303 net/mac80211/rx.c sta_info_get(rx->sdata, addrs.da)) { sdata 4350 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata = rx->sdata; sdata 4378 net/mac80211/rx.c sdata->name); sdata 4399 net/mac80211/rx.c struct ieee80211_sub_if_data *sdata; sdata 4444 net/mac80211/rx.c rx.sdata = rx.sta->sdata; sdata 4459 net/mac80211/rx.c rx.sdata = prev_sta->sdata; sdata 4467 net/mac80211/rx.c rx.sdata = prev_sta->sdata; sdata 4477 net/mac80211/rx.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 4478 net/mac80211/rx.c if (!ieee80211_sdata_running(sdata)) sdata 4481 net/mac80211/rx.c if (sdata->vif.type == NL80211_IFTYPE_MONITOR || sdata 4482 net/mac80211/rx.c sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 4492 net/mac80211/rx.c prev = sdata; sdata 4497 net/mac80211/rx.c rx.sdata = prev; sdata 4500 net/mac80211/rx.c prev = sdata; sdata 4505 net/mac80211/rx.c rx.sdata = prev; sdata 222 net/mac80211/scan.c static bool ieee80211_scan_accept_presp(struct ieee80211_sub_if_data *sdata, sdata 225 net/mac80211/scan.c if (!sdata) sdata 233 net/mac80211/scan.c return ether_addr_equal(da, sdata->vif.addr); sdata 382 net/mac80211/scan.c struct ieee80211_sub_if_data *sdata; sdata 455 net/mac80211/scan.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 456 net/mac80211/scan.c if (ieee80211_sdata_running(sdata)) sdata 457 net/mac80211/scan.c ieee80211_queue_work(&sdata->local->hw, &sdata->work); sdata 482 net/mac80211/scan.c struct ieee80211_sub_if_data *sdata) sdata 501 net/mac80211/scan.c drv_sw_scan_start(local, sdata, local->scan_addr); sdata 523 net/mac80211/scan.c static bool __ieee80211_can_leave_ch(struct ieee80211_sub_if_data *sdata) sdata 525 net/mac80211/scan.c struct ieee80211_local *local = sdata->local; sdata 547 net/mac80211/scan.c struct ieee80211_sub_if_data *sdata) sdata 549 net/mac80211/scan.c if (!__ieee80211_can_leave_ch(sdata)) sdata 555 net/mac80211/scan.c if (sdata->vif.type == NL80211_IFTYPE_STATION && sdata 556 net/mac80211/scan.c sdata->u.mgd.flags & IEEE80211_STA_CONNECTION_POLL) sdata 579 net/mac80211/scan.c static void ieee80211_send_scan_probe_req(struct ieee80211_sub_if_data *sdata, sdata 589 net/mac80211/scan.c skb = ieee80211_build_probe_req(sdata, src, dst, ratemask, channel, sdata 603 net/mac80211/scan.c ieee80211_tx_skb_tid_band(sdata, skb, 7, channel->band, sdata 612 net/mac80211/scan.c struct ieee80211_sub_if_data *sdata; sdata 628 net/mac80211/scan.c sdata = rcu_dereference_protected(local->scan_sdata, sdata 633 net/mac80211/scan.c sdata, local->scan_addr, scan_req->bssid, sdata 647 net/mac80211/scan.c static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata, sdata 650 net/mac80211/scan.c struct ieee80211_local *local = sdata->local; sdata 659 net/mac80211/scan.c if (!__ieee80211_can_leave_ch(sdata)) sdata 662 net/mac80211/scan.c if (!ieee80211_can_scan(local, sdata)) { sdata 665 net/mac80211/scan.c rcu_assign_pointer(local->scan_sdata, sdata); sdata 720 net/mac80211/scan.c rcu_assign_pointer(local->scan_sdata, sdata); sdata 727 net/mac80211/scan.c memcpy(local->scan_addr, sdata->vif.addr, ETH_ALEN); sdata 745 net/mac80211/scan.c drv_sw_scan_start(local, sdata, local->scan_addr); sdata 774 net/mac80211/scan.c rc = drv_hw_scan(local, sdata, local->hw_scan_req); sdata 776 net/mac80211/scan.c rc = ieee80211_start_sw_scan(local, sdata); sdata 795 net/mac80211/scan.c if (ieee80211_vif_type_p2p(&sdata->vif) == sdata 823 net/mac80211/scan.c struct ieee80211_sub_if_data *sdata; sdata 834 net/mac80211/scan.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 835 net/mac80211/scan.c if (!ieee80211_sdata_running(sdata)) sdata 838 net/mac80211/scan.c if (sdata->vif.type == NL80211_IFTYPE_STATION) { sdata 839 net/mac80211/scan.c if (sdata->u.mgd.associated) { sdata 842 net/mac80211/scan.c if (!qdisc_all_tx_empty(sdata->dev)) { sdata 993 net/mac80211/scan.c struct ieee80211_sub_if_data *sdata; sdata 1005 net/mac80211/scan.c sdata = rcu_dereference_protected(local->scan_sdata, sdata 1021 net/mac80211/scan.c if (!sdata || !scan_req) sdata 1030 net/mac80211/scan.c rc = __ieee80211_start_scan(sdata, scan_req); sdata 1045 net/mac80211/scan.c if (!ieee80211_sdata_running(sdata)) { sdata 1086 net/mac80211/scan.c int ieee80211_request_scan(struct ieee80211_sub_if_data *sdata, sdata 1091 net/mac80211/scan.c mutex_lock(&sdata->local->mtx); sdata 1092 net/mac80211/scan.c res = __ieee80211_start_scan(sdata, req); sdata 1093 net/mac80211/scan.c mutex_unlock(&sdata->local->mtx); sdata 1098 net/mac80211/scan.c int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata, sdata 1104 net/mac80211/scan.c struct ieee80211_local *local = sdata->local; sdata 1162 net/mac80211/scan.c ret = __ieee80211_start_scan(sdata, sdata->local->int_scan_req); sdata 1232 net/mac80211/scan.c int __ieee80211_request_sched_scan_start(struct ieee80211_sub_if_data *sdata, sdata 1235 net/mac80211/scan.c struct ieee80211_local *local = sdata->local; sdata 1275 net/mac80211/scan.c ret = drv_sched_scan_start(local, sdata, req, &sched_scan_ies); sdata 1277 net/mac80211/scan.c rcu_assign_pointer(local->sched_scan_sdata, sdata); sdata 1293 net/mac80211/scan.c int ieee80211_request_sched_scan_start(struct ieee80211_sub_if_data *sdata, sdata 1296 net/mac80211/scan.c struct ieee80211_local *local = sdata->local; sdata 1306 net/mac80211/scan.c ret = __ieee80211_request_sched_scan_start(sdata, req); sdata 22 net/mac80211/spectmgmt.c int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata, sdata 55 net/mac80211/spectmgmt.c sdata_info(sdata, sdata 85 net/mac80211/spectmgmt.c new_chan = ieee80211_get_channel(sdata->local->hw.wiphy, new_freq); sdata 87 net/mac80211/spectmgmt.c sdata_info(sdata, sdata 122 net/mac80211/spectmgmt.c switch (sdata->vif.bss_conf.chandef.width) { sdata 126 net/mac80211/spectmgmt.c sdata->vif.bss_conf.chandef.width; sdata 152 net/mac80211/spectmgmt.c if (!ieee80211_chandef_vht_oper(&sdata->local->hw, sdata 169 net/mac80211/spectmgmt.c sdata_info(sdata, sdata 186 net/mac80211/spectmgmt.c static void ieee80211_send_refuse_measurement_request(struct ieee80211_sub_if_data *sdata, sdata 191 net/mac80211/spectmgmt.c struct ieee80211_local *local = sdata->local; sdata 203 net/mac80211/spectmgmt.c memcpy(msr_report->sa, sdata->vif.addr, ETH_ALEN); sdata 225 net/mac80211/spectmgmt.c ieee80211_tx_skb(sdata, skb); sdata 228 net/mac80211/spectmgmt.c void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata, sdata 239 net/mac80211/spectmgmt.c ieee80211_send_refuse_measurement_request(sdata, sdata 88 net/mac80211/sta_info.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 89 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 95 net/mac80211/sta_info.c if (sta->sdata->vif.type == NL80211_IFTYPE_AP || sdata 96 net/mac80211/sta_info.c sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 97 net/mac80211/sta_info.c ps = &sdata->bss->ps; sdata 98 net/mac80211/sta_info.c else if (ieee80211_vif_is_mesh(&sdata->vif)) sdata 99 net/mac80211/sta_info.c ps = &sdata->u.mesh.ps; sdata 129 net/mac80211/sta_info.c if (ieee80211_vif_is_mesh(&sdata->vif)) sdata 152 net/mac80211/sta_info.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 153 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 166 net/mac80211/sta_info.c struct sta_info *sta_info_get(struct ieee80211_sub_if_data *sdata, sdata 169 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 175 net/mac80211/sta_info.c if (sta->sdata == sdata) { sdata 191 net/mac80211/sta_info.c struct sta_info *sta_info_get_bss(struct ieee80211_sub_if_data *sdata, sdata 194 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 200 net/mac80211/sta_info.c if (sta->sdata == sdata || sdata 201 net/mac80211/sta_info.c (sta->sdata->bss && sta->sdata->bss == sdata->bss)) { sdata 213 net/mac80211/sta_info.c struct sta_info *sta_info_get_by_idx(struct ieee80211_sub_if_data *sdata, sdata 216 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 222 net/mac80211/sta_info.c if (sdata != sta->sdata) sdata 250 net/mac80211/sta_info.c sta_dbg(sta->sdata, "Destroyed STA %pM\n", sta->sta.addr); sdata 304 net/mac80211/sta_info.c struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata, sdata 307 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 329 net/mac80211/sta_info.c if (ieee80211_vif_is_mesh(&sdata->vif)) { sdata 335 net/mac80211/sta_info.c if (ieee80211_vif_is_mesh(&sdata->vif) && sdata 336 net/mac80211/sta_info.c !sdata->u.mesh.user_mpm) sdata 358 net/mac80211/sta_info.c sta->sdata = sdata; sdata 387 net/mac80211/sta_info.c ieee80211_txq_init(sdata, sta, txq, i); sdata 447 net/mac80211/sta_info.c if (sdata->vif.type == NL80211_IFTYPE_AP || sdata 448 net/mac80211/sta_info.c sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { sdata 452 net/mac80211/sta_info.c sband = ieee80211_get_sband(sdata); sdata 484 net/mac80211/sta_info.c sta_dbg(sdata, "Allocated STA %pM\n", sta->sta.addr); sdata 502 net/mac80211/sta_info.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 509 net/mac80211/sta_info.c if (unlikely(!ieee80211_sdata_running(sdata))) sdata 512 net/mac80211/sta_info.c if (WARN_ON(ether_addr_equal(sta->sta.addr, sdata->vif.addr) || sdata 521 net/mac80211/sta_info.c lockdep_assert_held(&sdata->local->sta_mtx); sdata 522 net/mac80211/sta_info.c if (ieee80211_hw_check(&sdata->local->hw, NEEDS_UNIQUE_STA_ADDR) && sdata 523 net/mac80211/sta_info.c ieee80211_find_sta_by_ifaddr(&sdata->local->hw, sta->addr, NULL)) { sdata 533 net/mac80211/sta_info.c struct ieee80211_sub_if_data *sdata, sdata 540 net/mac80211/sta_info.c err = drv_sta_state(local, sdata, sta, state, state + 1); sdata 555 net/mac80211/sta_info.c if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { sdata 556 net/mac80211/sta_info.c sdata_info(sdata, sdata 564 net/mac80211/sta_info.c WARN_ON(drv_sta_state(local, sdata, sta, state, state - 1)); sdata 570 net/mac80211/sta_info.c ieee80211_recalc_p2p_go_ps_allowed(struct ieee80211_sub_if_data *sdata) sdata 572 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 573 net/mac80211/sta_info.c bool allow_p2p_go_ps = sdata->vif.p2p; sdata 578 net/mac80211/sta_info.c if (sdata != sta->sdata || sdata 588 net/mac80211/sta_info.c if (allow_p2p_go_ps != sdata->vif.bss_conf.allow_p2p_go_ps) { sdata 589 net/mac80211/sta_info.c sdata->vif.bss_conf.allow_p2p_go_ps = allow_p2p_go_ps; sdata 590 net/mac80211/sta_info.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_P2P_PS); sdata 602 net/mac80211/sta_info.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 609 net/mac80211/sta_info.c if (sta_info_get_bss(sdata, sta->sta.addr)) { sdata 635 net/mac80211/sta_info.c err = sta_info_insert_drv_state(local, sdata, sta); sdata 642 net/mac80211/sta_info.c ieee80211_recalc_min_chandef(sta->sdata); sdata 644 net/mac80211/sta_info.c ieee80211_recalc_p2p_go_ps_allowed(sta->sdata); sdata 654 net/mac80211/sta_info.c cfg80211_new_sta(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL); sdata 657 net/mac80211/sta_info.c sta_dbg(sdata, "Inserted STA %pM\n", sta->sta.addr); sdata 663 net/mac80211/sta_info.c if (ieee80211_vif_is_mesh(&sdata->vif)) sdata 664 net/mac80211/sta_info.c mesh_accept_plinks_update(sdata); sdata 770 net/mac80211/sta_info.c if (sta->sdata->vif.type == NL80211_IFTYPE_AP || sdata 771 net/mac80211/sta_info.c sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { sdata 772 net/mac80211/sta_info.c if (WARN_ON_ONCE(!sta->sdata->bss)) sdata 775 net/mac80211/sta_info.c ps = &sta->sdata->bss->ps; sdata 777 net/mac80211/sta_info.c } else if (ieee80211_vif_is_mesh(&sta->sdata->vif)) { sdata 778 net/mac80211/sta_info.c ps = &sta->sdata->u.mesh.ps; sdata 860 net/mac80211/sta_info.c sta->sdata->vif.bss_conf.beacon_int * sdata 925 net/mac80211/sta_info.c ps_dbg(sta->sdata, "Buffered frame expired (STA %pM)\n", sdata 953 net/mac80211/sta_info.c if (!sta->sdata->bss && sdata 954 net/mac80211/sta_info.c !ieee80211_vif_is_mesh(&sta->sdata->vif)) sdata 967 net/mac80211/sta_info.c struct ieee80211_sub_if_data *sdata; sdata 976 net/mac80211/sta_info.c sdata = sta->sdata; sdata 1005 net/mac80211/sta_info.c drv_tdls_cancel_channel_switch(local, sdata, &sta->sta); sdata 1012 net/mac80211/sta_info.c drv_sta_pre_rcu_remove(local, sta->sdata, sta); sdata 1014 net/mac80211/sta_info.c if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN && sdata 1015 net/mac80211/sta_info.c rcu_access_pointer(sdata->u.vlan.sta) == sta) sdata 1016 net/mac80211/sta_info.c RCU_INIT_POINTER(sdata->u.vlan.sta, NULL); sdata 1024 net/mac80211/sta_info.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 1061 net/mac80211/sta_info.c ret = drv_sta_state(local, sdata, sta, IEEE80211_STA_NONE, sdata 1066 net/mac80211/sta_info.c sta_dbg(sdata, "Removed STA %pM\n", sta->sta.addr); sdata 1071 net/mac80211/sta_info.c cfg80211_del_sta_sinfo(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL); sdata 1093 net/mac80211/sta_info.c int sta_info_destroy_addr(struct ieee80211_sub_if_data *sdata, const u8 *addr) sdata 1098 net/mac80211/sta_info.c mutex_lock(&sdata->local->sta_mtx); sdata 1099 net/mac80211/sta_info.c sta = sta_info_get(sdata, addr); sdata 1101 net/mac80211/sta_info.c mutex_unlock(&sdata->local->sta_mtx); sdata 1106 net/mac80211/sta_info.c int sta_info_destroy_addr_bss(struct ieee80211_sub_if_data *sdata, sdata 1112 net/mac80211/sta_info.c mutex_lock(&sdata->local->sta_mtx); sdata 1113 net/mac80211/sta_info.c sta = sta_info_get_bss(sdata, addr); sdata 1115 net/mac80211/sta_info.c mutex_unlock(&sdata->local->sta_mtx); sdata 1165 net/mac80211/sta_info.c int __sta_info_flush(struct ieee80211_sub_if_data *sdata, bool vlans) sdata 1167 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 1174 net/mac80211/sta_info.c WARN_ON(vlans && sdata->vif.type != NL80211_IFTYPE_AP); sdata 1175 net/mac80211/sta_info.c WARN_ON(vlans && !sdata->bss); sdata 1179 net/mac80211/sta_info.c if (sdata == sta->sdata || sdata 1180 net/mac80211/sta_info.c (vlans && sdata->bss == sta->sdata->bss)) { sdata 1197 net/mac80211/sta_info.c void ieee80211_sta_expire(struct ieee80211_sub_if_data *sdata, sdata 1200 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 1208 net/mac80211/sta_info.c if (sdata != sta->sdata) sdata 1212 net/mac80211/sta_info.c sta_dbg(sta->sdata, "expiring inactive STA %pM\n", sdata 1215 net/mac80211/sta_info.c if (ieee80211_vif_is_mesh(&sdata->vif) && sdata 1217 net/mac80211/sta_info.c atomic_dec(&sdata->u.mesh.ps.num_sta_ps); sdata 1240 net/mac80211/sta_info.c !ether_addr_equal(sta->sdata->vif.addr, localaddr)) sdata 1273 net/mac80211/sta_info.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 1274 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 1280 net/mac80211/sta_info.c if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 1281 net/mac80211/sta_info.c sdata = container_of(sdata->bss, struct ieee80211_sub_if_data, sdata 1284 net/mac80211/sta_info.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 1285 net/mac80211/sta_info.c ps = &sdata->bss->ps; sdata 1286 net/mac80211/sta_info.c else if (ieee80211_vif_is_mesh(&sdata->vif)) sdata 1287 net/mac80211/sta_info.c ps = &sdata->u.mesh.ps; sdata 1298 net/mac80211/sta_info.c drv_sta_notify(local, sdata, STA_NOTIFY_AWAKE, &sta->sta); sdata 1344 net/mac80211/sta_info.c if (!ieee80211_vif_is_mesh(&sdata->vif) && sdata 1346 net/mac80211/sta_info.c sdata->smps_mode) && sdata 1347 net/mac80211/sta_info.c sta->known_smps_mode != sdata->bss->req_smps && sdata 1349 net/mac80211/sta_info.c ht_dbg(sdata, sdata 1352 net/mac80211/sta_info.c ieee80211_send_smps_action(sdata, sdata->bss->req_smps, sdata 1354 net/mac80211/sta_info.c sdata->vif.bss_conf.bssid); sdata 1361 net/mac80211/sta_info.c ps_dbg(sdata, sdata 1372 net/mac80211/sta_info.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 1373 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 1383 net/mac80211/sta_info.c if (sdata->vif.type == NL80211_IFTYPE_STATION && sdata 1384 net/mac80211/sta_info.c !(sdata->u.mgd.flags & IEEE80211_STA_DISABLE_HE)) sdata 1408 net/mac80211/sta_info.c memcpy(nullfunc->addr2, sdata->vif.addr, ETH_ALEN); sdata 1409 net/mac80211/sta_info.c memcpy(nullfunc->addr3, sdata->vif.addr, ETH_ALEN); sdata 1444 net/mac80211/sta_info.c skb->dev = sdata->dev; sdata 1447 net/mac80211/sta_info.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 1455 net/mac80211/sta_info.c ieee80211_xmit(sdata, sta, skb, 0); sdata 1509 net/mac80211/sta_info.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 1510 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 1564 net/mac80211/sta_info.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 1565 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 1885 net/mac80211/sta_info.c struct ieee80211_local *local = sta->sdata->local; sdata 1936 net/mac80211/sta_info.c sta_dbg(sta->sdata, "moving STA %pM to state %d\n", sdata 1944 net/mac80211/sta_info.c int err = drv_sta_state(sta->local, sta->sdata, sta, sdata 1962 net/mac80211/sta_info.c ieee80211_recalc_min_chandef(sta->sdata); sdata 1964 net/mac80211/sta_info.c ieee80211_recalc_p2p_go_ps_allowed(sta->sdata); sdata 1971 net/mac80211/sta_info.c ieee80211_recalc_min_chandef(sta->sdata); sdata 1973 net/mac80211/sta_info.c ieee80211_recalc_p2p_go_ps_allowed(sta->sdata); sdata 1975 net/mac80211/sta_info.c ieee80211_vif_dec_num_mcast(sta->sdata); sdata 1983 net/mac80211/sta_info.c ieee80211_vif_inc_num_mcast(sta->sdata); sdata 1988 net/mac80211/sta_info.c if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN || sdata 1989 net/mac80211/sta_info.c sta->sdata->vif.type == NL80211_IFTYPE_AP) sdata 1990 net/mac80211/sta_info.c cfg80211_send_layer2_update(sta->sdata->dev, sdata 2181 net/mac80211/sta_info.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 2182 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 2189 net/mac80211/sta_info.c sinfo->generation = sdata->local->sta_generation; sdata 2195 net/mac80211/sta_info.c if (sdata->vif.type == NL80211_IFTYPE_STATION) sdata 2196 net/mac80211/sta_info.c sinfo->rx_beacon = sdata->u.mgd.count_beacon_signal; sdata 2198 net/mac80211/sta_info.c drv_sta_statistics(local, sdata, &sta->sta, sinfo); sdata 2207 net/mac80211/sta_info.c if (sdata->vif.type == NL80211_IFTYPE_STATION) { sdata 2208 net/mac80211/sta_info.c sinfo->beacon_loss_count = sdata->u.mgd.beacon_loss_count; sdata 2298 net/mac80211/sta_info.c if (sdata->vif.type == NL80211_IFTYPE_STATION && sdata 2299 net/mac80211/sta_info.c !(sdata->vif.driver_flags & IEEE80211_VIF_BEACON_FILTER)) { sdata 2302 net/mac80211/sta_info.c sinfo->rx_beacon_signal_avg = ieee80211_ave_rssi(&sdata->vif); sdata 2357 net/mac80211/sta_info.c if (ieee80211_vif_is_mesh(&sdata->vif)) { sdata 2382 net/mac80211/sta_info.c if (sdata->vif.bss_conf.use_cts_prot) sdata 2384 net/mac80211/sta_info.c if (sdata->vif.bss_conf.use_short_preamble) sdata 2386 net/mac80211/sta_info.c if (sdata->vif.bss_conf.use_short_slot) sdata 2388 net/mac80211/sta_info.c sinfo->bss_param.dtim_period = sdata->vif.bss_conf.dtim_period; sdata 2389 net/mac80211/sta_info.c sinfo->bss_param.beacon_interval = sdata->vif.bss_conf.beacon_int; sdata 2436 net/mac80211/sta_info.c if (ieee80211_vif_is_mesh(&sdata->vif)) { sdata 2445 net/mac80211/sta_info.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 2446 net/mac80211/sta_info.c struct ieee80211_local *local = sdata->local; sdata 2474 net/mac80211/sta_info.c if (!sta->sdata->local->ops->wake_tx_queue) sdata 529 net/mac80211/sta_info.h struct ieee80211_sub_if_data *sdata; sdata 723 net/mac80211/sta_info.h struct sta_info *sta_info_get(struct ieee80211_sub_if_data *sdata, sdata 726 net/mac80211/sta_info.h struct sta_info *sta_info_get_bss(struct ieee80211_sub_if_data *sdata, sdata 736 net/mac80211/sta_info.h struct sta_info *sta_info_get_by_idx(struct ieee80211_sub_if_data *sdata, sdata 742 net/mac80211/sta_info.h struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata, sdata 759 net/mac80211/sta_info.h int sta_info_destroy_addr(struct ieee80211_sub_if_data *sdata, sdata 761 net/mac80211/sta_info.h int sta_info_destroy_addr_bss(struct ieee80211_sub_if_data *sdata, sdata 777 net/mac80211/sta_info.h int __sta_info_flush(struct ieee80211_sub_if_data *sdata, bool vlans); sdata 779 net/mac80211/sta_info.h static inline int sta_info_flush(struct ieee80211_sub_if_data *sdata) sdata 781 net/mac80211/sta_info.h return __sta_info_flush(sdata, false); sdata 792 net/mac80211/sta_info.h void ieee80211_sta_expire(struct ieee80211_sub_if_data *sdata, sdata 68 net/mac80211/status.c info->control.vif = &sta->sdata->vif; sdata 163 net/mac80211/status.c ps_dbg_ratelimited(sta->sdata, sdata 179 net/mac80211/status.c ieee80211_send_bar(&sta->sdata->vif, addr, tid, tid_tx->failed_bar_ssn); sdata 186 net/mac80211/status.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 212 net/mac80211/status.c ieee80211_sdata_running(sdata)) { sdata 228 net/mac80211/status.c if (sdata->vif.type == NL80211_IFTYPE_STATION) { sdata 236 net/mac80211/status.c sdata->smps_mode = smps_mode; sdata 237 net/mac80211/status.c ieee80211_queue_work(&local->hw, &sdata->recalc_smps); sdata 238 net/mac80211/status.c } else if (sdata->vif.type == NL80211_IFTYPE_AP || sdata 239 net/mac80211/status.c sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { sdata 570 net/mac80211/status.c struct ieee80211_sub_if_data *sdata, sdata 578 net/mac80211/status.c spin_lock(&sdata->u.mgd.teardown_lock); sdata 579 net/mac80211/status.c teardown_skb = sdata->u.mgd.teardown_skb; sdata 580 net/mac80211/status.c orig_teardown_skb = sdata->u.mgd.orig_teardown_skb; sdata 582 net/mac80211/status.c sdata->u.mgd.teardown_skb = NULL; sdata 583 net/mac80211/status.c sdata->u.mgd.orig_teardown_skb = NULL; sdata 586 net/mac80211/status.c spin_unlock(&sdata->u.mgd.teardown_lock); sdata 596 net/mac80211/status.c tdls_dbg(sdata, sdata 607 net/mac80211/status.c struct ieee80211_sub_if_data *sdata; sdata 610 net/mac80211/status.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 611 net/mac80211/status.c if (!sdata->dev) sdata 614 net/mac80211/status.c if (skb->dev == sdata->dev) sdata 615 net/mac80211/status.c return sdata; sdata 640 net/mac80211/status.c struct ieee80211_sub_if_data *sdata; sdata 644 net/mac80211/status.c sdata = ieee80211_sdata_from_skb(local, skb); sdata 645 net/mac80211/status.c if (sdata) { sdata 647 net/mac80211/status.c cfg80211_probe_status(sdata->dev, hdr->addr1, sdata 653 net/mac80211/status.c cfg80211_mgmt_tx_status(&sdata->wdev, cookie, sdata 679 net/mac80211/status.c struct ieee80211_sub_if_data *sdata; sdata 683 net/mac80211/status.c sdata = ieee80211_sdata_from_skb(local, skb); sdata 685 net/mac80211/status.c if (!sdata) { sdata 695 net/mac80211/status.c ieee80211_tdls_td_tx_handle(local, sdata, skb, sdata 698 net/mac80211/status.c ieee80211_mgd_conn_tx_status(sdata, sdata 764 net/mac80211/status.c cfg80211_cqm_pktloss_notify(sta->sdata->dev, sta->sta.addr, sdata 811 net/mac80211/status.c struct ieee80211_sub_if_data *sdata; sdata 833 net/mac80211/status.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 834 net/mac80211/status.c if (sdata->vif.type == NL80211_IFTYPE_MONITOR) { sdata 835 net/mac80211/status.c if (!ieee80211_sdata_running(sdata)) sdata 838 net/mac80211/status.c if ((sdata->u.mntr.flags & MONITOR_FLAG_COOK_FRAMES) && sdata 850 net/mac80211/status.c prev_dev = sdata->dev; sdata 887 net/mac80211/status.c shift = ieee80211_vif_get_shift(&sta->sdata->vif); sdata 895 net/mac80211/status.c if (ieee80211_vif_is_mesh(&sta->sdata->vif) && sdata 924 net/mac80211/status.c ieee80211_send_bar(&sta->sdata->vif, hdr->addr1, sdata 971 net/mac80211/status.c if (ieee80211_vif_is_mesh(&sta->sdata->vif)) sdata 977 net/mac80211/status.c if ((sta->sdata->vif.type == NL80211_IFTYPE_STATION) && sdata 979 net/mac80211/status.c ieee80211_sta_tx_notify(sta->sdata, (void *) skb->data, sdata 1083 net/mac80211/status.c if (!ether_addr_equal(hdr->addr2, sta->sdata->vif.addr)) sdata 1143 net/mac80211/status.c if (ieee80211_vif_is_mesh(&sta->sdata->vif)) sdata 1183 net/mac80211/status.c cfg80211_cqm_pktloss_notify(sta->sdata->dev, sta->sta.addr, sdata 26 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata; sdata 29 net/mac80211/tdls.c sdata = container_of(wk, struct ieee80211_sub_if_data, sdata 31 net/mac80211/tdls.c local = sdata->local; sdata 34 net/mac80211/tdls.c if (!is_zero_ether_addr(sdata->u.mgd.tdls_peer)) { sdata 35 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS del peer %pM\n", sdata->u.mgd.tdls_peer); sdata 36 net/mac80211/tdls.c sta_info_destroy_addr(sdata, sdata->u.mgd.tdls_peer); sdata 37 net/mac80211/tdls.c eth_zero_addr(sdata->u.mgd.tdls_peer); sdata 42 net/mac80211/tdls.c static void ieee80211_tdls_add_ext_capab(struct ieee80211_sub_if_data *sdata, sdata 45 net/mac80211/tdls.c struct ieee80211_local *local = sdata->local; sdata 46 net/mac80211/tdls.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 53 net/mac80211/tdls.c struct ieee80211_supported_band *sband = ieee80211_get_sband(sdata); sdata 71 net/mac80211/tdls.c ieee80211_tdls_add_subband(struct ieee80211_sub_if_data *sdata, sdata 79 net/mac80211/tdls.c struct wiphy *wiphy = sdata->local->hw.wiphy; sdata 85 net/mac80211/tdls.c ch = ieee80211_get_channel(sdata->local->hw.wiphy, i); sdata 91 net/mac80211/tdls.c sdata->wdev.iftype)) { sdata 128 net/mac80211/tdls.c ieee80211_tdls_add_supp_channels(struct ieee80211_sub_if_data *sdata, sdata 146 net/mac80211/tdls.c subband_cnt = ieee80211_tdls_add_subband(sdata, skb, 2412, 2472, 5); sdata 149 net/mac80211/tdls.c subband_cnt += ieee80211_tdls_add_subband(sdata, skb, 5000, 5825, 20); sdata 155 net/mac80211/tdls.c static void ieee80211_tdls_add_oper_classes(struct ieee80211_sub_if_data *sdata, sdata 161 net/mac80211/tdls.c if (!ieee80211_chandef_to_operating_class(&sdata->vif.bss_conf.chandef, sdata 183 net/mac80211/tdls.c static u16 ieee80211_get_tdls_sta_capab(struct ieee80211_sub_if_data *sdata, sdata 192 net/mac80211/tdls.c sband = ieee80211_get_sband(sdata); sdata 201 net/mac80211/tdls.c static void ieee80211_tdls_add_link_ie(struct ieee80211_sub_if_data *sdata, sdata 209 net/mac80211/tdls.c init_addr = sdata->vif.addr; sdata 213 net/mac80211/tdls.c rsp_addr = sdata->vif.addr; sdata 221 net/mac80211/tdls.c memcpy(lnkid->bssid, sdata->u.mgd.bssid, ETH_ALEN); sdata 227 net/mac80211/tdls.c ieee80211_tdls_add_aid(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) sdata 229 net/mac80211/tdls.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 272 net/mac80211/tdls.c static void ieee80211_tdls_add_wmm_param_ie(struct ieee80211_sub_if_data *sdata, sdata 297 net/mac80211/tdls.c txq = &sdata->tx_conf[ieee80211_ac_from_wmm(i)]; sdata 306 net/mac80211/tdls.c ieee80211_tdls_chandef_vht_upgrade(struct ieee80211_sub_if_data *sdata, sdata 345 net/mac80211/tdls.c !cfg80211_reg_can_beacon_relax(sdata->local->hw.wiphy, &uc, sdata 346 net/mac80211/tdls.c sdata->wdev.iftype))) sdata 350 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS ch width upgraded %d -> %d\n", sdata 362 net/mac80211/tdls.c ieee80211_tdls_add_setup_start_ies(struct ieee80211_sub_if_data *sdata, sdata 368 net/mac80211/tdls.c struct ieee80211_local *local = sdata->local; sdata 375 net/mac80211/tdls.c sband = ieee80211_get_sband(sdata); sdata 379 net/mac80211/tdls.c ieee80211_add_srates_ie(sdata, skb, false, sband->band); sdata 380 net/mac80211/tdls.c ieee80211_add_ext_srates_ie(sdata, skb, false, sband->band); sdata 381 net/mac80211/tdls.c ieee80211_tdls_add_supp_channels(sdata, skb); sdata 400 net/mac80211/tdls.c ieee80211_tdls_add_ext_capab(sdata, skb); sdata 433 net/mac80211/tdls.c sta = sta_info_get(sdata, peer); sdata 439 net/mac80211/tdls.c sta->tdls_chandef = sdata->vif.bss_conf.chandef; sdata 442 net/mac80211/tdls.c ieee80211_tdls_add_oper_classes(sdata, skb); sdata 454 net/mac80211/tdls.c ieee80211_apply_htcap_overrides(sdata, &ht_cap); sdata 475 net/mac80211/tdls.c ieee80211_tdls_add_link_ie(sdata, skb, peer, initiator); sdata 505 net/mac80211/tdls.c ieee80211_apply_vhtcap_overrides(sdata, &vht_cap); sdata 509 net/mac80211/tdls.c ieee80211_tdls_add_aid(sdata, skb); sdata 519 net/mac80211/tdls.c ieee80211_tdls_add_aid(sdata, skb); sdata 529 net/mac80211/tdls.c ieee80211_tdls_chandef_vht_upgrade(sdata, sta); sdata 543 net/mac80211/tdls.c ieee80211_tdls_add_setup_cfm_ies(struct ieee80211_sub_if_data *sdata, sdata 548 net/mac80211/tdls.c struct ieee80211_local *local = sdata->local; sdata 549 net/mac80211/tdls.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 555 net/mac80211/tdls.c sband = ieee80211_get_sband(sdata); sdata 561 net/mac80211/tdls.c sta = sta_info_get(sdata, peer); sdata 562 net/mac80211/tdls.c ap_sta = sta_info_get(sdata, ifmgd->bssid); sdata 568 net/mac80211/tdls.c sta->tdls_chandef = sdata->vif.bss_conf.chandef; sdata 585 net/mac80211/tdls.c ieee80211_tdls_add_wmm_param_ie(sdata, skb); sdata 614 net/mac80211/tdls.c &sdata->vif.bss_conf.chandef, prot, sdata 618 net/mac80211/tdls.c ieee80211_tdls_add_link_ie(sdata, skb, peer, initiator); sdata 628 net/mac80211/tdls.c ieee80211_tdls_chandef_vht_upgrade(sdata, sta); sdata 645 net/mac80211/tdls.c ieee80211_tdls_add_chan_switch_req_ies(struct ieee80211_sub_if_data *sdata, sdata 674 net/mac80211/tdls.c ieee80211_tdls_add_link_ie(sdata, skb, peer, initiator); sdata 684 net/mac80211/tdls.c ieee80211_tdls_add_chan_switch_resp_ies(struct ieee80211_sub_if_data *sdata, sdata 691 net/mac80211/tdls.c ieee80211_tdls_add_link_ie(sdata, skb, peer, initiator); sdata 697 net/mac80211/tdls.c static void ieee80211_tdls_add_ies(struct ieee80211_sub_if_data *sdata, sdata 709 net/mac80211/tdls.c ieee80211_tdls_add_setup_start_ies(sdata, skb, peer, sdata 717 net/mac80211/tdls.c ieee80211_tdls_add_setup_cfm_ies(sdata, skb, peer, sdata 726 net/mac80211/tdls.c ieee80211_tdls_add_link_ie(sdata, skb, peer, initiator); sdata 729 net/mac80211/tdls.c ieee80211_tdls_add_chan_switch_req_ies(sdata, skb, peer, sdata 735 net/mac80211/tdls.c ieee80211_tdls_add_chan_switch_resp_ies(sdata, skb, peer, sdata 749 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 755 net/mac80211/tdls.c memcpy(tf->sa, sdata->vif.addr, ETH_ALEN); sdata 770 net/mac80211/tdls.c cpu_to_le16(ieee80211_get_tdls_sta_capab(sdata, sdata 781 net/mac80211/tdls.c cpu_to_le16(ieee80211_get_tdls_sta_capab(sdata, sdata 831 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 836 net/mac80211/tdls.c memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); sdata 837 net/mac80211/tdls.c memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); sdata 851 net/mac80211/tdls.c cpu_to_le16(ieee80211_get_tdls_sta_capab(sdata, sdata 862 net/mac80211/tdls.c ieee80211_tdls_build_mgmt_packet_data(struct ieee80211_sub_if_data *sdata, sdata 869 net/mac80211/tdls.c struct ieee80211_local *local = sdata->local; sdata 873 net/mac80211/tdls.c skb = netdev_alloc_skb(sdata->dev, sdata 904 net/mac80211/tdls.c sdata->dev, peer, sdata 909 net/mac80211/tdls.c ret = ieee80211_prep_tdls_direct(local->hw.wiphy, sdata->dev, sdata 922 net/mac80211/tdls.c ieee80211_tdls_add_ies(sdata, skb, peer, action_code, status_code, sdata 940 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 947 net/mac80211/tdls.c sta = sta_info_get(sdata, peer); sdata 992 net/mac80211/tdls.c skb = ieee80211_tdls_build_mgmt_packet_data(sdata, peer, action_code, sdata 1003 net/mac80211/tdls.c ieee80211_tx_skb(sdata, skb); sdata 1020 net/mac80211/tdls.c skb_set_queue_mapping(skb, ieee80211_select_queue(sdata, skb)); sdata 1028 net/mac80211/tdls.c ieee80211_hw_check(&sdata->local->hw, REPORTS_TX_ACK_STATUS)) { sdata 1033 net/mac80211/tdls.c sta = sta_info_get(sdata, peer); sdata 1037 net/mac80211/tdls.c spin_lock_bh(&sdata->u.mgd.teardown_lock); sdata 1038 net/mac80211/tdls.c if (try_resend && !sdata->u.mgd.teardown_skb) { sdata 1050 net/mac80211/tdls.c sdata->u.mgd.teardown_skb = skb_copy(skb, GFP_ATOMIC); sdata 1051 net/mac80211/tdls.c sdata->u.mgd.orig_teardown_skb = skb; sdata 1053 net/mac80211/tdls.c spin_unlock_bh(&sdata->u.mgd.teardown_lock); sdata 1074 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1075 net/mac80211/tdls.c struct ieee80211_local *local = sdata->local; sdata 1076 net/mac80211/tdls.c enum ieee80211_smps_mode smps_mode = sdata->u.mgd.driver_smps_mode; sdata 1082 net/mac80211/tdls.c tdls_dbg(sdata, "Aborting TDLS setup due to SMPS mode %d\n", sdata 1090 net/mac80211/tdls.c if (!is_zero_ether_addr(sdata->u.mgd.tdls_peer) && sdata 1091 net/mac80211/tdls.c !ether_addr_equal(sdata->u.mgd.tdls_peer, peer)) { sdata 1105 net/mac80211/tdls.c if (!sta_info_get(sdata, peer)) { sdata 1113 net/mac80211/tdls.c ieee80211_flush_queues(local, sdata, false); sdata 1114 net/mac80211/tdls.c memcpy(sdata->u.mgd.tdls_peer, peer, ETH_ALEN); sdata 1125 net/mac80211/tdls.c eth_zero_addr(sdata->u.mgd.tdls_peer); sdata 1130 net/mac80211/tdls.c ieee80211_queue_delayed_work(&sdata->local->hw, sdata 1131 net/mac80211/tdls.c &sdata->u.mgd.tdls_peer_del_work, sdata 1147 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1148 net/mac80211/tdls.c struct ieee80211_local *local = sdata->local; sdata 1158 net/mac80211/tdls.c ieee80211_stop_vif_queues(local, sdata, sdata 1160 net/mac80211/tdls.c ieee80211_flush_queues(local, sdata, false); sdata 1168 net/mac80211/tdls.c sdata_err(sdata, "Failed sending TDLS teardown packet %d\n", sdata 1176 net/mac80211/tdls.c sta = sta_info_get(sdata, peer); sdata 1181 net/mac80211/tdls.c ieee80211_wake_vif_queues(local, sdata, sdata 1193 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1200 net/mac80211/tdls.c if (sdata->vif.type != NL80211_IFTYPE_STATION || sdata 1201 net/mac80211/tdls.c !sdata->u.mgd.associated) sdata 1225 net/mac80211/tdls.c drv_mgd_protect_tdls_discover(sdata->local, sdata); sdata 1243 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS mgmt action %d peer %pM status %d\n", sdata 1248 net/mac80211/tdls.c static void iee80211_tdls_recalc_chanctx(struct ieee80211_sub_if_data *sdata, sdata 1251 net/mac80211/tdls.c struct ieee80211_local *local = sdata->local; sdata 1258 net/mac80211/tdls.c conf = rcu_dereference_protected(sdata->vif.chanctx_conf, sdata 1290 net/mac80211/tdls.c static int iee80211_tdls_have_ht_peers(struct ieee80211_sub_if_data *sdata) sdata 1296 net/mac80211/tdls.c list_for_each_entry_rcu(sta, &sdata->local->sta_list, list) { sdata 1297 net/mac80211/tdls.c if (!sta->sta.tdls || sta->sdata != sdata || !sta->uploaded || sdata 1311 net/mac80211/tdls.c iee80211_tdls_recalc_ht_protection(struct ieee80211_sub_if_data *sdata, sdata 1314 net/mac80211/tdls.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 1326 net/mac80211/tdls.c iee80211_tdls_have_ht_peers(sdata); sdata 1328 net/mac80211/tdls.c opmode = sdata->vif.bss_conf.ht_operation_mode; sdata 1335 net/mac80211/tdls.c if (opmode == sdata->vif.bss_conf.ht_operation_mode) sdata 1338 net/mac80211/tdls.c sdata->vif.bss_conf.ht_operation_mode = opmode; sdata 1339 net/mac80211/tdls.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_HT); sdata 1346 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1347 net/mac80211/tdls.c struct ieee80211_local *local = sdata->local; sdata 1353 net/mac80211/tdls.c if (sdata->vif.type != NL80211_IFTYPE_STATION) sdata 1370 net/mac80211/tdls.c sdata_lock(sdata); sdata 1372 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS oper %d peer %pM\n", oper, peer); sdata 1376 net/mac80211/tdls.c if (sdata->vif.csa_active) { sdata 1377 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS: disallow link during CSA\n"); sdata 1383 net/mac80211/tdls.c sta = sta_info_get(sdata, peer); sdata 1390 net/mac80211/tdls.c iee80211_tdls_recalc_chanctx(sdata, sta); sdata 1391 net/mac80211/tdls.c iee80211_tdls_recalc_ht_protection(sdata, sta); sdata 1396 net/mac80211/tdls.c WARN_ON_ONCE(is_zero_ether_addr(sdata->u.mgd.tdls_peer) || sdata 1397 net/mac80211/tdls.c !ether_addr_equal(sdata->u.mgd.tdls_peer, peer)); sdata 1413 net/mac80211/tdls.c ieee80211_flush_queues(local, sdata, false); sdata 1415 net/mac80211/tdls.c ret = sta_info_destroy_addr(sdata, peer); sdata 1418 net/mac80211/tdls.c iee80211_tdls_recalc_ht_protection(sdata, NULL); sdata 1421 net/mac80211/tdls.c iee80211_tdls_recalc_chanctx(sdata, NULL); sdata 1428 net/mac80211/tdls.c if (ret == 0 && ether_addr_equal(sdata->u.mgd.tdls_peer, peer)) { sdata 1429 net/mac80211/tdls.c cancel_delayed_work(&sdata->u.mgd.tdls_peer_del_work); sdata 1430 net/mac80211/tdls.c eth_zero_addr(sdata->u.mgd.tdls_peer); sdata 1434 net/mac80211/tdls.c ieee80211_queue_work(&sdata->local->hw, sdata 1435 net/mac80211/tdls.c &sdata->u.mgd.request_smps_work); sdata 1438 net/mac80211/tdls.c sdata_unlock(sdata); sdata 1446 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 1449 net/mac80211/tdls.c sdata_err(sdata, "Discarding TDLS oper %d - not STA or disconnected\n", sdata 1454 net/mac80211/tdls.c cfg80211_tdls_oper_request(sdata->dev, peer, oper, reason_code, gfp); sdata 1494 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 1526 net/mac80211/tdls.c skb = ieee80211_tdls_build_mgmt_packet_data(sdata, sta->sta.addr, sdata 1534 net/mac80211/tdls.c skb = ieee80211_build_data_template(sdata, skb, 0); sdata 1536 net/mac80211/tdls.c tdls_dbg(sdata, "Failed building TDLS channel switch frame\n"); sdata 1544 net/mac80211/tdls.c tdls_dbg(sdata, "No switch timing IE in TDLS switch\n"); sdata 1552 net/mac80211/tdls.c tdls_dbg(sdata, sdata 1563 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1564 net/mac80211/tdls.c struct ieee80211_local *local = sdata->local; sdata 1571 net/mac80211/tdls.c sta = sta_info_get(sdata, addr); sdata 1573 net/mac80211/tdls.c tdls_dbg(sdata, sdata 1581 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS channel switch unsupported by %pM\n", sdata 1594 net/mac80211/tdls.c ret = drv_tdls_channel_switch(local, sdata, &sta->sta, oper_class, sdata 1610 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 1611 net/mac80211/tdls.c struct ieee80211_local *local = sdata->local; sdata 1615 net/mac80211/tdls.c sta = sta_info_get(sdata, addr); sdata 1617 net/mac80211/tdls.c tdls_dbg(sdata, sdata 1624 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS channel switch not initiated by %pM\n", sdata 1629 net/mac80211/tdls.c drv_tdls_cancel_channel_switch(local, sdata, &sta->sta); sdata 1640 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 1647 net/mac80211/tdls.c skb = ieee80211_tdls_build_mgmt_packet_data(sdata, sta->sta.addr, sdata 1654 net/mac80211/tdls.c skb = ieee80211_build_data_template(sdata, skb, 0); sdata 1656 net/mac80211/tdls.c tdls_dbg(sdata, sdata 1665 net/mac80211/tdls.c tdls_dbg(sdata, sdata 1674 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS get channel switch response template for %pM\n", sdata 1680 net/mac80211/tdls.c ieee80211_process_tdls_channel_switch_resp(struct ieee80211_sub_if_data *sdata, sdata 1683 net/mac80211/tdls.c struct ieee80211_local *local = sdata->local; sdata 1697 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS channel switch resp too short: %d\n", sdata 1703 net/mac80211/tdls.c sta = sta_info_get(sdata, tf->sa); sdata 1705 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS chan switch from non-peer sta %pM\n", sdata 1722 net/mac80211/tdls.c tdls_dbg(sdata, "Invalid IEs in TDLS channel switch resp\n"); sdata 1728 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS channel switch resp - missing IEs\n"); sdata 1735 net/mac80211/tdls.c !memcmp(elems.lnk_id->init_sta, sdata->vif.addr, ETH_ALEN); sdata 1737 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS chan switch invalid lnk-id initiator\n"); sdata 1754 net/mac80211/tdls.c drv_tdls_recv_channel_switch(sdata->local, sdata, ¶ms); sdata 1756 net/mac80211/tdls.c tdls_dbg(sdata, sdata 1767 net/mac80211/tdls.c ieee80211_process_tdls_channel_switch_req(struct ieee80211_sub_if_data *sdata, sdata 1770 net/mac80211/tdls.c struct ieee80211_local *local = sdata->local; sdata 1790 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS channel switch req too short: %d\n", sdata 1818 net/mac80211/tdls.c tdls_dbg(sdata, "Invalid channel in TDLS chan switch: %d\n", sdata 1823 net/mac80211/tdls.c chan = ieee80211_get_channel(sdata->local->hw.wiphy, freq); sdata 1825 net/mac80211/tdls.c tdls_dbg(sdata, sdata 1834 net/mac80211/tdls.c tdls_dbg(sdata, "Invalid IEs in TDLS channel switch req\n"); sdata 1839 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS channel switch req - missing IEs\n"); sdata 1862 net/mac80211/tdls.c if (!cfg80211_reg_can_beacon_relax(sdata->local->hw.wiphy, &chandef, sdata 1863 net/mac80211/tdls.c sdata->wdev.iftype)) { sdata 1864 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS chan switch to forbidden channel\n"); sdata 1869 net/mac80211/tdls.c sta = sta_info_get(sdata, tf->sa); sdata 1871 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS chan switch from non-peer sta %pM\n", sdata 1881 net/mac80211/tdls.c !memcmp(elems.lnk_id->init_sta, sdata->vif.addr, ETH_ALEN); sdata 1883 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS chan switch invalid lnk-id initiator\n"); sdata 1891 net/mac80211/tdls.c tdls_dbg(sdata, "TDLS chan switch - wide chan unsupported\n"); sdata 1908 net/mac80211/tdls.c drv_tdls_recv_channel_switch(sdata->local, sdata, ¶ms); sdata 1910 net/mac80211/tdls.c tdls_dbg(sdata, sdata 1921 net/mac80211/tdls.c ieee80211_process_tdls_channel_switch(struct ieee80211_sub_if_data *sdata, sdata 1925 net/mac80211/tdls.c struct wiphy *wiphy = sdata->local->hw.wiphy; sdata 1942 net/mac80211/tdls.c ieee80211_process_tdls_channel_switch_req(sdata, skb); sdata 1945 net/mac80211/tdls.c ieee80211_process_tdls_channel_switch_resp(sdata, skb); sdata 1953 net/mac80211/tdls.c void ieee80211_teardown_tdls_peers(struct ieee80211_sub_if_data *sdata) sdata 1959 net/mac80211/tdls.c list_for_each_entry_rcu(sta, &sdata->local->sta_list, list) { sdata 1960 net/mac80211/tdls.c if (!sta->sta.tdls || sta->sdata != sdata || !sta->uploaded || sdata 1964 net/mac80211/tdls.c ieee80211_tdls_oper_request(&sdata->vif, sta->sta.addr, sdata 1975 net/mac80211/tdls.c struct ieee80211_sub_if_data *sdata; sdata 1982 net/mac80211/tdls.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 1983 net/mac80211/tdls.c if (!ieee80211_sdata_running(sdata) || sdata 1984 net/mac80211/tdls.c sdata->vif.type != NL80211_IFTYPE_STATION || sdata 1985 net/mac80211/tdls.c !ether_addr_equal(tf->da, sdata->vif.addr)) sdata 1988 net/mac80211/tdls.c ieee80211_process_tdls_channel_switch(sdata, skb); sdata 1997 net/mac80211/tdls.c void ieee80211_tdls_handle_disconnect(struct ieee80211_sub_if_data *sdata, sdata 2003 net/mac80211/tdls.c sta = ieee80211_find_sta(&sdata->vif, peer); sdata 2010 net/mac80211/tdls.c tdls_dbg(sdata, "disconnected from TDLS peer %pM (Reason: %u=%s)\n", sdata 2014 net/mac80211/tdls.c ieee80211_tdls_oper_request(&sdata->vif, peer, sdata 154 net/mac80211/tkip.c struct ieee80211_sub_if_data *sdata = key->sdata; sdata 168 net/mac80211/tkip.c tkip_mixing_phase1(tk, ctx, sdata->vif.addr, iv32); sdata 297 net/mac80211/tkip.c struct ieee80211_sub_if_data *sdata = key->sdata; sdata 299 net/mac80211/tkip.c if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 300 net/mac80211/tkip.c sdata = container_of(key->sdata->bss, sdata 302 net/mac80211/tkip.c drv_update_tkip_key(key->local, sdata, &key->conf, key->sta, sdata 30 net/mac80211/trace.h #define VIF_ENTRY __field(enum nl80211_iftype, vif_type) __field(void *, sdata) \ sdata 32 net/mac80211/trace.h __string(vif_name, sdata->name) sdata 33 net/mac80211/trace.h #define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \ sdata 34 net/mac80211/trace.h __entry->p2p = sdata->vif.p2p; \ sdata 35 net/mac80211/trace.h __assign_str(vif_name, sdata->name) sdata 129 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 130 net/mac80211/trace.h TP_ARGS(local, sdata), sdata 141 net/mac80211/trace.h memcpy(__entry->addr, sdata->vif.addr, ETH_ALEN); sdata 172 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 173 net/mac80211/trace.h TP_ARGS(local, sdata), sdata 304 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 305 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 310 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 313 net/mac80211/trace.h TP_ARGS(local, sdata, type, p2p), sdata 338 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 339 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 384 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 388 net/mac80211/trace.h TP_ARGS(local, sdata, info, changed), sdata 526 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 530 net/mac80211/trace.h TP_ARGS(local, sdata, filter_flags, changed_flags), sdata 580 net/mac80211/trace.h enum set_key_cmd cmd, struct ieee80211_sub_if_data *sdata, sdata 584 net/mac80211/trace.h TP_ARGS(local, cmd, sdata, sta, key), sdata 608 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 612 net/mac80211/trace.h TP_ARGS(local, sdata, conf, sta, iv32), sdata 636 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 637 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 642 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 643 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 648 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 649 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 654 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 655 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 660 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 663 net/mac80211/trace.h TP_ARGS(local, sdata, mac_addr), sdata 683 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 684 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 773 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 777 net/mac80211/trace.h TP_ARGS(local, sdata, cmd, sta), sdata 801 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 806 net/mac80211/trace.h TP_ARGS(local, sdata, sta, old_state, new_state), sdata 833 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 836 net/mac80211/trace.h TP_ARGS(local, sdata, sta), sdata 863 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 867 net/mac80211/trace.h TP_ARGS(local, sdata, sta, changed), sdata 891 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 894 net/mac80211/trace.h TP_ARGS(local, sdata, sta), sdata 916 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 918 net/mac80211/trace.h TP_ARGS(local, sdata, sta) sdata 923 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 925 net/mac80211/trace.h TP_ARGS(local, sdata, sta) sdata 930 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 932 net/mac80211/trace.h TP_ARGS(local, sdata, sta) sdata 937 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 939 net/mac80211/trace.h TP_ARGS(local, sdata, sta) sdata 944 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 946 net/mac80211/trace.h TP_ARGS(local, sdata, sta) sdata 951 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 953 net/mac80211/trace.h TP_ARGS(local, sdata, sta) sdata 958 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 961 net/mac80211/trace.h TP_ARGS(local, sdata, ac, params), sdata 993 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 994 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 999 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1002 net/mac80211/trace.h TP_ARGS(local, sdata, tsf), sdata 1024 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1027 net/mac80211/trace.h TP_ARGS(local, sdata, offset), sdata 1050 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 1051 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 1061 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1064 net/mac80211/trace.h TP_ARGS(local, sdata, params), sdata 1132 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1135 net/mac80211/trace.h TP_ARGS(local, sdata, ch_switch), sdata 1215 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1220 net/mac80211/trace.h TP_ARGS(local, sdata, chan, duration, type), sdata 1247 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 1248 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 1315 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1318 net/mac80211/trace.h TP_ARGS(local, sdata, mask), sdata 1342 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1345 net/mac80211/trace.h TP_ARGS(local, sdata, data), sdata 1370 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1373 net/mac80211/trace.h TP_ARGS(local, sdata, _event), sdata 1450 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1453 net/mac80211/trace.h TP_ARGS(local, sdata, duration), sdata 1475 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 1477 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 1587 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata; sdata 1589 net/mac80211/trace.h sdata = container_of(vifs[i].vif, sdata 1596 net/mac80211/trace.h sdata->name, sdata 1626 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1629 net/mac80211/trace.h TP_ARGS(local, sdata, ctx), sdata 1651 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1653 net/mac80211/trace.h TP_ARGS(local, sdata, ctx) sdata 1658 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1660 net/mac80211/trace.h TP_ARGS(local, sdata, ctx) sdata 1665 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1668 net/mac80211/trace.h TP_ARGS(local, sdata, info), sdata 1696 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 1697 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 1725 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 1726 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 1732 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1735 net/mac80211/trace.h TP_ARGS(local, sdata, info), sdata 1761 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 1762 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 1785 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1788 net/mac80211/trace.h TP_ARGS(local, sdata, conf), sdata 1813 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 1815 net/mac80211/trace.h TP_ARGS(local, sdata), sdata 1835 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1839 net/mac80211/trace.h TP_ARGS(local, sdata, conf, changes), sdata 1866 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1869 net/mac80211/trace.h TP_ARGS(local, sdata, func), sdata 1893 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 1896 net/mac80211/trace.h TP_ARGS(local, sdata, instance_id), sdata 1918 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 1919 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 1924 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 1925 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 1954 net/mac80211/trace.h TP_PROTO(struct ieee80211_sub_if_data *sdata, const u8 *ra, u16 tid), sdata 1956 net/mac80211/trace.h TP_ARGS(sdata, ra, tid), sdata 1998 net/mac80211/trace.h TP_PROTO(struct ieee80211_sub_if_data *sdata, const u8 *ra, u16 tid), sdata 2000 net/mac80211/trace.h TP_ARGS(sdata, ra, tid), sdata 2026 net/mac80211/trace.h TP_PROTO(struct ieee80211_sub_if_data *sdata), sdata 2028 net/mac80211/trace.h TP_ARGS(sdata), sdata 2045 net/mac80211/trace.h TP_PROTO(struct ieee80211_sub_if_data *sdata), sdata 2047 net/mac80211/trace.h TP_ARGS(sdata), sdata 2064 net/mac80211/trace.h TP_PROTO(struct ieee80211_sub_if_data *sdata, sdata 2068 net/mac80211/trace.h TP_ARGS(sdata, rssi_event, rssi_level), sdata 2090 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 2091 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 2176 net/mac80211/trace.h TP_PROTO(struct ieee80211_sub_if_data *sdata, bool success), sdata 2178 net/mac80211/trace.h TP_ARGS(sdata, success), sdata 2207 net/mac80211/trace.h TP_PROTO(struct ieee80211_sub_if_data *sdata, sdata 2210 net/mac80211/trace.h TP_ARGS(sdata, bssid, replay_ctr), sdata 2228 net/mac80211/trace.h TP_PROTO(struct ieee80211_sub_if_data *sdata, sdata 2231 net/mac80211/trace.h TP_ARGS(sdata, rssi_min_thold, rssi_max_thold), sdata 2380 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 2383 net/mac80211/trace.h TP_ARGS(local, sdata, key_idx), sdata 2422 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 2425 net/mac80211/trace.h TP_ARGS(local, sdata, chandef), sdata 2447 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 2450 net/mac80211/trace.h TP_ARGS(local, sdata, ch_switch), sdata 2482 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 2483 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 2488 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata), sdata 2489 net/mac80211/trace.h TP_ARGS(local, sdata) sdata 2494 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 2497 net/mac80211/trace.h TP_ARGS(local, sdata, ch_switch), sdata 2530 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 2533 net/mac80211/trace.h TP_ARGS(local, sdata, dbm, ret), sdata 2557 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 2561 net/mac80211/trace.h TP_ARGS(local, sdata, sta, oper_class, chandef), sdata 2589 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 2592 net/mac80211/trace.h TP_ARGS(local, sdata, sta), sdata 2615 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 2618 net/mac80211/trace.h TP_ARGS(local, sdata, params), sdata 2659 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 2662 net/mac80211/trace.h TP_ARGS(local, sdata, txq), sdata 2690 net/mac80211/trace.h struct ieee80211_sub_if_data *sdata, sdata 2693 net/mac80211/trace.h TP_ARGS(local, sdata, ftm_stats), sdata 69 net/mac80211/tx.c chanctx_conf = rcu_dereference(tx->sdata->vif.chanctx_conf); sdata 150 net/mac80211/tx.c if (tx->sdata->vif.bss_conf.basic_rates & BIT(i)) sdata 156 net/mac80211/tx.c if (tx->sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) sdata 191 net/mac80211/tx.c tx->sdata->vif.bss_conf.use_short_preamble, sdata 201 net/mac80211/tx.c tx->sdata->vif.bss_conf.use_short_preamble, sdata 240 net/mac80211/tx.c if (tx->sdata->vif.type != NL80211_IFTYPE_STATION) sdata 246 net/mac80211/tx.c ifmgd = &tx->sdata->u.mgd; sdata 298 net/mac80211/tx.c test_bit(SDATA_STATE_OFFCHANNEL, &tx->sdata->state) && sdata 314 net/mac80211/tx.c if (tx->sdata->vif.type == NL80211_IFTYPE_OCB) sdata 317 net/mac80211/tx.c if (tx->sdata->vif.type == NL80211_IFTYPE_WDS) sdata 330 net/mac80211/tx.c sdata_info(tx->sdata, sdata 338 net/mac80211/tx.c ieee80211_vif_get_num_mcast_if(tx->sdata) == 0)) { sdata 357 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata; sdata 360 net/mac80211/tx.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 363 net/mac80211/tx.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 364 net/mac80211/tx.c ps = &sdata->u.ap.ps; sdata 365 net/mac80211/tx.c else if (ieee80211_vif_is_mesh(&sdata->vif)) sdata 366 net/mac80211/tx.c ps = &sdata->u.mesh.ps; sdata 416 net/mac80211/tx.c if (tx->sdata->vif.type == NL80211_IFTYPE_AP || sdata 417 net/mac80211/tx.c tx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { sdata 418 net/mac80211/tx.c if (!tx->sdata->bss) sdata 421 net/mac80211/tx.c ps = &tx->sdata->bss->ps; sdata 422 net/mac80211/tx.c } else if (ieee80211_vif_is_mesh(&tx->sdata->vif)) { sdata 423 net/mac80211/tx.c ps = &tx->sdata->u.mesh.ps; sdata 437 net/mac80211/tx.c info->hw_queue = tx->sdata->vif.cab_queue; sdata 454 net/mac80211/tx.c ps_dbg(tx->sdata, sdata 503 net/mac80211/tx.c ps_dbg(sta->sdata, "STA %pM aid %d: PS buffer for AC %d\n", sdata 524 net/mac80211/tx.c ps_dbg(tx->sdata, sdata 532 net/mac80211/tx.c info->control.vif = &tx->sdata->vif; sdata 551 net/mac80211/tx.c ps_dbg(tx->sdata, sdata 576 net/mac80211/tx.c if (unlikely(tx->sdata->control_port_protocol == tx->skb->protocol)) { sdata 577 net/mac80211/tx.c if (tx->sdata->control_port_no_encrypt) sdata 602 net/mac80211/tx.c (key = rcu_dereference(tx->sdata->default_multicast_key))) sdata 607 net/mac80211/tx.c (key = rcu_dereference(tx->sdata->default_mgmt_key))) sdata 610 net/mac80211/tx.c (key = rcu_dereference(tx->sdata->default_multicast_key))) sdata 613 net/mac80211/tx.c (key = rcu_dereference(tx->sdata->default_unicast_key))) sdata 689 net/mac80211/tx.c txrc.bss_conf = &tx->sdata->vif.bss_conf; sdata 692 net/mac80211/tx.c txrc.rate_idx_mask = tx->sdata->rc_rateidx_mask[info->band]; sdata 694 net/mac80211/tx.c if (tx->sdata->rc_has_mcs_mask[info->band]) sdata 696 net/mac80211/tx.c tx->sdata->rc_rateidx_mcs_mask[info->band]; sdata 698 net/mac80211/tx.c txrc.bss = (tx->sdata->vif.type == NL80211_IFTYPE_AP || sdata 699 net/mac80211/tx.c tx->sdata->vif.type == NL80211_IFTYPE_MESH_POINT || sdata 700 net/mac80211/tx.c tx->sdata->vif.type == NL80211_IFTYPE_ADHOC || sdata 701 net/mac80211/tx.c tx->sdata->vif.type == NL80211_IFTYPE_OCB); sdata 709 net/mac80211/tx.c info->control.use_cts_prot = tx->sdata->vif.bss_conf.use_cts_prot; sdata 717 net/mac80211/tx.c if (tx->sdata->vif.bss_conf.use_short_preamble && sdata 740 net/mac80211/tx.c tx->sdata->name, hdr->addr1, sdata 748 net/mac80211/tx.c rate_control_get_rate(tx->sdata, tx->sta, &txrc); sdata 840 net/mac80211/tx.c hdr->seq_ctrl = cpu_to_le16(tx->sdata->sequence_number); sdata 841 net/mac80211/tx.c tx->sdata->sequence_number += 0x10; sdata 888 net/mac80211/tx.c tx->sdata->encrypt_headroom + sdata 896 net/mac80211/tx.c local->tx_headroom + tx->sdata->encrypt_headroom); sdata 1130 net/mac80211/tx.c ps_dbg(tx->sta->sdata, sdata 1134 net/mac80211/tx.c info->control.vif = &tx->sdata->vif; sdata 1160 net/mac80211/tx.c ieee80211_tx_prepare(struct ieee80211_sub_if_data *sdata, sdata 1164 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 1172 net/mac80211/tx.c tx->sdata = sdata; sdata 1188 net/mac80211/tx.c if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { sdata 1189 net/mac80211/tx.c tx->sta = rcu_dereference(sdata->u.vlan.sta); sdata 1190 net/mac80211/tx.c if (!tx->sta && sdata->wdev.use_4addr) sdata 1194 net/mac80211/tx.c tx->sdata->control_port_protocol == tx->skb->protocol) { sdata 1195 net/mac80211/tx.c tx->sta = sta_info_get_bss(sdata, hdr->addr1); sdata 1198 net/mac80211/tx.c tx->sta = sta_info_get(sdata, hdr->addr1); sdata 1426 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata) sdata 1433 net/mac80211/tx.c if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_AP_VLAN)) sdata 1436 net/mac80211/tx.c ap = container_of(sdata->bss, struct ieee80211_sub_if_data, u.ap); sdata 1445 net/mac80211/tx.c fq_tin_filter(fq, tin, fq_vlan_filter_func, &sdata->vif, sdata 1450 net/mac80211/tx.c void ieee80211_txq_init(struct ieee80211_sub_if_data *sdata, sdata 1461 net/mac80211/tx.c txqi->txq.vif = &sdata->vif; sdata 1464 net/mac80211/tx.c sdata->vif.txq = &txqi->txq; sdata 1472 net/mac80211/tx.c if (sdata->vif.type == NL80211_IFTYPE_STATION) { sdata 1474 net/mac80211/tx.c if (!ieee80211_hw_check(&sdata->local->hw, sdata 1477 net/mac80211/tx.c } else if (!ieee80211_hw_check(&sdata->local->hw, sdata 1596 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata, sdata 1604 net/mac80211/tx.c sdata->vif.type == NL80211_IFTYPE_MONITOR) sdata 1607 net/mac80211/tx.c if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 1608 net/mac80211/tx.c sdata = container_of(sdata->bss, sdata 1611 net/mac80211/tx.c vif = &sdata->vif; sdata 1705 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata; sdata 1718 net/mac80211/tx.c sdata = vif_to_sdata(info->control.vif); sdata 1727 net/mac80211/tx.c switch (sdata->vif.type) { sdata 1729 net/mac80211/tx.c if (sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE) { sdata 1730 net/mac80211/tx.c vif = &sdata->vif; sdata 1733 net/mac80211/tx.c sdata = rcu_dereference(local->monitor_sdata); sdata 1734 net/mac80211/tx.c if (sdata) { sdata 1735 net/mac80211/tx.c vif = &sdata->vif; sdata 1745 net/mac80211/tx.c sdata = container_of(sdata->bss, sdata 1749 net/mac80211/tx.c vif = &sdata->vif; sdata 1860 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 1865 net/mac80211/tx.c if (ieee80211_tx_prepare(sdata, &tx, NULL, skb) == TX_DROP) sdata 1897 net/mac80211/tx.c static bool ieee80211_tx(struct ieee80211_sub_if_data *sdata, sdata 1901 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 1915 net/mac80211/tx.c res_prepare = ieee80211_tx_prepare(sdata, &tx, sta, skb); sdata 1930 net/mac80211/tx.c sdata->vif.hw_queue[skb_get_queue_mapping(skb)]; sdata 1935 net/mac80211/tx.c if (ieee80211_queue_skb(local, sdata, tx.sta, tx.skb)) sdata 1947 net/mac80211/tx.c static int ieee80211_skb_resize(struct ieee80211_sub_if_data *sdata, sdata 1951 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 1958 net/mac80211/tx.c (sdata->crypto_tx_tailroom_needed_cnt || sdata 1985 net/mac80211/tx.c void ieee80211_xmit(struct ieee80211_sub_if_data *sdata, sdata 1989 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 1999 net/mac80211/tx.c headroom += sdata->encrypt_headroom; sdata 2003 net/mac80211/tx.c if (ieee80211_skb_resize(sdata, skb, headroom, may_encrypt)) { sdata 2009 net/mac80211/tx.c info->control.vif = &sdata->vif; sdata 2011 net/mac80211/tx.c if (ieee80211_vif_is_mesh(&sdata->vif)) { sdata 2014 net/mac80211/tx.c if (mesh_nexthop_resolve(sdata, skb)) sdata 2017 net/mac80211/tx.c ieee80211_mps_set_frame_flags(sdata, NULL, hdr); sdata 2021 net/mac80211/tx.c ieee80211_set_qos_hdr(sdata, skb); sdata 2022 net/mac80211/tx.c ieee80211_tx(sdata, sta, skb, false, txdata_flags); sdata 2216 net/mac80211/tx.c struct ieee80211_sub_if_data *tmp_sdata, *sdata; sdata 2296 net/mac80211/tx.c sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 2306 net/mac80211/tx.c sdata = tmp_sdata; sdata 2311 net/mac80211/tx.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 2343 net/mac80211/tx.c sdata->vif.type)) sdata 2352 net/mac80211/tx.c ieee80211_xmit(sdata, NULL, skb, 0); sdata 2373 net/mac80211/tx.c static int ieee80211_lookup_ra_sta(struct ieee80211_sub_if_data *sdata, sdata 2379 net/mac80211/tx.c switch (sdata->vif.type) { sdata 2381 net/mac80211/tx.c sta = rcu_dereference(sdata->u.vlan.sta); sdata 2385 net/mac80211/tx.c } else if (sdata->wdev.use_4addr) { sdata 2396 net/mac80211/tx.c sta = sta_info_get_bss(sdata, skb->data); sdata 2399 net/mac80211/tx.c sta = sta_info_get(sdata, sdata->u.wds.remote_addr); sdata 2408 net/mac80211/tx.c if (sdata->wdev.wiphy->flags & WIPHY_FLAG_SUPPORTS_TDLS) { sdata 2409 net/mac80211/tx.c sta = sta_info_get(sdata, skb->data); sdata 2430 net/mac80211/tx.c sta = sta_info_get(sdata, sdata->u.mgd.bssid); sdata 2461 net/mac80211/tx.c static struct sk_buff *ieee80211_build_hdr(struct ieee80211_sub_if_data *sdata, sdata 2465 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 2497 net/mac80211/tx.c switch (sdata->vif.type) { sdata 2499 net/mac80211/tx.c if (sdata->wdev.use_4addr) { sdata 2503 net/mac80211/tx.c memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); sdata 2510 net/mac80211/tx.c ap_sdata = container_of(sdata->bss, struct ieee80211_sub_if_data, sdata 2518 net/mac80211/tx.c if (sdata->wdev.use_4addr) sdata 2522 net/mac80211/tx.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 2523 net/mac80211/tx.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 2531 net/mac80211/tx.c memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); sdata 2539 net/mac80211/tx.c memcpy(hdr.addr1, sdata->u.wds.remote_addr, ETH_ALEN); sdata 2540 net/mac80211/tx.c memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); sdata 2556 net/mac80211/tx.c mpath = mesh_path_lookup(sdata, skb->data); sdata 2567 net/mac80211/tx.c mppath = mpp_path_lookup(sdata, skb->data); sdata 2573 net/mac80211/tx.c mesh_path_del(sdata, mpath->dst); sdata 2582 net/mac80211/tx.c if (ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN) && sdata 2586 net/mac80211/tx.c meshhdrlen = ieee80211_new_mesh_header(sdata, &mesh_hdr, sdata 2603 net/mac80211/tx.c mesh_da, sdata->vif.addr); sdata 2607 net/mac80211/tx.c sdata, &mesh_hdr, sdata 2612 net/mac80211/tx.c sdata, &mesh_hdr, skb->data, sdata 2616 net/mac80211/tx.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 2639 net/mac80211/tx.c memcpy(hdr.addr3, sdata->u.mgd.bssid, ETH_ALEN); sdata 2641 net/mac80211/tx.c } else if (sdata->u.mgd.use_4addr && sdata 2642 net/mac80211/tx.c cpu_to_be16(ethertype) != sdata->control_port_protocol) { sdata 2646 net/mac80211/tx.c memcpy(hdr.addr1, sdata->u.mgd.bssid, ETH_ALEN); sdata 2647 net/mac80211/tx.c memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); sdata 2654 net/mac80211/tx.c memcpy(hdr.addr1, sdata->u.mgd.bssid, ETH_ALEN); sdata 2659 net/mac80211/tx.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 2672 net/mac80211/tx.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 2683 net/mac80211/tx.c memcpy(hdr.addr3, sdata->u.ibss.bssid, ETH_ALEN); sdata 2685 net/mac80211/tx.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 2703 net/mac80211/tx.c } else if (ieee80211_vif_is_mesh(&sdata->vif)) { sdata 2718 net/mac80211/tx.c if (unlikely(!ieee80211_vif_is_mesh(&sdata->vif) && sdata 2719 net/mac80211/tx.c (sdata->vif.type != NL80211_IFTYPE_OCB) && sdata 2721 net/mac80211/tx.c (cpu_to_be16(ethertype) != sdata->control_port_protocol || sdata 2722 net/mac80211/tx.c !ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN)))) { sdata 2725 net/mac80211/tx.c sdata->name, hdr.addr1); sdata 2808 net/mac80211/tx.c head_need += sdata->encrypt_headroom; sdata 2811 net/mac80211/tx.c if (ieee80211_skb_resize(sdata, skb, head_need, true)) { sdata 2880 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 2903 net/mac80211/tx.c sdata->vif.type == NL80211_IFTYPE_STATION) sdata 2915 net/mac80211/tx.c if (sdata->noack_map) sdata 2924 net/mac80211/tx.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 2934 net/mac80211/tx.c switch (sdata->vif.type) { sdata 2939 net/mac80211/tx.c memcpy(hdr->addr3, sdata->u.ibss.bssid, ETH_ALEN); sdata 2947 net/mac80211/tx.c memcpy(hdr->addr3, sdata->u.mgd.bssid, ETH_ALEN); sdata 2952 net/mac80211/tx.c if (sdata->u.mgd.use_4addr) { sdata 2957 net/mac80211/tx.c memcpy(hdr->addr1, sdata->u.mgd.bssid, ETH_ALEN); sdata 2958 net/mac80211/tx.c memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); sdata 2966 net/mac80211/tx.c memcpy(hdr->addr1, sdata->u.mgd.bssid, ETH_ALEN); sdata 2972 net/mac80211/tx.c if (sdata->wdev.use_4addr) { sdata 2977 net/mac80211/tx.c memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); sdata 2988 net/mac80211/tx.c memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); sdata 3009 net/mac80211/tx.c build.key = rcu_access_pointer(sdata->default_unicast_key); sdata 3114 net/mac80211/tx.c void ieee80211_check_fast_xmit_iface(struct ieee80211_sub_if_data *sdata) sdata 3116 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 3122 net/mac80211/tx.c if (sdata != sta->sdata && sdata 3123 net/mac80211/tx.c (!sta->sdata->bss || sta->sdata->bss != sdata->bss)) sdata 3161 net/mac80211/tx.c static bool ieee80211_amsdu_prepare_head(struct ieee80211_sub_if_data *sdata, sdata 3165 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 3200 net/mac80211/tx.c switch (sdata->vif.type) { sdata 3202 net/mac80211/tx.c bssid = sdata->u.mgd.bssid; sdata 3206 net/mac80211/tx.c bssid = sdata->vif.addr; sdata 3226 net/mac80211/tx.c static bool ieee80211_amsdu_aggregate(struct ieee80211_sub_if_data *sdata, sdata 3231 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 3312 net/mac80211/tx.c if (!ieee80211_amsdu_prepare_head(sdata, fast_tx, head)) sdata 3363 net/mac80211/tx.c static void ieee80211_xmit_fast_finish(struct ieee80211_sub_if_data *sdata, sdata 3382 net/mac80211/tx.c hdr->seq_ctrl = cpu_to_le16(sdata->sequence_number); sdata 3383 net/mac80211/tx.c sdata->sequence_number += 0x10; sdata 3392 net/mac80211/tx.c info->hw_queue = sdata->vif.hw_queue[skb_get_queue_mapping(skb)]; sdata 3422 net/mac80211/tx.c static bool ieee80211_xmit_fast(struct ieee80211_sub_if_data *sdata, sdata 3427 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 3430 net/mac80211/tx.c int hw_headroom = sdata->local->hw.extra_tx_headroom; sdata 3440 net/mac80211/tx.c if (cpu_to_be16(ethertype) == sdata->control_port_protocol) sdata 3475 net/mac80211/tx.c ieee80211_amsdu_aggregate(sdata, sta, fast_tx, skb)) sdata 3482 net/mac80211/tx.c if (unlikely(ieee80211_skb_resize(sdata, skb, sdata 3499 net/mac80211/tx.c info->control.vif = &sdata->vif; sdata 3519 net/mac80211/tx.c tx.sdata = sdata; sdata 3536 net/mac80211/tx.c if (ieee80211_queue_skb(local, sdata, sta, skb)) sdata 3539 net/mac80211/tx.c ieee80211_xmit_fast_finish(sdata, sta, fast_tx->pn_offs, sdata 3542 net/mac80211/tx.c if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata 3543 net/mac80211/tx.c sdata = container_of(sdata->bss, sdata 3547 net/mac80211/tx.c ieee80211_tx_frags(local, &sdata->vif, &sta->sta, &tx.skbs, false); sdata 3597 net/mac80211/tx.c tx.sdata = vif_to_sdata(info->control.vif); sdata 3606 net/mac80211/tx.c !ieee80211_vif_is_mesh(&tx.sdata->vif) && sdata 3607 net/mac80211/tx.c tx.sdata->vif.type != NL80211_IFTYPE_OCB && sdata 3612 net/mac80211/tx.c !ether_addr_equal(tx.sdata->vif.addr, sdata 3644 net/mac80211/tx.c ieee80211_xmit_fast_finish(sta->sdata, sta, pn_offs, sdata 3667 net/mac80211/tx.c switch (tx.sdata->vif.type) { sdata 3669 net/mac80211/tx.c if (tx.sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE) { sdata 3670 net/mac80211/tx.c vif = &tx.sdata->vif; sdata 3673 net/mac80211/tx.c tx.sdata = rcu_dereference(local->monitor_sdata); sdata 3674 net/mac80211/tx.c if (tx.sdata) { sdata 3675 net/mac80211/tx.c vif = &tx.sdata->vif; sdata 3686 net/mac80211/tx.c tx.sdata = container_of(tx.sdata->bss, sdata 3690 net/mac80211/tx.c vif = &tx.sdata->vif; sdata 3844 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 3845 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 3856 net/mac80211/tx.c if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) sdata 3863 net/mac80211/tx.c u16 queue = __ieee80211_select_queue(sdata, sta, skb); sdata 3870 net/mac80211/tx.c sk_pacing_shift_update(skb->sk, sdata->local->hw.tx_sk_pacing_shift); sdata 3875 net/mac80211/tx.c ieee80211_xmit_fast(sdata, sta, fast_tx, skb)) sdata 3916 net/mac80211/tx.c skb = ieee80211_build_hdr(sdata, skb, info_flags, sdata 3923 net/mac80211/tx.c ieee80211_xmit(sdata, sta, skb, 0); sdata 3950 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 3958 net/mac80211/tx.c switch (sdata->vif.type) { sdata 3960 net/mac80211/tx.c if (sdata->u.vlan.sta) sdata 3962 net/mac80211/tx.c if (sdata->wdev.use_4addr) sdata 3967 net/mac80211/tx.c if (!sdata->bss->multicast_to_unicast) sdata 3994 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 3995 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 4003 net/mac80211/tx.c if (sdata != sta->sdata) sdata 4066 net/mac80211/tx.c ieee80211_build_data_template(struct ieee80211_sub_if_data *sdata, sdata 4071 net/mac80211/tx.c .local = sdata->local, sdata 4072 net/mac80211/tx.c .sdata = sdata, sdata 4078 net/mac80211/tx.c if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) { sdata 4084 net/mac80211/tx.c skb = ieee80211_build_hdr(sdata, skb, info_flags, sta, 0); sdata 4089 net/mac80211/tx.c tx.sta = sta_info_get(sdata, hdr->addr1); sdata 4127 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata; sdata 4133 net/mac80211/tx.c sdata = vif_to_sdata(info->control.vif); sdata 4136 net/mac80211/tx.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 4142 net/mac80211/tx.c result = ieee80211_tx(sdata, NULL, skb, true, 0); sdata 4150 net/mac80211/tx.c sta = sta_info_get(sdata, hdr->addr1); sdata 4209 net/mac80211/tx.c static void __ieee80211_beacon_add_tim(struct ieee80211_sub_if_data *sdata, sdata 4226 net/mac80211/tx.c ps->dtim_count = sdata->vif.bss_conf.dtim_period - 1; sdata 4235 net/mac80211/tx.c *pos++ = sdata->vif.bss_conf.dtim_period; sdata 4274 net/mac80211/tx.c static int ieee80211_beacon_add_tim(struct ieee80211_sub_if_data *sdata, sdata 4278 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 4288 net/mac80211/tx.c __ieee80211_beacon_add_tim(sdata, ps, skb, is_template); sdata 4291 net/mac80211/tx.c __ieee80211_beacon_add_tim(sdata, ps, skb, is_template); sdata 4298 net/mac80211/tx.c static void ieee80211_set_csa(struct ieee80211_sub_if_data *sdata, sdata 4307 net/mac80211/tx.c switch (sdata->vif.type) { sdata 4326 net/mac80211/tx.c resp = rcu_dereference(sdata->u.ap.probe_resp); sdata 4338 net/mac80211/tx.c if (sdata->vif.type == NL80211_IFTYPE_AP && resp) sdata 4356 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 4362 net/mac80211/tx.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 4363 net/mac80211/tx.c beacon = rcu_dereference(sdata->u.ap.beacon); sdata 4364 net/mac80211/tx.c else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) sdata 4365 net/mac80211/tx.c beacon = rcu_dereference(sdata->u.ibss.presp); sdata 4366 net/mac80211/tx.c else if (ieee80211_vif_is_mesh(&sdata->vif)) sdata 4367 net/mac80211/tx.c beacon = rcu_dereference(sdata->u.mesh.beacon); sdata 4382 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 4387 net/mac80211/tx.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 4388 net/mac80211/tx.c beacon = rcu_dereference(sdata->u.ap.beacon); sdata 4389 net/mac80211/tx.c else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) sdata 4390 net/mac80211/tx.c beacon = rcu_dereference(sdata->u.ibss.presp); sdata 4391 net/mac80211/tx.c else if (ieee80211_vif_is_mesh(&sdata->vif)) sdata 4392 net/mac80211/tx.c beacon = rcu_dereference(sdata->u.mesh.beacon); sdata 4407 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 4413 net/mac80211/tx.c if (!ieee80211_sdata_running(sdata)) sdata 4418 net/mac80211/tx.c struct ieee80211_if_ap *ap = &sdata->u.ap; sdata 4426 net/mac80211/tx.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 4435 net/mac80211/tx.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 4473 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = NULL; sdata 4481 net/mac80211/tx.c sdata = vif_to_sdata(vif); sdata 4482 net/mac80211/tx.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 4484 net/mac80211/tx.c if (!ieee80211_sdata_running(sdata) || !chanctx_conf) sdata 4490 net/mac80211/tx.c if (sdata->vif.type == NL80211_IFTYPE_AP) { sdata 4491 net/mac80211/tx.c struct ieee80211_if_ap *ap = &sdata->u.ap; sdata 4499 net/mac80211/tx.c ieee80211_set_csa(sdata, beacon); sdata 4516 net/mac80211/tx.c ieee80211_beacon_add_tim(sdata, &ap->ps, skb, sdata 4532 net/mac80211/tx.c } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { sdata 4533 net/mac80211/tx.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 4544 net/mac80211/tx.c ieee80211_set_csa(sdata, beacon); sdata 4557 net/mac80211/tx.c } else if (ieee80211_vif_is_mesh(&sdata->vif)) { sdata 4558 net/mac80211/tx.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 4573 net/mac80211/tx.c ieee80211_set_csa(sdata, beacon); sdata 4577 net/mac80211/tx.c ifmsh->sync_ops->adjust_tsf(sdata, beacon); sdata 4588 net/mac80211/tx.c ieee80211_beacon_add_tim(sdata, &ifmsh->ps, skb, is_template); sdata 4626 net/mac80211/tx.c txrc.bss_conf = &sdata->vif.bss_conf; sdata 4629 net/mac80211/tx.c txrc.rate_idx_mask = sdata->rc_rateidx_mask[band]; sdata 4631 net/mac80211/tx.c rate_control_get_rate(sdata, NULL, &txrc); sdata 4700 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 4702 net/mac80211/tx.c if (sdata->vif.type != NL80211_IFTYPE_AP) sdata 4707 net/mac80211/tx.c ap = &sdata->u.ap; sdata 4730 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata; sdata 4739 net/mac80211/tx.c sdata = vif_to_sdata(vif); sdata 4740 net/mac80211/tx.c ifmgd = &sdata->u.mgd; sdata 4741 net/mac80211/tx.c local = sdata->local; sdata 4769 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata; sdata 4778 net/mac80211/tx.c sdata = vif_to_sdata(vif); sdata 4779 net/mac80211/tx.c ifmgd = &sdata->u.mgd; sdata 4780 net/mac80211/tx.c local = sdata->local; sdata 4786 net/mac80211/tx.c sta = sta_info_get(sdata, ifmgd->bssid); sdata 4899 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata; sdata 4904 net/mac80211/tx.c sdata = vif_to_sdata(vif); sdata 4907 net/mac80211/tx.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 4912 net/mac80211/tx.c if (sdata->vif.type == NL80211_IFTYPE_AP) { sdata 4914 net/mac80211/tx.c rcu_dereference(sdata->u.ap.beacon); sdata 4919 net/mac80211/tx.c ps = &sdata->u.ap.ps; sdata 4920 net/mac80211/tx.c } else if (ieee80211_vif_is_mesh(&sdata->vif)) { sdata 4921 net/mac80211/tx.c ps = &sdata->u.mesh.ps; sdata 4945 net/mac80211/tx.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 4946 net/mac80211/tx.c sdata = IEEE80211_DEV_TO_SUB_IF(skb->dev); sdata 4947 net/mac80211/tx.c if (!ieee80211_tx_prepare(sdata, &tx, NULL, skb)) sdata 4969 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 4970 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 4977 net/mac80211/tx.c switch (sdata->vif.type) { sdata 4996 net/mac80211/tx.c sdata_err(sdata, "TID reservation already active\n"); sdata 5001 net/mac80211/tx.c ieee80211_stop_vif_queues(sdata->local, sdata, sdata 5013 net/mac80211/tx.c queues = BIT(sdata->vif.hw_queue[ieee802_1d_to_ac[tid]]); sdata 5014 net/mac80211/tx.c __ieee80211_flush_queues(local, sdata, queues, false); sdata 5018 net/mac80211/tx.c ieee80211_wake_vif_queues(local, sdata, sdata 5033 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 5035 net/mac80211/tx.c lockdep_assert_held(&sdata->local->sta_mtx); sdata 5038 net/mac80211/tx.c switch (sdata->vif.type) { sdata 5049 net/mac80211/tx.c sdata_err(sdata, "TID to unreserve (%d) isn't reserved\n", tid); sdata 5057 net/mac80211/tx.c void __ieee80211_tx_skb_tid_band(struct ieee80211_sub_if_data *sdata, sdata 5067 net/mac80211/tx.c skb->dev = sdata->dev; sdata 5076 net/mac80211/tx.c ieee80211_xmit(sdata, NULL, skb, txdata_flags); sdata 5084 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 5085 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 5094 net/mac80211/tx.c if (proto != sdata->control_port_protocol && sdata 5098 net/mac80211/tx.c if (proto == sdata->control_port_protocol) sdata 5117 net/mac80211/tx.c memcpy(ehdr->h_source, sdata->vif.addr, ETH_ALEN); sdata 5135 net/mac80211/tx.c struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata 5136 net/mac80211/tx.c struct ieee80211_local *local = sdata->local; sdata 134 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 141 net/mac80211/util.c sdata = vif_to_sdata(vif); sdata 142 net/mac80211/util.c short_preamble = sdata->vif.bss_conf.use_short_preamble; sdata 143 net/mac80211/util.c if (sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) sdata 161 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 175 net/mac80211/util.c sdata = vif_to_sdata(vif); sdata 176 net/mac80211/util.c short_preamble = sdata->vif.bss_conf.use_short_preamble; sdata 177 net/mac80211/util.c if (sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) sdata 205 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 218 net/mac80211/util.c sdata = vif_to_sdata(vif); sdata 219 net/mac80211/util.c short_preamble = sdata->vif.bss_conf.use_short_preamble; sdata 220 net/mac80211/util.c if (sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) sdata 240 net/mac80211/util.c static void __ieee80211_wake_txqs(struct ieee80211_sub_if_data *sdata, int ac) sdata 242 net/mac80211/util.c struct ieee80211_local *local = sdata->local; sdata 243 net/mac80211/util.c struct ieee80211_vif *vif = &sdata->vif; sdata 253 net/mac80211/util.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 254 net/mac80211/util.c ps = &sdata->bss->ps; sdata 256 net/mac80211/util.c sdata->vif.txqs_stopped[ac] = false; sdata 259 net/mac80211/util.c if (sdata != sta->sdata) sdata 307 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 321 net/mac80211/util.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 325 net/mac80211/util.c int ac_queue = sdata->vif.hw_queue[ac]; sdata 328 net/mac80211/util.c sdata->vif.cab_queue == i) sdata 329 net/mac80211/util.c __ieee80211_wake_txqs(sdata, ac); sdata 350 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 359 net/mac80211/util.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 362 net/mac80211/util.c if (!sdata->dev) sdata 365 net/mac80211/util.c if (sdata->vif.cab_queue != IEEE80211_INVAL_HW_QUEUE && sdata 366 net/mac80211/util.c local->queue_stop_reasons[sdata->vif.cab_queue] != 0) sdata 370 net/mac80211/util.c int ac_queue = sdata->vif.hw_queue[ac]; sdata 373 net/mac80211/util.c (sdata->vif.cab_queue == queue && sdata 376 net/mac80211/util.c netif_wake_subqueue(sdata->dev, ac); sdata 458 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 478 net/mac80211/util.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 481 net/mac80211/util.c if (!sdata->dev) sdata 485 net/mac80211/util.c if (sdata->vif.hw_queue[ac] == queue || sdata 486 net/mac80211/util.c sdata->vif.cab_queue == queue) { sdata 488 net/mac80211/util.c netif_stop_subqueue(sdata->dev, ac); sdata 492 net/mac80211/util.c sdata->vif.txqs_stopped[ac] = true; sdata 644 net/mac80211/util.c struct ieee80211_sub_if_data *sdata) sdata 648 net/mac80211/util.c if (sdata && ieee80211_hw_check(&local->hw, QUEUE_CONTROL)) { sdata 654 net/mac80211/util.c queues |= BIT(sdata->vif.hw_queue[ac]); sdata 655 net/mac80211/util.c if (sdata->vif.cab_queue != IEEE80211_INVAL_HW_QUEUE) sdata 656 net/mac80211/util.c queues |= BIT(sdata->vif.cab_queue); sdata 666 net/mac80211/util.c struct ieee80211_sub_if_data *sdata, sdata 677 net/mac80211/util.c queues = ieee80211_get_vif_queues(local, sdata); sdata 683 net/mac80211/util.c drv_flush(local, sdata, queues, drop); sdata 691 net/mac80211/util.c struct ieee80211_sub_if_data *sdata, bool drop) sdata 693 net/mac80211/util.c __ieee80211_flush_queues(local, sdata, 0, drop); sdata 697 net/mac80211/util.c struct ieee80211_sub_if_data *sdata, sdata 701 net/mac80211/util.c ieee80211_get_vif_queues(local, sdata), sdata 706 net/mac80211/util.c struct ieee80211_sub_if_data *sdata, sdata 710 net/mac80211/util.c ieee80211_get_vif_queues(local, sdata), sdata 720 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 723 net/mac80211/util.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 724 net/mac80211/util.c switch (sdata->vif.type) { sdata 726 net/mac80211/util.c if (!(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE)) sdata 735 net/mac80211/util.c active_only && !(sdata->flags & IEEE80211_SDATA_IN_DRIVER)) sdata 737 net/mac80211/util.c if (ieee80211_sdata_running(sdata) || !active_only) sdata 738 net/mac80211/util.c iterator(data, sdata->vif.addr, sdata 739 net/mac80211/util.c &sdata->vif); sdata 742 net/mac80211/util.c sdata = rcu_dereference_check(local->monitor_sdata, sdata 745 net/mac80211/util.c if (sdata && sdata 747 net/mac80211/util.c sdata->flags & IEEE80211_SDATA_IN_DRIVER)) sdata 748 net/mac80211/util.c iterator(data, sdata->vif.addr, &sdata->vif); sdata 825 net/mac80211/util.c struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); sdata 827 net/mac80211/util.c if (!ieee80211_sdata_running(sdata) || sdata 828 net/mac80211/util.c !(sdata->flags & IEEE80211_SDATA_IN_DRIVER)) sdata 830 net/mac80211/util.c return &sdata->vif; sdata 836 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 841 net/mac80211/util.c sdata = vif_to_sdata(vif); sdata 843 net/mac80211/util.c if (!ieee80211_sdata_running(sdata) || sdata 844 net/mac80211/util.c !(sdata->flags & IEEE80211_SDATA_IN_DRIVER)) sdata 847 net/mac80211/util.c return &sdata->wdev; sdata 1400 net/mac80211/util.c void ieee80211_regulatory_limit_wmm_params(struct ieee80211_sub_if_data *sdata, sdata 1409 net/mac80211/util.c if (sdata->vif.type != NL80211_IFTYPE_AP && sdata 1410 net/mac80211/util.c sdata->vif.type != NL80211_IFTYPE_STATION) sdata 1414 net/mac80211/util.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 1423 net/mac80211/util.c rrule = freq_reg_info(sdata->wdev.wiphy, MHZ_TO_KHZ(center_freq)); sdata 1430 net/mac80211/util.c if (sdata->vif.type == NL80211_IFTYPE_AP) sdata 1441 net/mac80211/util.c void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata, sdata 1444 net/mac80211/util.c struct ieee80211_local *local = sdata->local; sdata 1461 net/mac80211/util.c chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); sdata 1464 net/mac80211/util.c !(sdata->flags & IEEE80211_SDATA_OPERATING_GMODE); sdata 1467 net/mac80211/util.c is_ocb = (sdata->vif.type == NL80211_IFTYPE_OCB); sdata 1534 net/mac80211/util.c ieee80211_regulatory_limit_wmm_params(sdata, &qparam, ac); sdata 1538 net/mac80211/util.c sdata->tx_conf[ac] = qparam; sdata 1539 net/mac80211/util.c drv_conf_tx(local, sdata, ac, &qparam); sdata 1542 net/mac80211/util.c if (sdata->vif.type != NL80211_IFTYPE_MONITOR && sdata 1543 net/mac80211/util.c sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE && sdata 1544 net/mac80211/util.c sdata->vif.type != NL80211_IFTYPE_NAN) { sdata 1545 net/mac80211/util.c sdata->vif.bss_conf.qos = enable_qos; sdata 1547 net/mac80211/util.c ieee80211_bss_info_change_notify(sdata, sdata 1552 net/mac80211/util.c void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata, sdata 1558 net/mac80211/util.c struct ieee80211_local *local = sdata->local; sdata 1575 net/mac80211/util.c memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); sdata 1591 net/mac80211/util.c ieee80211_tx_skb(sdata, skb); sdata 1594 net/mac80211/util.c void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata, sdata 1599 net/mac80211/util.c struct ieee80211_local *local = sdata->local; sdata 1608 net/mac80211/util.c memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); sdata 1624 net/mac80211/util.c if (sdata->vif.type != NL80211_IFTYPE_STATION || sdata 1625 net/mac80211/util.c !(sdata->u.mgd.flags & IEEE80211_STA_MFP_ENABLED)) sdata 1629 net/mac80211/util.c ieee80211_tx_skb(sdata, skb); sdata 1876 net/mac80211/util.c struct sk_buff *ieee80211_build_probe_req(struct ieee80211_sub_if_data *sdata, sdata 1884 net/mac80211/util.c struct ieee80211_local *local = sdata->local; sdata 1897 net/mac80211/util.c chandef.width = sdata->vif.bss_conf.chandef.width; sdata 1926 net/mac80211/util.c u32 ieee80211_sta_get_rates(struct ieee80211_sub_if_data *sdata, sdata 1935 net/mac80211/util.c sband = sdata->local->hw.wiphy->bands[band]; sdata 1939 net/mac80211/util.c rate_flags = ieee80211_chandef_rate_flags(&sdata->vif.bss_conf.chandef); sdata 1940 net/mac80211/util.c shift = ieee80211_vif_get_shift(&sdata->vif); sdata 2015 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 2039 net/mac80211/util.c list_for_each_entry(sdata, &local->interfaces, list) sdata 2040 net/mac80211/util.c sdata->flags &= ~IEEE80211_SDATA_IN_DRIVER; sdata 2054 net/mac80211/util.c struct ieee80211_sub_if_data *sdata) sdata 2063 net/mac80211/util.c conf = rcu_dereference_protected(sdata->vif.chanctx_conf, sdata 2067 net/mac80211/util.c drv_assign_vif_chanctx(local, sdata, ctx); sdata 2072 net/mac80211/util.c static void ieee80211_reconfig_stations(struct ieee80211_sub_if_data *sdata) sdata 2074 net/mac80211/util.c struct ieee80211_local *local = sdata->local; sdata 2082 net/mac80211/util.c if (!sta->uploaded || sta->sdata != sdata) sdata 2087 net/mac80211/util.c WARN_ON(drv_sta_state(local, sta->sdata, sta, state, sdata 2093 net/mac80211/util.c static int ieee80211_reconfig_nan(struct ieee80211_sub_if_data *sdata) sdata 2098 net/mac80211/util.c res = drv_start_nan(sdata->local, sdata, sdata 2099 net/mac80211/util.c &sdata->u.nan.conf); sdata 2103 net/mac80211/util.c funcs = kcalloc(sdata->local->hw.max_nan_de_entries + 1, sdata 2113 net/mac80211/util.c spin_lock_bh(&sdata->u.nan.func_lock); sdata 2115 net/mac80211/util.c idr_for_each_entry(&sdata->u.nan.function_inst_ids, func, id) sdata 2118 net/mac80211/util.c spin_unlock_bh(&sdata->u.nan.func_lock); sdata 2121 net/mac80211/util.c res = drv_add_nan_func(sdata->local, sdata, funcs[i]); sdata 2123 net/mac80211/util.c ieee80211_nan_func_terminated(&sdata->vif, sdata 2137 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 2224 net/mac80211/util.c sdata = rtnl_dereference(local->monitor_sdata); sdata 2225 net/mac80211/util.c if (sdata) { sdata 2228 net/mac80211/util.c res = drv_add_interface(local, sdata); sdata 2232 net/mac80211/util.c kfree(sdata); sdata 2236 net/mac80211/util.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 2237 net/mac80211/util.c if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN && sdata 2238 net/mac80211/util.c sdata->vif.type != NL80211_IFTYPE_MONITOR && sdata 2239 net/mac80211/util.c ieee80211_sdata_running(sdata)) { sdata 2240 net/mac80211/util.c res = drv_add_interface(local, sdata); sdata 2250 net/mac80211/util.c list_for_each_entry_continue_reverse(sdata, &local->interfaces, sdata 2252 net/mac80211/util.c if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN && sdata 2253 net/mac80211/util.c sdata->vif.type != NL80211_IFTYPE_MONITOR && sdata 2254 net/mac80211/util.c ieee80211_sdata_running(sdata)) sdata 2255 net/mac80211/util.c drv_remove_interface(local, sdata); sdata 2269 net/mac80211/util.c sdata = rtnl_dereference(local->monitor_sdata); sdata 2270 net/mac80211/util.c if (sdata && ieee80211_sdata_running(sdata)) sdata 2271 net/mac80211/util.c ieee80211_assign_chanctx(local, sdata); sdata 2280 net/mac80211/util.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 2283 net/mac80211/util.c if (!ieee80211_sdata_running(sdata)) sdata 2286 net/mac80211/util.c ieee80211_assign_chanctx(local, sdata); sdata 2288 net/mac80211/util.c switch (sdata->vif.type) { sdata 2293 net/mac80211/util.c if (sdata->vif.bss_conf.ibss_joined) sdata 2294 net/mac80211/util.c WARN_ON(drv_join_ibss(local, sdata)); sdata 2297 net/mac80211/util.c ieee80211_reconfig_stations(sdata); sdata 2301 net/mac80211/util.c drv_conf_tx(local, sdata, i, sdata 2302 net/mac80211/util.c &sdata->tx_conf[i]); sdata 2320 net/mac80211/util.c if (sdata->vif.mu_mimo_owner) sdata 2323 net/mac80211/util.c switch (sdata->vif.type) { sdata 2330 net/mac80211/util.c if (sdata->u.mgd.have_beacon) sdata 2333 net/mac80211/util.c if (sdata->vif.bss_conf.max_idle_period || sdata 2334 net/mac80211/util.c sdata->vif.bss_conf.protected_keep_alive) sdata 2337 net/mac80211/util.c sdata_lock(sdata); sdata 2338 net/mac80211/util.c ieee80211_bss_info_change_notify(sdata, changed); sdata 2339 net/mac80211/util.c sdata_unlock(sdata); sdata 2343 net/mac80211/util.c ieee80211_bss_info_change_notify(sdata, changed); sdata 2351 net/mac80211/util.c if (sdata->vif.bss_conf.ftm_responder == 1 && sdata 2352 net/mac80211/util.c wiphy_ext_feature_isset(sdata->local->hw.wiphy, sdata 2356 net/mac80211/util.c if (sdata->vif.type == NL80211_IFTYPE_AP) { sdata 2359 net/mac80211/util.c if (rcu_access_pointer(sdata->u.ap.beacon)) sdata 2360 net/mac80211/util.c drv_start_ap(local, sdata); sdata 2365 net/mac80211/util.c if (sdata->vif.bss_conf.enable_beacon) { sdata 2368 net/mac80211/util.c ieee80211_bss_info_change_notify(sdata, changed); sdata 2372 net/mac80211/util.c res = ieee80211_reconfig_nan(sdata); sdata 2402 net/mac80211/util.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 2403 net/mac80211/util.c if (sdata->vif.type != NL80211_IFTYPE_STATION) sdata 2405 net/mac80211/util.c if (!sdata->u.mgd.associated) sdata 2408 net/mac80211/util.c ieee80211_send_nullfunc(local, sdata, false); sdata 2420 net/mac80211/util.c if (sta->sdata->vif.type != NL80211_IFTYPE_AP && sdata 2421 net/mac80211/util.c sta->sdata->vif.type != NL80211_IFTYPE_AP_VLAN) sdata 2426 net/mac80211/util.c WARN_ON(drv_sta_state(local, sta->sdata, sta, state, sdata 2432 net/mac80211/util.c list_for_each_entry(sdata, &local->interfaces, list) sdata 2433 net/mac80211/util.c ieee80211_reenable_keys(sdata); sdata 2499 net/mac80211/util.c list_for_each_entry(sdata, &local->interfaces, list) sdata 2500 net/mac80211/util.c ieee80211_queue_work(&local->hw, &sdata->work); sdata 2528 net/mac80211/util.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 2529 net/mac80211/util.c if (!ieee80211_sdata_running(sdata)) sdata 2531 net/mac80211/util.c if (sdata->vif.type == NL80211_IFTYPE_STATION) sdata 2532 net/mac80211/util.c ieee80211_sta_restart(sdata); sdata 2545 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 2552 net/mac80211/util.c sdata = vif_to_sdata(vif); sdata 2553 net/mac80211/util.c local = sdata->local; sdata 2561 net/mac80211/util.c sdata->flags |= IEEE80211_SDATA_DISCONNECT_RESUME; sdata 2564 net/mac80211/util.c list_for_each_entry(key, &sdata->key_list, list) sdata 2570 net/mac80211/util.c void ieee80211_recalc_smps(struct ieee80211_sub_if_data *sdata) sdata 2572 net/mac80211/util.c struct ieee80211_local *local = sdata->local; sdata 2578 net/mac80211/util.c chanctx_conf = rcu_dereference_protected(sdata->vif.chanctx_conf, sdata 2596 net/mac80211/util.c void ieee80211_recalc_min_chandef(struct ieee80211_sub_if_data *sdata) sdata 2598 net/mac80211/util.c struct ieee80211_local *local = sdata->local; sdata 2604 net/mac80211/util.c chanctx_conf = rcu_dereference_protected(sdata->vif.chanctx_conf, sdata 2626 net/mac80211/util.c static void _ieee80211_enable_rssi_reports(struct ieee80211_sub_if_data *sdata, sdata 2630 net/mac80211/util.c trace_api_enable_rssi_reports(sdata, rssi_min_thold, rssi_max_thold); sdata 2632 net/mac80211/util.c if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_STATION)) sdata 2640 net/mac80211/util.c sdata->u.mgd.rssi_min_thold = rssi_min_thold*16; sdata 2641 net/mac80211/util.c sdata->u.mgd.rssi_max_thold = rssi_max_thold*16; sdata 2648 net/mac80211/util.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 2653 net/mac80211/util.c _ieee80211_enable_rssi_reports(sdata, rssi_min_thold, sdata 2660 net/mac80211/util.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 2662 net/mac80211/util.c _ieee80211_enable_rssi_reports(sdata, 0, 0); sdata 2722 net/mac80211/util.c u8 ieee80211_ie_len_he_cap(struct ieee80211_sub_if_data *sdata, u8 iftype) sdata 2728 net/mac80211/util.c sband = ieee80211_get_sband(sdata); sdata 3100 net/mac80211/util.c int ieee80211_add_srates_ie(struct ieee80211_sub_if_data *sdata, sdata 3104 net/mac80211/util.c struct ieee80211_local *local = sdata->local; sdata 3108 net/mac80211/util.c u32 basic_rates = sdata->vif.bss_conf.basic_rates; sdata 3111 net/mac80211/util.c shift = ieee80211_vif_get_shift(&sdata->vif); sdata 3112 net/mac80211/util.c rate_flags = ieee80211_chandef_rate_flags(&sdata->vif.bss_conf.chandef); sdata 3144 net/mac80211/util.c int ieee80211_add_ext_srates_ie(struct ieee80211_sub_if_data *sdata, sdata 3148 net/mac80211/util.c struct ieee80211_local *local = sdata->local; sdata 3152 net/mac80211/util.c u32 basic_rates = sdata->vif.bss_conf.basic_rates; sdata 3155 net/mac80211/util.c rate_flags = ieee80211_chandef_rate_flags(&sdata->vif.bss_conf.chandef); sdata 3156 net/mac80211/util.c shift = ieee80211_vif_get_shift(&sdata->vif); sdata 3195 net/mac80211/util.c struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); sdata 3196 net/mac80211/util.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 3198 net/mac80211/util.c if (WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_STATION)) { sdata 3318 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 3325 net/mac80211/util.c list_for_each_entry(sdata, &local->interfaces, list) { sdata 3330 net/mac80211/util.c cancel_delayed_work(&sdata->dfs_cac_timer_work); sdata 3332 net/mac80211/util.c if (sdata->wdev.cac_started) { sdata 3333 net/mac80211/util.c chandef = sdata->vif.bss_conf.chandef; sdata 3334 net/mac80211/util.c ieee80211_vif_release_channel(sdata); sdata 3335 net/mac80211/util.c cfg80211_cac_event(sdata->dev, sdata 3468 net/mac80211/util.c int ieee80211_send_action_csa(struct ieee80211_sub_if_data *sdata, sdata 3473 net/mac80211/util.c struct ieee80211_local *local = sdata->local; sdata 3479 net/mac80211/util.c if (sdata->vif.type != NL80211_IFTYPE_ADHOC && sdata 3480 net/mac80211/util.c sdata->vif.type != NL80211_IFTYPE_MESH_POINT) sdata 3497 net/mac80211/util.c memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); sdata 3498 net/mac80211/util.c if (ieee80211_vif_is_mesh(&sdata->vif)) { sdata 3499 net/mac80211/util.c memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); sdata 3501 net/mac80211/util.c struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; sdata 3527 net/mac80211/util.c if (ieee80211_vif_is_mesh(&sdata->vif)) { sdata 3528 net/mac80211/util.c struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; sdata 3533 net/mac80211/util.c *pos++ = sdata->u.mesh.mshcfg.dot11MeshTTL; /* Mesh TTL */ sdata 3551 net/mac80211/util.c ieee80211_tx_skb(sdata, skb); sdata 3771 net/mac80211/util.c struct ieee80211_sub_if_data *sdata) sdata 3773 net/mac80211/util.c u64 tsf = drv_get_tsf(local, sdata); sdata 3775 net/mac80211/util.c u16 beacon_int = sdata->vif.bss_conf.beacon_int * 1024; sdata 3776 net/mac80211/util.c u8 dtim_period = sdata->vif.bss_conf.dtim_period; sdata 3783 net/mac80211/util.c if (sdata->vif.type == NL80211_IFTYPE_AP || sdata 3784 net/mac80211/util.c sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { sdata 3785 net/mac80211/util.c if (!sdata->bss) sdata 3788 net/mac80211/util.c ps = &sdata->bss->ps; sdata 3789 net/mac80211/util.c } else if (ieee80211_vif_is_mesh(&sdata->vif)) { sdata 3790 net/mac80211/util.c ps = &sdata->u.mesh.ps; sdata 3814 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 3822 net/mac80211/util.c list_for_each_entry(sdata, &ctx->reserved_vifs, reserved_chanctx_list) sdata 3823 net/mac80211/util.c if (sdata->reserved_radar_required) sdata 3824 net/mac80211/util.c radar_detect |= BIT(sdata->reserved_chandef.width); sdata 3833 net/mac80211/util.c list_for_each_entry(sdata, &ctx->assigned_vifs, assigned_chanctx_list) sdata 3834 net/mac80211/util.c if (sdata->radar_required) sdata 3835 net/mac80211/util.c radar_detect |= BIT(sdata->vif.bss_conf.chandef.width); sdata 3840 net/mac80211/util.c int ieee80211_check_combinations(struct ieee80211_sub_if_data *sdata, sdata 3845 net/mac80211/util.c struct ieee80211_local *local = sdata->local; sdata 3847 net/mac80211/util.c enum nl80211_iftype iftype = sdata->wdev.iftype; sdata 3866 net/mac80211/util.c if (sdata->vif.type == NL80211_IFTYPE_AP || sdata 3867 net/mac80211/util.c sdata->vif.type == NL80211_IFTYPE_MESH_POINT) { sdata 3873 net/mac80211/util.c params.new_beacon_int = sdata->vif.bss_conf.beacon_int; sdata 3910 net/mac80211/util.c if (sdata_iter == sdata || sdata 3938 net/mac80211/util.c struct ieee80211_sub_if_data *sdata; sdata 3956 net/mac80211/util.c list_for_each_entry_rcu(sdata, &local->interfaces, list) sdata 3957 net/mac80211/util.c params.iftype_num[sdata->wdev.iftype]++; sdata 17 net/mac80211/vht.c static void __check_vhtcap_disable(struct ieee80211_sub_if_data *sdata, sdata 23 net/mac80211/vht.c if (sdata->u.mgd.vht_capa_mask.vht_cap_info & le_flag && sdata 24 net/mac80211/vht.c !(sdata->u.mgd.vht_capa.vht_cap_info & le_flag)) sdata 28 net/mac80211/vht.c void ieee80211_apply_vhtcap_overrides(struct ieee80211_sub_if_data *sdata, sdata 37 net/mac80211/vht.c if (sdata->vif.type != NL80211_IFTYPE_STATION) sdata 40 net/mac80211/vht.c __check_vhtcap_disable(sdata, vht_cap, sdata 42 net/mac80211/vht.c __check_vhtcap_disable(sdata, vht_cap, sdata 44 net/mac80211/vht.c __check_vhtcap_disable(sdata, vht_cap, sdata 46 net/mac80211/vht.c __check_vhtcap_disable(sdata, vht_cap, sdata 48 net/mac80211/vht.c __check_vhtcap_disable(sdata, vht_cap, sdata 50 net/mac80211/vht.c __check_vhtcap_disable(sdata, vht_cap, sdata 52 net/mac80211/vht.c __check_vhtcap_disable(sdata, vht_cap, sdata 54 net/mac80211/vht.c __check_vhtcap_disable(sdata, vht_cap, sdata 58 net/mac80211/vht.c if (sdata->u.mgd.vht_capa_mask.vht_cap_info & sdata 62 net/mac80211/vht.c n = le32_to_cpu(sdata->u.mgd.vht_capa.vht_cap_info) & sdata 78 net/mac80211/vht.c le16_to_cpu(sdata->u.mgd.vht_capa_mask.supp_mcs.rx_mcs_map); sdata 79 net/mac80211/vht.c rxmcs_n = le16_to_cpu(sdata->u.mgd.vht_capa.supp_mcs.rx_mcs_map); sdata 84 net/mac80211/vht.c le16_to_cpu(sdata->u.mgd.vht_capa_mask.supp_mcs.tx_mcs_map); sdata 85 net/mac80211/vht.c txmcs_n = le16_to_cpu(sdata->u.mgd.vht_capa.supp_mcs.tx_mcs_map); sdata 116 net/mac80211/vht.c ieee80211_vht_cap_ie_to_sta_vht_cap(struct ieee80211_sub_if_data *sdata, sdata 164 net/mac80211/vht.c if (sdata->vif.type == NL80211_IFTYPE_STATION && sdata 166 net/mac80211/vht.c ieee80211_apply_vhtcap_overrides(sdata, &own_cap); sdata 233 net/mac80211/vht.c if (ieee80211_hw_check(&sdata->local->hw, SUPPORTS_VHT_EXT_NSS_BW)) sdata 289 net/mac80211/vht.c sdata_info(sdata, "Ignoring VHT IE from %pM due to invalid rx_mcs_map\n", sdata 438 net/mac80211/vht.c struct ieee80211_sub_if_data *sdata = sta->sdata; sdata 440 net/mac80211/vht.c enum nl80211_chan_width bss_width = sdata->vif.bss_conf.chandef.width; sdata 500 net/mac80211/vht.c u32 __ieee80211_vht_handle_opmode(struct ieee80211_sub_if_data *sdata, sdata 548 net/mac80211/vht.c cfg80211_sta_opmode_change_notify(sdata->dev, sta->addr, sdata 554 net/mac80211/vht.c void ieee80211_process_mu_groups(struct ieee80211_sub_if_data *sdata, sdata 557 net/mac80211/vht.c struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf; sdata 559 net/mac80211/vht.c if (!sdata->vif.mu_mimo_owner) sdata 575 net/mac80211/vht.c ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_MU_GROUPS); sdata 591 net/mac80211/vht.c void ieee80211_vht_handle_opmode(struct ieee80211_sub_if_data *sdata, sdata 595 net/mac80211/vht.c struct ieee80211_local *local = sdata->local; sdata 598 net/mac80211/vht.c u32 changed = __ieee80211_vht_handle_opmode(sdata, sta, opmode, band); sdata 601 net/mac80211/vht.c ieee80211_recalc_min_chandef(sdata); sdata 83 net/mac80211/wme.c static u16 ieee80211_downgrade_queue(struct ieee80211_sub_if_data *sdata, sdata 86 net/mac80211/wme.c struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; sdata 89 net/mac80211/wme.c while (sdata->wmm_acm & BIT(skb->priority)) { sdata 116 net/mac80211/wme.c u16 ieee80211_select_queue_80211(struct ieee80211_sub_if_data *sdata, sdata 120 net/mac80211/wme.c struct ieee80211_local *local = sdata->local; sdata 138 net/mac80211/wme.c return ieee80211_downgrade_queue(sdata, NULL, skb); sdata 141 net/mac80211/wme.c u16 __ieee80211_select_queue(struct ieee80211_sub_if_data *sdata, sdata 148 net/mac80211/wme.c if (sdata->vif.type == NL80211_IFTYPE_MESH_POINT || sdata 149 net/mac80211/wme.c sdata->vif.type == NL80211_IFTYPE_OCB) sdata 161 net/mac80211/wme.c if (skb->protocol == sdata->control_port_protocol) { sdata 168 net/mac80211/wme.c qos_map = rcu_dereference(sdata->qos_map); sdata 173 net/mac80211/wme.c return ieee80211_downgrade_queue(sdata, sta, skb); sdata 178 net/mac80211/wme.c u16 ieee80211_select_queue(struct ieee80211_sub_if_data *sdata, sdata 181 net/mac80211/wme.c struct ieee80211_local *local = sdata->local; sdata 196 net/mac80211/wme.c switch (sdata->vif.type) { sdata 198 net/mac80211/wme.c sta = rcu_dereference(sdata->u.vlan.sta); sdata 206 net/mac80211/wme.c ra = sdata->u.wds.remote_addr; sdata 210 net/mac80211/wme.c sta = sta_info_get(sdata, skb->data); sdata 214 net/mac80211/wme.c ra = sdata->u.mgd.bssid; sdata 224 net/mac80211/wme.c sta = sta_info_get(sdata, ra); sdata 226 net/mac80211/wme.c ret = __ieee80211_select_queue(sdata, sta, skb); sdata 238 net/mac80211/wme.c void ieee80211_set_qos_hdr(struct ieee80211_sub_if_data *sdata, sdata 262 net/mac80211/wme.c sdata->noack_map & BIT(tid)) { sdata 272 net/mac80211/wme.c if (ieee80211_vif_is_mesh(&sdata->vif)) { sdata 13 net/mac80211/wme.h u16 ieee80211_select_queue_80211(struct ieee80211_sub_if_data *sdata, sdata 16 net/mac80211/wme.h u16 __ieee80211_select_queue(struct ieee80211_sub_if_data *sdata, sdata 18 net/mac80211/wme.h u16 ieee80211_select_queue(struct ieee80211_sub_if_data *sdata, sdata 20 net/mac80211/wme.h void ieee80211_set_qos_hdr(struct ieee80211_sub_if_data *sdata, sdata 137 net/mac80211/wpa.c if (rx->sdata->vif.type == NL80211_IFTYPE_AP && rx->key->conf.keyidx) { sdata 184 net/mac80211/wpa.c cfg80211_michael_mic_failure(rx->sdata->dev, hdr->addr2, sdata 36 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 38 net/mac802154/cfg.c ieee802154_if_remove(sdata); sdata 270 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 272 net/mac802154/cfg.c *table = &sdata->sec.table; sdata 280 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 282 net/mac802154/cfg.c mutex_lock(&sdata->sec_mtx); sdata 290 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 292 net/mac802154/cfg.c mutex_unlock(&sdata->sec_mtx); sdata 302 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 305 net/mac802154/cfg.c mutex_lock(&sdata->sec_mtx); sdata 306 net/mac802154/cfg.c res = mac802154_llsec_set_params(&sdata->sec, params, changed); sdata 307 net/mac802154/cfg.c mutex_unlock(&sdata->sec_mtx); sdata 318 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 321 net/mac802154/cfg.c mutex_lock(&sdata->sec_mtx); sdata 322 net/mac802154/cfg.c res = mac802154_llsec_get_params(&sdata->sec, params); sdata 323 net/mac802154/cfg.c mutex_unlock(&sdata->sec_mtx); sdata 334 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 337 net/mac802154/cfg.c mutex_lock(&sdata->sec_mtx); sdata 338 net/mac802154/cfg.c res = mac802154_llsec_key_add(&sdata->sec, id, key); sdata 339 net/mac802154/cfg.c mutex_unlock(&sdata->sec_mtx); sdata 349 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 352 net/mac802154/cfg.c mutex_lock(&sdata->sec_mtx); sdata 353 net/mac802154/cfg.c res = mac802154_llsec_key_del(&sdata->sec, id); sdata 354 net/mac802154/cfg.c mutex_unlock(&sdata->sec_mtx); sdata 364 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 367 net/mac802154/cfg.c mutex_lock(&sdata->sec_mtx); sdata 368 net/mac802154/cfg.c res = mac802154_llsec_seclevel_add(&sdata->sec, sl); sdata 369 net/mac802154/cfg.c mutex_unlock(&sdata->sec_mtx); sdata 379 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 382 net/mac802154/cfg.c mutex_lock(&sdata->sec_mtx); sdata 383 net/mac802154/cfg.c res = mac802154_llsec_seclevel_del(&sdata->sec, sl); sdata 384 net/mac802154/cfg.c mutex_unlock(&sdata->sec_mtx); sdata 394 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 397 net/mac802154/cfg.c mutex_lock(&sdata->sec_mtx); sdata 398 net/mac802154/cfg.c res = mac802154_llsec_dev_add(&sdata->sec, dev_desc); sdata 399 net/mac802154/cfg.c mutex_unlock(&sdata->sec_mtx); sdata 409 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 412 net/mac802154/cfg.c mutex_lock(&sdata->sec_mtx); sdata 413 net/mac802154/cfg.c res = mac802154_llsec_dev_del(&sdata->sec, extended_addr); sdata 414 net/mac802154/cfg.c mutex_unlock(&sdata->sec_mtx); sdata 425 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 428 net/mac802154/cfg.c mutex_lock(&sdata->sec_mtx); sdata 429 net/mac802154/cfg.c res = mac802154_llsec_devkey_add(&sdata->sec, extended_addr, key); sdata 430 net/mac802154/cfg.c mutex_unlock(&sdata->sec_mtx); sdata 441 net/mac802154/cfg.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 444 net/mac802154/cfg.c mutex_lock(&sdata->sec_mtx); sdata 445 net/mac802154/cfg.c res = mac802154_llsec_devkey_del(&sdata->sec, extended_addr, key); sdata 446 net/mac802154/cfg.c mutex_unlock(&sdata->sec_mtx); sdata 116 net/mac802154/ieee802154_i.h ieee802154_sdata_running(struct ieee802154_sub_if_data *sdata) sdata 118 net/mac802154/ieee802154_i.h return test_bit(SDATA_STATE_RUNNING, &sdata->state); sdata 172 net/mac802154/ieee802154_i.h void ieee802154_if_remove(struct ieee802154_sub_if_data *sdata); sdata 27 net/mac802154/iface.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 29 net/mac802154/iface.c struct wpan_dev *wpan_dev = &sdata->wpan_dev; sdata 51 net/mac802154/iface.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 52 net/mac802154/iface.c struct wpan_dev *wpan_dev = &sdata->wpan_dev; sdata 113 net/mac802154/iface.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 123 net/mac802154/iface.c if (sdata->wpan_dev.lowpan_dev) { sdata 124 net/mac802154/iface.c if (netif_running(sdata->wpan_dev.lowpan_dev)) sdata 133 net/mac802154/iface.c sdata->wpan_dev.extended_addr = extended_addr; sdata 138 net/mac802154/iface.c if (sdata->wpan_dev.lowpan_dev) sdata 139 net/mac802154/iface.c memcpy(sdata->wpan_dev.lowpan_dev->dev_addr, dev->dev_addr, sdata 145 net/mac802154/iface.c static int ieee802154_setup_hw(struct ieee802154_sub_if_data *sdata) sdata 147 net/mac802154/iface.c struct ieee802154_local *local = sdata->local; sdata 148 net/mac802154/iface.c struct wpan_dev *wpan_dev = &sdata->wpan_dev; sdata 197 net/mac802154/iface.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 198 net/mac802154/iface.c struct ieee802154_local *local = sdata->local; sdata 203 net/mac802154/iface.c set_bit(SDATA_STATE_RUNNING, &sdata->state); sdata 206 net/mac802154/iface.c res = ieee802154_setup_hw(sdata); sdata 220 net/mac802154/iface.c clear_bit(SDATA_STATE_RUNNING, &sdata->state); sdata 265 net/mac802154/iface.c ieee802154_check_concurrent_iface(struct ieee802154_sub_if_data *sdata, sdata 268 net/mac802154/iface.c struct ieee802154_local *local = sdata->local; sdata 269 net/mac802154/iface.c struct wpan_dev *wpan_dev = &sdata->wpan_dev; sdata 274 net/mac802154/iface.c if (nsdata != sdata && ieee802154_sdata_running(nsdata)) { sdata 302 net/mac802154/iface.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 303 net/mac802154/iface.c struct wpan_dev *wpan_dev = &sdata->wpan_dev; sdata 305 net/mac802154/iface.c rc = ieee802154_check_concurrent_iface(sdata, wpan_dev->iftype); sdata 314 net/mac802154/iface.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 315 net/mac802154/iface.c struct ieee802154_local *local = sdata->local; sdata 322 net/mac802154/iface.c clear_bit(SDATA_STATE_RUNNING, &sdata->state); sdata 330 net/mac802154/iface.c static int mac802154_set_header_security(struct ieee802154_sub_if_data *sdata, sdata 337 net/mac802154/iface.c mac802154_llsec_get_params(&sdata->sec, ¶ms); sdata 369 net/mac802154/iface.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 370 net/mac802154/iface.c struct wpan_dev *wpan_dev = &sdata->wpan_dev; sdata 383 net/mac802154/iface.c if (mac802154_set_header_security(sdata, &hdr, cb) < 0) sdata 435 net/mac802154/iface.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 436 net/mac802154/iface.c struct wpan_dev *wpan_dev = &sdata->wpan_dev; sdata 451 net/mac802154/iface.c if (mac802154_set_header_security(sdata, &hdr, &cb) < 0) sdata 518 net/mac802154/iface.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 520 net/mac802154/iface.c mac802154_llsec_destroy(&sdata->sec); sdata 556 net/mac802154/iface.c ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata, sdata 559 net/mac802154/iface.c struct wpan_dev *wpan_dev = &sdata->wpan_dev; sdata 564 net/mac802154/iface.c sdata->wpan_dev.iftype = type; sdata 583 net/mac802154/iface.c sdata->dev->dev_addr); sdata 585 net/mac802154/iface.c sdata->dev->header_ops = &mac802154_header_ops; sdata 586 net/mac802154/iface.c sdata->dev->needs_free_netdev = true; sdata 587 net/mac802154/iface.c sdata->dev->priv_destructor = mac802154_wpan_free; sdata 588 net/mac802154/iface.c sdata->dev->netdev_ops = &mac802154_wpan_ops; sdata 589 net/mac802154/iface.c sdata->dev->ml_priv = &mac802154_mlme_wpan; sdata 593 net/mac802154/iface.c mutex_init(&sdata->sec_mtx); sdata 595 net/mac802154/iface.c mac802154_llsec_init(&sdata->sec); sdata 596 net/mac802154/iface.c ret = mac802154_wpan_update_llsec(sdata->dev); sdata 602 net/mac802154/iface.c sdata->dev->needs_free_netdev = true; sdata 603 net/mac802154/iface.c sdata->dev->netdev_ops = &mac802154_monitor_ops; sdata 619 net/mac802154/iface.c struct ieee802154_sub_if_data *sdata = NULL; sdata 624 net/mac802154/iface.c ndev = alloc_netdev(sizeof(*sdata), name, sdata 658 net/mac802154/iface.c sdata = netdev_priv(ndev); sdata 659 net/mac802154/iface.c ndev->ieee802154_ptr = &sdata->wpan_dev; sdata 660 net/mac802154/iface.c memcpy(sdata->name, ndev->name, IFNAMSIZ); sdata 661 net/mac802154/iface.c sdata->dev = ndev; sdata 662 net/mac802154/iface.c sdata->wpan_dev.wpan_phy = local->hw.phy; sdata 663 net/mac802154/iface.c sdata->local = local; sdata 666 net/mac802154/iface.c ret = ieee802154_setup_sdata(sdata, type); sdata 675 net/mac802154/iface.c list_add_tail_rcu(&sdata->list, &local->interfaces); sdata 685 net/mac802154/iface.c void ieee802154_if_remove(struct ieee802154_sub_if_data *sdata) sdata 689 net/mac802154/iface.c mutex_lock(&sdata->local->iflist_mtx); sdata 690 net/mac802154/iface.c list_del_rcu(&sdata->list); sdata 691 net/mac802154/iface.c mutex_unlock(&sdata->local->iflist_mtx); sdata 694 net/mac802154/iface.c unregister_netdevice(sdata->dev); sdata 699 net/mac802154/iface.c struct ieee802154_sub_if_data *sdata, *tmp; sdata 702 net/mac802154/iface.c list_for_each_entry_safe(sdata, tmp, &local->interfaces, list) { sdata 703 net/mac802154/iface.c list_del(&sdata->list); sdata 705 net/mac802154/iface.c unregister_netdevice(sdata->dev); sdata 714 net/mac802154/iface.c struct ieee802154_sub_if_data *sdata; sdata 725 net/mac802154/iface.c sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 726 net/mac802154/iface.c memcpy(sdata->name, dev->name, IFNAMSIZ); sdata 60 net/mac802154/mac_cmd.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 61 net/mac802154/mac_cmd.c struct ieee802154_local *local = sdata->local; sdata 62 net/mac802154/mac_cmd.c struct wpan_dev *wpan_dev = &sdata->wpan_dev; sdata 103 net/mac802154/mac_cmd.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 104 net/mac802154/mac_cmd.c struct wpan_dev *wpan_dev = &sdata->wpan_dev; sdata 23 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 24 net/mac802154/mib.c struct ieee802154_local *local = sdata->local; sdata 43 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 48 net/mac802154/mib.c mutex_lock(&sdata->sec_mtx); sdata 49 net/mac802154/mib.c res = mac802154_llsec_get_params(&sdata->sec, params); sdata 50 net/mac802154/mib.c mutex_unlock(&sdata->sec_mtx); sdata 59 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 64 net/mac802154/mib.c mutex_lock(&sdata->sec_mtx); sdata 65 net/mac802154/mib.c res = mac802154_llsec_set_params(&sdata->sec, params, changed); sdata 66 net/mac802154/mib.c mutex_unlock(&sdata->sec_mtx); sdata 75 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 80 net/mac802154/mib.c mutex_lock(&sdata->sec_mtx); sdata 81 net/mac802154/mib.c res = mac802154_llsec_key_add(&sdata->sec, id, key); sdata 82 net/mac802154/mib.c mutex_unlock(&sdata->sec_mtx); sdata 90 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 95 net/mac802154/mib.c mutex_lock(&sdata->sec_mtx); sdata 96 net/mac802154/mib.c res = mac802154_llsec_key_del(&sdata->sec, id); sdata 97 net/mac802154/mib.c mutex_unlock(&sdata->sec_mtx); sdata 105 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 110 net/mac802154/mib.c mutex_lock(&sdata->sec_mtx); sdata 111 net/mac802154/mib.c res = mac802154_llsec_dev_add(&sdata->sec, llsec_dev); sdata 112 net/mac802154/mib.c mutex_unlock(&sdata->sec_mtx); sdata 119 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 124 net/mac802154/mib.c mutex_lock(&sdata->sec_mtx); sdata 125 net/mac802154/mib.c res = mac802154_llsec_dev_del(&sdata->sec, dev_addr); sdata 126 net/mac802154/mib.c mutex_unlock(&sdata->sec_mtx); sdata 135 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 140 net/mac802154/mib.c mutex_lock(&sdata->sec_mtx); sdata 141 net/mac802154/mib.c res = mac802154_llsec_devkey_add(&sdata->sec, device_addr, key); sdata 142 net/mac802154/mib.c mutex_unlock(&sdata->sec_mtx); sdata 151 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 156 net/mac802154/mib.c mutex_lock(&sdata->sec_mtx); sdata 157 net/mac802154/mib.c res = mac802154_llsec_devkey_del(&sdata->sec, device_addr, key); sdata 158 net/mac802154/mib.c mutex_unlock(&sdata->sec_mtx); sdata 166 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 171 net/mac802154/mib.c mutex_lock(&sdata->sec_mtx); sdata 172 net/mac802154/mib.c res = mac802154_llsec_seclevel_add(&sdata->sec, sl); sdata 173 net/mac802154/mib.c mutex_unlock(&sdata->sec_mtx); sdata 181 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 186 net/mac802154/mib.c mutex_lock(&sdata->sec_mtx); sdata 187 net/mac802154/mib.c res = mac802154_llsec_seclevel_del(&sdata->sec, sl); sdata 188 net/mac802154/mib.c mutex_unlock(&sdata->sec_mtx); sdata 195 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 199 net/mac802154/mib.c mutex_lock(&sdata->sec_mtx); sdata 205 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 209 net/mac802154/mib.c *t = &sdata->sec.table; sdata 214 net/mac802154/mib.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 218 net/mac802154/mib.c mutex_unlock(&sdata->sec_mtx); sdata 33 net/mac802154/rx.c ieee802154_subif_frame(struct ieee802154_sub_if_data *sdata, sdata 36 net/mac802154/rx.c struct wpan_dev *wpan_dev = &sdata->wpan_dev; sdata 40 net/mac802154/rx.c pr_debug("getting packet via slave interface %s\n", sdata->dev->name); sdata 80 net/mac802154/rx.c skb->dev = sdata->dev; sdata 86 net/mac802154/rx.c rc = mac802154_llsec_decrypt(&sdata->sec, skb); sdata 92 net/mac802154/rx.c sdata->dev->stats.rx_packets++; sdata 93 net/mac802154/rx.c sdata->dev->stats.rx_bytes += skb->len; sdata 195 net/mac802154/rx.c struct ieee802154_sub_if_data *sdata; sdata 205 net/mac802154/rx.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 206 net/mac802154/rx.c if (sdata->wpan_dev.iftype != NL802154_IFTYPE_NODE) sdata 209 net/mac802154/rx.c if (!ieee802154_sdata_running(sdata)) sdata 212 net/mac802154/rx.c ieee802154_subif_frame(sdata, skb, &hdr); sdata 224 net/mac802154/rx.c struct ieee802154_sub_if_data *sdata; sdata 231 net/mac802154/rx.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 232 net/mac802154/rx.c if (sdata->wpan_dev.iftype != NL802154_IFTYPE_MONITOR) sdata 235 net/mac802154/rx.c if (!ieee802154_sdata_running(sdata)) sdata 240 net/mac802154/rx.c skb2->dev = sdata->dev; sdata 243 net/mac802154/rx.c sdata->dev->stats.rx_packets++; sdata 244 net/mac802154/rx.c sdata->dev->stats.rx_bytes += skb->len; sdata 104 net/mac802154/tx.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 108 net/mac802154/tx.c return ieee802154_tx(sdata->local, skb); sdata 114 net/mac802154/tx.c struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); sdata 121 net/mac802154/tx.c rc = mac802154_llsec_encrypt(&sdata->sec, skb); sdata 130 net/mac802154/tx.c return ieee802154_tx(sdata->local, skb); sdata 19 net/mac802154/util.c struct ieee802154_sub_if_data *sdata; sdata 22 net/mac802154/util.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 23 net/mac802154/util.c if (!sdata->dev) sdata 26 net/mac802154/util.c netif_wake_queue(sdata->dev); sdata 35 net/mac802154/util.c struct ieee802154_sub_if_data *sdata; sdata 38 net/mac802154/util.c list_for_each_entry_rcu(sdata, &local->interfaces, list) { sdata 39 net/mac802154/util.c if (!sdata->dev) sdata 42 net/mac802154/util.c netif_stop_queue(sdata->dev);