- Fim da bagunça: O patch resolve um problema de vazamento de objetos no sistema de arquivos virtual (sysfs) que ocorria quando o driver térmico da Intel falhava ao inicializar.
- Ordem dos fatores: O erro acontecia porque o driver ativava o recurso FIVR mas não o removia se o recurso seguinte (DLVR) apresentasse erro, deixando estruturas órfãs na memória.
- Gerenciamento manual: A correção destaca a natureza do desenvolvimento em C no kernel, onde cada passo de alocação de recursos exige um "plano de desfazer" explícito para evitar falhas.
- Preparação para o 7.0: A mudança faz parte do ciclo de polimento para o lançamento do Linux 7.0, garantindo que drivers existentes estejam robustos para a nova versão.
- Estabilidade: Embora sutil, o bug poderia impedir o recarregamento correto de drivers e confundir ferramentas de monitoramento de hardware em sistemas Intel.
Linus Torvalds integrou hoje (18 de fevereiro de 2026) uma correção pontual, mas importante, enviada por Rafael Wysocki para o subsistema de gerenciamento térmico do kernel. O patch resolve um problema no driver Intel int340x, especificamente no tratamento de falhas durante a inicialização de reguladores de voltagem.
O bug, identificado pelo desenvolvedor Kaushlendra Kumar, causava um “vazamento” de grupos no sysfs (a interface do sistema de arquivos virtual do kernel) quando o registro de um componente falhava, deixando para trás estruturas de diretórios órfãs que deveriam ter sido removidas.
Para o iniciante: quem esqueceu a louça na mesa?
Para entender esse erro, imagine que o driver do kernel é um garçom arrumando uma mesa de jantar (o sistema). Ele tem duas tarefas em sequência:
- Colocar os pratos (Configurar o FIVR).
- Colocar os copos (Configurar o DLVR).
No código antigo, o garçom colocava os pratos com sucesso. Mas, se ao tentar colocar os copos ele tropeçasse e quebrasse tudo (erro de registro), ele entrava em pânico e saía correndo da sala, deixando os pratos lá na mesa para sempre, ocupando espaço inutilmente.
A correção ensina “bons modos” ao garçom: se ele não conseguir colocar os copos, ele deve recolher os pratos que já tinha colocado antes de ir embora, deixando a mesa limpa como encontrou. Em termos técnicos, isso evita que o sistema fique “sujo” com configurações parciais que não funcionam.
Detalhes técnicos da correção
A falha estava localizada no arquivo drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c, dentro da função proc_thermal_rfim_add.
Este driver lida com dois recursos de gerenciamento de energia e térmica dos processadores Intel modernos:
- FIVR: Fully Integrated Voltage Regulator.
- DLVR: Digital Linear Voltage Regulator.
O código original tentava criar o grupo sysfs para o DLVR logo após ter criado o do FIVR. Se a chamada sysfs_create_group para o DLVR falhasse (retornando um código de erro), a função retornava imediatamente. Isso deixava o grupo do FIVR, que foi criado linhas antes, registrado no sistema sem um caminho de saída limpo.
O patch introduz uma verificação no caminho de erro:
if (ret) {
if (proc_priv->mmio_feature_mask & PROC_THERMAL_FEATURE_FIVR)
sysfs_remove_group(&pdev->dev.kobj, &fivr_attribute_group);
return ret;
}Agora, se o DLVR falhar, o kernel verifica se o FIVR estava ativo e o remove explicitamente antes de abortar a operação.
Curiosidades e bastidores da discussão
Este tipo de bug é muito comum em programação em C, onde o gerenciamento de recursos é manual. Em linguagens de alto nível, “destrutores” automáticos resolveriam isso, mas no kernel, o desenvolvedor precisa lembrar de desfazer cada passo anterior em caso de erro (o famoso padrão goto error_handling).
O patch faz parte da preparação para o Linux 7.0-rc1, indicando que a comunidade está polindo drivers existentes para garantir estabilidade na próxima grande versão do kernel. Embora o impacto não seja catastrófico (não é um vazamento de memória RAM massivo), vazamentos de objetos no sysfs podem confundir ferramentas de monitoramento de espaço de usuário e impedir que o driver seja recarregado corretamente.
Status de lançamento
O patch fa2827e foi mesclado na árvore principal (master) em 18 de fevereiro de 2026.
- Status atual: Integrado ao kernel principal.
- Disponibilidade: Estará presente na versão final do Linux 7.0 e provavelmente será portado para versões estáveis anteriores que contenham este driver (backport).
- Hardware afetado: Laptops e dispositivos embarcados utilizando processadores Intel com suporte a int340x thermal (geralmente gerações mais recentes com gerenciamento avançado de voltagem).
