Defined in 2 files as a member:

Defined in 1 files as a function:

Referenced in 7 files:

Smatch caller information:

drivers/base/dd.c __device_release_driver() -> device_remove()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->bus 0,4096-ptr_max
PARAM_VALUE 0 dev->class 0,4096-ptr_max
PARAM_VALUE 0 dev->driver 4096-ptr_max
PARAM_VALUE 0 dev->kobj.parent->sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 dev->kobj.sd->__parent 0
PARAM_VALUE 0 dev->kobj.sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 dev->links.status 3
PARAM_VALUE 0 dev->power.request 0-4
PARAM_VALUE 0 dev->power.runtime_error s32min-(-17),(-15)-(-14),(-12),(-10)-s32max
PARAM_VALUE 0 dev->power.runtime_status 0,2
PARAM_VALUE 0 dev->power.wakeirq 0,4096-ptr_max
PARAM_VALUE 0 dev->type 0,4096-ptr_max
CAPPED_DATA 0 dev->bus 1
CAPPED_DATA 0 dev->driver 1
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 dev unit_byte
LOCK2 0 &dev->mutex
TYPE_LOCK (struct device)->mutex

drivers/base/dd.c really_probe() -> device_remove()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->bus 4096-ptr_max
PARAM_VALUE 0 dev->driver 4096-ptr_max
PARAM_VALUE 0 dev->driver->owner->refcnt.counter 0-s32max
PARAM_VALUE 0 dev->flags 4096-ptr_max
PARAM_VALUE 0 dev->kobj.sd 4096-ptr_max
PARAM_VALUE 0 dev->kobj.sd->attr.notify_next 0,426918848001064960
PARAM_VALUE 0 dev->kobj.sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 dev->p->dead 0
PARAM_VALUE 0 dev->parent->bus 0,4096-ptr_max
PARAM_VALUE 0 dev->parent->class 0,4096-ptr_max
PARAM_VALUE 0 dev->parent->power.request 0-4
PARAM_VALUE 0 dev->parent->power.runtime_error s32min-(-17),(-15)-(-14),(-12),(-10)-s32max
PARAM_VALUE 0 dev->parent->power.wakeirq 0,4096-ptr_max
PARAM_VALUE 0 dev->parent->type 0,4096-ptr_max
PARAM_VALUE 0 dev->pins->p 0,4096-u64max
PARAM_VALUE 0 dev->pm_domain 0,4096-ptr_max
BUF_SIZE 0 dev (-1)-0,16,24,56,64,120,1616,7104
BUF_SIZE 0 dev (-1)-0,16,24,56,64,120,1616,7104
CAPPED_DATA 0 &dev->devres_head 1
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 0 &dev->mutex

drivers/base/dd.c really_probe() -> device_remove()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->bus 4096-ptr_max
PARAM_VALUE 0 dev->class 0,4096-ptr_max
PARAM_VALUE 0 dev->driver 4096-ptr_max
PARAM_VALUE 0 dev->driver->owner->refcnt.counter 0-s32max
PARAM_VALUE 0 dev->flags 4096-ptr_max
PARAM_VALUE 0 dev->kobj.sd 4096-ptr_max
PARAM_VALUE 0 dev->kobj.sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 dev->parent->bus 0,4096-ptr_max
PARAM_VALUE 0 dev->parent->class 0,4096-ptr_max
PARAM_VALUE 0 dev->parent->power.request 0-4
PARAM_VALUE 0 dev->parent->power.runtime_error s32min-(-17),(-15)-(-14),(-12),(-10)-s32max
PARAM_VALUE 0 dev->parent->power.wakeirq 0,4096-ptr_max
PARAM_VALUE 0 dev->parent->type 0,4096-ptr_max
PARAM_VALUE 0 dev->pins->p 0,4096-u64max
PARAM_VALUE 0 dev->pm_domain 0,4096-ptr_max
BUF_SIZE 0 dev (-1)-0,16,24,56,64,120,1616,7104
BUF_SIZE 0 dev (-1)-0,16,24,56,64,120,1616,7104
CAPPED_DATA 0 &dev->devres_head 1
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 0 &dev->mutex

Smatch assignments to (struct mdio_device)->device_remove:

drivers/net/dsa/mv88e6xxx/pcs-6352.c marvell_c22_pcs_handle_irq() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/dsa/mv88e6xxx/pcs-6352.c mv88e6352_pcs_init() -> (struct mdio_device)->device_remove [min-max]

drivers/net/dsa/microchip/ksz8863_smi.c ksz8863_mdio_read() -> (struct mdio_device)->device_remove [ignore]

drivers/net/dsa/microchip/ksz8863_smi.c ksz8863_mdio_write() -> (struct mdio_device)->device_remove [ignore]

drivers/net/phy/sfp.c __sfp_sm_event() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_attach() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_check_state() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_detach() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_irq() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_poll() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_probe() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_remove() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_sm_event() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_sm_main() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_sm_phy_detach() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_sm_probe_phy() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_start() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_stop() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/sfp.c sfp_timeout() -> (struct mdio_device)->device_remove [min-max]

drivers/net/mdio/fwnode_mdio.c fwnode_mdiobus_phy_device_register() -> (struct mdio_device)->device_remove [min-max]

drivers/net/mdio/fwnode_mdio.c fwnode_mdiobus_register_phy() -> (struct mdio_device)->device_remove [min-max]

drivers/net/dsa/bcm_sf2.c bcm_sf2_mdio_register() -> (struct mdio_device)->device_remove [min-max]

drivers/net/mdio/mdio-xgene.c xgene_enet_phy_register() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/phy_package.c devm_of_phy_package_join() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/phy_package.c devm_phy_package_join() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c hclge_get_cap() -> (struct mdio_device)->device_remove [0]

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c hclge_parse_link_mode() -> (struct mdio_device)->device_remove [0]

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c hclge_pci_init() -> (struct mdio_device)->device_remove [0]

drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c hns_mac_register_phydev() -> (struct mdio_device)->device_remove [min-max]

drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c hns_mac_remove_phydev() -> (struct mdio_device)->device_remove [min-max]

drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c hns_mac_uninit() -> (struct mdio_device)->device_remove [min-max]

drivers/net/dsa/xrs700x/xrs700x_mdio.c xrs700x_mdio_reg_read() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/dsa/xrs700x/xrs700x_mdio.c xrs700x_mdio_reg_write() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/ethernet/broadcom/b44.c b44_remove_one() -> (struct mdio_device)->device_remove [min-max]

drivers/net/ethernet/broadcom/b44.c b44_unregister_phy_one() -> (struct mdio_device)->device_remove [min-max]

drivers/net/mdio/of_mdio.c of_mdiobus_phy_device_register() -> (struct mdio_device)->device_remove [min-max]

drivers/net/mdio/of_mdio.c of_mdiobus_register_device() -> (struct mdio_device)->device_remove [min-max]

drivers/net/mdio/of_mdio.c of_phy_deregister_fixed_link() -> (struct mdio_device)->device_remove [min-max]

drivers/net/pcs/pcs-xpcs-plat.c xpcs_plat_init_dev() -> (struct mdio_device)->device_remove [min-max]

drivers/net/ethernet/hisilicon/hibmcge/hbg_mdio.c hbg_fixed_phy_uninit() -> (struct mdio_device)->device_remove [min-max]

drivers/net/dsa/dsa_loop.c dsa_loop_create_switch_mdiodev() -> (struct mdio_device)->device_remove [min-max]

drivers/net/dsa/dsa_loop.c dsa_loop_exit() -> (struct mdio_device)->device_remove [min-max]

drivers/net/dsa/dsa_loop.c dsa_loop_init() -> (struct mdio_device)->device_remove [min-max]

drivers/net/dsa/dsa_loop.c dsa_loop_phydevs_unregister() -> (struct mdio_device)->device_remove [min-max]

drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c xgbe_phy_find_phy_device() -> (struct mdio_device)->device_remove [min-max]

drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c xgbe_phy_free_phy_device() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/mdio_bus_provider.c __mdiobus_register() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/mdio_bus_provider.c mdiobus_scan() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/mdio_bus_provider.c mdiobus_unregister() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/phy_device.c phy_device_create() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/phy_device.c phy_device_register() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/phy_device.c phy_device_remove() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/phy_device.c phy_mdio_device_remove() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/phy_device.c phy_sfp_attach() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/phy_device.c phy_sfp_connect_phy() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/phy_device.c phy_sfp_detach() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/phy_device.c phy_sfp_disconnect_phy() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/phy_device.c phy_sfp_link_down() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/phy_device.c phy_sfp_link_up() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/phy_device.c phy_sfp_module_insert() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/phy_device.c phy_sfp_module_remove() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/ethernet/socionext/netsec.c netsec_probe() -> (struct mdio_device)->device_remove [min-max]

drivers/net/ethernet/socionext/netsec.c netsec_register_mdio() -> (struct mdio_device)->device_remove [min-max]

drivers/net/ethernet/socionext/netsec.c netsec_remove() -> (struct mdio_device)->device_remove [min-max]

drivers/net/ethernet/socionext/netsec.c netsec_unregister_mdio() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/mdio_device.c mdio_device_create() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/mdio_device.c mdio_device_register() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/mdio_device.c mdio_device_release() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/mdio_device.c mdio_device_remove() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/nxp-tja11xx.c tja1102_p1_register() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/marvell.c marvell_hwmon_is_visible() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/phy.c phy_interrupt() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/fixed_phy.c fixed_phy_register() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/fixed_phy.c fixed_phy_unregister() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/mscc/mscc_main.c vsc8584_config_init() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/air_en8811h.c an8811hb_probe() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/air_en8811h.c an8811hb_remove() -> (struct mdio_device)->device_remove [min-max]

drivers/net/ethernet/freescale/fec_main.c fec_enet_close() -> (struct mdio_device)->device_remove [min-max]

drivers/net/ethernet/freescale/fec_main.c fec_enet_mii_probe() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/qcom/at803x.c at8031_rgmii_reg_get_voltage_sel() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/qcom/at803x.c at8031_rgmii_reg_set_voltage_sel() -> (struct mdio_device)->device_remove [0-u64max]

drivers/net/phy/mscc/mscc_ptp.c __vsc8584_init_ptp() -> (struct mdio_device)->device_remove [min-max]

drivers/net/phy/mscc/mscc_ptp.c vsc8584_ptp_init() -> (struct mdio_device)->device_remove [min-max]

drivers/net/dsa/mv88e6xxx/pcs-639x.c mv88e6390_pcs_init() -> (struct mdio_device)->device_remove [min-max]

drivers/net/dsa/mv88e6xxx/pcs-639x.c mv88e6393x_pcs_init() -> (struct mdio_device)->device_remove [min-max]

drivers/net/dsa/mv88e6xxx/pcs-639x.c mv88e639x_pcs_handle_irq() -> (struct mdio_device)->device_remove [0-u64max]